@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 +1 @@
1
- {"version":3,"file":"useJobForm.js","sources":["../../../../../../src/components/Employee/Compensation/shared/useJobForm/useJobForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { useJobsAndCompensationsCreateJobMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsCreateJob'\nimport { useJobsAndCompensationsUpdateMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdate'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport { useFederalTaxDetailsGet } from '@gusto/embedded-api/react-query/federalTaxDetailsGet'\nimport {\n createJobSchema,\n type JobOptionalFieldsToRequire,\n type JobFormData,\n type JobFormOutputs,\n} from './jobSchema'\nimport {\n JobTitleField,\n HireDateField,\n TwoPercentShareholderField,\n StateWcCoveredField,\n StateWcClassCodeField,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { WA_RISK_CLASS_CODES, type WARiskClassCode } from '@/models/WA_RISK_CODES'\n\nexport interface JobSubmitOptions {\n /** Override the `employeeId` configured at hook construction. Useful when the employee is created in the same submit chain. */\n employeeId?: string\n /**\n * Supply `hireDate` at submit time rather than via a rendered field. Use\n * with `withHireDateField: false` for screens that derive hireDate from\n * external context (e.g. the employee's `startDate` during onboarding).\n * Falls back to the loaded job's `hireDate` on update mode when omitted;\n * required (or sourced from a partner default) on create mode.\n */\n hireDate?: string\n}\n\nexport interface UseJobFormProps {\n employeeId?: string\n /** Present → update mode (PUT /v1/jobs/:id with `version`). Omitted → create mode (POST /v1/employees/:id/jobs). */\n jobId?: string\n optionalFieldsToRequire?: JobOptionalFieldsToRequire\n defaultValues?: Partial<JobFormData>\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n /**\n * When `false`, hides `Fields.HireDate` (becomes `undefined`) and removes\n * `hireDate` from schema validation. Partners supply the value via\n * `JobSubmitOptions.hireDate` at submit time, or rely on the loaded job's\n * existing value on update. Use this when the date is driven by external\n * context rather than user input (e.g. the employee's `startDate`).\n * Defaults to `true`.\n */\n withHireDateField?: boolean\n /**\n * When `false`, hides `Fields.Title` (becomes `undefined`), removes\n * `title` from schema validation, and skips sending `title` on PUT/POST.\n * Use this when another form owns the title field — e.g. steady-state\n * compensation edits render title via `CompFields.Title` so a title\n * change is effective-dated alongside the rest of the compensation\n * change, rather than overwriting the job's current title immediately.\n * Defaults to `true`.\n */\n withTitleField?: boolean\n}\n\nexport interface JobFormFields {\n Title: typeof JobTitleField | undefined\n HireDate: typeof HireDateField | undefined\n TwoPercentShareholder: typeof TwoPercentShareholderField | undefined\n StateWcCovered: typeof StateWcCoveredField | undefined\n StateWcClassCode: typeof StateWcClassCodeField | undefined\n}\n\nexport interface UseJobFormReady extends BaseFormHookReady<\n FieldsMetadata,\n JobFormData,\n JobFormFields\n> {\n data: {\n /** The job row loaded for update; `null` in create mode. */\n currentJob: Job | null\n /** All jobs for the employee, when employeeId is set. Useful for screen-level cross-checks across jobs. */\n jobs: Job[] | undefined\n employee: Employee | null\n currentWorkAddress: EmployeeWorkAddress | null\n /** True when the company is taxable as an S-Corp; partners use this to decide whether to render `TwoPercentShareholder`. */\n showTwoPercentShareholder: boolean\n /**\n * True when the active work-address state is WA; partners use this to decide whether to render\n * `StateWcCovered`. `Fields.StateWcClassCode` is additionally gated on `stateWcCovered === true`,\n * so partners typically only need to check `Fields.StateWcCovered` / `Fields.StateWcClassCode`\n * truthiness rather than this flag directly.\n */\n showStateWc: boolean\n }\n status: { isPending: boolean; mode: 'create' | 'update' }\n actions: {\n onSubmit: (options?: JobSubmitOptions) => Promise<HookSubmitResult<Job> | undefined>\n }\n}\n\nfunction findJob(jobs: Job[] | undefined, jobId: string | undefined): Job | null {\n if (!jobs || !jobId) return null\n return jobs.find(j => j.uuid === jobId) ?? null\n}\n\nexport function useJobForm({\n employeeId,\n jobId,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n withHireDateField = true,\n withTitleField = true,\n}: UseJobFormProps): HookLoadingResult | UseJobFormReady {\n const jobsQuery = useJobsAndCompensationsGetJobs(\n { employeeId: employeeId ?? '' },\n { enabled: !!employeeId },\n )\n const addressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: employeeId ?? '' },\n { enabled: !!employeeId },\n )\n const employeeQuery = useEmployeesGet({ employeeId: employeeId ?? '' }, { enabled: !!employeeId })\n\n const employeeJobs = jobsQuery.data?.jobs\n const workAddresses = addressesQuery.data?.employeeWorkAddressesList\n const currentWorkAddress = workAddresses?.find(address => address.active) ?? null\n const employee = employeeQuery.data?.employee ?? null\n const companyUuid = employee?.companyUuid\n\n const taxQuery = useFederalTaxDetailsGet(\n { companyId: companyUuid ?? '' },\n { enabled: !!companyUuid },\n )\n const federalTaxDetails = taxQuery.data?.federalTaxDetails\n const showTwoPercentShareholder = federalTaxDetails?.taxableAsScorp === true\n const showStateWc = currentWorkAddress?.state === 'WA'\n\n const currentJob = useMemo(() => findJob(employeeJobs, jobId), [employeeJobs, jobId])\n const isCreateMode = !jobId\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createJobSchema({ mode, optionalFieldsToRequire, withHireDateField, withTitleField }),\n [mode, optionalFieldsToRequire, withHireDateField, withTitleField],\n )\n\n const resolvedDefaults: JobFormData = useMemo(\n () => ({\n title: currentJob?.title ?? partnerDefaults?.title ?? '',\n hireDate: currentJob?.hireDate ?? partnerDefaults?.hireDate ?? null,\n twoPercentShareholder:\n currentJob?.twoPercentShareholder ?? partnerDefaults?.twoPercentShareholder ?? false,\n stateWcCovered: currentJob?.stateWcCovered ?? partnerDefaults?.stateWcCovered ?? false,\n stateWcClassCode: currentJob?.stateWcClassCode ?? partnerDefaults?.stateWcClassCode ?? '',\n }),\n [currentJob, partnerDefaults],\n )\n\n const formMethods = useForm<JobFormData, unknown, JobFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedStateWcCovered = useWatch({ control: formMethods.control, name: 'stateWcCovered' })\n\n const createJobMutation = useJobsAndCompensationsCreateJobMutation()\n const updateJobMutation = useJobsAndCompensationsUpdateMutation()\n const isPending = createJobMutation.isPending || updateJobMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('JobForm')\n\n const queriesForErrors = employeeId ? [jobsQuery, addressesQuery, employeeQuery, taxQuery] : []\n const errorHandling = composeErrorHandler(queriesForErrors, { submitError, setSubmitError })\n\n const stateWcClassCodeOptions = WA_RISK_CLASS_CODES.map(({ code, description }) => ({\n value: code,\n label: `${code}: ${description}`,\n }))\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = {\n title: baseMetadata.title,\n hireDate: baseMetadata.hireDate,\n twoPercentShareholder: {\n ...baseMetadata.twoPercentShareholder,\n isDisabled: !showTwoPercentShareholder,\n },\n stateWcCovered: withOptions<boolean>(\n { ...baseMetadata.stateWcCovered, isDisabled: !showStateWc },\n [\n { label: 'Yes', value: 'true' },\n { label: 'No', value: 'false' },\n ],\n [true, false],\n ),\n stateWcClassCode: withOptions<WARiskClassCode>(\n { ...baseMetadata.stateWcClassCode, isDisabled: !showStateWc },\n stateWcClassCodeOptions,\n WA_RISK_CLASS_CODES,\n ),\n }\n\n const onSubmit = async (\n options?: JobSubmitOptions,\n ): Promise<HookSubmitResult<Job> | undefined> => {\n let submitResult: HookSubmitResult<Job> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: JobFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n if (!resolvedEmployeeId) {\n throw new SDKInternalError('employeeId is required to submit a job')\n }\n\n const stateWcClassCode = payload.stateWcCovered ? payload.stateWcClassCode : null\n\n // Mirror the work/home address pattern: when the field is rendered\n // the payload value wins; when it isn't, fall back to a submit-time\n // override (`options.hireDate`), then to the loaded job's existing\n // value on update mode. Create mode requires a resolved value —\n // hireDate is mandatory on POST /v1/employees/:id/jobs.\n const resolvedHireDate =\n withHireDateField && payload.hireDate\n ? payload.hireDate\n : (options?.hireDate ?? currentJob?.hireDate ?? null)\n\n // When the title field is suppressed (steady-state edits drive\n // title through useCompensationForm), omit it from the body so\n // the server preserves the existing value rather than clobbering\n // it with whatever sat in form state.\n const titleToSend = withTitleField ? payload.title : undefined\n\n let updatedJob: Job\n\n if (isCreateMode) {\n if (!resolvedHireDate) {\n throw new SDKInternalError(\n withHireDateField\n ? 'hireDate is required to create a job'\n : 'hireDate is required to create a job. Pass it via JobSubmitOptions when withHireDateField is false.',\n )\n }\n if (titleToSend === undefined) {\n throw new SDKInternalError(\n 'title is required to create a job. Set withTitleField: true (the default) on useJobForm for create flows.',\n )\n }\n const result = await createJobMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n jobsCreateRequestBody: {\n title: titleToSend,\n hireDate: resolvedHireDate,\n twoPercentShareholder: payload.twoPercentShareholder,\n stateWcCovered: payload.stateWcCovered,\n stateWcClassCode,\n },\n },\n })\n if (!result.job) {\n throw new SDKInternalError('Job creation failed')\n }\n updatedJob = result.job\n } else {\n if (!currentJob) {\n throw new SDKInternalError('Cannot update job: no matching job on file')\n }\n const result = await updateJobMutation.mutateAsync({\n request: {\n jobId: currentJob.uuid,\n jobsUpdateRequestBody: {\n version: currentJob.version as string,\n title: titleToSend,\n hireDate: resolvedHireDate ?? undefined,\n twoPercentShareholder: payload.twoPercentShareholder,\n stateWcCovered: payload.stateWcCovered,\n stateWcClassCode,\n },\n },\n })\n if (!result.job) {\n throw new SDKInternalError('Job update failed')\n }\n updatedJob = result.job\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedJob,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const isDataLoading = employeeId\n ? jobsQuery.isLoading || addressesQuery.isLoading || employeeQuery.isLoading\n : false\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (isDataLoading || (employeeId && (!employeeJobs || !employee))) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n currentJob,\n jobs: employeeJobs,\n employee,\n currentWorkAddress,\n showTwoPercentShareholder,\n showStateWc,\n },\n status: {\n isPending,\n mode: isCreateMode ? 'create' : 'update',\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Title: withTitleField ? JobTitleField : undefined,\n HireDate: withHireDateField ? HireDateField : undefined,\n TwoPercentShareholder: showTwoPercentShareholder ? TwoPercentShareholderField : undefined,\n StateWcCovered: showStateWc ? StateWcCoveredField : undefined,\n StateWcClassCode: showStateWc && watchedStateWcCovered ? StateWcClassCodeField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\nexport type UseJobFormResult = HookLoadingResult | UseJobFormReady\nexport type JobFieldsMetadata = UseJobFormReady['form']['fieldsMetadata']\n"],"names":["findJob","jobs","jobId","j","useJobForm","employeeId","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","withHireDateField","withTitleField","jobsQuery","useJobsAndCompensationsGetJobs","addressesQuery","useEmployeeAddressesGetWorkAddresses","employeeQuery","useEmployeesGet","employeeJobs","currentWorkAddress","address","employee","companyUuid","taxQuery","useFederalTaxDetailsGet","showTwoPercentShareholder","showStateWc","currentJob","useMemo","isCreateMode","mode","schema","metadataConfig","createJobSchema","resolvedDefaults","formMethods","useForm","zodResolver","watchedStateWcCovered","useWatch","createJobMutation","useJobsAndCompensationsCreateJobMutation","updateJobMutation","useJobsAndCompensationsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","stateWcClassCodeOptions","WA_RISK_CLASS_CODES","code","description","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","withOptions","onSubmit","options","submitResult","resolve","data","payload","resolvedEmployeeId","SDKInternalError","stateWcClassCode","resolvedHireDate","titleToSend","updatedJob","result","isDataLoading","hookFormInternals","useHookFormInternals","JobTitleField","HireDateField","TwoPercentShareholderField","StateWcCoveredField","StateWcClassCodeField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useJobForm.js","sources":["../../../../../../src/components/Employee/Compensation/shared/useJobForm/useJobForm.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { useJobsAndCompensationsCreateJobMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsCreateJob'\nimport { useJobsAndCompensationsUpdateMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdate'\nimport { useJobsAndCompensationsUpdateCompensationMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdateCompensation'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport { useFederalTaxDetailsGet } from '@gusto/embedded-api/react-query/federalTaxDetailsGet'\nimport {\n createJobSchema,\n type JobOptionalFieldsToRequire,\n type JobFormData,\n type JobFormOutputs,\n} from './jobSchema'\nimport {\n JobTitleField,\n HireDateField,\n TwoPercentShareholderField,\n StateWcCoveredField,\n StateWcClassCodeField,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { WA_RISK_CLASS_CODES, type WARiskClassCode } from '@/models/WA_RISK_CODES'\n\nexport interface JobSubmitOptions {\n /** Override the `employeeId` configured at hook construction. Useful when the employee is created in the same submit chain. */\n employeeId?: string\n /**\n * Supply `hireDate` at submit time rather than via a rendered field. Use\n * with `withHireDateField: false` for screens that derive hireDate from\n * external context (e.g. the employee's `startDate` during onboarding).\n * Falls back to the loaded job's `hireDate` on update mode when omitted;\n * required (or sourced from a partner default) on create mode.\n */\n hireDate?: string\n}\n\nexport interface UseJobFormProps {\n employeeId?: string\n /** Present → update mode (PUT /v1/jobs/:id with `version`). Omitted → create mode (POST /v1/employees/:id/jobs). */\n jobId?: string\n optionalFieldsToRequire?: JobOptionalFieldsToRequire\n defaultValues?: Partial<JobFormData>\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n /**\n * When `false`, hides `Fields.HireDate` (becomes `undefined`) and removes\n * `hireDate` from schema validation. Partners supply the value via\n * `JobSubmitOptions.hireDate` at submit time, or rely on the loaded job's\n * existing value on update. Use this when the date is driven by external\n * context rather than user input (e.g. the employee's `startDate`).\n * Defaults to `true`.\n */\n withHireDateField?: boolean\n /**\n * When `false`, hides `Fields.Title` (becomes `undefined`), removes\n * `title` from schema validation, and skips sending `title` on PUT/POST.\n * Use this when another form owns the title field — e.g. compensation\n * edit surfaces render the title via `CompFields.Title` because title\n * lives on compensation in the API (`job.title` is just a denormalized\n * snapshot of the primary comp's title). Defaults to `true` so the\n * standalone job-creation flow still gathers a title for the create\n * body.\n */\n withTitleField?: boolean\n}\n\nexport interface JobFormFields {\n Title: typeof JobTitleField | undefined\n HireDate: typeof HireDateField | undefined\n TwoPercentShareholder: typeof TwoPercentShareholderField | undefined\n StateWcCovered: typeof StateWcCoveredField | undefined\n StateWcClassCode: typeof StateWcClassCodeField | undefined\n}\n\nexport interface UseJobFormReady extends BaseFormHookReady<\n FieldsMetadata,\n JobFormData,\n JobFormFields\n> {\n data: {\n /** The job row loaded for update; `null` in create mode. */\n currentJob: Job | null\n /** All jobs for the employee, when employeeId is set. Useful for screen-level cross-checks across jobs. */\n jobs: Job[] | undefined\n employee: Employee | null\n currentWorkAddress: EmployeeWorkAddress | null\n /** True when the company is taxable as an S-Corp; partners use this to decide whether to render `TwoPercentShareholder`. */\n showTwoPercentShareholder: boolean\n /**\n * True when the active work-address state is WA; partners use this to decide whether to render\n * `StateWcCovered`. `Fields.StateWcClassCode` is additionally gated on `stateWcCovered === true`,\n * so partners typically only need to check `Fields.StateWcCovered` / `Fields.StateWcClassCode`\n * truthiness rather than this flag directly.\n */\n showStateWc: boolean\n }\n status: { isPending: boolean; mode: 'create' | 'update' }\n actions: {\n onSubmit: (options?: JobSubmitOptions) => Promise<HookSubmitResult<Job> | undefined>\n }\n}\n\nfunction findJob(jobs: Job[] | undefined, jobId: string | undefined): Job | null {\n if (!jobs || !jobId) return null\n return jobs.find(j => j.uuid === jobId) ?? null\n}\n\nexport function useJobForm({\n employeeId,\n jobId,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n withHireDateField = true,\n withTitleField = true,\n}: UseJobFormProps): HookLoadingResult | UseJobFormReady {\n const jobsQuery = useJobsAndCompensationsGetJobs(\n { employeeId: employeeId ?? '' },\n { enabled: !!employeeId },\n )\n const addressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: employeeId ?? '' },\n { enabled: !!employeeId },\n )\n const employeeQuery = useEmployeesGet({ employeeId: employeeId ?? '' }, { enabled: !!employeeId })\n\n const employeeJobs = jobsQuery.data?.jobs\n const workAddresses = addressesQuery.data?.employeeWorkAddressesList\n const currentWorkAddress = workAddresses?.find(address => address.active) ?? null\n const employee = employeeQuery.data?.employee ?? null\n const companyUuid = employee?.companyUuid\n\n const taxQuery = useFederalTaxDetailsGet(\n { companyId: companyUuid ?? '' },\n { enabled: !!companyUuid },\n )\n const federalTaxDetails = taxQuery.data?.federalTaxDetails\n const showTwoPercentShareholder = federalTaxDetails?.taxableAsScorp === true\n const showStateWc = currentWorkAddress?.state === 'WA'\n\n const currentJob = useMemo(() => findJob(employeeJobs, jobId), [employeeJobs, jobId])\n const isCreateMode = !jobId\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createJobSchema({ mode, optionalFieldsToRequire, withHireDateField, withTitleField }),\n [mode, optionalFieldsToRequire, withHireDateField, withTitleField],\n )\n\n const resolvedDefaults: JobFormData = useMemo(\n () => ({\n title: currentJob?.title ?? partnerDefaults?.title ?? '',\n hireDate: currentJob?.hireDate ?? partnerDefaults?.hireDate ?? null,\n twoPercentShareholder:\n currentJob?.twoPercentShareholder ?? partnerDefaults?.twoPercentShareholder ?? false,\n stateWcCovered: currentJob?.stateWcCovered ?? partnerDefaults?.stateWcCovered ?? false,\n stateWcClassCode: currentJob?.stateWcClassCode ?? partnerDefaults?.stateWcClassCode ?? '',\n }),\n [currentJob, partnerDefaults],\n )\n\n const formMethods = useForm<JobFormData, unknown, JobFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedStateWcCovered = useWatch({ control: formMethods.control, name: 'stateWcCovered' })\n\n const createJobMutation = useJobsAndCompensationsCreateJobMutation()\n const updateJobMutation = useJobsAndCompensationsUpdateMutation()\n const updateSecondaryCompMutation = useJobsAndCompensationsUpdateCompensationMutation()\n // Tracks the post-primary-PUT corrective block (jobs refetch + parallel\n // secondary comp PUTs). No single mutation hook reports `isPending` for the\n // whole window — the refetch isn't a mutation, and `Promise.all` over one\n // mutation hook makes its `isPending` track the latest-settled call — so we\n // OR this in to keep the spinner solid through it.\n const [isCorrectingSecondaries, setIsCorrectingSecondaries] = useState(false)\n const isPending =\n createJobMutation.isPending ||\n updateJobMutation.isPending ||\n updateSecondaryCompMutation.isPending ||\n isCorrectingSecondaries\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('JobForm')\n\n const queriesForErrors = employeeId ? [jobsQuery, addressesQuery, employeeQuery, taxQuery] : []\n const errorHandling = composeErrorHandler(queriesForErrors, { submitError, setSubmitError })\n\n const stateWcClassCodeOptions = WA_RISK_CLASS_CODES.map(({ code, description }) => ({\n value: code,\n label: `${code}: ${description}`,\n }))\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = {\n title: baseMetadata.title,\n hireDate: baseMetadata.hireDate,\n twoPercentShareholder: {\n ...baseMetadata.twoPercentShareholder,\n isDisabled: !showTwoPercentShareholder,\n },\n stateWcCovered: withOptions<boolean>(\n { ...baseMetadata.stateWcCovered, isDisabled: !showStateWc },\n [\n { label: 'Yes', value: 'true' },\n { label: 'No', value: 'false' },\n ],\n [true, false],\n ),\n stateWcClassCode: withOptions<WARiskClassCode>(\n { ...baseMetadata.stateWcClassCode, isDisabled: !showStateWc },\n stateWcClassCodeOptions,\n WA_RISK_CLASS_CODES,\n ),\n }\n\n const onSubmit = async (\n options?: JobSubmitOptions,\n ): Promise<HookSubmitResult<Job> | undefined> => {\n let submitResult: HookSubmitResult<Job> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: JobFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n if (!resolvedEmployeeId) {\n throw new SDKInternalError('employeeId is required to submit a job')\n }\n\n const stateWcClassCode = payload.stateWcCovered ? payload.stateWcClassCode : null\n\n // Mirror the work/home address pattern: when the field is rendered\n // the payload value wins; when it isn't, fall back to a submit-time\n // override (`options.hireDate`), then to the loaded job's existing\n // value on update mode. Create mode requires a resolved value —\n // hireDate is mandatory on POST /v1/employees/:id/jobs.\n const resolvedHireDate =\n withHireDateField && payload.hireDate\n ? payload.hireDate\n : (options?.hireDate ?? currentJob?.hireDate ?? null)\n\n // When the title field is suppressed (steady-state edits drive\n // title through useCompensationForm), omit it from the body so\n // the server preserves the existing value rather than clobbering\n // it with whatever sat in form state.\n const titleToSend = withTitleField ? payload.title : undefined\n\n // When a primary job's hire_date is PUT and the value actually\n // changes, the API unconditionally overwrites every secondary's\n // current-compensation effective_date to match the new hire_date —\n // even when the secondary's original effective_date was already on\n // or after the new hire_date. Read those originals now so we can\n // PUT them back below; by the time we re-fetch they'll be gone.\n const shouldCorrectSecondaries =\n !isCreateMode &&\n currentJob?.primary === true &&\n !!resolvedHireDate &&\n resolvedHireDate !== currentJob.hireDate\n const secondaryJobEffectiveDates = shouldCorrectSecondaries\n ? (employeeJobs ?? [])\n .filter(j => !j.primary && j.currentCompensationUuid)\n .map(j => ({\n compId: j.currentCompensationUuid!,\n effectiveDate: j.compensations?.find(c => c.uuid === j.currentCompensationUuid)\n ?.effectiveDate,\n }))\n : []\n\n let updatedJob: Job\n\n if (isCreateMode) {\n if (!resolvedHireDate) {\n throw new SDKInternalError(\n withHireDateField\n ? 'hireDate is required to create a job'\n : 'hireDate is required to create a job. Pass it via JobSubmitOptions when withHireDateField is false.',\n )\n }\n if (titleToSend === undefined) {\n throw new SDKInternalError(\n 'title is required to create a job. Set withTitleField: true (the default) on useJobForm for create flows.',\n )\n }\n const result = await createJobMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n jobsCreateRequestBody: {\n title: titleToSend,\n hireDate: resolvedHireDate,\n twoPercentShareholder: payload.twoPercentShareholder,\n stateWcCovered: payload.stateWcCovered,\n stateWcClassCode,\n },\n },\n })\n if (!result.job) {\n throw new SDKInternalError('Job creation failed')\n }\n updatedJob = result.job\n } else {\n if (!currentJob) {\n throw new SDKInternalError('Cannot update job: no matching job on file')\n }\n const result = await updateJobMutation.mutateAsync({\n request: {\n jobId: currentJob.uuid,\n jobsUpdateRequestBody: {\n version: currentJob.version as string,\n title: titleToSend,\n hireDate: resolvedHireDate ?? undefined,\n twoPercentShareholder: payload.twoPercentShareholder,\n stateWcCovered: payload.stateWcCovered,\n stateWcClassCode,\n },\n },\n })\n if (!result.job) {\n throw new SDKInternalError('Job update failed')\n }\n updatedJob = result.job\n\n // The primary PUT above clobbered each secondary's\n // current-compensation effective_date. Refetch jobs for the\n // bumped versions, then PUT each secondary back to\n // max(originalEffectiveDate, newHireDate) in parallel — the\n // requests are independent (different compensation_id, separate\n // versions), and `Promise.all` still surfaces the first\n // rejection through the surrounding baseSubmitHandler's catch.\n if (shouldCorrectSecondaries && secondaryJobEffectiveDates.length > 0) {\n setIsCorrectingSecondaries(true)\n try {\n const refreshed = await jobsQuery.refetch()\n const freshComps = (refreshed.data?.jobs ?? []).flatMap(\n j => j.compensations ?? [],\n )\n await Promise.all(\n secondaryJobEffectiveDates.flatMap(entry => {\n const freshComp = freshComps.find(c => c.uuid === entry.compId)\n if (!freshComp?.version) return []\n\n const desired =\n !entry.effectiveDate || entry.effectiveDate < resolvedHireDate\n ? resolvedHireDate\n : entry.effectiveDate\n\n return [\n updateSecondaryCompMutation.mutateAsync({\n request: {\n compensationId: entry.compId,\n compensationsUpdateRequestBody: {\n version: freshComp.version,\n effectiveDate: desired,\n },\n },\n }),\n ]\n }),\n )\n } finally {\n setIsCorrectingSecondaries(false)\n }\n }\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedJob,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const isDataLoading = employeeId\n ? jobsQuery.isLoading || addressesQuery.isLoading || employeeQuery.isLoading\n : false\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (isDataLoading || (employeeId && (!employeeJobs || !employee))) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n currentJob,\n jobs: employeeJobs,\n employee,\n currentWorkAddress,\n showTwoPercentShareholder,\n showStateWc,\n },\n status: {\n isPending,\n mode: isCreateMode ? 'create' : 'update',\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Title: withTitleField ? JobTitleField : undefined,\n HireDate: withHireDateField ? HireDateField : undefined,\n TwoPercentShareholder: showTwoPercentShareholder ? TwoPercentShareholderField : undefined,\n StateWcCovered: showStateWc ? StateWcCoveredField : undefined,\n StateWcClassCode: showStateWc && watchedStateWcCovered ? StateWcClassCodeField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\nexport type UseJobFormResult = HookLoadingResult | UseJobFormReady\nexport type JobFieldsMetadata = UseJobFormReady['form']['fieldsMetadata']\n"],"names":["findJob","jobs","jobId","j","useJobForm","employeeId","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","withHireDateField","withTitleField","jobsQuery","useJobsAndCompensationsGetJobs","addressesQuery","useEmployeeAddressesGetWorkAddresses","employeeQuery","useEmployeesGet","employeeJobs","currentWorkAddress","address","employee","companyUuid","taxQuery","useFederalTaxDetailsGet","showTwoPercentShareholder","showStateWc","currentJob","useMemo","isCreateMode","mode","schema","metadataConfig","createJobSchema","resolvedDefaults","formMethods","useForm","zodResolver","watchedStateWcCovered","useWatch","createJobMutation","useJobsAndCompensationsCreateJobMutation","updateJobMutation","useJobsAndCompensationsUpdateMutation","updateSecondaryCompMutation","useJobsAndCompensationsUpdateCompensationMutation","isCorrectingSecondaries","setIsCorrectingSecondaries","useState","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","stateWcClassCodeOptions","WA_RISK_CLASS_CODES","code","description","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","withOptions","onSubmit","options","submitResult","resolve","data","payload","resolvedEmployeeId","SDKInternalError","stateWcClassCode","resolvedHireDate","titleToSend","shouldCorrectSecondaries","secondaryJobEffectiveDates","c","updatedJob","result","freshComps","entry","freshComp","desired","isDataLoading","hookFormInternals","useHookFormInternals","JobTitleField","HireDateField","TwoPercentShareholderField","StateWcCoveredField","StateWcClassCodeField","createGetFormSubmissionValues"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyHA,SAASA,GAAQC,GAAyBC,GAAuC;AAC/E,SAAI,CAACD,KAAQ,CAACC,IAAc,OACrBD,EAAK,KAAK,CAAAE,MAAKA,EAAE,SAASD,CAAK,KAAK;AAC7C;AAEO,SAASE,GAAW;AAAA,EACzB,YAAAC;AAAA,EACA,OAAAH;AAAA,EACA,yBAAAI;AAAA,EACA,eAAeC;AAAA,EACf,gBAAAC,IAAiB;AAAA,EACjB,kBAAAC,IAAmB;AAAA,EACnB,mBAAAC,IAAoB;AAAA,EACpB,gBAAAC,IAAiB;AACnB,GAAyD;AACvD,QAAMC,IAAYC;AAAA,IAChB,EAAE,YAAYR,KAAc,GAAA;AAAA,IAC5B,EAAE,SAAS,CAAC,CAACA,EAAA;AAAA,EAAW,GAEpBS,IAAiBC;AAAA,IACrB,EAAE,YAAYV,KAAc,GAAA;AAAA,IAC5B,EAAE,SAAS,CAAC,CAACA,EAAA;AAAA,EAAW,GAEpBW,IAAgBC,GAAgB,EAAE,YAAYZ,KAAc,GAAA,GAAM,EAAE,SAAS,CAAC,CAACA,GAAY,GAE3Fa,IAAeN,EAAU,MAAM,MAE/BO,IADgBL,EAAe,MAAM,2BACD,KAAK,CAAAM,MAAWA,EAAQ,MAAM,KAAK,MACvEC,IAAWL,EAAc,MAAM,YAAY,MAC3CM,IAAcD,GAAU,aAExBE,IAAWC;AAAA,IACf,EAAE,WAAWF,KAAe,GAAA;AAAA,IAC5B,EAAE,SAAS,CAAC,CAACA,EAAA;AAAA,EAAY,GAGrBG,IADoBF,EAAS,MAAM,mBACY,mBAAmB,IAClEG,IAAcP,GAAoB,UAAU,MAE5CQ,IAAaC,EAAQ,MAAM5B,GAAQkB,GAAchB,CAAK,GAAG,CAACgB,GAAchB,CAAK,CAAC,GAC9E2B,IAAe,CAAC3B,GAChB4B,IAAOD,IAAe,WAAW,UAEjC,CAACE,GAAQC,CAAc,IAAIJ;AAAA,IAC/B,MAAMK,GAAgB,EAAE,MAAAH,GAAM,yBAAAxB,GAAyB,mBAAAI,GAAmB,gBAAAC,GAAgB;AAAA,IAC1F,CAACmB,GAAMxB,GAAyBI,GAAmBC,CAAc;AAAA,EAAA,GAG7DuB,IAAgCN;AAAA,IACpC,OAAO;AAAA,MACL,OAAOD,GAAY,SAASpB,GAAiB,SAAS;AAAA,MACtD,UAAUoB,GAAY,YAAYpB,GAAiB,YAAY;AAAA,MAC/D,uBACEoB,GAAY,yBAAyBpB,GAAiB,yBAAyB;AAAA,MACjF,gBAAgBoB,GAAY,kBAAkBpB,GAAiB,kBAAkB;AAAA,MACjF,kBAAkBoB,GAAY,oBAAoBpB,GAAiB,oBAAoB;AAAA,IAAA;AAAA,IAEzF,CAACoB,GAAYpB,CAAe;AAAA,EAAA,GAGxB4B,IAAcC,GAA8C;AAAA,IAChE,UAAUC,GAAYN,CAAM;AAAA,IAC5B,MAAMvB;AAAA,IACN,kBAAAC;AAAA,IACA,eAAeyB;AAAA,IACf,QAAQA;AAAA,IACR,cAAc,EAAE,iBAAiB,GAAA;AAAA,EAAK,CACvC,GAEKI,IAAwBC,GAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,kBAAkB,GAEzFK,IAAoBC,GAAA,GACpBC,IAAoBC,GAAA,GACpBC,IAA8BC,GAAA,GAM9B,CAACC,GAAyBC,CAA0B,IAAIC,GAAS,EAAK,GACtEC,IACJT,EAAkB,aAClBE,EAAkB,aAClBE,EAA4B,aAC5BE,GAEI;AAAA,IACJ,mBAAAI;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,GAAc,SAAS,GAGrBC,IAAgBC,GADGlD,IAAa,CAACO,GAAWE,GAAgBE,GAAeO,CAAQ,IAAI,CAAA,GACjC,EAAE,aAAA4B,IAAa,gBAAAC,IAAgB,GAErFI,KAA0BC,EAAoB,IAAI,CAAC,EAAE,MAAAC,GAAM,aAAAC,SAAmB;AAAA,IAClF,OAAOD;AAAA,IACP,OAAO,GAAGA,CAAI,KAAKC,CAAW;AAAA,EAAA,EAC9B,GAEIC,IAAeC,GAAwB7B,GAAgBG,EAAY,OAAO,GAC1E2B,KAAiB;AAAA,IACrB,OAAOF,EAAa;AAAA,IACpB,UAAUA,EAAa;AAAA,IACvB,uBAAuB;AAAA,MACrB,GAAGA,EAAa;AAAA,MAChB,YAAY,CAACnC;AAAA,IAAA;AAAA,IAEf,gBAAgBsC;AAAA,MACd,EAAE,GAAGH,EAAa,gBAAgB,YAAY,CAAClC,EAAA;AAAA,MAC/C;AAAA,QACE,EAAE,OAAO,OAAO,OAAO,OAAA;AAAA,QACvB,EAAE,OAAO,MAAM,OAAO,QAAA;AAAA,MAAQ;AAAA,MAEhC,CAAC,IAAM,EAAK;AAAA,IAAA;AAAA,IAEd,kBAAkBqC;AAAA,MAChB,EAAE,GAAGH,EAAa,kBAAkB,YAAY,CAAClC,EAAA;AAAA,MACjD8B;AAAA,MACAC;AAAA,IAAA;AAAA,EACF,GAGIO,KAAW,OACfC,MAC+C;AAC/C,QAAIC;AAEJ,iBAAM,IAAI,QAAc,CAAAC,MAAW;AACjC,MAAKhC,EAAY;AAAA,QACf,OAAOiC,OAAyB;AAC9B,gBAAMlB,EAAkBkB,IAAM,OAAMC,MAAW;AAC7C,kBAAMC,IAAqBL,GAAS,cAAc5D;AAClD,gBAAI,CAACiE;AACH,oBAAM,IAAIC,EAAiB,wCAAwC;AAGrE,kBAAMC,IAAmBH,EAAQ,iBAAiBA,EAAQ,mBAAmB,MAOvEI,IACJ/D,KAAqB2D,EAAQ,WACzBA,EAAQ,WACPJ,GAAS,YAAYtC,GAAY,YAAY,MAM9C+C,IAAc/D,IAAiB0D,EAAQ,QAAQ,QAQ/CM,IACJ,CAAC9C,KACDF,GAAY,YAAY,MACxB,CAAC,CAAC8C,KACFA,MAAqB9C,EAAW,UAC5BiD,IAA6BD,KAC9BzD,KAAgB,CAAA,GACd,OAAO,CAAAf,MAAK,CAACA,EAAE,WAAWA,EAAE,uBAAuB,EACnD,IAAI,CAAAA,OAAM;AAAA,cACT,QAAQA,EAAE;AAAA,cACV,eAAeA,EAAE,eAAe,KAAK,OAAK0E,EAAE,SAAS1E,EAAE,uBAAuB,GAC1E;AAAA,YAAA,EACJ,IACJ,CAAA;AAEJ,gBAAI2E;AAEJ,gBAAIjD,GAAc;AAChB,kBAAI,CAAC4C;AACH,sBAAM,IAAIF;AAAA,kBACR7D,IACI,yCACA;AAAA,gBAAA;AAGR,kBAAIgE,MAAgB;AAClB,sBAAM,IAAIH;AAAA,kBACR;AAAA,gBAAA;AAGJ,oBAAMQ,IAAS,MAAMvC,EAAkB,YAAY;AAAA,gBACjD,SAAS;AAAA,kBACP,YAAY8B;AAAA,kBACZ,uBAAuB;AAAA,oBACrB,OAAOI;AAAA,oBACP,UAAUD;AAAA,oBACV,uBAAuBJ,EAAQ;AAAA,oBAC/B,gBAAgBA,EAAQ;AAAA,oBACxB,kBAAAG;AAAA,kBAAA;AAAA,gBACF;AAAA,cACF,CACD;AACD,kBAAI,CAACO,EAAO;AACV,sBAAM,IAAIR,EAAiB,qBAAqB;AAElD,cAAAO,IAAaC,EAAO;AAAA,YACtB,OAAO;AACL,kBAAI,CAACpD;AACH,sBAAM,IAAI4C,EAAiB,4CAA4C;AAEzE,oBAAMQ,IAAS,MAAMrC,EAAkB,YAAY;AAAA,gBACjD,SAAS;AAAA,kBACP,OAAOf,EAAW;AAAA,kBAClB,uBAAuB;AAAA,oBACrB,SAASA,EAAW;AAAA,oBACpB,OAAO+C;AAAA,oBACP,UAAUD,KAAoB;AAAA,oBAC9B,uBAAuBJ,EAAQ;AAAA,oBAC/B,gBAAgBA,EAAQ;AAAA,oBACxB,kBAAAG;AAAA,kBAAA;AAAA,gBACF;AAAA,cACF,CACD;AACD,kBAAI,CAACO,EAAO;AACV,sBAAM,IAAIR,EAAiB,mBAAmB;AAWhD,kBATAO,IAAaC,EAAO,KAShBJ,KAA4BC,EAA2B,SAAS,GAAG;AACrE,gBAAA7B,EAA2B,EAAI;AAC/B,oBAAI;AAEF,wBAAMiC,OADY,MAAMpE,EAAU,QAAA,GACJ,MAAM,QAAQ,CAAA,GAAI;AAAA,oBAC9C,CAAAT,MAAKA,EAAE,iBAAiB,CAAA;AAAA,kBAAC;AAE3B,wBAAM,QAAQ;AAAA,oBACZyE,EAA2B,QAAQ,CAAAK,MAAS;AAC1C,4BAAMC,IAAYF,GAAW,KAAK,QAAKH,GAAE,SAASI,EAAM,MAAM;AAC9D,0BAAI,CAACC,GAAW,QAAS,QAAO,CAAA;AAEhC,4BAAMC,KACJ,CAACF,EAAM,iBAAiBA,EAAM,gBAAgBR,IAC1CA,IACAQ,EAAM;AAEZ,6BAAO;AAAA,wBACLrC,EAA4B,YAAY;AAAA,0BACtC,SAAS;AAAA,4BACP,gBAAgBqC,EAAM;AAAA,4BACtB,gCAAgC;AAAA,8BAC9B,SAASC,EAAU;AAAA,8BACnB,eAAeC;AAAA,4BAAA;AAAA,0BACjB;AAAA,wBACF,CACD;AAAA,sBAAA;AAAA,oBAEL,CAAC;AAAA,kBAAA;AAAA,gBAEL,UAAA;AACE,kBAAApC,EAA2B,EAAK;AAAA,gBAClC;AAAA,cACF;AAAA,YACF;AAEA,YAAAmB,IAAe;AAAA,cACb,MAAMrC,IAAe,WAAW;AAAA,cAChC,MAAMiD;AAAA,YAAA;AAAA,UAEV,CAAC,GACDX,EAAA;AAAA,QACF;AAAA,QACA,MAAM;AACJ,UAAAA,EAAA;AAAA,QACF;AAAA,MAAA,EACF;AAAA,IACF,CAAC,GAEMD;AAAA,EACT,GAEMkB,KAAgB/E,IAClBO,EAAU,aAAaE,EAAe,aAAaE,EAAc,YACjE,IAEEqE,KAAoBC,GAAqBnD,CAAW;AAE1D,SAAIiD,MAAkB/E,MAAe,CAACa,KAAgB,CAACG,KAC9C,EAAE,WAAW,IAAe,eAAAiC,EAAA,IAG9B;AAAA,IACL,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,YAAA3B;AAAA,MACA,MAAMT;AAAA,MACN,UAAAG;AAAA,MACA,oBAAAF;AAAA,MACA,2BAAAM;AAAA,MACA,aAAAC;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,MACN,WAAAuB;AAAA,MACA,MAAMpB,IAAe,WAAW;AAAA,IAAA;AAAA,IAElC,SAAS,EAAE,UAAAmC,GAAA;AAAA,IACX,eAAAV;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO3C,IAAiB4E,KAAgB;AAAA,QACxC,UAAU7E,IAAoB8E,KAAgB;AAAA,QAC9C,uBAAuB/D,IAA4BgE,KAA6B;AAAA,QAChF,gBAAgB/D,IAAcgE,KAAsB;AAAA,QACpD,kBAAkBhE,KAAeY,IAAwBqD,KAAwB;AAAA,MAAA;AAAA,MAEnF,gBAAA7B;AAAA,MACA,mBAAAuB;AAAA,MACA,yBAAyBO,GAA8BzD,GAAaJ,CAAM;AAAA,IAAA;AAAA,EAC5E;AAEJ;"}
@@ -1,155 +1,141 @@
1
- import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
- import { useTranslation as b } from "react-i18next";
3
- import { Flex as a } from "../../Common/Flex/Flex.js";
4
- import { useComponentContext as v } from "../../../contexts/ComponentAdapter/useComponentContext.js";
5
- import { formatDateLongWithYear as f } from "../../../helpers/dateFormatting.js";
6
- import { firstLastName as A, getStreet as C, getCityStateZip as X } from "../../../helpers/formattedStrings.js";
1
+ import { jsx as t, jsxs as c } from "react/jsx-runtime";
2
+ import { useTranslation as X } from "react-i18next";
3
+ import { Flex as d } from "../../Common/Flex/Flex.js";
4
+ import { useComponentContext as w } from "../../../contexts/ComponentAdapter/useComponentContext.js";
5
+ import { formatDateLongWithYear as D } from "../../../helpers/dateFormatting.js";
6
+ import { firstLastName as T, getStreet as A, getCityStateZip as L } from "../../../helpers/formattedStrings.js";
7
7
  import "classnames";
8
8
  import "../../../shared/constants.js";
9
- import { Loading as d } from "../../Common/Loading/Loading.js";
10
- import { BaseLayout as w } from "../../Base/Base.js";
11
- import { useEmployeeBasicDetails as N } from "./hooks/useEmployeeBasicDetails.js";
9
+ import { Loading as m } from "../../Common/Loading/Loading.js";
10
+ import { BaseLayout as N } from "../../Base/Base.js";
11
+ import { useEmployeeBasicDetails as E } from "./hooks/useEmployeeBasicDetails.js";
12
12
  function Y({
13
- employeeId: r,
14
- onEditBasicDetails: l,
13
+ employeeId: a,
14
+ onEditBasicDetails: o,
15
15
  onManageHomeAddress: s,
16
- onManageWorkAddress: c
16
+ onManageWorkAddress: n
17
17
  }) {
18
- const o = N({ employeeId: r });
19
- return /* @__PURE__ */ e(w, { error: o.errorHandling.errors, children: /* @__PURE__ */ e(
20
- k,
18
+ const r = E({ employeeId: a });
19
+ return /* @__PURE__ */ t(N, { error: r.errorHandling.errors, children: /* @__PURE__ */ t(
20
+ H,
21
21
  {
22
- employee: o.data.employee,
23
- currentHomeAddress: o.data.currentHomeAddress,
24
- currentWorkAddress: o.data.currentWorkAddress,
25
- isEmployeeLoading: o.status.isEmployeeLoading,
26
- isHomeAddressLoading: o.status.isHomeAddressLoading,
27
- isWorkAddressLoading: o.status.isWorkAddressLoading,
28
- onEditBasicDetails: l,
22
+ employee: r.data.employee,
23
+ currentHomeAddress: r.data.currentHomeAddress,
24
+ currentWorkAddress: r.data.currentWorkAddress,
25
+ isEmployeeLoading: r.status.isEmployeeLoading,
26
+ isHomeAddressLoading: r.status.isHomeAddressLoading,
27
+ isWorkAddressLoading: r.status.isWorkAddressLoading,
28
+ onEditBasicDetails: o,
29
29
  onManageHomeAddress: s,
30
- onManageWorkAddress: c
30
+ onManageWorkAddress: n
31
31
  }
32
32
  ) });
33
33
  }
34
- function k({
35
- employee: r,
36
- currentHomeAddress: l,
34
+ function H({
35
+ employee: a,
36
+ currentHomeAddress: o,
37
37
  currentWorkAddress: s,
38
- isLoading: c = !1,
39
- isEmployeeLoading: o = c,
40
- isHomeAddressLoading: h = c,
41
- isWorkAddressLoading: m = c,
42
- onEditBasicDetails: g,
43
- onManageHomeAddress: T,
44
- onManageWorkAddress: B
38
+ isLoading: n = !1,
39
+ isEmployeeLoading: r = n,
40
+ isHomeAddressLoading: h = n,
41
+ isWorkAddressLoading: p = n,
42
+ onEditBasicDetails: f,
43
+ onManageHomeAddress: u,
44
+ onManageWorkAddress: x
45
45
  }) {
46
- const { t } = b("Employee.Dashboard"), i = v(), x = r ? A({ first_name: r.firstName, last_name: r.lastName }) : void 0, p = r ? f(r.jobs?.[0]?.hireDate) : void 0, u = r ? f(r.dateOfBirth) : void 0, D = r?.hasSsn ? "XXX-XX-XXXX" : void 0;
47
- return /* @__PURE__ */ n(a, { flexDirection: "column", gap: 24, children: [
48
- /* @__PURE__ */ e(
46
+ const { t: e } = X("Employee.Dashboard"), i = w(), g = a ? T({ first_name: a.firstName, last_name: a.lastName }) : void 0, b = a ? D(a.jobs?.[0]?.hireDate) : void 0, B = a ? D(a.dateOfBirth) : void 0, C = a?.hasSsn ? "XXX-XX-XXXX" : void 0, l = /* @__PURE__ */ t("span", { "aria-label": e("listEmptyPlaceholder"), children: "–" }), v = a ? [
47
+ { term: e("basicDetails.legalName"), description: g || l },
48
+ { term: e("basicDetails.startDate"), description: b || l },
49
+ {
50
+ term: e("basicDetails.socialSecurityNumber"),
51
+ description: C || l
52
+ },
53
+ { term: e("basicDetails.dateOfBirth"), description: B || l },
54
+ { term: e("basicDetails.personalEmail"), description: a.email || l }
55
+ ] : [];
56
+ return /* @__PURE__ */ c(d, { flexDirection: "column", gap: 24, children: [
57
+ /* @__PURE__ */ t(
49
58
  i.Box,
50
59
  {
51
- header: /* @__PURE__ */ e(
60
+ header: /* @__PURE__ */ t(
52
61
  i.BoxHeader,
53
62
  {
54
- title: t("basicDetails.title"),
55
- action: /* @__PURE__ */ e(
63
+ title: e("basicDetails.title"),
64
+ action: /* @__PURE__ */ t(
56
65
  i.Button,
57
66
  {
58
67
  variant: "secondary",
59
- onClick: g,
60
- isDisabled: o,
61
- children: t("basicDetails.editCta")
68
+ onClick: f,
69
+ isDisabled: r,
70
+ children: e("basicDetails.editCta")
62
71
  }
63
72
  )
64
73
  }
65
74
  ),
66
- children: /* @__PURE__ */ e(a, { flexDirection: "column", gap: 16, children: o ? /* @__PURE__ */ e(d, {}) : r ? /* @__PURE__ */ n(a, { flexDirection: "column", gap: 12, children: [
67
- x && /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
68
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("basicDetails.legalName") }),
69
- /* @__PURE__ */ e(i.Text, { children: x })
70
- ] }),
71
- p && /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
72
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("basicDetails.startDate") }),
73
- /* @__PURE__ */ e(i.Text, { children: p })
74
- ] }),
75
- D && /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
76
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("basicDetails.socialSecurityNumber") }),
77
- /* @__PURE__ */ e(i.Text, { children: D })
78
- ] }),
79
- u && /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
80
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("basicDetails.dateOfBirth") }),
81
- /* @__PURE__ */ e(i.Text, { children: u })
82
- ] }),
83
- r.email && /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
84
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("basicDetails.personalEmail") }),
85
- /* @__PURE__ */ e(i.Text, { children: r.email })
86
- ] })
87
- ] }) : null })
75
+ children: r ? /* @__PURE__ */ t(m, {}) : a ? /* @__PURE__ */ t(i.DescriptionList, { items: v }) : null
88
76
  }
89
77
  ),
90
- /* @__PURE__ */ e(
78
+ /* @__PURE__ */ t(
91
79
  i.Box,
92
80
  {
93
- header: /* @__PURE__ */ e(
81
+ header: /* @__PURE__ */ t(
94
82
  i.BoxHeader,
95
83
  {
96
- title: t("homeAddress.title"),
97
- action: /* @__PURE__ */ e(
84
+ title: e("homeAddress.title"),
85
+ action: /* @__PURE__ */ t(
98
86
  i.Button,
99
87
  {
100
88
  variant: "secondary",
101
- onClick: T,
89
+ onClick: u,
102
90
  isDisabled: h,
103
- children: t("homeAddress.manageCta")
91
+ children: e("homeAddress.manageCta")
104
92
  }
105
93
  )
106
94
  }
107
95
  ),
108
- children: /* @__PURE__ */ e(a, { flexDirection: "column", gap: 16, children: h ? /* @__PURE__ */ e(d, {}) : l ? /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
109
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("homeAddress.currentAddress") }),
110
- /* @__PURE__ */ e(i.Text, { children: C(l).replace(",", "") }),
111
- /* @__PURE__ */ e(i.Text, { children: X(l) })
112
- ] }) : /* @__PURE__ */ e(i.Text, { children: t("homeAddress.noAddress") }) })
96
+ children: /* @__PURE__ */ t(d, { flexDirection: "column", gap: 16, children: h ? /* @__PURE__ */ t(m, {}) : o ? /* @__PURE__ */ c(d, { flexDirection: "column", gap: 0, children: [
97
+ /* @__PURE__ */ t(i.Text, { weight: "medium", children: A(o).replace(",", "") }),
98
+ /* @__PURE__ */ t(i.Text, { variant: "supporting", children: L(o) })
99
+ ] }) : /* @__PURE__ */ t(i.Text, { children: e("homeAddress.noAddress") }) })
113
100
  }
114
101
  ),
115
- /* @__PURE__ */ e(
102
+ /* @__PURE__ */ t(
116
103
  i.Box,
117
104
  {
118
- header: /* @__PURE__ */ e(
105
+ header: /* @__PURE__ */ t(
119
106
  i.BoxHeader,
120
107
  {
121
- title: t("workAddress.title"),
122
- action: /* @__PURE__ */ e(
108
+ title: e("workAddress.title"),
109
+ action: /* @__PURE__ */ t(
123
110
  i.Button,
124
111
  {
125
112
  variant: "secondary",
126
- onClick: B,
127
- isDisabled: m,
128
- children: t("workAddress.manageCta")
113
+ onClick: x,
114
+ isDisabled: p,
115
+ children: e("workAddress.manageCta")
129
116
  }
130
117
  )
131
118
  }
132
119
  ),
133
- children: /* @__PURE__ */ e(a, { flexDirection: "column", gap: 16, children: m ? /* @__PURE__ */ e(d, {}) : s ? /* @__PURE__ */ n(a, { flexDirection: "column", gap: 0, children: [
134
- /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("workAddress.currentAddress") }),
135
- /* @__PURE__ */ n(i.Text, { children: [
120
+ children: /* @__PURE__ */ t(d, { flexDirection: "column", gap: 16, children: p ? /* @__PURE__ */ t(m, {}) : s ? /* @__PURE__ */ c(d, { flexDirection: "column", gap: 0, children: [
121
+ /* @__PURE__ */ c(i.Text, { weight: "medium", children: [
136
122
  s.street1,
137
123
  s.street2 ? `, ${s.street2}` : ""
138
124
  ] }),
139
- /* @__PURE__ */ n(i.Text, { children: [
125
+ /* @__PURE__ */ c(i.Text, { variant: "supporting", children: [
140
126
  s.city,
141
127
  ", ",
142
128
  s.state,
143
129
  " ",
144
130
  s.zip
145
131
  ] })
146
- ] }) : /* @__PURE__ */ e(i.Text, { children: t("workAddress.noAddress") }) })
132
+ ] }) : /* @__PURE__ */ t(i.Text, { children: e("workAddress.noAddress") }) })
147
133
  }
148
134
  )
149
135
  ] });
150
136
  }
151
137
  export {
152
- k as BasicDetailsView,
138
+ H as BasicDetailsView,
153
139
  Y as BasicDetailsViewWithData
154
140
  };
155
141
  //# sourceMappingURL=BasicDetailsView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasicDetailsView.js","sources":["../../../../src/components/Employee/Dashboard/BasicDetailsView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeBasicDetails } from './hooks'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName, getStreet, getCityStateZip } from '@/helpers/formattedStrings'\nimport { Loading } from '@/components/Common'\nimport { BaseLayout } from '@/components/Base/Base'\n\nexport interface BasicDetailsViewProps {\n employee?: Employee\n currentHomeAddress?: EmployeeAddress\n currentWorkAddress?: EmployeeWorkAddress\n /** Loads all three cards. Per-section flags below take precedence\n * when each query resolves independently. */\n isLoading?: boolean\n isEmployeeLoading?: boolean\n isHomeAddressLoading?: boolean\n isWorkAddressLoading?: boolean\n onEditBasicDetails?: () => void\n onManageHomeAddress?: () => void\n onManageWorkAddress?: () => void\n}\n\nexport interface BasicDetailsViewWithDataProps {\n employeeId: string\n onEditBasicDetails?: () => void\n onManageHomeAddress?: () => void\n onManageWorkAddress?: () => void\n}\n\n/**\n * Tab-mounted container for the Basic details tab. Owns the\n * `useEmployeeBasicDetails` fetch (employee + home address + work address)\n * so the requests only fire when the tab is mounted. Each card paints\n * its own skeleton + content as the underlying query resolves.\n */\nexport function BasicDetailsViewWithData({\n employeeId,\n onEditBasicDetails,\n onManageHomeAddress,\n onManageWorkAddress,\n}: BasicDetailsViewWithDataProps) {\n const basicDetails = useEmployeeBasicDetails({ employeeId })\n\n return (\n <BaseLayout error={basicDetails.errorHandling.errors}>\n <BasicDetailsView\n employee={basicDetails.data.employee}\n currentHomeAddress={basicDetails.data.currentHomeAddress}\n currentWorkAddress={basicDetails.data.currentWorkAddress}\n isEmployeeLoading={basicDetails.status.isEmployeeLoading}\n isHomeAddressLoading={basicDetails.status.isHomeAddressLoading}\n isWorkAddressLoading={basicDetails.status.isWorkAddressLoading}\n onEditBasicDetails={onEditBasicDetails}\n onManageHomeAddress={onManageHomeAddress}\n onManageWorkAddress={onManageWorkAddress}\n />\n </BaseLayout>\n )\n}\n\nexport function BasicDetailsView({\n employee,\n currentHomeAddress,\n currentWorkAddress,\n isLoading = false,\n isEmployeeLoading = isLoading,\n isHomeAddressLoading = isLoading,\n isWorkAddressLoading = isLoading,\n onEditBasicDetails,\n onManageHomeAddress,\n onManageWorkAddress,\n}: BasicDetailsViewProps) {\n const { t } = useTranslation('Employee.Dashboard')\n const Components = useComponentContext()\n\n const legalName = employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : undefined\n const startDate = employee ? formatDateLongWithYear(employee.jobs?.[0]?.hireDate) : undefined\n const dateOfBirth = employee ? formatDateLongWithYear(employee.dateOfBirth) : undefined\n const maskedSsn = employee?.hasSsn ? 'XXX-XX-XXXX' : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('basicDetails.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onEditBasicDetails}\n isDisabled={isEmployeeLoading}\n >\n {t('basicDetails.editCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isEmployeeLoading ? (\n <Loading />\n ) : employee ? (\n <Flex flexDirection=\"column\" gap={12}>\n {legalName && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('basicDetails.legalName')}\n </Components.Text>\n <Components.Text>{legalName}</Components.Text>\n </Flex>\n )}\n\n {startDate && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('basicDetails.startDate')}\n </Components.Text>\n <Components.Text>{startDate}</Components.Text>\n </Flex>\n )}\n\n {maskedSsn && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('basicDetails.socialSecurityNumber')}\n </Components.Text>\n <Components.Text>{maskedSsn}</Components.Text>\n </Flex>\n )}\n\n {dateOfBirth && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('basicDetails.dateOfBirth')}\n </Components.Text>\n <Components.Text>{dateOfBirth}</Components.Text>\n </Flex>\n )}\n\n {employee.email && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('basicDetails.personalEmail')}\n </Components.Text>\n <Components.Text>{employee.email}</Components.Text>\n </Flex>\n )}\n </Flex>\n ) : null}\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('homeAddress.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onManageHomeAddress}\n isDisabled={isHomeAddressLoading}\n >\n {t('homeAddress.manageCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isHomeAddressLoading ? (\n <Loading />\n ) : currentHomeAddress ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('homeAddress.currentAddress')}\n </Components.Text>\n <Components.Text>{getStreet(currentHomeAddress).replace(',', '')}</Components.Text>\n <Components.Text>{getCityStateZip(currentHomeAddress)}</Components.Text>\n </Flex>\n ) : (\n <Components.Text>{t('homeAddress.noAddress')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('workAddress.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onManageWorkAddress}\n isDisabled={isWorkAddressLoading}\n >\n {t('workAddress.manageCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isWorkAddressLoading ? (\n <Loading />\n ) : currentWorkAddress ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('workAddress.currentAddress')}\n </Components.Text>\n <Components.Text>\n {currentWorkAddress.street1}\n {currentWorkAddress.street2 ? `, ${currentWorkAddress.street2}` : ''}\n </Components.Text>\n <Components.Text>\n {currentWorkAddress.city}, {currentWorkAddress.state} {currentWorkAddress.zip}\n </Components.Text>\n </Flex>\n ) : (\n <Components.Text>{t('workAddress.noAddress')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </Flex>\n )\n}\n"],"names":["BasicDetailsViewWithData","employeeId","onEditBasicDetails","onManageHomeAddress","onManageWorkAddress","basicDetails","useEmployeeBasicDetails","jsx","BaseLayout","BasicDetailsView","employee","currentHomeAddress","currentWorkAddress","isLoading","isEmployeeLoading","isHomeAddressLoading","isWorkAddressLoading","useTranslation","Components","useComponentContext","legalName","firstLastName","startDate","formatDateLongWithYear","dateOfBirth","maskedSsn","jsxs","Flex","Loading","getStreet","getCityStateZip"],"mappings":"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"}
1
+ {"version":3,"file":"BasicDetailsView.js","sources":["../../../../src/components/Employee/Dashboard/BasicDetailsView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeBasicDetails } from './hooks'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName, getStreet, getCityStateZip } from '@/helpers/formattedStrings'\nimport { Loading } from '@/components/Common'\nimport { BaseLayout } from '@/components/Base/Base'\n\nexport interface BasicDetailsViewProps {\n employee?: Employee\n currentHomeAddress?: EmployeeAddress\n currentWorkAddress?: EmployeeWorkAddress\n /** Loads all three cards. Per-section flags below take precedence\n * when each query resolves independently. */\n isLoading?: boolean\n isEmployeeLoading?: boolean\n isHomeAddressLoading?: boolean\n isWorkAddressLoading?: boolean\n onEditBasicDetails?: () => void\n onManageHomeAddress?: () => void\n onManageWorkAddress?: () => void\n}\n\nexport interface BasicDetailsViewWithDataProps {\n employeeId: string\n onEditBasicDetails?: () => void\n onManageHomeAddress?: () => void\n onManageWorkAddress?: () => void\n}\n\n/**\n * Tab-mounted container for the Basic details tab. Owns the\n * `useEmployeeBasicDetails` fetch (employee + home address + work address)\n * so the requests only fire when the tab is mounted. Each card paints\n * its own skeleton + content as the underlying query resolves.\n */\nexport function BasicDetailsViewWithData({\n employeeId,\n onEditBasicDetails,\n onManageHomeAddress,\n onManageWorkAddress,\n}: BasicDetailsViewWithDataProps) {\n const basicDetails = useEmployeeBasicDetails({ employeeId })\n\n return (\n <BaseLayout error={basicDetails.errorHandling.errors}>\n <BasicDetailsView\n employee={basicDetails.data.employee}\n currentHomeAddress={basicDetails.data.currentHomeAddress}\n currentWorkAddress={basicDetails.data.currentWorkAddress}\n isEmployeeLoading={basicDetails.status.isEmployeeLoading}\n isHomeAddressLoading={basicDetails.status.isHomeAddressLoading}\n isWorkAddressLoading={basicDetails.status.isWorkAddressLoading}\n onEditBasicDetails={onEditBasicDetails}\n onManageHomeAddress={onManageHomeAddress}\n onManageWorkAddress={onManageWorkAddress}\n />\n </BaseLayout>\n )\n}\n\nexport function BasicDetailsView({\n employee,\n currentHomeAddress,\n currentWorkAddress,\n isLoading = false,\n isEmployeeLoading = isLoading,\n isHomeAddressLoading = isLoading,\n isWorkAddressLoading = isLoading,\n onEditBasicDetails,\n onManageHomeAddress,\n onManageWorkAddress,\n}: BasicDetailsViewProps) {\n const { t } = useTranslation('Employee.Dashboard')\n const Components = useComponentContext()\n\n const legalName = employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : undefined\n const startDate = employee ? formatDateLongWithYear(employee.jobs?.[0]?.hireDate) : undefined\n const dateOfBirth = employee ? formatDateLongWithYear(employee.dateOfBirth) : undefined\n const maskedSsn = employee?.hasSsn ? 'XXX-XX-XXXX' : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const basicDetailsItems = employee\n ? [\n { term: t('basicDetails.legalName'), description: legalName || emptyPlaceholder },\n { term: t('basicDetails.startDate'), description: startDate || emptyPlaceholder },\n {\n term: t('basicDetails.socialSecurityNumber'),\n description: maskedSsn || emptyPlaceholder,\n },\n { term: t('basicDetails.dateOfBirth'), description: dateOfBirth || emptyPlaceholder },\n { term: t('basicDetails.personalEmail'), description: employee.email || emptyPlaceholder },\n ]\n : []\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('basicDetails.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onEditBasicDetails}\n isDisabled={isEmployeeLoading}\n >\n {t('basicDetails.editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isEmployeeLoading ? (\n <Loading />\n ) : employee ? (\n <Components.DescriptionList items={basicDetailsItems} />\n ) : null}\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('homeAddress.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onManageHomeAddress}\n isDisabled={isHomeAddressLoading}\n >\n {t('homeAddress.manageCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isHomeAddressLoading ? (\n <Loading />\n ) : currentHomeAddress ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">\n {getStreet(currentHomeAddress).replace(',', '')}\n </Components.Text>\n <Components.Text variant=\"supporting\">\n {getCityStateZip(currentHomeAddress)}\n </Components.Text>\n </Flex>\n ) : (\n <Components.Text>{t('homeAddress.noAddress')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('workAddress.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onManageWorkAddress}\n isDisabled={isWorkAddressLoading}\n >\n {t('workAddress.manageCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isWorkAddressLoading ? (\n <Loading />\n ) : currentWorkAddress ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">\n {currentWorkAddress.street1}\n {currentWorkAddress.street2 ? `, ${currentWorkAddress.street2}` : ''}\n </Components.Text>\n <Components.Text variant=\"supporting\">\n {currentWorkAddress.city}, {currentWorkAddress.state} {currentWorkAddress.zip}\n </Components.Text>\n </Flex>\n ) : (\n <Components.Text>{t('workAddress.noAddress')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </Flex>\n )\n}\n"],"names":["BasicDetailsViewWithData","employeeId","onEditBasicDetails","onManageHomeAddress","onManageWorkAddress","basicDetails","useEmployeeBasicDetails","jsx","BaseLayout","BasicDetailsView","employee","currentHomeAddress","currentWorkAddress","isLoading","isEmployeeLoading","isHomeAddressLoading","isWorkAddressLoading","t","useTranslation","Components","useComponentContext","legalName","firstLastName","startDate","formatDateLongWithYear","dateOfBirth","maskedSsn","emptyPlaceholder","basicDetailsItems","jsxs","Flex","Loading","getStreet","getCityStateZip"],"mappings":"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"}