@gusto/embedded-react-sdk 0.46.0 → 0.46.3

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 (284) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.d.ts +2 -1
  3. package/dist/components/Common/DataView/DataCards/DataCards.js +14 -13
  4. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  5. package/dist/components/Common/DataView/DataTable/DataTable.d.ts +2 -1
  6. package/dist/components/Common/DataView/DataTable/DataTable.js +85 -80
  7. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  8. package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js +8 -0
  9. package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js.map +1 -0
  10. package/dist/components/Common/DataView/DataView.d.ts +1 -0
  11. package/dist/components/Common/DataView/DataView.js.map +1 -1
  12. package/dist/components/Common/DataView/useDataView.d.ts +10 -1
  13. package/dist/components/Common/DataView/useDataView.js +20 -17
  14. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  15. package/dist/components/Common/DocumentViewer/DocumentViewer.js +10 -10
  16. package/dist/components/Common/DocumentViewer/DocumentViewer.js.map +1 -1
  17. package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +9 -9
  18. package/dist/components/Common/PaginationControl/PaginationControl.js +11 -10
  19. package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
  20. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +1 -1
  21. package/dist/components/Common/UI/DescriptionList/DescriptionList.js +11 -10
  22. package/dist/components/Common/UI/DescriptionList/DescriptionList.js.map +1 -1
  23. package/dist/components/Common/UI/DescriptionList/DescriptionList.module.scss.js +4 -4
  24. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -1
  25. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  26. package/dist/components/Common/UI/NumberInput/NumberInput.js +51 -48
  27. package/dist/components/Common/UI/NumberInput/NumberInput.js.map +1 -1
  28. package/dist/components/Common/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  29. package/dist/components/Common/VisuallyHidden/VisuallyHidden.js.map +1 -1
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  32. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
  33. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
  35. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  36. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
  37. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  38. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  39. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  40. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  41. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
  42. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  43. package/dist/components/Company/Industry/Context.js +6 -7
  44. package/dist/components/Company/Industry/Context.js.map +1 -1
  45. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
  46. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  47. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
  48. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  49. package/dist/components/Company/OnboardingOverview/context.js +3 -4
  50. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  51. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  52. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
  53. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  54. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
  55. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  56. package/dist/components/Contractor/Address/useAddress.js +5 -6
  57. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  58. package/dist/components/Contractor/Profile/useContractorProfile.js +33 -34
  59. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  60. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.d.ts +9 -0
  61. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js +76 -0
  62. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js.map +1 -0
  63. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js +8 -0
  64. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js.map +1 -0
  65. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js +60 -202
  66. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js.map +1 -1
  67. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.d.ts +25 -0
  68. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js +79 -0
  69. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js.map +1 -0
  70. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js +8 -0
  71. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js.map +1 -0
  72. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.d.ts +18 -0
  73. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +171 -0
  74. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -0
  75. package/dist/components/Employee/Compensation/management/index.d.ts +3 -0
  76. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +6 -1
  77. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +67 -209
  78. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
  79. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +36 -36
  80. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  81. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.d.ts +18 -0
  82. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +169 -0
  83. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -0
  84. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +16 -0
  85. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js +36 -30
  86. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
  87. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +1 -1
  88. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  89. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
  90. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +213 -191
  91. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  92. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  93. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +6 -5
  94. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +162 -131
  95. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  96. package/dist/components/Employee/Dashboard/BasicDetailsView.js +74 -88
  97. package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
  98. package/dist/components/Employee/Dashboard/Dashboard.js +86 -72
  99. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  100. package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +3 -3
  101. package/dist/components/Employee/Dashboard/DashboardComponents.js +138 -101
  102. package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
  103. package/dist/components/Employee/Dashboard/DocumentsView.js +17 -10
  104. package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
  105. package/dist/components/Employee/Dashboard/JobAndPayView.js +359 -313
  106. package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
  107. package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js +5 -3
  108. package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js.map +1 -1
  109. package/dist/components/Employee/Dashboard/TaxesView.js +114 -101
  110. package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
  111. package/dist/components/Employee/Dashboard/dashboardStateMachine.js +147 -148
  112. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  113. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.d.ts +6 -0
  114. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +37 -36
  115. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -1
  116. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.d.ts +2 -2
  117. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js +34 -35
  118. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js.map +1 -1
  119. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js +57 -57
  120. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js.map +1 -1
  121. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +14 -5
  122. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +55 -36
  123. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
  124. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  125. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +18 -18
  126. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
  127. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  128. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +3 -3
  129. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
  130. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  131. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  132. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  133. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +37 -40
  134. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
  135. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +1 -2
  136. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +64 -71
  137. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  138. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.d.ts +2 -0
  139. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js +25 -0
  140. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js.map +1 -0
  141. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.d.ts +13 -0
  142. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js +37 -0
  143. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js.map +1 -0
  144. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.d.ts +6 -0
  145. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +69 -0
  146. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -0
  147. package/dist/components/Employee/EmployeeListFlow/index.d.ts +3 -0
  148. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  149. package/dist/components/Employee/HomeAddress/management/HomeAddress.js +15 -12
  150. package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
  151. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +2 -1
  152. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +170 -157
  153. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  154. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +56 -55
  155. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  156. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +20 -20
  157. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
  158. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  159. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +1 -1
  160. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  161. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -1
  162. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  163. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  164. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +0 -1
  165. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js +11 -12
  166. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js.map +1 -1
  167. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.test.d.ts +1 -0
  168. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +6 -1
  169. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +95 -94
  170. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  171. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  172. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +6 -1
  173. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +87 -86
  174. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  175. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +18 -18
  176. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  177. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  178. package/dist/components/Employee/Taxes/useTaxes.js +3 -4
  179. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  180. package/dist/components/Employee/WorkAddress/management/WorkAddress.js +14 -11
  181. package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
  182. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +2 -1
  183. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +96 -89
  184. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  185. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +61 -60
  186. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  187. package/dist/components/Employee/exports/employeeManagement.d.ts +2 -0
  188. package/dist/components/Employee/exports/employeeManagement.js +18 -16
  189. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  190. package/dist/components/Employee/index.d.ts +2 -0
  191. package/dist/components/Employee/index.js +32 -30
  192. package/dist/components/Employee/index.js.map +1 -1
  193. package/dist/components/Flow/FlowHeader.js +34 -31
  194. package/dist/components/Flow/FlowHeader.js.map +1 -1
  195. package/dist/components/Flow/useFlow.d.ts +12 -0
  196. package/dist/components/Flow/useFlow.js.map +1 -1
  197. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  198. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  199. package/dist/components/Payroll/usePreparedPayrollData.js +2 -3
  200. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  201. package/dist/components/TimeOff/PolicyList/PolicyList.js +92 -69
  202. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  203. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +23 -23
  204. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  205. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +1 -1
  206. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  207. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +73 -56
  208. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  209. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +58 -58
  210. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  211. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  212. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +91 -87
  213. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  214. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  215. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +91 -125
  216. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  217. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  218. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +60 -91
  219. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  220. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +4 -4
  221. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +0 -16
  222. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +139 -225
  223. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  224. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +7 -3
  225. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +78 -54
  226. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  227. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.test.d.ts +1 -0
  228. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +12 -11
  229. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  230. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +177 -147
  231. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  232. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +34 -34
  233. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  234. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -1
  235. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +38 -36
  236. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  237. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +2 -0
  238. package/dist/helpers/breadcrumbHelpers.d.ts +1 -1
  239. package/dist/helpers/breadcrumbHelpers.js.map +1 -1
  240. package/dist/helpers/federalEin.d.ts +1 -0
  241. package/dist/helpers/federalEin.js.map +1 -1
  242. package/dist/helpers/mask.d.ts +8 -4
  243. package/dist/helpers/mask.js.map +1 -1
  244. package/dist/helpers/rem.d.ts +2 -1
  245. package/dist/helpers/rem.js.map +1 -1
  246. package/dist/hooks/useAsyncError.d.ts +1 -0
  247. package/dist/hooks/useAsyncError.js.map +1 -1
  248. package/dist/hooks/useForkRef/useForkRef.d.ts +1 -0
  249. package/dist/hooks/useForkRef/useForkRef.js.map +1 -1
  250. package/dist/i18n/I18n.d.ts +9 -1
  251. package/dist/i18n/I18n.js.map +1 -1
  252. package/dist/i18n/en/Company.TimeOff.EmployeeTable.json.js +14 -14
  253. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +16 -22
  254. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
  255. package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js +17 -15
  256. package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js.map +1 -1
  257. package/dist/i18n/en/Company.TimeOff.TimeOffPolicyDetails.json.js +9 -9
  258. package/dist/i18n/en/Employee.Compensation.json.js +66 -58
  259. package/dist/i18n/en/Employee.Compensation.json.js.map +1 -1
  260. package/dist/i18n/en/Employee.Dashboard.json.js +28 -24
  261. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  262. package/dist/i18n/en/Employee.HomeAddress.Management.json.js +12 -10
  263. package/dist/i18n/en/Employee.HomeAddress.Management.json.js.map +1 -1
  264. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +32 -30
  265. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  266. package/dist/i18n/en/Employee.PaymentMethod.json.js +25 -25
  267. package/dist/i18n/en/Employee.StateTaxes.json.js +12 -10
  268. package/dist/i18n/en/Employee.StateTaxes.json.js.map +1 -1
  269. package/dist/i18n/en/Employee.WorkAddress.Management.json.js +16 -14
  270. package/dist/i18n/en/Employee.WorkAddress.Management.json.js.map +1 -1
  271. package/dist/i18n/en/common.json.d.ts +14 -0
  272. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js +33 -32
  273. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  274. package/dist/partner-hook-utils/types.d.ts +4 -0
  275. package/dist/shared/constants.d.ts +2 -0
  276. package/dist/shared/constants.js +13 -12
  277. package/dist/shared/constants.js.map +1 -1
  278. package/dist/style.css +1 -1
  279. package/dist/types/hooks.d.ts +1 -1
  280. package/dist/types/i18next.d.ts +30 -29
  281. package/dist/types/observability.d.ts +1 -1
  282. package/docs/reference/endpoint-inventory.json +24 -8
  283. package/package.json +30 -27
  284. package/dist/components/Employee/Dashboard/CompensationCard.d.ts +0 -13
@@ -1,67 +1,68 @@
1
- import { useState as N, useMemo as g } from "react";
2
- import { useEmployeeAddressesDeleteWorkAddressMutation as T } from "@gusto/embedded-api/react-query/employeeAddressesDeleteWorkAddress";
3
- import { useEmployeeAddressesGetWorkAddresses as C } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
4
- import { useEmployeesGet as K } from "@gusto/embedded-api/react-query/employeesGet";
5
- import { useBaseSubmit as O } from "../../../Base/useBaseSubmit.js";
6
- import { useWorkAddressForm as W } from "../../Profile/shared/useWorkAddressForm/useWorkAddressForm.js";
7
- import { composeErrorHandler as Q } from "../../../../partner-hook-utils/composeErrorHandler.js";
8
- import { firstLastName as q } from "../../../../helpers/formattedStrings.js";
9
- import { normalizeToSDKError as G, SDKInternalError as n } from "../../../../types/sdkError.js";
10
- import { componentEvents as x } from "../../../../shared/constants.js";
11
- function te(e) {
1
+ import { useState as T, useMemo as E } from "react";
2
+ import { useEmployeeAddressesDeleteWorkAddressMutation as C } from "@gusto/embedded-api/react-query/employeeAddressesDeleteWorkAddress";
3
+ import { useEmployeeAddressesGetWorkAddresses as K } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
4
+ import { useEmployeesGet as O } from "@gusto/embedded-api/react-query/employeesGet";
5
+ import { useBaseSubmit as Q } from "../../../Base/useBaseSubmit.js";
6
+ import { useWorkAddressForm as h } from "../../Profile/shared/useWorkAddressForm/useWorkAddressForm.js";
7
+ import { composeErrorHandler as q } from "../../../../partner-hook-utils/composeErrorHandler.js";
8
+ import { firstLastName as G } from "../../../../helpers/formattedStrings.js";
9
+ import { normalizeToSDKError as x, SDKInternalError as d } from "../../../../types/sdkError.js";
10
+ import { componentEvents as z } from "../../../../shared/constants.js";
11
+ function ie(e) {
12
12
  return e.isLoading ? !1 : !e.status.isEmployeeError;
13
13
  }
14
- function z(e, d) {
14
+ function B(e, n) {
15
15
  if (e.isLoading)
16
- throw new n("Edit work address form is still loading");
17
- if (d.isLoading)
18
- throw new n("Change work address form is still loading");
16
+ throw new d("Edit work address form is still loading");
17
+ if (n.isLoading)
18
+ throw new d("Change work address form is still loading");
19
19
  return {
20
20
  editWorkAddressForm: e,
21
- changeWorkAddressForm: d
21
+ changeWorkAddressForm: n
22
22
  };
23
23
  }
24
- function ie({
24
+ function de({
25
25
  employeeId: e,
26
- onEvent: d
26
+ onEvent: n
27
27
  }) {
28
28
  const {
29
- baseSubmitHandler: h,
30
- error: D,
31
- setError: F
32
- } = O("Employee.WorkAddress.Management"), l = T(), [t, S] = N(void 0), o = K({ employeeId: e }, { enabled: !!e }), a = o.data?.employee?.companyUuid, f = C(
29
+ baseSubmitHandler: D,
30
+ error: F,
31
+ setError: S
32
+ } = Q("Employee.WorkAddress.Management"), l = C(), [t, v] = T(void 0), o = O({ employeeId: e }, { enabled: !!e }), a = o.data?.employee?.companyUuid, f = K(
33
33
  { employeeId: e },
34
34
  { enabled: !!e && !!a }
35
- ), r = f.data?.employeeWorkAddressesList, b = g(() => r?.length ? r.find((s) => s.active) ?? r[0] ?? null : null, [r]), v = t ?? b?.uuid, E = g(() => {
35
+ ), r = f.data?.employeeWorkAddressesList, b = E(() => r?.length ? r.find((s) => s.active) ?? r[0] ?? null : null, [r]), g = t ?? b?.uuid, p = E(() => {
36
36
  if (!(!t || !r))
37
37
  return r.find((s) => s.uuid === t);
38
- }, [t, r]), R = E ? E.active !== !0 : !1, m = W({
38
+ }, [t, r]), R = g ? r?.find((s) => s.uuid === g) : void 0, M = p ? p.active !== !0 : !1, u = h({
39
39
  companyId: a,
40
40
  employeeId: e,
41
- workAddressUuid: v,
42
- withEffectiveDateField: R
43
- }), u = W({
41
+ workAddressUuid: g,
42
+ initialAddress: R,
43
+ withEffectiveDateField: M
44
+ }), m = h({
44
45
  companyId: a,
45
46
  employeeId: e,
46
47
  withEffectiveDateField: !0
47
- }), p = g(() => {
48
+ }), y = E(() => {
48
49
  const s = o.data?.employee;
49
- return s ? q({
50
+ return s ? G({
50
51
  first_name: s.firstName,
51
52
  last_name: s.lastName
52
53
  }).trim() : "";
53
- }, [o.data?.employee]), y = !!o.data?.employee && !a, i = Q(
54
+ }, [o.data?.employee]), k = !!o.data?.employee && !a, i = q(
54
55
  [
55
56
  o,
56
57
  f,
57
- m,
58
58
  u,
59
- ...y ? [
59
+ m,
60
+ ...k ? [
60
61
  {
61
62
  errorHandling: {
62
63
  errors: [
63
- G(
64
- new n(
64
+ x(
65
+ new d(
65
66
  "Employee record is missing companyUuid, which is required to load work address locations."
66
67
  )
67
68
  )
@@ -74,70 +75,70 @@ function ie({
74
75
  }
75
76
  ] : []
76
77
  ],
77
- { submitError: D, setSubmitError: F }
78
- ), k = {
79
- setEditTargetUuid: S,
78
+ { submitError: F, setSubmitError: S }
79
+ ), A = {
80
+ setEditTargetUuid: v,
80
81
  confirmDeleteWorkAddress: async (s) => {
81
- const _ = r?.find((c) => c.uuid === s) ?? null;
82
+ const H = r?.find((c) => c.uuid === s) ?? null;
82
83
  let w = !1;
83
- return await h(
84
- { workAddressUuid: s, snapshot: _ },
85
- async ({ workAddressUuid: c, snapshot: A }) => {
86
- const L = r?.find((H) => H.uuid === c);
84
+ return await D(
85
+ { workAddressUuid: s, snapshot: H },
86
+ async ({ workAddressUuid: c, snapshot: W }) => {
87
+ const L = r?.find((N) => N.uuid === c);
87
88
  if (!L)
88
- throw new n("Work address not found");
89
+ throw new d("Work address not found");
89
90
  if (L.active === !0)
90
- throw new n("Cannot delete the active work address");
91
+ throw new d("Cannot delete the active work address");
91
92
  await l.mutateAsync({
92
93
  request: { workAddressUuid: c }
93
- }), w = !0, A && d(x.EMPLOYEE_WORK_ADDRESS_DELETED, A);
94
+ }), w = !0, W && n(z.EMPLOYEE_WORK_ADDRESS_DELETED, W);
94
95
  }
95
96
  ), w;
96
97
  }
97
- }, M = {
98
- employeeDisplayName: p,
98
+ }, U = {
99
+ employeeDisplayName: y,
99
100
  employeeWorkAddresses: r,
100
101
  editTargetUuid: t,
101
- editWorkAddressForm: m,
102
- changeWorkAddressForm: u
102
+ editWorkAddressForm: u,
103
+ changeWorkAddressForm: m
103
104
  };
104
105
  if (o.isLoading)
105
106
  return { isLoading: !0, errorHandling: i };
106
- if (o.isError || y)
107
+ if (o.isError || k)
107
108
  return {
108
109
  isLoading: !1,
109
- data: M,
110
+ data: U,
110
111
  status: {
111
112
  isDeletePending: l.isPending,
112
113
  isEmployeeError: !0
113
114
  },
114
115
  errorHandling: i,
115
- actions: k
116
+ actions: A
116
117
  };
117
118
  if (f.isLoading)
118
119
  return { isLoading: !0, errorHandling: i };
119
- if (m.isLoading || u.isLoading)
120
+ if (u.isLoading || m.isLoading)
120
121
  return { isLoading: !0, errorHandling: i };
121
- const { editWorkAddressForm: U, changeWorkAddressForm: P } = z(m, u);
122
+ const { editWorkAddressForm: P, changeWorkAddressForm: _ } = B(u, m);
122
123
  return {
123
124
  isLoading: !1,
124
125
  data: {
125
- employeeDisplayName: p,
126
+ employeeDisplayName: y,
126
127
  employeeWorkAddresses: r,
127
128
  editTargetUuid: t,
128
- editWorkAddressForm: U,
129
- changeWorkAddressForm: P
129
+ editWorkAddressForm: P,
130
+ changeWorkAddressForm: _
130
131
  },
131
132
  status: {
132
133
  isDeletePending: l.isPending,
133
134
  isEmployeeError: !1
134
135
  },
135
136
  errorHandling: i,
136
- actions: k
137
+ actions: A
137
138
  };
138
139
  }
139
140
  export {
140
- te as isUseWorkAddressManagementSuccess,
141
- ie as useWorkAddressManagement
141
+ ie as isUseWorkAddressManagementSuccess,
142
+ de as useWorkAddressManagement
142
143
  };
143
144
  //# sourceMappingURL=useWorkAddressManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkAddressManagement.js","sources":["../../../../../src/components/Employee/WorkAddress/management/useWorkAddressManagement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeAddressesDeleteWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesDeleteWorkAddress'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { useWorkAddressForm } from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport type {\n UseWorkAddressFormReady,\n UseWorkAddressFormResult,\n} from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseHookReady,\n HookErrorHandling,\n HookLoadingResult,\n} from '@/partner-hook-utils/types'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { normalizeToSDKError, SDKInternalError } from '@/types/sdkError'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\nexport interface UseWorkAddressManagementParams {\n employeeId: string\n onEvent: OnEventType<EventType, unknown>\n}\n\nexport interface UseWorkAddressManagementDataPendingForms extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormResult\n changeWorkAddressForm: UseWorkAddressFormResult\n}\n\nexport interface UseWorkAddressManagementDataReady extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormReady\n changeWorkAddressForm: UseWorkAddressFormReady\n}\n\nexport interface UseWorkAddressManagementStatusEmployeeError extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: true\n}\n\nexport interface UseWorkAddressManagementStatusSuccess extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: false\n}\n\nexport interface UseWorkAddressManagementActions {\n setEditTargetUuid: (workAddressUuid: string | undefined) => void\n confirmDeleteWorkAddress: (workAddressUuid: string) => Promise<boolean>\n}\n\nexport interface UseWorkAddressManagementReadyEmployeeError extends BaseHookReady<\n UseWorkAddressManagementDataPendingForms,\n UseWorkAddressManagementStatusEmployeeError\n> {\n actions: UseWorkAddressManagementActions\n}\n\nexport interface UseWorkAddressManagementReadySuccess extends BaseHookReady<\n UseWorkAddressManagementDataReady,\n UseWorkAddressManagementStatusSuccess\n> {\n actions: UseWorkAddressManagementActions\n}\n\nexport type UseWorkAddressManagementReady =\n | UseWorkAddressManagementReadyEmployeeError\n | UseWorkAddressManagementReadySuccess\n\nexport type UseWorkAddressManagementResult = HookLoadingResult | UseWorkAddressManagementReady\n\nexport function isUseWorkAddressManagementSuccess(\n value: UseWorkAddressManagementResult,\n): value is UseWorkAddressManagementReadySuccess {\n if (value.isLoading) {\n return false\n }\n return !value.status.isEmployeeError\n}\n\nfunction workAddressFormsReady(\n editWorkAddressForm: UseWorkAddressFormResult,\n changeWorkAddressForm: UseWorkAddressFormResult,\n): Pick<UseWorkAddressManagementDataReady, 'editWorkAddressForm' | 'changeWorkAddressForm'> {\n if (editWorkAddressForm.isLoading) {\n throw new SDKInternalError('Edit work address form is still loading')\n }\n if (changeWorkAddressForm.isLoading) {\n throw new SDKInternalError('Change work address form is still loading')\n }\n return {\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n}\n\nexport function useWorkAddressManagement({\n employeeId,\n onEvent,\n}: UseWorkAddressManagementParams): UseWorkAddressManagementResult {\n const {\n baseSubmitHandler,\n error: rootSubmitError,\n setError: setRootSubmitError,\n } = useBaseSubmit('Employee.WorkAddress.Management')\n const deleteWorkAddressMutation = useEmployeeAddressesDeleteWorkAddressMutation()\n const [editTargetUuid, setEditTargetUuid] = useState<string | undefined>(undefined)\n\n const employeeQuery = useEmployeesGet({ employeeId }, { enabled: !!employeeId })\n const companyId = employeeQuery.data?.employee?.companyUuid\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId },\n { enabled: !!employeeId && !!companyId },\n )\n\n const employeeWorkAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n\n const currentWorkAddress = useMemo<EmployeeWorkAddress | null>(() => {\n if (!employeeWorkAddresses?.length) {\n return null\n }\n return employeeWorkAddresses.find(w => w.active) ?? employeeWorkAddresses[0] ?? null\n }, [employeeWorkAddresses])\n\n const workAddressUuidForEdit = editTargetUuid ?? currentWorkAddress?.uuid\n\n const editInactiveRow = useMemo(() => {\n if (!editTargetUuid || !employeeWorkAddresses) {\n return undefined\n }\n return employeeWorkAddresses.find(w => w.uuid === editTargetUuid)\n }, [editTargetUuid, employeeWorkAddresses])\n\n const withEffectiveDateOnEdit = editInactiveRow ? editInactiveRow.active !== true : false\n\n const editWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n workAddressUuid: workAddressUuidForEdit,\n withEffectiveDateField: withEffectiveDateOnEdit,\n })\n\n const changeWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n withEffectiveDateField: true,\n })\n\n const employeeDisplayName = useMemo(() => {\n const employee = employeeQuery.data?.employee\n if (!employee) {\n return ''\n }\n return firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n }).trim()\n }, [employeeQuery.data?.employee])\n\n const isMissingCompany = !!employeeQuery.data?.employee && !companyId\n\n const errorHandling: HookErrorHandling = composeErrorHandler(\n [\n employeeQuery,\n workAddressesQuery,\n editWorkAddressForm,\n changeWorkAddressForm,\n ...(isMissingCompany\n ? [\n {\n errorHandling: {\n errors: [\n normalizeToSDKError(\n new SDKInternalError(\n 'Employee record is missing companyUuid, which is required to load work address locations.',\n ),\n ),\n ],\n retryQueries: () => {},\n clearSubmitError: () => {},\n },\n },\n ]\n : []),\n ],\n { submitError: rootSubmitError, setSubmitError: setRootSubmitError },\n )\n\n const confirmDeleteWorkAddress = async (workAddressUuid: string): Promise<boolean> => {\n const snapshot = employeeWorkAddresses?.find(w => w.uuid === workAddressUuid) ?? null\n\n let succeeded = false\n await baseSubmitHandler(\n { workAddressUuid, snapshot },\n async ({ workAddressUuid: uuid, snapshot: snap }) => {\n const target = employeeWorkAddresses?.find(w => w.uuid === uuid)\n if (!target) {\n throw new SDKInternalError('Work address not found')\n }\n if (target.active === true) {\n throw new SDKInternalError('Cannot delete the active work address')\n }\n\n await deleteWorkAddressMutation.mutateAsync({\n request: { workAddressUuid: uuid },\n })\n succeeded = true\n if (snap) {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_DELETED, snap)\n }\n },\n )\n return succeeded\n }\n\n const actions: UseWorkAddressManagementActions = {\n setEditTargetUuid,\n confirmDeleteWorkAddress,\n }\n\n const dataPayloadPendingForms: UseWorkAddressManagementDataPendingForms = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n\n if (employeeQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n if (employeeQuery.isError || isMissingCompany) {\n return {\n isLoading: false,\n data: dataPayloadPendingForms,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: true,\n },\n errorHandling,\n actions,\n }\n }\n\n if (workAddressesQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const isFormsLoading = editWorkAddressForm.isLoading || changeWorkAddressForm.isLoading\n if (isFormsLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const { editWorkAddressForm: editReady, changeWorkAddressForm: changeReady } =\n workAddressFormsReady(editWorkAddressForm, changeWorkAddressForm)\n\n const dataReady: UseWorkAddressManagementDataReady = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm: editReady,\n changeWorkAddressForm: changeReady,\n }\n\n return {\n isLoading: false,\n data: dataReady,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: false,\n },\n errorHandling,\n actions,\n }\n}\n"],"names":["isUseWorkAddressManagementSuccess","value","workAddressFormsReady","editWorkAddressForm","changeWorkAddressForm","SDKInternalError","useWorkAddressManagement","employeeId","onEvent","baseSubmitHandler","rootSubmitError","setRootSubmitError","useBaseSubmit","deleteWorkAddressMutation","useEmployeeAddressesDeleteWorkAddressMutation","editTargetUuid","setEditTargetUuid","useState","employeeQuery","useEmployeesGet","companyId","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","employeeWorkAddresses","currentWorkAddress","useMemo","w","workAddressUuidForEdit","editInactiveRow","withEffectiveDateOnEdit","useWorkAddressForm","employeeDisplayName","employee","firstLastName","isMissingCompany","errorHandling","composeErrorHandler","normalizeToSDKError","actions","workAddressUuid","snapshot","succeeded","uuid","snap","target","componentEvents","dataPayloadPendingForms","editReady","changeReady"],"mappings":";;;;;;;;;;AA8EO,SAASA,GACdC,GAC+C;AAC/C,SAAIA,EAAM,YACD,KAEF,CAACA,EAAM,OAAO;AACvB;AAEA,SAASC,EACPC,GACAC,GAC0F;AAC1F,MAAID,EAAoB;AACtB,UAAM,IAAIE,EAAiB,yCAAyC;AAEtE,MAAID,EAAsB;AACxB,UAAM,IAAIC,EAAiB,2CAA2C;AAExE,SAAO;AAAA,IACL,qBAAAF;AAAA,IACA,uBAAAC;AAAA,EAAA;AAEJ;AAEO,SAASE,GAAyB;AAAA,EACvC,YAAAC;AAAA,EACA,SAAAC;AACF,GAAmE;AACjE,QAAM;AAAA,IACJ,mBAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,iCAAiC,GAC7CC,IAA4BC,EAAA,GAC5B,CAACC,GAAgBC,CAAiB,IAAIC,EAA6B,MAAS,GAE5EC,IAAgBC,EAAgB,EAAE,YAAAZ,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY,GACzEa,IAAYF,EAAc,MAAM,UAAU,aAE1CG,IAAqBC;AAAA,IACzB,EAAE,YAAAf,EAAA;AAAA,IACF,EAAE,SAAS,CAAC,CAACA,KAAc,CAAC,CAACa,EAAA;AAAA,EAAU,GAGnCG,IAAwBF,EAAmB,MAAM,2BAEjDG,IAAqBC,EAAoC,MACxDF,GAAuB,SAGrBA,EAAsB,KAAK,CAAAG,MAAKA,EAAE,MAAM,KAAKH,EAAsB,CAAC,KAAK,OAFvE,MAGR,CAACA,CAAqB,CAAC,GAEpBI,IAAyBZ,KAAkBS,GAAoB,MAE/DI,IAAkBH,EAAQ,MAAM;AACpC,QAAI,GAACV,KAAkB,CAACQ;AAGxB,aAAOA,EAAsB,KAAK,CAAAG,MAAKA,EAAE,SAASX,CAAc;AAAA,EAClE,GAAG,CAACA,GAAgBQ,CAAqB,CAAC,GAEpCM,IAA0BD,IAAkBA,EAAgB,WAAW,KAAO,IAE9EzB,IAAsB2B,EAAmB;AAAA,IAC7C,WAAAV;AAAA,IACA,YAAAb;AAAA,IACA,iBAAiBoB;AAAA,IACjB,wBAAwBE;AAAA,EAAA,CACzB,GAEKzB,IAAwB0B,EAAmB;AAAA,IAC/C,WAAAV;AAAA,IACA,YAAAb;AAAA,IACA,wBAAwB;AAAA,EAAA,CACzB,GAEKwB,IAAsBN,EAAQ,MAAM;AACxC,UAAMO,IAAWd,EAAc,MAAM;AACrC,WAAKc,IAGEC,EAAc;AAAA,MACnB,YAAYD,EAAS;AAAA,MACrB,WAAWA,EAAS;AAAA,IAAA,CACrB,EAAE,KAAA,IALM;AAAA,EAMX,GAAG,CAACd,EAAc,MAAM,QAAQ,CAAC,GAE3BgB,IAAmB,CAAC,CAAChB,EAAc,MAAM,YAAY,CAACE,GAEtDe,IAAmCC;AAAA,IACvC;AAAA,MACElB;AAAA,MACAG;AAAA,MACAlB;AAAA,MACAC;AAAA,MACA,GAAI8B,IACA;AAAA,QACE;AAAA,UACE,eAAe;AAAA,YACb,QAAQ;AAAA,cACNG;AAAA,gBACE,IAAIhC;AAAA,kBACF;AAAA,gBAAA;AAAA,cACF;AAAA,YACF;AAAA,YAEF,cAAc,MAAM;AAAA,YAAC;AAAA,YACrB,kBAAkB,MAAM;AAAA,YAAC;AAAA,UAAA;AAAA,QAC3B;AAAA,MACF,IAEF,CAAA;AAAA,IAAC;AAAA,IAEP,EAAE,aAAaK,GAAiB,gBAAgBC,EAAA;AAAA,EAAmB,GA8B/D2B,IAA2C;AAAA,IAC/C,mBAAAtB;AAAA,IACA,0BA7B+B,OAAOuB,MAA8C;AACpF,YAAMC,IAAWjB,GAAuB,KAAK,OAAKG,EAAE,SAASa,CAAe,KAAK;AAEjF,UAAIE,IAAY;AAChB,mBAAMhC;AAAA,QACJ,EAAE,iBAAA8B,GAAiB,UAAAC,EAAA;AAAA,QACnB,OAAO,EAAE,iBAAiBE,GAAM,UAAUC,QAAW;AACnD,gBAAMC,IAASrB,GAAuB,KAAK,CAAAG,MAAKA,EAAE,SAASgB,CAAI;AAC/D,cAAI,CAACE;AACH,kBAAM,IAAIvC,EAAiB,wBAAwB;AAErD,cAAIuC,EAAO,WAAW;AACpB,kBAAM,IAAIvC,EAAiB,uCAAuC;AAGpE,gBAAMQ,EAA0B,YAAY;AAAA,YAC1C,SAAS,EAAE,iBAAiB6B,EAAA;AAAA,UAAK,CAClC,GACDD,IAAY,IACRE,KACFnC,EAAQqC,EAAgB,+BAA+BF,CAAI;AAAA,QAE/D;AAAA,MAAA,GAEKF;AAAA,IACT;AAAA,EAIE,GAGIK,IAAoE;AAAA,IACxE,qBAAAf;AAAA,IACA,uBAAAR;AAAA,IACA,gBAAAR;AAAA,IACA,qBAAAZ;AAAA,IACA,uBAAAC;AAAA,EAAA;AAGF,MAAIc,EAAc;AAChB,WAAO,EAAE,WAAW,IAAM,eAAAiB,EAAA;AAG5B,MAAIjB,EAAc,WAAWgB;AAC3B,WAAO;AAAA,MACL,WAAW;AAAA,MACX,MAAMY;AAAA,MACN,QAAQ;AAAA,QACN,iBAAiBjC,EAA0B;AAAA,QAC3C,iBAAiB;AAAA,MAAA;AAAA,MAEnB,eAAAsB;AAAA,MACA,SAAAG;AAAA,IAAA;AAIJ,MAAIjB,EAAmB;AACrB,WAAO,EAAE,WAAW,IAAM,eAAAc,EAAA;AAI5B,MADuBhC,EAAoB,aAAaC,EAAsB;AAE5E,WAAO,EAAE,WAAW,IAAM,eAAA+B,EAAA;AAG5B,QAAM,EAAE,qBAAqBY,GAAW,uBAAuBC,MAC7D9C,EAAsBC,GAAqBC,CAAqB;AAUlE,SAAO;AAAA,IACL,WAAW;AAAA,IACX,MAVmD;AAAA,MACnD,qBAAA2B;AAAA,MACA,uBAAAR;AAAA,MACA,gBAAAR;AAAA,MACA,qBAAqBgC;AAAA,MACrB,uBAAuBC;AAAA,IAAA;AAAA,IAMvB,QAAQ;AAAA,MACN,iBAAiBnC,EAA0B;AAAA,MAC3C,iBAAiB;AAAA,IAAA;AAAA,IAEnB,eAAAsB;AAAA,IACA,SAAAG;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useWorkAddressManagement.js","sources":["../../../../../src/components/Employee/WorkAddress/management/useWorkAddressManagement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeAddressesDeleteWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesDeleteWorkAddress'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { useWorkAddressForm } from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport type {\n UseWorkAddressFormReady,\n UseWorkAddressFormResult,\n} from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseHookReady,\n HookErrorHandling,\n HookLoadingResult,\n} from '@/partner-hook-utils/types'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { normalizeToSDKError, SDKInternalError } from '@/types/sdkError'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\nexport interface UseWorkAddressManagementParams {\n employeeId: string\n onEvent: OnEventType<EventType, unknown>\n}\n\nexport interface UseWorkAddressManagementDataPendingForms extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormResult\n changeWorkAddressForm: UseWorkAddressFormResult\n}\n\nexport interface UseWorkAddressManagementDataReady extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormReady\n changeWorkAddressForm: UseWorkAddressFormReady\n}\n\nexport interface UseWorkAddressManagementStatusEmployeeError extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: true\n}\n\nexport interface UseWorkAddressManagementStatusSuccess extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: false\n}\n\nexport interface UseWorkAddressManagementActions {\n setEditTargetUuid: (workAddressUuid: string | undefined) => void\n confirmDeleteWorkAddress: (workAddressUuid: string) => Promise<boolean>\n}\n\nexport interface UseWorkAddressManagementReadyEmployeeError extends BaseHookReady<\n UseWorkAddressManagementDataPendingForms,\n UseWorkAddressManagementStatusEmployeeError\n> {\n actions: UseWorkAddressManagementActions\n}\n\nexport interface UseWorkAddressManagementReadySuccess extends BaseHookReady<\n UseWorkAddressManagementDataReady,\n UseWorkAddressManagementStatusSuccess\n> {\n actions: UseWorkAddressManagementActions\n}\n\nexport type UseWorkAddressManagementReady =\n | UseWorkAddressManagementReadyEmployeeError\n | UseWorkAddressManagementReadySuccess\n\nexport type UseWorkAddressManagementResult = HookLoadingResult | UseWorkAddressManagementReady\n\nexport function isUseWorkAddressManagementSuccess(\n value: UseWorkAddressManagementResult,\n): value is UseWorkAddressManagementReadySuccess {\n if (value.isLoading) {\n return false\n }\n return !value.status.isEmployeeError\n}\n\nfunction workAddressFormsReady(\n editWorkAddressForm: UseWorkAddressFormResult,\n changeWorkAddressForm: UseWorkAddressFormResult,\n): Pick<UseWorkAddressManagementDataReady, 'editWorkAddressForm' | 'changeWorkAddressForm'> {\n if (editWorkAddressForm.isLoading) {\n throw new SDKInternalError('Edit work address form is still loading')\n }\n if (changeWorkAddressForm.isLoading) {\n throw new SDKInternalError('Change work address form is still loading')\n }\n return {\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n}\n\nexport function useWorkAddressManagement({\n employeeId,\n onEvent,\n}: UseWorkAddressManagementParams): UseWorkAddressManagementResult {\n const {\n baseSubmitHandler,\n error: rootSubmitError,\n setError: setRootSubmitError,\n } = useBaseSubmit('Employee.WorkAddress.Management')\n const deleteWorkAddressMutation = useEmployeeAddressesDeleteWorkAddressMutation()\n const [editTargetUuid, setEditTargetUuid] = useState<string | undefined>(undefined)\n\n const employeeQuery = useEmployeesGet({ employeeId }, { enabled: !!employeeId })\n const companyId = employeeQuery.data?.employee?.companyUuid\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId },\n { enabled: !!employeeId && !!companyId },\n )\n\n const employeeWorkAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n\n const currentWorkAddress = useMemo<EmployeeWorkAddress | null>(() => {\n if (!employeeWorkAddresses?.length) {\n return null\n }\n return employeeWorkAddresses.find(w => w.active) ?? employeeWorkAddresses[0] ?? null\n }, [employeeWorkAddresses])\n\n const workAddressUuidForEdit = editTargetUuid ?? currentWorkAddress?.uuid\n\n const editInactiveRow = useMemo(() => {\n if (!editTargetUuid || !employeeWorkAddresses) {\n return undefined\n }\n return employeeWorkAddresses.find(w => w.uuid === editTargetUuid)\n }, [editTargetUuid, employeeWorkAddresses])\n\n const editingWorkAddressRow = workAddressUuidForEdit\n ? employeeWorkAddresses?.find(w => w.uuid === workAddressUuidForEdit)\n : undefined\n\n const withEffectiveDateOnEdit = editInactiveRow ? editInactiveRow.active !== true : false\n\n const editWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n workAddressUuid: workAddressUuidForEdit,\n initialAddress: editingWorkAddressRow,\n withEffectiveDateField: withEffectiveDateOnEdit,\n })\n\n const changeWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n withEffectiveDateField: true,\n })\n\n const employeeDisplayName = useMemo(() => {\n const employee = employeeQuery.data?.employee\n if (!employee) {\n return ''\n }\n return firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n }).trim()\n }, [employeeQuery.data?.employee])\n\n const isMissingCompany = !!employeeQuery.data?.employee && !companyId\n\n const errorHandling: HookErrorHandling = composeErrorHandler(\n [\n employeeQuery,\n workAddressesQuery,\n editWorkAddressForm,\n changeWorkAddressForm,\n ...(isMissingCompany\n ? [\n {\n errorHandling: {\n errors: [\n normalizeToSDKError(\n new SDKInternalError(\n 'Employee record is missing companyUuid, which is required to load work address locations.',\n ),\n ),\n ],\n retryQueries: () => {},\n clearSubmitError: () => {},\n },\n },\n ]\n : []),\n ],\n { submitError: rootSubmitError, setSubmitError: setRootSubmitError },\n )\n\n const confirmDeleteWorkAddress = async (workAddressUuid: string): Promise<boolean> => {\n const snapshot = employeeWorkAddresses?.find(w => w.uuid === workAddressUuid) ?? null\n\n let succeeded = false\n await baseSubmitHandler(\n { workAddressUuid, snapshot },\n async ({ workAddressUuid: uuid, snapshot: snap }) => {\n const target = employeeWorkAddresses?.find(w => w.uuid === uuid)\n if (!target) {\n throw new SDKInternalError('Work address not found')\n }\n if (target.active === true) {\n throw new SDKInternalError('Cannot delete the active work address')\n }\n\n await deleteWorkAddressMutation.mutateAsync({\n request: { workAddressUuid: uuid },\n })\n succeeded = true\n if (snap) {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_DELETED, snap)\n }\n },\n )\n return succeeded\n }\n\n const actions: UseWorkAddressManagementActions = {\n setEditTargetUuid,\n confirmDeleteWorkAddress,\n }\n\n const dataPayloadPendingForms: UseWorkAddressManagementDataPendingForms = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n\n if (employeeQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n if (employeeQuery.isError || isMissingCompany) {\n return {\n isLoading: false,\n data: dataPayloadPendingForms,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: true,\n },\n errorHandling,\n actions,\n }\n }\n\n if (workAddressesQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const isFormsLoading = editWorkAddressForm.isLoading || changeWorkAddressForm.isLoading\n if (isFormsLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const { editWorkAddressForm: editReady, changeWorkAddressForm: changeReady } =\n workAddressFormsReady(editWorkAddressForm, changeWorkAddressForm)\n\n const dataReady: UseWorkAddressManagementDataReady = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm: editReady,\n changeWorkAddressForm: changeReady,\n }\n\n return {\n isLoading: false,\n data: dataReady,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: false,\n },\n errorHandling,\n actions,\n }\n}\n"],"names":["isUseWorkAddressManagementSuccess","value","workAddressFormsReady","editWorkAddressForm","changeWorkAddressForm","SDKInternalError","useWorkAddressManagement","employeeId","onEvent","baseSubmitHandler","rootSubmitError","setRootSubmitError","useBaseSubmit","deleteWorkAddressMutation","useEmployeeAddressesDeleteWorkAddressMutation","editTargetUuid","setEditTargetUuid","useState","employeeQuery","useEmployeesGet","companyId","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","employeeWorkAddresses","currentWorkAddress","useMemo","w","workAddressUuidForEdit","editInactiveRow","editingWorkAddressRow","withEffectiveDateOnEdit","useWorkAddressForm","employeeDisplayName","employee","firstLastName","isMissingCompany","errorHandling","composeErrorHandler","normalizeToSDKError","actions","workAddressUuid","snapshot","succeeded","uuid","snap","target","componentEvents","dataPayloadPendingForms","editReady","changeReady"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { ManagementEmployeeList as EmployeeList } from '../EmployeeList/management/ManagementEmployeeList';
2
+ export { EmployeeListFlow } from '../EmployeeListFlow';
3
+ export type { EmployeeListFlowProps } from '../EmployeeListFlow';
2
4
  /** @deprecated Use EmployeeOnboarding.EmployeeDocuments; not applicable for post-onboarding flows. Will be removed in a future version. */
3
5
  export { EmployeeDocuments } from '../Documents/onboarding/EmployeeDocuments';
4
6
  export { DocumentManager } from '../Documents/management/DocumentManager';
@@ -1,27 +1,29 @@
1
1
  import { ManagementEmployeeList as r } from "../EmployeeList/management/ManagementEmployeeList.js";
2
2
  import { DocumentManager as t } from "../Documents/management/DocumentManager.js";
3
- import { WorkAddress as p } from "../WorkAddress/management/WorkAddress.js";
3
+ import { WorkAddress as a } from "../WorkAddress/management/WorkAddress.js";
4
4
  import { FederalTaxes as f } from "../FederalTaxes/management/FederalTaxes.js";
5
- import { StateTaxes as s } from "../StateTaxes/management/StateTaxes.js";
6
- import { Profile as l } from "../Profile/management/Profile.js";
5
+ import { StateTaxes as l } from "../StateTaxes/management/StateTaxes.js";
6
+ import { Profile as i } from "../Profile/management/Profile.js";
7
7
  import { TerminateEmployee as d } from "../Terminations/TerminateEmployee/TerminateEmployee.js";
8
- import { TerminationSummary as E } from "../Terminations/TerminationSummary/TerminationSummary.js";
9
- import { TerminationFlow as D } from "../Terminations/TerminationFlow/TerminationFlow.js";
10
- import { DashboardFlow as M } from "../Dashboard/DashboardFlow.js";
11
- import { EmployeeDocuments as g } from "../Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js";
12
- import { PaymentMethod as w } from "../PaymentMethod/management/PaymentMethod.js";
8
+ import { TerminationSummary as T } from "../Terminations/TerminationSummary/TerminationSummary.js";
9
+ import { TerminationFlow as u } from "../Terminations/TerminationFlow/TerminationFlow.js";
10
+ import { DashboardFlow as D } from "../Dashboard/DashboardFlow.js";
11
+ import { EmployeeDocuments as M } from "../Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js";
12
+ import { EmployeeListFlow as g } from "../EmployeeListFlow/EmployeeListFlow.js";
13
+ import { PaymentMethod as P } from "../PaymentMethod/management/PaymentMethod.js";
13
14
  export {
14
- M as DashboardFlow,
15
+ D as DashboardFlow,
15
16
  t as DocumentManager,
16
- g as EmployeeDocuments,
17
+ M as EmployeeDocuments,
17
18
  r as EmployeeList,
19
+ g as EmployeeListFlow,
18
20
  f as FederalTaxes,
19
- w as PaymentMethod,
20
- l as Profile,
21
- s as StateTaxes,
21
+ P as PaymentMethod,
22
+ i as Profile,
23
+ l as StateTaxes,
22
24
  d as TerminateEmployee,
23
- D as TerminationFlow,
24
- E as TerminationSummary,
25
- p as WorkAddress
25
+ u as TerminationFlow,
26
+ T as TerminationSummary,
27
+ a as WorkAddress
26
28
  };
27
29
  //# sourceMappingURL=employeeManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"employeeManagement.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"employeeManagement.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -15,6 +15,8 @@ export { SelfOnboardingFlow } from './SelfOnboardingFlow/SelfOnboardingFlow';
15
15
  export { EmployeeDocuments } from './Documents/onboarding/EmployeeDocuments';
16
16
  export { DashboardFlow } from './Dashboard';
17
17
  export type { DashboardFlowProps } from './Dashboard';
18
+ export { EmployeeListFlow } from './EmployeeListFlow';
19
+ export type { EmployeeListFlowProps } from './EmployeeListFlow';
18
20
  export { HomeAddress } from './HomeAddress/management/HomeAddress';
19
21
  export type { HomeAddressProps } from './HomeAddress/management/HomeAddress';
20
22
  export { EmploymentEligibility } from './Documents/onboarding/DocumentSigner/EmploymentEligibility';
@@ -2,44 +2,46 @@ import { EmployeeList as e } from "./EmployeeList/onboarding/EmployeeList.js";
2
2
  import { Profile as t } from "./Profile/onboarding/Profile.js";
3
3
  import { OnboardingFlow as x } from "./OnboardingFlow/OnboardingFlow.js";
4
4
  import { SelfOnboardingFlow as n } from "./SelfOnboardingFlow/SelfOnboardingFlow.js";
5
- import { HomeAddress as i } from "./HomeAddress/management/HomeAddress.js";
6
- import { TerminateEmployee as d } from "./Terminations/TerminateEmployee/TerminateEmployee.js";
5
+ import { HomeAddress as a } from "./HomeAddress/management/HomeAddress.js";
6
+ import { TerminateEmployee as s } from "./Terminations/TerminateEmployee/TerminateEmployee.js";
7
7
  import { TerminationSummary as y } from "./Terminations/TerminationSummary/TerminationSummary.js";
8
- import { TerminationFlow as T } from "./Terminations/TerminationFlow/TerminationFlow.js";
9
- import { WorkAddress as u } from "./WorkAddress/management/WorkAddress.js";
10
- import { Compensation as F } from "./Compensation/onboarding/Compensation.js";
11
- import { DashboardFlow as w } from "./Dashboard/DashboardFlow.js";
8
+ import { TerminationFlow as E } from "./Terminations/TerminationFlow/TerminationFlow.js";
9
+ import { WorkAddress as T } from "./WorkAddress/management/WorkAddress.js";
10
+ import { Compensation as u } from "./Compensation/onboarding/Compensation.js";
11
+ import { DashboardFlow as S } from "./Dashboard/DashboardFlow.js";
12
12
  import { Deductions as c } from "./Deductions/Deductions.js";
13
- import { DocumentSigner as h } from "./Documents/onboarding/DocumentSigner/DocumentSigner.js";
14
- import { EmployeeDocuments as L } from "./Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js";
15
- import { EmploymentEligibility as k } from "./Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js";
16
- import { FederalTaxes as H } from "./FederalTaxes/management/FederalTaxes.js";
17
- import { Landing as W } from "./Landing/Landing.js";
18
- import { OnboardingSummary as q } from "./OnboardingSummary/OnboardingSummary.js";
19
- import { PaymentMethod as z } from "./PaymentMethod/onboarding/PaymentMethod.js";
20
- import { StateTaxes as G } from "./StateTaxes/management/StateTaxes.js";
21
- import { Taxes as J } from "./Taxes/Taxes.js";
13
+ import { DocumentSigner as O } from "./Documents/onboarding/DocumentSigner/DocumentSigner.js";
14
+ import { EmployeeDocuments as A } from "./Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js";
15
+ import { EmployeeListFlow as k } from "./EmployeeListFlow/EmployeeListFlow.js";
16
+ import { EmploymentEligibility as H } from "./Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js";
17
+ import { FederalTaxes as W } from "./FederalTaxes/management/FederalTaxes.js";
18
+ import { Landing as q } from "./Landing/Landing.js";
19
+ import { OnboardingSummary as z } from "./OnboardingSummary/OnboardingSummary.js";
20
+ import { PaymentMethod as G } from "./PaymentMethod/onboarding/PaymentMethod.js";
21
+ import { StateTaxes as J } from "./StateTaxes/management/StateTaxes.js";
22
+ import { Taxes as N } from "./Taxes/Taxes.js";
22
23
  export {
23
- F as Compensation,
24
- w as DashboardFlow,
24
+ u as Compensation,
25
+ S as DashboardFlow,
25
26
  c as Deductions,
26
- h as DocumentSigner,
27
- L as EmployeeDocuments,
27
+ O as DocumentSigner,
28
+ A as EmployeeDocuments,
28
29
  e as EmployeeList,
29
- k as EmploymentEligibility,
30
- H as FederalTaxes,
31
- i as HomeAddress,
32
- W as Landing,
30
+ k as EmployeeListFlow,
31
+ H as EmploymentEligibility,
32
+ W as FederalTaxes,
33
+ a as HomeAddress,
34
+ q as Landing,
33
35
  x as OnboardingFlow,
34
- q as OnboardingSummary,
35
- z as PaymentMethod,
36
+ z as OnboardingSummary,
37
+ G as PaymentMethod,
36
38
  t as Profile,
37
39
  n as SelfOnboardingFlow,
38
- G as StateTaxes,
39
- J as Taxes,
40
- d as TerminateEmployee,
41
- T as TerminationFlow,
40
+ J as StateTaxes,
41
+ N as Taxes,
42
+ s as TerminateEmployee,
43
+ E as TerminationFlow,
42
44
  y as TerminationSummary,
43
- u as WorkAddress
45
+ T as WorkAddress
44
46
  };
45
47
  //# 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":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,21 +1,21 @@
1
- import { jsx as r, jsxs as s } from "react/jsx-runtime";
2
- import { useTranslation as i } from "react-i18next";
3
- import { FlowBreadcrumbs as d } from "../Common/FlowBreadcrumbs/FlowBreadcrumbs.js";
4
- import { Flex as m, FlexItem as c } from "../Common/Flex/Flex.js";
1
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
2
+ import { useTranslation as m } from "react-i18next";
3
+ import { FlowBreadcrumbs as f } from "../Common/FlowBreadcrumbs/FlowBreadcrumbs.js";
4
+ import { Flex as l, FlexItem as a } from "../Common/Flex/Flex.js";
5
5
  import "classnames";
6
- import { componentEvents as p } from "../../shared/constants.js";
7
- import { useFlow as a } from "./useFlow.js";
6
+ import { componentEvents as b } from "../../shared/constants.js";
7
+ import { useFlow as s } from "./useFlow.js";
8
8
  import { useComponentContext as u } from "../../contexts/ComponentAdapter/useComponentContext.js";
9
- import f from "../../assets/icons/caret-left.svg.js";
10
- function H() {
11
- const { header: e, component: t } = a();
9
+ import h from "../../assets/icons/caret-left.svg.js";
10
+ function L() {
11
+ const { header: e, component: t } = s();
12
12
  if (!e || !t) return null;
13
13
  switch (e.type) {
14
14
  case "minimal":
15
- return /* @__PURE__ */ r(b, { cta: e.cta });
15
+ return /* @__PURE__ */ r(w, { back: e.back, cta: e.cta });
16
16
  case "progress":
17
17
  return /* @__PURE__ */ r(
18
- h,
18
+ x,
19
19
  {
20
20
  currentStep: e.currentStep,
21
21
  totalSteps: e.totalSteps,
@@ -24,7 +24,7 @@ function H() {
24
24
  );
25
25
  case "breadcrumbs":
26
26
  return e.currentBreadcrumbId ? /* @__PURE__ */ r(
27
- w,
27
+ v,
28
28
  {
29
29
  currentBreadcrumbId: e.currentBreadcrumbId,
30
30
  breadcrumbs: e.breadcrumbs,
@@ -33,58 +33,61 @@ function H() {
33
33
  ) : null;
34
34
  }
35
35
  }
36
- function b({ cta: e }) {
37
- const { onEvent: t } = a(), n = u(), { t: o } = i();
38
- return /* @__PURE__ */ s(m, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", children: [
39
- /* @__PURE__ */ r(c, { children: /* @__PURE__ */ r(
40
- n.Button,
36
+ function w({
37
+ back: e,
38
+ cta: t
39
+ }) {
40
+ const { onEvent: n } = s(), o = u(), { t: c } = m(e?.namespace), d = c(e ? e.labelKey : "back"), p = e?.event ?? b.CANCEL;
41
+ return /* @__PURE__ */ i(l, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", children: [
42
+ /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(
43
+ o.Button,
41
44
  {
42
45
  variant: "secondary",
43
- icon: /* @__PURE__ */ r(f, { "aria-hidden": "true" }),
46
+ icon: /* @__PURE__ */ r(h, { "aria-hidden": "true" }),
44
47
  onClick: () => {
45
- t(p.CANCEL, void 0);
48
+ n(p, void 0);
46
49
  },
47
- children: o("back")
50
+ children: d
48
51
  }
49
52
  ) }),
50
- e && /* @__PURE__ */ r(c, { children: /* @__PURE__ */ r(e, {}) })
53
+ t && /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(t, {}) })
51
54
  ] });
52
55
  }
53
- function h({
56
+ function x({
54
57
  currentStep: e,
55
58
  totalSteps: t,
56
59
  cta: n
57
60
  }) {
58
- const o = u(), { t: l } = i();
61
+ const o = u(), { t: c } = m();
59
62
  return /* @__PURE__ */ r(
60
63
  o.ProgressBar,
61
64
  {
62
65
  totalSteps: t,
63
66
  currentStep: e,
64
- label: l("progressBarLabel", { totalSteps: t, currentStep: e }),
67
+ label: c("progressBarLabel", { totalSteps: t, currentStep: e }),
65
68
  cta: n
66
69
  }
67
70
  );
68
71
  }
69
- function w({
72
+ function v({
70
73
  currentBreadcrumbId: e,
71
74
  breadcrumbs: t = {},
72
75
  cta: n
73
76
  }) {
74
- const { onEvent: o } = a();
75
- return /* @__PURE__ */ s(m, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", children: [
76
- /* @__PURE__ */ r(c, { flexGrow: 1, children: /* @__PURE__ */ r(
77
- d,
77
+ const { onEvent: o } = s();
78
+ return /* @__PURE__ */ i(l, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", children: [
79
+ /* @__PURE__ */ r(a, { flexGrow: 1, children: /* @__PURE__ */ r(
80
+ f,
78
81
  {
79
82
  breadcrumbs: e ? t[e] ?? [] : [],
80
83
  currentBreadcrumbId: e,
81
84
  onEvent: o
82
85
  }
83
86
  ) }),
84
- /* @__PURE__ */ r(c, { children: n && /* @__PURE__ */ r(n, {}) })
87
+ /* @__PURE__ */ r(a, { children: n && /* @__PURE__ */ r(n, {}) })
85
88
  ] });
86
89
  }
87
90
  export {
88
- H as FlowHeader
91
+ L as FlowHeader
89
92
  };
90
93
  //# sourceMappingURL=FlowHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlowHeader.js","sources":["../../../src/components/Flow/FlowHeader.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { FlowBreadcrumbs } from '../Common/FlowBreadcrumbs/FlowBreadcrumbs'\nimport type { BreadcrumbTrail } from '../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { Flex } from '../Common/Flex'\nimport { FlexItem } from '../Common'\nimport { useFlow } from './useFlow'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport CaretLeftIcon from '@/assets/icons/caret-left.svg?react'\n\n/**\n * Renders the chrome above the active flow component (back affordance,\n * progress bar, breadcrumbs, ...). Layout is driven by a single\n * discriminated `header` field on the flow context. Each variant maps to a\n * focused renderer below:\n *\n * header.type === 'minimal' → MinimalHeader\n * header.type === 'progress' → ProgressHeader\n * header.type === 'breadcrumbs' → BreadcrumbsHeader\n *\n * To add a new piece of chrome:\n * 1. Add a new variant to `FlowHeaderConfig` in `useFlow.ts`.\n * 2. Add a new renderer function below.\n * 3. Branch on it in `FlowHeader`.\n */\nexport function FlowHeader() {\n const { header, component } = useFlow()\n\n if (!header || !component) return null\n\n switch (header.type) {\n case 'minimal':\n return <MinimalHeader cta={header.cta} />\n case 'progress':\n return (\n <ProgressHeader\n currentStep={header.currentStep}\n totalSteps={header.totalSteps}\n cta={header.cta}\n />\n )\n case 'breadcrumbs':\n // The breadcrumb trail is intentionally persisted across \"passive\"\n // states (e.g. landing screens) so that subsequent transitions can\n // pick up where they left off without rebuilding it. We render the\n // bar only when there's an active breadcrumb to show; otherwise\n // we treat the flow as \"no chrome\" for this state.\n if (!header.currentBreadcrumbId) return null\n return (\n <BreadcrumbsHeader\n currentBreadcrumbId={header.currentBreadcrumbId}\n breadcrumbs={header.breadcrumbs}\n cta={header.cta}\n />\n )\n }\n}\n\nfunction MinimalHeader({ cta: Cta }: { cta?: React.ComponentType }) {\n const { onEvent } = useFlow()\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem>\n <Components.Button\n variant=\"secondary\"\n icon={<CaretLeftIcon aria-hidden=\"true\" />}\n onClick={() => {\n onEvent(componentEvents.CANCEL, undefined)\n }}\n >\n {t('back')}\n </Components.Button>\n </FlexItem>\n {Cta && (\n <FlexItem>\n <Cta />\n </FlexItem>\n )}\n </Flex>\n )\n}\n\nfunction ProgressHeader({\n currentStep,\n totalSteps,\n cta: Cta,\n}: {\n currentStep: number\n totalSteps: number\n cta?: React.ComponentType\n}) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.ProgressBar\n totalSteps={totalSteps}\n currentStep={currentStep}\n label={t('progressBarLabel', { totalSteps, currentStep })}\n cta={Cta}\n />\n )\n}\n\nfunction BreadcrumbsHeader({\n currentBreadcrumbId,\n breadcrumbs = {},\n cta: Cta,\n}: {\n currentBreadcrumbId?: string\n breadcrumbs?: BreadcrumbTrail\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem flexGrow={1}>\n <FlowBreadcrumbs\n breadcrumbs={currentBreadcrumbId ? (breadcrumbs[currentBreadcrumbId] ?? []) : []}\n currentBreadcrumbId={currentBreadcrumbId}\n onEvent={onEvent}\n />\n </FlexItem>\n <FlexItem>{Cta && <Cta />}</FlexItem>\n </Flex>\n )\n}\n"],"names":["FlowHeader","header","component","useFlow","jsx","MinimalHeader","ProgressHeader","BreadcrumbsHeader","Cta","onEvent","Components","useComponentContext","t","useTranslation","Flex","FlexItem","CaretLeftIcon","componentEvents","currentStep","totalSteps","currentBreadcrumbId","breadcrumbs","FlowBreadcrumbs"],"mappings":";;;;;;;;;AAyBO,SAASA,IAAa;AAC3B,QAAM,EAAE,QAAAC,GAAQ,WAAAC,EAAA,IAAcC,EAAA;AAE9B,MAAI,CAACF,KAAU,CAACC,EAAW,QAAO;AAElC,UAAQD,EAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO,gBAAAG,EAACC,GAAA,EAAc,KAAKJ,EAAO,IAAA,CAAK;AAAA,IACzC,KAAK;AACH,aACE,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,aAAaL,EAAO;AAAA,UACpB,YAAYA,EAAO;AAAA,UACnB,KAAKA,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AAMH,aAAKA,EAAO,sBAEV,gBAAAG;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,qBAAqBN,EAAO;AAAA,UAC5B,aAAaA,EAAO;AAAA,UACpB,KAAKA,EAAO;AAAA,QAAA;AAAA,MAAA,IALwB;AAAA,EAMtC;AAGR;AAEA,SAASI,EAAc,EAAE,KAAKG,KAAsC;AAClE,QAAM,EAAE,SAAAC,EAAA,IAAYN,EAAA,GACdO,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,2BACGC,GAAA,EAAK,eAAc,OAAM,gBAAe,iBAAgB,YAAW,UAClE,UAAA;AAAA,IAAA,gBAAAV,EAACW,GAAA,EACC,UAAA,gBAAAX;AAAA,MAACM,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,MAAM,gBAAAN,EAACY,GAAA,EAAc,eAAY,OAAA,CAAO;AAAA,QACxC,SAAS,MAAM;AACb,UAAAP,EAAQQ,EAAgB,QAAQ,MAAS;AAAA,QAC3C;AAAA,QAEC,YAAE,MAAM;AAAA,MAAA;AAAA,IAAA,GAEb;AAAA,IACCT,KACC,gBAAAJ,EAACW,GAAA,EACC,UAAA,gBAAAX,EAACI,KAAI,EAAA,CACP;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASF,EAAe;AAAA,EACtB,aAAAY;AAAA,EACA,YAAAC;AAAA,EACA,KAAKX;AACP,GAIG;AACD,QAAME,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACE,gBAAAT;AAAA,IAACM,EAAW;AAAA,IAAX;AAAA,MACC,YAAAS;AAAA,MACA,aAAAD;AAAA,MACA,OAAON,EAAE,oBAAoB,EAAE,YAAAO,GAAY,aAAAD,GAAa;AAAA,MACxD,KAAKV;AAAA,IAAA;AAAA,EAAA;AAGX;AAEA,SAASD,EAAkB;AAAA,EACzB,qBAAAa;AAAA,EACA,aAAAC,IAAc,CAAA;AAAA,EACd,KAAKb;AACP,GAIG;AACD,QAAM,EAAE,SAAAC,EAAA,IAAYN,EAAA;AAEpB,2BACGW,GAAA,EAAK,eAAc,OAAM,gBAAe,iBAAgB,YAAW,UAClE,UAAA;AAAA,IAAA,gBAAAV,EAACW,GAAA,EAAS,UAAU,GAClB,UAAA,gBAAAX;AAAA,MAACkB;AAAA,MAAA;AAAA,QACC,aAAaF,IAAuBC,EAAYD,CAAmB,KAAK,CAAA,IAAM,CAAA;AAAA,QAC9E,qBAAAA;AAAA,QACA,SAAAX;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IACA,gBAAAL,EAACW,GAAA,EAAU,UAAAP,KAAO,gBAAAJ,EAACI,KAAI,EAAA,CAAG;AAAA,EAAA,GAC5B;AAEJ;"}
1
+ {"version":3,"file":"FlowHeader.js","sources":["../../../src/components/Flow/FlowHeader.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { FlowBreadcrumbs } from '../Common/FlowBreadcrumbs/FlowBreadcrumbs'\nimport type { BreadcrumbTrail } from '../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { Flex } from '../Common/Flex'\nimport { FlexItem } from '../Common'\nimport { useFlow } from './useFlow'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport CaretLeftIcon from '@/assets/icons/caret-left.svg?react'\n\n/**\n * Renders the chrome above the active flow component (back affordance,\n * progress bar, breadcrumbs, ...). Layout is driven by a single\n * discriminated `header` field on the flow context. Each variant maps to a\n * focused renderer below:\n *\n * header.type === 'minimal' → MinimalHeader\n * header.type === 'progress' → ProgressHeader\n * header.type === 'breadcrumbs' → BreadcrumbsHeader\n *\n * To add a new piece of chrome:\n * 1. Add a new variant to `FlowHeaderConfig` in `useFlow.ts`.\n * 2. Add a new renderer function below.\n * 3. Branch on it in `FlowHeader`.\n */\nexport function FlowHeader() {\n const { header, component } = useFlow()\n\n if (!header || !component) return null\n\n switch (header.type) {\n case 'minimal':\n return <MinimalHeader back={header.back} cta={header.cta} />\n case 'progress':\n return (\n <ProgressHeader\n currentStep={header.currentStep}\n totalSteps={header.totalSteps}\n cta={header.cta}\n />\n )\n case 'breadcrumbs':\n // The breadcrumb trail is intentionally persisted across \"passive\"\n // states (e.g. landing screens) so that subsequent transitions can\n // pick up where they left off without rebuilding it. We render the\n // bar only when there's an active breadcrumb to show; otherwise\n // we treat the flow as \"no chrome\" for this state.\n if (!header.currentBreadcrumbId) return null\n return (\n <BreadcrumbsHeader\n currentBreadcrumbId={header.currentBreadcrumbId}\n breadcrumbs={header.breadcrumbs}\n cta={header.cta}\n />\n )\n }\n}\n\nfunction MinimalHeader({\n back,\n cta: Cta,\n}: {\n back?: {\n labelKey: string\n namespace: keyof CustomTypeOptions['resources']\n event: EventType\n }\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n const Components = useComponentContext()\n const { t } = useTranslation(back?.namespace)\n\n const label = back ? t(back.labelKey as never) : t('back')\n const event = back?.event ?? componentEvents.CANCEL\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem>\n <Components.Button\n variant=\"secondary\"\n icon={<CaretLeftIcon aria-hidden=\"true\" />}\n onClick={() => {\n onEvent(event, undefined)\n }}\n >\n {label}\n </Components.Button>\n </FlexItem>\n {Cta && (\n <FlexItem>\n <Cta />\n </FlexItem>\n )}\n </Flex>\n )\n}\n\nfunction ProgressHeader({\n currentStep,\n totalSteps,\n cta: Cta,\n}: {\n currentStep: number\n totalSteps: number\n cta?: React.ComponentType\n}) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.ProgressBar\n totalSteps={totalSteps}\n currentStep={currentStep}\n label={t('progressBarLabel', { totalSteps, currentStep })}\n cta={Cta}\n />\n )\n}\n\nfunction BreadcrumbsHeader({\n currentBreadcrumbId,\n breadcrumbs = {},\n cta: Cta,\n}: {\n currentBreadcrumbId?: string\n breadcrumbs?: BreadcrumbTrail\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem flexGrow={1}>\n <FlowBreadcrumbs\n breadcrumbs={currentBreadcrumbId ? (breadcrumbs[currentBreadcrumbId] ?? []) : []}\n currentBreadcrumbId={currentBreadcrumbId}\n onEvent={onEvent}\n />\n </FlexItem>\n <FlexItem>{Cta && <Cta />}</FlexItem>\n </Flex>\n )\n}\n"],"names":["FlowHeader","header","component","useFlow","MinimalHeader","jsx","ProgressHeader","BreadcrumbsHeader","back","Cta","onEvent","Components","useComponentContext","t","useTranslation","label","event","componentEvents","Flex","FlexItem","CaretLeftIcon","currentStep","totalSteps","currentBreadcrumbId","breadcrumbs","FlowBreadcrumbs"],"mappings":";;;;;;;;;AA0BO,SAASA,IAAa;AAC3B,QAAM,EAAE,QAAAC,GAAQ,WAAAC,EAAA,IAAcC,EAAA;AAE9B,MAAI,CAACF,KAAU,CAACC,EAAW,QAAO;AAElC,UAAQD,EAAO,MAAA;AAAA,IACb,KAAK;AACH,+BAAQG,GAAA,EAAc,MAAMH,EAAO,MAAM,KAAKA,EAAO,KAAK;AAAA,IAC5D,KAAK;AACH,aACE,gBAAAI;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,aAAaL,EAAO;AAAA,UACpB,YAAYA,EAAO;AAAA,UACnB,KAAKA,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AAMH,aAAKA,EAAO,sBAEV,gBAAAI;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,qBAAqBN,EAAO;AAAA,UAC5B,aAAaA,EAAO;AAAA,UACpB,KAAKA,EAAO;AAAA,QAAA;AAAA,MAAA,IALwB;AAAA,EAMtC;AAGR;AAEA,SAASG,EAAc;AAAA,EACrB,MAAAI;AAAA,EACA,KAAKC;AACP,GAOG;AACD,QAAM,EAAE,SAAAC,EAAA,IAAYP,EAAA,GACdQ,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAeN,GAAM,SAAS,GAEtCO,IAAeF,EAAPL,IAASA,EAAK,WAAuB,MAAN,GACvCQ,IAAQR,GAAM,SAASS,EAAgB;AAE7C,2BACGC,GAAA,EAAK,eAAc,OAAM,gBAAe,iBAAgB,YAAW,UAClE,UAAA;AAAA,IAAA,gBAAAb,EAACc,GAAA,EACC,UAAA,gBAAAd;AAAA,MAACM,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,MAAM,gBAAAN,EAACe,GAAA,EAAc,eAAY,OAAA,CAAO;AAAA,QACxC,SAAS,MAAM;AACb,UAAAV,EAAQM,GAAO,MAAS;AAAA,QAC1B;AAAA,QAEC,UAAAD;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IACCN,KACC,gBAAAJ,EAACc,GAAA,EACC,UAAA,gBAAAd,EAACI,KAAI,EAAA,CACP;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASH,EAAe;AAAA,EACtB,aAAAe;AAAA,EACA,YAAAC;AAAA,EACA,KAAKb;AACP,GAIG;AACD,QAAME,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACE,gBAAAT;AAAA,IAACM,EAAW;AAAA,IAAX;AAAA,MACC,YAAAW;AAAA,MACA,aAAAD;AAAA,MACA,OAAOR,EAAE,oBAAoB,EAAE,YAAAS,GAAY,aAAAD,GAAa;AAAA,MACxD,KAAKZ;AAAA,IAAA;AAAA,EAAA;AAGX;AAEA,SAASF,EAAkB;AAAA,EACzB,qBAAAgB;AAAA,EACA,aAAAC,IAAc,CAAA;AAAA,EACd,KAAKf;AACP,GAIG;AACD,QAAM,EAAE,SAAAC,EAAA,IAAYP,EAAA;AAEpB,2BACGe,GAAA,EAAK,eAAc,OAAM,gBAAe,iBAAgB,YAAW,UAClE,UAAA;AAAA,IAAA,gBAAAb,EAACc,GAAA,EAAS,UAAU,GAClB,UAAA,gBAAAd;AAAA,MAACoB;AAAA,MAAA;AAAA,QACC,aAAaF,IAAuBC,EAAYD,CAAmB,KAAK,CAAA,IAAM,CAAA;AAAA,QAC9E,qBAAAA;AAAA,QACA,SAAAb;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IACA,gBAAAL,EAACc,GAAA,EAAU,UAAAV,KAAO,gBAAAJ,EAACI,KAAI,EAAA,CAAG;AAAA,EAAA,GAC5B;AAEJ;"}
@@ -23,6 +23,18 @@ export interface CtaConfig {
23
23
  */
24
24
  export type FlowHeaderConfig = {
25
25
  type: 'minimal';
26
+ /**
27
+ * Optional override for the default back button (defaults to
28
+ * `t('back')` + `componentEvents.CANCEL`). Provide both `label` and
29
+ * `event` to render a flow-specific affordance — e.g. "Back to
30
+ * employees" routed to a dedicated state-machine transition so nested
31
+ * flows don't intercept it as a generic cancel.
32
+ */
33
+ back?: {
34
+ labelKey: string;
35
+ namespace: keyof CustomTypeOptions['resources'];
36
+ event: EventType;
37
+ };
26
38
  cta?: React.ComponentType;
27
39
  } | {
28
40
  type: 'progress';
@@ -1 +1 @@
1
- {"version":3,"file":"useFlow.js","sources":["../../../src/components/Flow/useFlow.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { CustomTypeOptions } from 'i18next'\nimport type { OnEventType } from '../Base/useBase'\nimport type { CommonComponentInterface } from '../Base'\nimport type { BreadcrumbTrail } from '../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport type { EventType } from '@/shared/constants'\n\nexport interface CtaConfig {\n labelKey: string\n namespace?: keyof CustomTypeOptions['resources']\n}\n\n/**\n * Discriminated union describing the chrome rendered above the active flow\n * component. Each variant declares only the data it needs:\n * - `minimal` → Back button. Optional `cta` for an extra control next to it.\n * - `progress` → Step indicator. Requires `currentStep` / `totalSteps`,\n * plus optional `cta`.\n * - `breadcrumbs` → Breadcrumb trail. Optional `currentBreadcrumbId` /\n * `breadcrumbs` (typically populated via\n * `buildBreadcrumbs` + `updateBreadcrumbs`), plus optional\n * `cta`.\n *\n * `cta` carries the same meaning across every variant: an optional component\n * rendered as part of the header chrome.\n */\nexport type FlowHeaderConfig =\n | {\n type: 'minimal'\n cta?: React.ComponentType\n }\n | {\n type: 'progress'\n currentStep: number\n totalSteps: number\n cta?: React.ComponentType\n }\n | {\n type: 'breadcrumbs'\n currentBreadcrumbId?: string\n breadcrumbs?: BreadcrumbTrail\n cta?: React.ComponentType\n }\n\nexport interface FlowContextInterface {\n component: React.ComponentType<CommonComponentInterface> | null\n onEvent: OnEventType<EventType, unknown>\n defaultValues?: Record<string, unknown>\n ctaConfig?: CtaConfig | null\n /**\n * Optional chrome rendered above the active flow component. When omitted\n * (or set to `null`), no header is shown.\n */\n header?: FlowHeaderConfig | null\n}\n\nexport const FlowContext = createContext<FlowContextInterface | null>(null)\n\n//TODO: This is hiding the fact that the callsite for useFlow\n// destructures a `companyId` that doesn't seem to exist\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport function useFlow<C extends FlowContextInterface>() {\n // When used outside provider, this is expected to return undefined - consumers must fallback to params\n const values = useContext<C>(FlowContext as unknown as React.Context<C>)\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!values) {\n throw new Error('useFlow used outside provider')\n }\n return values\n}\n"],"names":["FlowContext","createContext","useFlow","values","useContext"],"mappings":";AAwDO,MAAMA,IAAcC,EAA2C,IAAI;AAKnE,SAASC,IAA0C;AAExD,QAAMC,IAASC,EAAcJ,CAA0C;AAEvE,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,+BAA+B;AAEjD,SAAOA;AACT;"}
1
+ {"version":3,"file":"useFlow.js","sources":["../../../src/components/Flow/useFlow.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { CustomTypeOptions } from 'i18next'\nimport type { OnEventType } from '../Base/useBase'\nimport type { CommonComponentInterface } from '../Base'\nimport type { BreadcrumbTrail } from '../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport type { EventType } from '@/shared/constants'\n\nexport interface CtaConfig {\n labelKey: string\n namespace?: keyof CustomTypeOptions['resources']\n}\n\n/**\n * Discriminated union describing the chrome rendered above the active flow\n * component. Each variant declares only the data it needs:\n * - `minimal` → Back button. Optional `cta` for an extra control next to it.\n * - `progress` → Step indicator. Requires `currentStep` / `totalSteps`,\n * plus optional `cta`.\n * - `breadcrumbs` → Breadcrumb trail. Optional `currentBreadcrumbId` /\n * `breadcrumbs` (typically populated via\n * `buildBreadcrumbs` + `updateBreadcrumbs`), plus optional\n * `cta`.\n *\n * `cta` carries the same meaning across every variant: an optional component\n * rendered as part of the header chrome.\n */\nexport type FlowHeaderConfig =\n | {\n type: 'minimal'\n /**\n * Optional override for the default back button (defaults to\n * `t('back')` + `componentEvents.CANCEL`). Provide both `label` and\n * `event` to render a flow-specific affordance — e.g. \"Back to\n * employees\" routed to a dedicated state-machine transition so nested\n * flows don't intercept it as a generic cancel.\n */\n back?: {\n labelKey: string\n namespace: keyof CustomTypeOptions['resources']\n event: EventType\n }\n cta?: React.ComponentType\n }\n | {\n type: 'progress'\n currentStep: number\n totalSteps: number\n cta?: React.ComponentType\n }\n | {\n type: 'breadcrumbs'\n currentBreadcrumbId?: string\n breadcrumbs?: BreadcrumbTrail\n cta?: React.ComponentType\n }\n\nexport interface FlowContextInterface {\n component: React.ComponentType<CommonComponentInterface> | null\n onEvent: OnEventType<EventType, unknown>\n defaultValues?: Record<string, unknown>\n ctaConfig?: CtaConfig | null\n /**\n * Optional chrome rendered above the active flow component. When omitted\n * (or set to `null`), no header is shown.\n */\n header?: FlowHeaderConfig | null\n}\n\nexport const FlowContext = createContext<FlowContextInterface | null>(null)\n\n//TODO: This is hiding the fact that the callsite for useFlow\n// destructures a `companyId` that doesn't seem to exist\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport function useFlow<C extends FlowContextInterface>() {\n // When used outside provider, this is expected to return undefined - consumers must fallback to params\n const values = useContext<C>(FlowContext as unknown as React.Context<C>)\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!values) {\n throw new Error('useFlow used outside provider')\n }\n return values\n}\n"],"names":["FlowContext","createContext","useFlow","values","useContext"],"mappings":";AAoEO,MAAMA,IAAcC,EAA2C,IAAI;AAKnE,SAASC,IAA0C;AAExD,QAAMC,IAASC,EAAcJ,CAA0C;AAEvE,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,+BAA+B;AAEjD,SAAOA;AACT;"}