@gusto/embedded-react-sdk 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/CHANGELOG.md +77 -42
  2. package/dist/assets/icons/house.svg.js +10 -0
  3. package/dist/assets/icons/house.svg.js.map +1 -0
  4. package/dist/components/Common/EmptyData/EmptyData.d.ts +3 -0
  5. package/dist/components/Common/EmptyData/EmptyData.js +11 -11
  6. package/dist/components/Common/EmptyData/EmptyData.js.map +1 -1
  7. package/dist/components/Common/EmptyData/EmptyData.module.scss.js +8 -6
  8. package/dist/components/Common/EmptyData/EmptyData.module.scss.js.map +1 -1
  9. package/dist/components/Common/Form/Form.d.ts +1 -1
  10. package/dist/components/Common/Form/Form.js +15 -5
  11. package/dist/components/Common/Form/Form.js.map +1 -1
  12. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -1
  13. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  14. package/dist/components/Common/UI/TextInput/TextInput.js +37 -35
  15. package/dist/components/Common/UI/TextInput/TextInput.js.map +1 -1
  16. package/dist/components/Common/UI/TextInput/TextInputTypes.d.ts +1 -1
  17. package/dist/components/Common/UI/TextInput/TextInputTypes.js.map +1 -1
  18. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.d.ts +0 -1
  19. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +78 -61
  20. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  21. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/index.d.ts +1 -1
  22. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.d.ts +7 -6
  23. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js +54 -54
  24. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js.map +1 -1
  25. package/dist/components/Company/OnboardingFlow/OnboardingFlow.js +11 -15
  26. package/dist/components/Company/OnboardingFlow/OnboardingFlow.js.map +1 -1
  27. package/dist/components/Company/OnboardingFlow/OnboardingFlowComponents.d.ts +1 -1
  28. package/dist/components/Company/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  29. package/dist/components/Company/OnboardingFlow/onboardingStateMachine.js +37 -35
  30. package/dist/components/Company/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  31. package/dist/components/Company/PaySchedule/PaySchedule.d.ts +6 -1
  32. package/dist/components/Company/PaySchedule/PaySchedule.js +31 -148
  33. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  34. package/dist/components/Company/PaySchedule/PayScheduleComponents.d.ts +10 -0
  35. package/dist/components/Company/PaySchedule/PayScheduleComponents.js +26 -0
  36. package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -0
  37. package/dist/components/Company/PaySchedule/PayScheduleForm.d.ts +8 -0
  38. package/dist/components/Company/PaySchedule/PayScheduleForm.js +186 -0
  39. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -0
  40. package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +12 -0
  41. package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js.map +1 -0
  42. package/dist/components/Company/PaySchedule/PayScheduleList.d.ts +8 -0
  43. package/dist/components/Company/PaySchedule/PayScheduleList.js +102 -0
  44. package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -0
  45. package/dist/components/Company/PaySchedule/{_parts/List.module.scss.js → PayScheduleList.module.scss.js} +1 -1
  46. package/dist/components/Company/PaySchedule/PayScheduleList.module.scss.js.map +1 -0
  47. package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +6 -0
  48. package/dist/components/Company/PaySchedule/payScheduleStateMachine.js +49 -0
  49. package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -0
  50. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +11 -1
  51. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  52. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.js +13 -16
  53. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.js.map +1 -1
  54. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js +61 -63
  55. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  56. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.js +11 -11
  57. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.js.map +1 -1
  58. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +88 -111
  59. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  60. package/dist/components/Employee/Compensation/Edit.js +8 -8
  61. package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +2 -0
  62. package/dist/components/Employee/Dashboard/DashboardComponents.js +18 -6
  63. package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
  64. package/dist/components/Employee/Dashboard/dashboardStateMachine.d.ts +2 -0
  65. package/dist/components/Employee/Dashboard/dashboardStateMachine.js +55 -4
  66. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  67. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +0 -33
  68. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js +130 -214
  69. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  70. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +79 -56
  71. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  72. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/fields.d.ts +2 -3
  73. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/fields.js.map +1 -1
  74. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/index.d.ts +2 -2
  75. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +0 -1
  76. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/signEmployeeFormSchema.js +33 -49
  77. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -1
  78. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +12 -3
  79. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -1
  80. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -0
  81. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -0
  82. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -0
  83. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -0
  84. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -0
  85. package/dist/components/Employee/HomeAddress/management/HomeAddress.d.ts +6 -0
  86. package/dist/components/Employee/HomeAddress/management/HomeAddress.js +48 -0
  87. package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -0
  88. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +18 -0
  89. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +476 -0
  90. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -0
  91. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.d.ts +8 -0
  92. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.js +36 -0
  93. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.js.map +1 -0
  94. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.test.d.ts +1 -0
  95. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.d.ts +45 -0
  96. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +112 -0
  97. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -0
  98. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js +1 -1
  99. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  100. package/dist/components/Employee/PaymentMethod/Split.js +22 -21
  101. package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
  102. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +1 -1
  103. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  104. package/dist/components/Employee/Profile/AdminProfile.js +144 -146
  105. package/dist/components/Employee/Profile/AdminProfile.js.map +1 -1
  106. package/dist/components/Employee/Profile/EmployeeProfile.js +34 -30
  107. package/dist/components/Employee/Profile/EmployeeProfile.js.map +1 -1
  108. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +37 -36
  109. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  110. package/dist/components/Employee/Profile/shared/useHomeAddressForm/index.d.ts +2 -0
  111. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.d.ts +3 -0
  112. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js +24 -0
  113. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -0
  114. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +9 -3
  115. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +97 -97
  116. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  117. package/dist/components/Employee/Profile/shared/useWorkAddressForm/index.d.ts +2 -0
  118. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.d.ts +3 -0
  119. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js +24 -0
  120. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -0
  121. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +10 -4
  122. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +95 -84
  123. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  124. package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlow.js +11 -9
  125. package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlow.js.map +1 -1
  126. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js +71 -89
  127. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js.map +1 -1
  128. package/dist/components/Employee/WorkAddress/management/WorkAddress.d.ts +6 -0
  129. package/dist/components/Employee/WorkAddress/management/WorkAddress.js +48 -0
  130. package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -0
  131. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +16 -0
  132. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +367 -0
  133. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -0
  134. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.d.ts +4 -0
  135. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.js +35 -0
  136. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.js.map +1 -0
  137. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.d.ts +45 -0
  138. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +143 -0
  139. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -0
  140. package/dist/components/Employee/exports/employeeManagement.d.ts +3 -1
  141. package/dist/components/Employee/exports/employeeManagement.js +12 -10
  142. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  143. package/dist/components/Employee/exports/employeeOnboarding.d.ts +1 -1
  144. package/dist/components/Employee/exports/employeeOnboarding.js +1 -1
  145. package/dist/components/Employee/index.d.ts +5 -1
  146. package/dist/components/Employee/index.js +37 -33
  147. package/dist/components/Employee/index.js.map +1 -1
  148. package/dist/components/Flow/Flow.js +23 -50
  149. package/dist/components/Flow/Flow.js.map +1 -1
  150. package/dist/components/Flow/FlowHeader.d.ts +16 -0
  151. package/dist/components/Flow/FlowHeader.js +89 -0
  152. package/dist/components/Flow/FlowHeader.js.map +1 -0
  153. package/dist/components/Flow/useFlow.d.ts +33 -6
  154. package/dist/components/Flow/useFlow.js.map +1 -1
  155. package/dist/components/Payroll/Dismissal/DismissalFlow.js +20 -18
  156. package/dist/components/Payroll/Dismissal/DismissalFlow.js.map +1 -1
  157. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js +10 -10
  158. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  159. package/dist/components/Payroll/Dismissal/dismissalStateMachine.js +17 -19
  160. package/dist/components/Payroll/Dismissal/dismissalStateMachine.js.map +1 -1
  161. package/dist/components/Payroll/OffCycle/OffCycleFlow.js +13 -11
  162. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
  163. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +9 -9
  164. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  165. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js +25 -29
  166. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
  167. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js +43 -42
  168. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  169. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +38 -42
  170. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  171. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js +18 -17
  172. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  173. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +69 -78
  174. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  175. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +13 -12
  176. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  177. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +51 -82
  178. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  179. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +45 -43
  180. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  181. package/dist/components/Payroll/Transition/TransitionFlow.js +17 -15
  182. package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
  183. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +24 -24
  184. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  185. package/dist/components/Payroll/Transition/transitionStateMachine.js +25 -29
  186. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
  187. package/dist/components/UNSTABLE_TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +1 -0
  188. package/dist/helpers/breadcrumbHelpers.d.ts +35 -22
  189. package/dist/helpers/breadcrumbHelpers.js +45 -35
  190. package/dist/helpers/breadcrumbHelpers.js.map +1 -1
  191. package/dist/helpers/dateFormatting.d.ts +12 -0
  192. package/dist/helpers/dateFormatting.js +72 -65
  193. package/dist/helpers/dateFormatting.js.map +1 -1
  194. package/dist/helpers/formattedStrings.d.ts +2 -0
  195. package/dist/helpers/formattedStrings.js +30 -27
  196. package/dist/helpers/formattedStrings.js.map +1 -1
  197. package/dist/i18n/I18n.js +130 -35
  198. package/dist/i18n/I18n.js.map +1 -1
  199. package/dist/i18n/en/Company.PaySchedule.json.js +15 -13
  200. package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
  201. package/dist/i18n/en/Employee.HomeAddress.Management.json.js +60 -0
  202. package/dist/i18n/en/Employee.HomeAddress.Management.json.js.map +1 -0
  203. package/dist/i18n/en/Employee.HomeAddress.json.js +22 -20
  204. package/dist/i18n/en/Employee.HomeAddress.json.js.map +1 -1
  205. package/dist/i18n/en/Employee.I9SignatureForm.json.js +79 -75
  206. package/dist/i18n/en/Employee.I9SignatureForm.json.js.map +1 -1
  207. package/dist/i18n/en/Employee.PaymentMethod.json.js +13 -13
  208. package/dist/i18n/en/Employee.WorkAddress.Management.json.js +62 -0
  209. package/dist/i18n/en/Employee.WorkAddress.Management.json.js.map +1 -0
  210. package/dist/i18n/en/Payroll.RecoveryCasesList.json.js +14 -10
  211. package/dist/i18n/en/Payroll.RecoveryCasesList.json.js.map +1 -1
  212. package/dist/i18n/en/common.json.d.ts +1 -0
  213. package/dist/i18n/en/common.json.js +28 -26
  214. package/dist/i18n/en/common.json.js.map +1 -1
  215. package/dist/index.d.ts +6 -6
  216. package/dist/index.js +72 -68
  217. package/dist/index.js.map +1 -1
  218. package/dist/partner-hook-utils/form/fields/DatePickerHookField.d.ts +4 -2
  219. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js +19 -13
  220. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  221. package/dist/partner-hook-utils/form/fields/SelectHookField.d.ts +5 -2
  222. package/dist/partner-hook-utils/form/fields/SelectHookField.js +21 -17
  223. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  224. package/dist/shared/constants.d.ts +4 -0
  225. package/dist/shared/constants.js +14 -12
  226. package/dist/shared/constants.js.map +1 -1
  227. package/dist/style.css +1 -1
  228. package/dist/types/i18next.d.ts +98 -1
  229. package/docs/reference/endpoint-inventory.json +88 -43
  230. package/package.json +10 -10
  231. package/dist/_virtual/dynamic-import-helper.js +0 -17
  232. package/dist/_virtual/dynamic-import-helper.js.map +0 -1
  233. package/dist/components/Common/SignatureForm/SignatureForm.d.ts +0 -14
  234. package/dist/components/Common/SignatureForm/SignatureForm.js +0 -26
  235. package/dist/components/Common/SignatureForm/SignatureForm.js.map +0 -1
  236. package/dist/components/Common/SignatureForm/SignatureForm.module.scss.js +0 -10
  237. package/dist/components/Common/SignatureForm/SignatureForm.module.scss.js.map +0 -1
  238. package/dist/components/Common/SignatureForm/SignatureFormActions.d.ts +0 -8
  239. package/dist/components/Common/SignatureForm/SignatureFormActions.js +0 -19
  240. package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +0 -1
  241. package/dist/components/Common/SignatureForm/SignatureFormFields.d.ts +0 -9
  242. package/dist/components/Common/SignatureForm/SignatureFormFields.js +0 -36
  243. package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +0 -1
  244. package/dist/components/Common/SignatureForm/index.d.ts +0 -5
  245. package/dist/components/Company/DocumentSigner/SignatureForm/Actions.d.ts +0 -1
  246. package/dist/components/Company/DocumentSigner/SignatureForm/Actions.js +0 -20
  247. package/dist/components/Company/DocumentSigner/SignatureForm/Actions.js.map +0 -1
  248. package/dist/components/Company/DocumentSigner/SignatureForm/Form.d.ts +0 -1
  249. package/dist/components/Company/DocumentSigner/SignatureForm/Form.js +0 -20
  250. package/dist/components/Company/DocumentSigner/SignatureForm/Form.js.map +0 -1
  251. package/dist/components/Company/DocumentSigner/SignatureForm/Head.d.ts +0 -1
  252. package/dist/components/Company/DocumentSigner/SignatureForm/Head.js +0 -35
  253. package/dist/components/Company/DocumentSigner/SignatureForm/Head.js.map +0 -1
  254. package/dist/components/Company/DocumentSigner/SignatureForm/Preview.d.ts +0 -1
  255. package/dist/components/Company/DocumentSigner/SignatureForm/Preview.js +0 -20
  256. package/dist/components/Company/DocumentSigner/SignatureForm/Preview.js.map +0 -1
  257. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.d.ts +0 -9
  258. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +0 -22
  259. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +0 -1
  260. package/dist/components/Company/PaySchedule/_parts/Actions.d.ts +0 -1
  261. package/dist/components/Company/PaySchedule/_parts/Actions.js +0 -62
  262. package/dist/components/Company/PaySchedule/_parts/Actions.js.map +0 -1
  263. package/dist/components/Company/PaySchedule/_parts/Edit.d.ts +0 -1
  264. package/dist/components/Company/PaySchedule/_parts/Edit.js +0 -134
  265. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +0 -1
  266. package/dist/components/Company/PaySchedule/_parts/Edit.module.scss.js +0 -14
  267. package/dist/components/Company/PaySchedule/_parts/Edit.module.scss.js.map +0 -1
  268. package/dist/components/Company/PaySchedule/_parts/Head.d.ts +0 -1
  269. package/dist/components/Company/PaySchedule/_parts/Head.js +0 -47
  270. package/dist/components/Company/PaySchedule/_parts/Head.js.map +0 -1
  271. package/dist/components/Company/PaySchedule/_parts/List.d.ts +0 -1
  272. package/dist/components/Company/PaySchedule/_parts/List.js +0 -57
  273. package/dist/components/Company/PaySchedule/_parts/List.js.map +0 -1
  274. package/dist/components/Company/PaySchedule/_parts/List.module.scss.js.map +0 -1
  275. package/dist/components/Company/PaySchedule/_parts/index.d.ts +0 -5
  276. package/dist/components/Company/PaySchedule/usePaySchedule.d.ts +0 -39
  277. package/dist/components/Company/PaySchedule/usePaySchedule.js +0 -30
  278. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +0 -1
  279. package/dist/components/Employee/DocumentSigner/SignatureForm/Actions.d.ts +0 -1
  280. package/dist/components/Employee/DocumentSigner/SignatureForm/Actions.js +0 -20
  281. package/dist/components/Employee/DocumentSigner/SignatureForm/Actions.js.map +0 -1
  282. package/dist/components/Employee/DocumentSigner/SignatureForm/Form.d.ts +0 -1
  283. package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js +0 -20
  284. package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js.map +0 -1
  285. package/dist/components/Employee/DocumentSigner/SignatureForm/Head.d.ts +0 -1
  286. package/dist/components/Employee/DocumentSigner/SignatureForm/Head.js +0 -35
  287. package/dist/components/Employee/DocumentSigner/SignatureForm/Head.js.map +0 -1
  288. package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.d.ts +0 -1
  289. package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js +0 -20
  290. package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js.map +0 -1
  291. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.d.ts +0 -9
  292. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +0 -20
  293. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +0 -1
  294. package/dist/components/Employee/employee-list/management/ManagementEmployeeList.js.map +0 -1
  295. package/dist/components/Employee/employee-list/management/ManagementEmployeeListView.js.map +0 -1
  296. package/dist/components/Employee/employee-list/onboarding/EmployeeList.js.map +0 -1
  297. package/dist/components/Employee/employee-list/onboarding/EmployeeListView.js.map +0 -1
  298. package/dist/components/Employee/employee-list/shared/useEmployeeList.js.map +0 -1
  299. /package/dist/components/Employee/{employee-list → EmployeeList}/management/ManagementEmployeeList.d.ts +0 -0
  300. /package/dist/components/Employee/{employee-list → EmployeeList}/management/ManagementEmployeeList.js +0 -0
  301. /package/dist/components/Employee/{employee-list → EmployeeList}/management/ManagementEmployeeListView.d.ts +0 -0
  302. /package/dist/components/Employee/{employee-list → EmployeeList}/management/ManagementEmployeeListView.js +0 -0
  303. /package/dist/components/Employee/{employee-list → EmployeeList}/onboarding/EmployeeList.d.ts +0 -0
  304. /package/dist/components/Employee/{employee-list → EmployeeList}/onboarding/EmployeeList.js +0 -0
  305. /package/dist/components/Employee/{employee-list → EmployeeList}/onboarding/EmployeeListView.d.ts +0 -0
  306. /package/dist/components/Employee/{employee-list → EmployeeList}/onboarding/EmployeeListView.js +0 -0
  307. /package/dist/components/Employee/{employee-list → EmployeeList}/shared/index.d.ts +0 -0
  308. /package/dist/components/Employee/{employee-list → EmployeeList}/shared/useEmployeeList.d.ts +0 -0
  309. /package/dist/components/Employee/{employee-list → EmployeeList}/shared/useEmployeeList.js +0 -0
@@ -0,0 +1,476 @@
1
+ import { jsxs as r, jsx as e, Fragment as V } from "react/jsx-runtime";
2
+ import { useState as I, useRef as Re, useLayoutEffect as ke, useMemo as w } from "react";
3
+ import { useTranslation as O, Trans as L } from "react-i18next";
4
+ import { useWatch as Te } from "react-hook-form";
5
+ import { getPendingFutureHomeAddress as Pe, formatPendingHomeAddressLine as z } from "./getPendingFutureHomeAddress.js";
6
+ import Ie from "../../../../assets/icons/house.svg.js";
7
+ import we from "../../../../assets/icons/pencil.svg.js";
8
+ import Le from "../../../../assets/icons/trashcan.svg.js";
9
+ import { HomeAddressErrorCodes as a } from "../../Profile/shared/useHomeAddressForm/homeAddressSchema.js";
10
+ import { SDKFormProvider as Z } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
11
+ import { Flex as s, FlexItem as Ae } from "../../../Common/Flex/Flex.js";
12
+ import { Grid as j } from "../../../Common/Grid/Grid.js";
13
+ import { EmptyData as Fe } from "../../../Common/EmptyData/EmptyData.js";
14
+ import { useComponentContext as Y } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
15
+ import { formatDateLongWithYear as E, normalizeToDate as Ue, addDays as We } from "../../../../helpers/dateFormatting.js";
16
+ import { formatStreetForDisplay as K, getCityStateZip as $ } from "../../../../helpers/formattedStrings.js";
17
+ import { HamburgerMenu as He } from "../../../Common/HamburgerMenu/HamburgerMenu.js";
18
+ import { useDataView as Be } from "../../../Common/DataView/useDataView.js";
19
+ import { DataView as Qe } from "../../../Common/DataView/DataView.js";
20
+ function q({
21
+ CourtesyWithholding: u,
22
+ formHook: m,
23
+ tHa: c
24
+ }) {
25
+ const C = Y(), { control: A } = m.form.hookFormInternals.formMethods, f = Te({ control: A, name: "courtesyWithholding" });
26
+ return /* @__PURE__ */ r(V, { children: [
27
+ /* @__PURE__ */ e(
28
+ u,
29
+ {
30
+ label: c("courtesyWithholdingLabel"),
31
+ description: /* @__PURE__ */ r(V, { children: [
32
+ c("courtesyWithholdingDescription"),
33
+ /* @__PURE__ */ e(
34
+ L,
35
+ {
36
+ t: c,
37
+ i18nKey: "learnMoreCta",
38
+ components: {
39
+ LearnMoreLink: /* @__PURE__ */ e(C.Link, {})
40
+ }
41
+ }
42
+ )
43
+ ] })
44
+ }
45
+ ),
46
+ f ? /* @__PURE__ */ e(C.Alert, { label: c("withholdingTitle"), status: "warning", children: /* @__PURE__ */ e(L, { t: c, i18nKey: "withholdingNote" }) }) : null
47
+ ] });
48
+ }
49
+ function at({
50
+ editHomeAddressForm: u,
51
+ createHomeAddressForm: m,
52
+ employeeHomeAddresses: c,
53
+ employeeDisplayName: C,
54
+ editingHomeAddressUuid: A,
55
+ onEditAddressTargetChange: f,
56
+ onSaved: G,
57
+ onConfirmDelete: N,
58
+ isDeletePending: _ = !1
59
+ }) {
60
+ const { t } = O("Employee.HomeAddress.Management"), { t: o } = O("Employee.HomeAddress"), n = Y(), [l, y] = I(null), [h, S] = I(null), R = Re(null), [k, F] = I(void 0);
61
+ ke(() => {
62
+ if (!l) {
63
+ F(void 0);
64
+ return;
65
+ }
66
+ const i = () => {
67
+ F(R.current ?? void 0);
68
+ };
69
+ if (i(), R.current == null) {
70
+ const d = requestAnimationFrame(i);
71
+ return () => {
72
+ cancelAnimationFrame(d);
73
+ };
74
+ }
75
+ }, [l]);
76
+ const {
77
+ data: { homeAddress: g },
78
+ status: U,
79
+ actions: { onSubmit: J },
80
+ form: X
81
+ } = u, p = c, {
82
+ status: W,
83
+ actions: { onSubmit: ee },
84
+ form: te
85
+ } = m, {
86
+ Fields: {
87
+ Street1: ie,
88
+ Street2: ne,
89
+ City: oe,
90
+ State: re,
91
+ Zip: ae,
92
+ CourtesyWithholding: se
93
+ }
94
+ } = X, {
95
+ Fields: {
96
+ Street1: le,
97
+ Street2: de,
98
+ City: ce,
99
+ State: ue,
100
+ Zip: me,
101
+ CourtesyWithholding: fe,
102
+ EffectiveDate: H
103
+ }
104
+ } = te, B = {
105
+ [a.REQUIRED]: o("validations.zip"),
106
+ [a.INVALID_ZIP]: o("validations.zip")
107
+ }, he = {
108
+ [a.REQUIRED]: t("form.startDateRequired")
109
+ }, M = w(
110
+ () => Pe(p),
111
+ [p]
112
+ ), Q = w(() => {
113
+ if (!(!h || !p))
114
+ return p.find((i) => i.uuid === h);
115
+ }, [h, p]), ge = w(() => {
116
+ const i = C.trim();
117
+ return i ? `${i}'s` : t("changePendingPossessiveFallback");
118
+ }, [C, t]), b = [...p ?? []].sort((i, d) => {
119
+ const v = i.effectiveDate?.toString() ?? "", D = d.effectiveDate?.toString() ?? "";
120
+ return !v && !D ? 0 : v ? D ? v.localeCompare(D) : -1 : 1;
121
+ }), pe = [...b.filter((i) => i.active !== !0)].reverse(), ve = (i) => {
122
+ const d = b.findIndex((Ee) => Ee.uuid === i.uuid);
123
+ if (d === -1 || d >= b.length - 1) return "—";
124
+ const v = b[d + 1]?.effectiveDate;
125
+ if (!v) return "—";
126
+ const D = Ue(v.toString());
127
+ if (!D) return "—";
128
+ const P = We(D, -1), Me = P.getFullYear(), be = String(P.getMonth() + 1).padStart(2, "0"), xe = String(P.getDate()).padStart(2, "0");
129
+ return E(`${Me}-${be}-${xe}`);
130
+ }, De = Be({
131
+ data: pe,
132
+ columns: [
133
+ {
134
+ title: t("columns.address"),
135
+ render: (i) => /* @__PURE__ */ r(s, { flexDirection: "column", gap: 0, children: [
136
+ /* @__PURE__ */ e(n.Text, { weight: "medium", children: K(i) }),
137
+ /* @__PURE__ */ e(n.Text, { variant: "supporting", children: $(i) })
138
+ ] })
139
+ },
140
+ {
141
+ title: t("columns.startDate"),
142
+ render: (i) => i.effectiveDate ? E(i.effectiveDate.toString()) : "—"
143
+ },
144
+ {
145
+ title: t("columns.endDate"),
146
+ render: (i) => ve(i)
147
+ }
148
+ ],
149
+ itemMenu: (i) => /* @__PURE__ */ e(
150
+ He,
151
+ {
152
+ triggerLabel: t("rowMenuAriaLabel"),
153
+ items: [
154
+ {
155
+ label: t("rowEdit"),
156
+ onClick: () => {
157
+ f(i.uuid), y("edit");
158
+ },
159
+ icon: /* @__PURE__ */ e(we, { "aria-hidden": !0 })
160
+ },
161
+ {
162
+ label: t("rowDelete"),
163
+ onClick: () => {
164
+ i.active !== !0 && S(i.uuid);
165
+ },
166
+ icon: /* @__PURE__ */ e(Le, { "aria-hidden": !0 })
167
+ }
168
+ ]
169
+ }
170
+ ),
171
+ emptyState: () => /* @__PURE__ */ e("div", { "data-testid": "home-address-history-empty", children: /* @__PURE__ */ e(
172
+ Fe,
173
+ {
174
+ icon: /* @__PURE__ */ e(Ie, { "aria-hidden": !0 }),
175
+ title: t("historyEmptyTitle"),
176
+ description: t("historyEmptyDescription")
177
+ }
178
+ ) })
179
+ }), T = () => {
180
+ y(null), f(void 0);
181
+ }, Ce = async () => {
182
+ if (!h)
183
+ return;
184
+ await N(h) && S(null);
185
+ }, x = l === "edit" ? {
186
+ onSubmit: J,
187
+ formMethods: u.form.hookFormInternals.formMethods,
188
+ isPending: U.isPending
189
+ } : l === "create" ? {
190
+ onSubmit: ee,
191
+ formMethods: m.form.hookFormInternals.formMethods,
192
+ isPending: W.isPending
193
+ } : null, ye = async () => {
194
+ if (!x)
195
+ return;
196
+ const i = await x.onSubmit();
197
+ i && G(i);
198
+ const d = Object.keys(x.formMethods.formState.errors).length > 0;
199
+ (i || !d) && T();
200
+ }, Se = x?.isPending ?? !1;
201
+ return /* @__PURE__ */ r(s, { flexDirection: "column", gap: 24, children: [
202
+ /* @__PURE__ */ r(s, { flexDirection: "column", gap: 8, alignItems: "flex-start", children: [
203
+ /* @__PURE__ */ e(n.Heading, { as: "h1", children: t("title") }),
204
+ /* @__PURE__ */ e(n.Text, { variant: "supporting", children: t("description") })
205
+ ] }),
206
+ /* @__PURE__ */ e(
207
+ n.Box,
208
+ {
209
+ header: /* @__PURE__ */ e(
210
+ n.BoxHeader,
211
+ {
212
+ title: t("currentSectionTitle"),
213
+ action: g ? /* @__PURE__ */ e(
214
+ n.Button,
215
+ {
216
+ variant: "secondary",
217
+ onClick: () => {
218
+ f(void 0), y("edit");
219
+ },
220
+ isLoading: U.isPending,
221
+ children: t("editCta")
222
+ }
223
+ ) : void 0
224
+ }
225
+ ),
226
+ footer: /* @__PURE__ */ e(
227
+ n.Button,
228
+ {
229
+ variant: "secondary",
230
+ onClick: () => {
231
+ f(void 0), y("create");
232
+ },
233
+ isLoading: W.isPending,
234
+ children: t("changeCta")
235
+ }
236
+ ),
237
+ children: /* @__PURE__ */ r(s, { flexDirection: "column", gap: 16, children: [
238
+ g ? /* @__PURE__ */ r(s, { flexDirection: "column", gap: 4, children: [
239
+ /* @__PURE__ */ r(Ae, { children: [
240
+ /* @__PURE__ */ e(n.Text, { weight: "medium", children: K(g) }),
241
+ /* @__PURE__ */ e(n.Text, { weight: "medium", children: $(g) })
242
+ ] }),
243
+ g.effectiveDate ? /* @__PURE__ */ e(n.Text, { variant: "supporting", children: t("currentSince", {
244
+ date: E(g.effectiveDate.toString())
245
+ }) }) : null
246
+ ] }) : /* @__PURE__ */ e(n.Text, { children: o("formTitle") }),
247
+ M ? /* @__PURE__ */ e(n.Alert, { status: "warning", label: t("changePendingTitle"), children: /* @__PURE__ */ e(n.Text, { variant: "supporting", children: t("changePendingDescription", {
248
+ possessiveLabel: ge,
249
+ newAddress: z(M),
250
+ effectiveDate: M.effectiveDate ? E(M.effectiveDate.toString()) : "—",
251
+ interpolation: { escapeValue: !1 }
252
+ }) }) }) : null
253
+ ] })
254
+ }
255
+ ),
256
+ /* @__PURE__ */ r(s, { flexDirection: "column", gap: 12, children: [
257
+ /* @__PURE__ */ e(n.Heading, { as: "h2", children: t("historySectionTitle") }),
258
+ /* @__PURE__ */ e(Qe, { label: t("historySectionTitle"), ...De })
259
+ ] }),
260
+ /* @__PURE__ */ e(
261
+ n.Modal,
262
+ {
263
+ isOpen: l !== null,
264
+ onClose: T,
265
+ shouldCloseOnBackdropClick: !1,
266
+ containerRef: R,
267
+ footer: /* @__PURE__ */ r(s, { flexDirection: "row", gap: 12, justifyContent: "flex-end", children: [
268
+ /* @__PURE__ */ e(
269
+ n.Button,
270
+ {
271
+ variant: "secondary",
272
+ onClick: () => {
273
+ T();
274
+ },
275
+ children: t("cancelCta")
276
+ }
277
+ ),
278
+ /* @__PURE__ */ e(
279
+ n.Button,
280
+ {
281
+ variant: "primary",
282
+ onClick: () => {
283
+ ye();
284
+ },
285
+ isLoading: Se,
286
+ children: t("submitCta")
287
+ }
288
+ )
289
+ ] }),
290
+ children: /* @__PURE__ */ r(s, { flexDirection: "column", gap: 16, children: [
291
+ /* @__PURE__ */ e(n.Heading, { as: "h2", children: t(l === "edit" ? "editModalTitle" : "createModalTitle") }),
292
+ /* @__PURE__ */ e(n.Text, { variant: "supporting", children: t(l === "edit" ? "editModalDescription" : "createModalDescription") }),
293
+ l === "edit" ? /* @__PURE__ */ e(Z, { formHookResult: u, children: /* @__PURE__ */ r(
294
+ j,
295
+ {
296
+ gridTemplateColumns: {
297
+ base: "1fr",
298
+ small: "1fr"
299
+ },
300
+ gap: 20,
301
+ children: [
302
+ /* @__PURE__ */ e(
303
+ ie,
304
+ {
305
+ label: o("street1"),
306
+ validationMessages: {
307
+ [a.REQUIRED]: o("validations.street1")
308
+ }
309
+ }
310
+ ),
311
+ /* @__PURE__ */ e(
312
+ ne,
313
+ {
314
+ label: o("street2"),
315
+ validationMessages: {
316
+ [a.REQUIRED]: o("validations.street1")
317
+ }
318
+ }
319
+ ),
320
+ /* @__PURE__ */ e(
321
+ oe,
322
+ {
323
+ label: o("city"),
324
+ validationMessages: {
325
+ [a.REQUIRED]: o("validations.city")
326
+ }
327
+ }
328
+ ),
329
+ /* @__PURE__ */ e(
330
+ re,
331
+ {
332
+ label: o("state"),
333
+ validationMessages: {
334
+ [a.REQUIRED]: o("validations.state")
335
+ },
336
+ portalContainer: k
337
+ }
338
+ ),
339
+ /* @__PURE__ */ e(ae, { label: o("zip"), validationMessages: B }),
340
+ /* @__PURE__ */ e(
341
+ q,
342
+ {
343
+ CourtesyWithholding: se,
344
+ formHook: u,
345
+ tHa: o
346
+ }
347
+ )
348
+ ]
349
+ }
350
+ ) }) : null,
351
+ l === "create" ? /* @__PURE__ */ e(Z, { formHookResult: m, children: /* @__PURE__ */ r(
352
+ j,
353
+ {
354
+ gridTemplateColumns: {
355
+ base: "1fr",
356
+ small: "1fr"
357
+ },
358
+ gap: 20,
359
+ children: [
360
+ H ? /* @__PURE__ */ e(
361
+ H,
362
+ {
363
+ label: t("columns.startDate"),
364
+ description: t("startDateHelper"),
365
+ validationMessages: he,
366
+ portalContainer: k
367
+ }
368
+ ) : null,
369
+ /* @__PURE__ */ e(
370
+ le,
371
+ {
372
+ label: o("street1"),
373
+ validationMessages: {
374
+ [a.REQUIRED]: o("validations.street1")
375
+ }
376
+ }
377
+ ),
378
+ /* @__PURE__ */ e(
379
+ de,
380
+ {
381
+ label: o("street2"),
382
+ validationMessages: {
383
+ [a.REQUIRED]: o("validations.street1")
384
+ }
385
+ }
386
+ ),
387
+ /* @__PURE__ */ e(
388
+ ce,
389
+ {
390
+ label: o("city"),
391
+ validationMessages: {
392
+ [a.REQUIRED]: o("validations.city")
393
+ }
394
+ }
395
+ ),
396
+ /* @__PURE__ */ e(
397
+ ue,
398
+ {
399
+ label: o("state"),
400
+ validationMessages: {
401
+ [a.REQUIRED]: o("validations.state")
402
+ },
403
+ portalContainer: k
404
+ }
405
+ ),
406
+ /* @__PURE__ */ e(me, { label: o("zip"), validationMessages: B }),
407
+ /* @__PURE__ */ e(
408
+ q,
409
+ {
410
+ CourtesyWithholding: fe,
411
+ formHook: m,
412
+ tHa: o
413
+ }
414
+ )
415
+ ]
416
+ }
417
+ ) }) : null
418
+ ] })
419
+ }
420
+ ),
421
+ /* @__PURE__ */ e(
422
+ n.Modal,
423
+ {
424
+ isOpen: h !== null,
425
+ onClose: () => {
426
+ S(null);
427
+ },
428
+ shouldCloseOnBackdropClick: !1,
429
+ footer: /* @__PURE__ */ r(s, { flexDirection: "row", gap: 12, justifyContent: "flex-end", children: [
430
+ /* @__PURE__ */ e(
431
+ n.Button,
432
+ {
433
+ variant: "secondary",
434
+ onClick: () => {
435
+ S(null);
436
+ },
437
+ children: t("cancelCta")
438
+ }
439
+ ),
440
+ /* @__PURE__ */ e(
441
+ n.Button,
442
+ {
443
+ variant: "error",
444
+ onClick: () => {
445
+ Ce();
446
+ },
447
+ isLoading: _,
448
+ children: t("deleteModalConfirmCta")
449
+ }
450
+ )
451
+ ] }),
452
+ children: /* @__PURE__ */ r(s, { flexDirection: "column", gap: 16, children: [
453
+ /* @__PURE__ */ e(n.Heading, { as: "h2", children: t("deleteModalTitle") }),
454
+ /* @__PURE__ */ e(n.Text, { variant: "supporting", children: Q ? /* @__PURE__ */ e(
455
+ L,
456
+ {
457
+ t,
458
+ i18nKey: "deleteModalDescription",
459
+ values: {
460
+ address: z(Q)
461
+ },
462
+ components: {
463
+ strong: /* @__PURE__ */ e(n.Text, { weight: "medium", as: "span" })
464
+ },
465
+ tOptions: { interpolation: { escapeValue: !1 } }
466
+ }
467
+ ) : null })
468
+ ] })
469
+ }
470
+ )
471
+ ] });
472
+ }
473
+ export {
474
+ at as HomeAddressView
475
+ };
476
+ //# sourceMappingURL=HomeAddressView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeAddressView.js","sources":["../../../../../src/components/Employee/HomeAddress/management/HomeAddressView.tsx"],"sourcesContent":["import { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\nimport { useWatch } from 'react-hook-form'\nimport type { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport type { TFunction } from 'i18next'\nimport {\n formatPendingHomeAddressLine,\n getPendingFutureHomeAddress,\n} from './getPendingFutureHomeAddress'\nimport HouseIcon from '@/assets/icons/house.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport { HomeAddressErrorCodes } from '@/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema'\nimport type { UseHomeAddressFormReady } from '@/components/Employee/Profile/shared/useHomeAddressForm'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport type { HookSubmitResult } from '@/partner-hook-utils/types'\nimport { DataView, EmptyData, HamburgerMenu, useDataView } from '@/components/Common'\nimport { Flex, FlexItem } from '@/components/Common/Flex/Flex'\nimport { Grid } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { addDays, formatDateLongWithYear, normalizeToDate } from '@/helpers/dateFormatting'\nimport { formatStreetForDisplay, getCityStateZip } from '@/helpers/formattedStrings'\n\nfunction HomeAddressCourtesyWithholdingBlock({\n CourtesyWithholding,\n formHook,\n tHa,\n}: {\n CourtesyWithholding: UseHomeAddressFormReady['form']['Fields']['CourtesyWithholding']\n formHook: UseHomeAddressFormReady\n tHa: TFunction<'Employee.HomeAddress'>\n}) {\n const Components = useComponentContext()\n const { control } = formHook.form.hookFormInternals.formMethods\n const courtesyWithholdingEnabled = useWatch({ control, name: 'courtesyWithholding' })\n\n return (\n <>\n <CourtesyWithholding\n label={tHa('courtesyWithholdingLabel')}\n description={\n <>\n {tHa('courtesyWithholdingDescription')}\n <Trans\n t={tHa}\n i18nKey=\"learnMoreCta\"\n components={{\n LearnMoreLink: <Components.Link />,\n }}\n />\n </>\n }\n />\n {courtesyWithholdingEnabled ? (\n <Components.Alert label={tHa('withholdingTitle')} status=\"warning\">\n <Trans t={tHa} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n ) : null}\n </>\n )\n}\n\nexport interface HomeAddressViewProps {\n editHomeAddressForm: UseHomeAddressFormReady\n createHomeAddressForm: UseHomeAddressFormReady\n /** Full list for history, pending future row, and delete confirmation (from management list query). */\n employeeHomeAddresses: EmployeeAddress[] | undefined\n employeeDisplayName: string\n /** Resolved UUID passed to the edit form (`homeAddressUuid`); active row when not editing history. */\n editingHomeAddressUuid: string | undefined\n /** `undefined` = edit active/current address; otherwise set to a history row’s UUID. */\n onEditAddressTargetChange: (homeAddressUuid: string | undefined) => void\n onSaved: (result: HookSubmitResult<EmployeeAddress>) => void\n onConfirmDelete: (homeAddressUuid: string) => Promise<boolean>\n isDeletePending?: boolean\n}\n\nexport function HomeAddressView({\n editHomeAddressForm,\n createHomeAddressForm,\n employeeHomeAddresses,\n employeeDisplayName,\n editingHomeAddressUuid,\n onEditAddressTargetChange,\n onSaved,\n onConfirmDelete,\n isDeletePending = false,\n}: HomeAddressViewProps) {\n const { t } = useTranslation('Employee.HomeAddress.Management')\n const { t: tHa } = useTranslation('Employee.HomeAddress')\n const Components = useComponentContext()\n const [addressModal, setAddressModal] = useState<'edit' | 'create' | null>(null)\n const [deleteConfirmUuid, setDeleteConfirmUuid] = useState<string | null>(null)\n const addressModalContainerRef = useRef<HTMLDivElement>(null)\n const [addressModalPortal, setAddressModalPortal] = useState<HTMLElement | undefined>(undefined)\n\n useLayoutEffect(() => {\n if (!addressModal) {\n setAddressModalPortal(undefined)\n return\n }\n const syncPortal = () => {\n setAddressModalPortal(addressModalContainerRef.current ?? undefined)\n }\n syncPortal()\n if (addressModalContainerRef.current == null) {\n const id = requestAnimationFrame(syncPortal)\n return () => {\n cancelAnimationFrame(id)\n }\n }\n }, [addressModal])\n\n const {\n data: { homeAddress },\n status: editStatus,\n actions: { onSubmit: editOnSubmit },\n form: editForm,\n } = editHomeAddressForm\n\n const homeAddresses = employeeHomeAddresses\n\n const {\n status: createStatus,\n actions: { onSubmit: createOnSubmit },\n form: createForm,\n } = createHomeAddressForm\n\n const {\n Fields: {\n Street1: EditStreet1,\n Street2: EditStreet2,\n City: EditCity,\n State: EditState,\n Zip: EditZip,\n CourtesyWithholding: EditCourtesyWithholding,\n },\n } = editForm\n\n const {\n Fields: {\n Street1: CreateStreet1,\n Street2: CreateStreet2,\n City: CreateCity,\n State: CreateState,\n Zip: CreateZip,\n CourtesyWithholding: CreateCourtesyWithholding,\n EffectiveDate: CreateEffectiveDate,\n },\n } = createForm\n\n const zipValidation = {\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.zip'),\n [HomeAddressErrorCodes.INVALID_ZIP]: tHa('validations.zip'),\n }\n\n const startDateValidation = {\n [HomeAddressErrorCodes.REQUIRED]: t('form.startDateRequired'),\n }\n\n const pendingFutureAddress = useMemo(\n () => getPendingFutureHomeAddress(homeAddresses),\n [homeAddresses],\n )\n\n const addressForDeleteModal = useMemo(() => {\n if (!deleteConfirmUuid || !homeAddresses) {\n return undefined\n }\n return homeAddresses.find(a => a.uuid === deleteConfirmUuid)\n }, [deleteConfirmUuid, homeAddresses])\n\n const changePendingPossessiveLabel = useMemo(() => {\n const trimmed = employeeDisplayName.trim()\n return trimmed ? `${trimmed}'s` : t('changePendingPossessiveFallback')\n }, [employeeDisplayName, t])\n\n const chronologicalAsc = [...(homeAddresses ?? [])].sort((a, b) => {\n const aDate = a.effectiveDate?.toString() ?? ''\n const bDate = b.effectiveDate?.toString() ?? ''\n if (!aDate && !bDate) return 0\n if (!aDate) return 1\n if (!bDate) return -1\n return aDate.localeCompare(bDate)\n })\n\n const historyAddresses = chronologicalAsc.filter(address => address.active !== true)\n const sortedHistory = [...historyAddresses].reverse()\n\n const historyEndDate = (row: EmployeeAddress) => {\n const idx = chronologicalAsc.findIndex(a => a.uuid === row.uuid)\n if (idx === -1 || idx >= chronologicalAsc.length - 1) return '—'\n const nextStart = chronologicalAsc[idx + 1]?.effectiveDate\n if (!nextStart) return '—'\n const nextDate = normalizeToDate(nextStart.toString())\n if (!nextDate) return '—'\n const endDate = addDays(nextDate, -1)\n const y = endDate.getFullYear()\n const m = String(endDate.getMonth() + 1).padStart(2, '0')\n const d = String(endDate.getDate()).padStart(2, '0')\n return formatDateLongWithYear(`${y}-${m}-${d}`)\n }\n\n const historyDataView = useDataView({\n data: sortedHistory,\n columns: [\n {\n title: t('columns.address'),\n render: (row: EmployeeAddress) => (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">{formatStreetForDisplay(row)}</Components.Text>\n <Components.Text variant=\"supporting\">{getCityStateZip(row)}</Components.Text>\n </Flex>\n ),\n },\n {\n title: t('columns.startDate'),\n render: (row: EmployeeAddress) =>\n row.effectiveDate ? formatDateLongWithYear(row.effectiveDate.toString()) : '—',\n },\n {\n title: t('columns.endDate'),\n render: (row: EmployeeAddress) => historyEndDate(row),\n },\n ],\n itemMenu: (row: EmployeeAddress) => (\n <HamburgerMenu\n triggerLabel={t('rowMenuAriaLabel')}\n items={[\n {\n label: t('rowEdit'),\n onClick: () => {\n onEditAddressTargetChange(row.uuid)\n setAddressModal('edit')\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('rowDelete'),\n onClick: () => {\n if (row.active === true) {\n return\n }\n setDeleteConfirmUuid(row.uuid)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n />\n ),\n emptyState: () => (\n <div data-testid=\"home-address-history-empty\">\n <EmptyData\n icon={<HouseIcon aria-hidden />}\n title={t('historyEmptyTitle')}\n description={t('historyEmptyDescription')}\n />\n </div>\n ),\n })\n\n const closeAddressModal = () => {\n setAddressModal(null)\n onEditAddressTargetChange(undefined)\n }\n\n const handleDeleteModalConfirm = async () => {\n if (!deleteConfirmUuid) {\n return\n }\n const deleted = await onConfirmDelete(deleteConfirmUuid)\n if (deleted) {\n setDeleteConfirmUuid(null)\n }\n }\n\n const addressModalSession =\n addressModal === 'edit'\n ? {\n onSubmit: editOnSubmit,\n formMethods: editHomeAddressForm.form.hookFormInternals.formMethods,\n isPending: editStatus.isPending,\n }\n : addressModal === 'create'\n ? {\n onSubmit: createOnSubmit,\n formMethods: createHomeAddressForm.form.hookFormInternals.formMethods,\n isPending: createStatus.isPending,\n }\n : null\n\n const handleSave = async () => {\n if (!addressModalSession) {\n return\n }\n\n const submitResult = await addressModalSession.onSubmit()\n\n if (submitResult) {\n onSaved(submitResult)\n }\n\n const hasFieldErrors = Object.keys(addressModalSession.formMethods.formState.errors).length > 0\n if (submitResult || !hasFieldErrors) {\n closeAddressModal()\n }\n }\n\n const modalPending = addressModalSession?.isPending ?? false\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Flex flexDirection=\"column\" gap={8} alignItems=\"flex-start\">\n <Components.Heading as=\"h1\">{t('title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('currentSectionTitle')}\n action={\n homeAddress ? (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditAddressTargetChange(undefined)\n setAddressModal('edit')\n }}\n isLoading={editStatus.isPending}\n >\n {t('editCta')}\n </Components.Button>\n ) : undefined\n }\n />\n }\n footer={\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditAddressTargetChange(undefined)\n setAddressModal('create')\n }}\n isLoading={createStatus.isPending}\n >\n {t('changeCta')}\n </Components.Button>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {homeAddress ? (\n <Flex flexDirection=\"column\" gap={4}>\n <FlexItem>\n <Components.Text weight=\"medium\">\n {formatStreetForDisplay(homeAddress)}\n </Components.Text>\n <Components.Text weight=\"medium\">{getCityStateZip(homeAddress)}</Components.Text>\n </FlexItem>\n {homeAddress.effectiveDate ? (\n <Components.Text variant=\"supporting\">\n {t('currentSince', {\n date: formatDateLongWithYear(homeAddress.effectiveDate.toString()),\n })}\n </Components.Text>\n ) : null}\n </Flex>\n ) : (\n <Components.Text>{tHa('formTitle')}</Components.Text>\n )}\n {pendingFutureAddress ? (\n <Components.Alert status=\"warning\" label={t('changePendingTitle')}>\n <Components.Text variant=\"supporting\">\n {t('changePendingDescription', {\n possessiveLabel: changePendingPossessiveLabel,\n newAddress: formatPendingHomeAddressLine(pendingFutureAddress),\n effectiveDate: pendingFutureAddress.effectiveDate\n ? formatDateLongWithYear(pendingFutureAddress.effectiveDate.toString())\n : '—',\n interpolation: { escapeValue: false },\n })}\n </Components.Text>\n </Components.Alert>\n ) : null}\n </Flex>\n </Components.Box>\n\n <Flex flexDirection=\"column\" gap={12}>\n <Components.Heading as=\"h2\">{t('historySectionTitle')}</Components.Heading>\n <DataView label={t('historySectionTitle')} {...historyDataView} />\n </Flex>\n\n <Components.Modal\n isOpen={addressModal !== null}\n onClose={closeAddressModal}\n shouldCloseOnBackdropClick={false}\n containerRef={addressModalContainerRef}\n footer={\n <Flex flexDirection=\"row\" gap={12} justifyContent=\"flex-end\">\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n closeAddressModal()\n }}\n >\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n variant=\"primary\"\n onClick={() => {\n void handleSave()\n }}\n isLoading={modalPending}\n >\n {t('submitCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h2\">\n {addressModal === 'edit' ? t('editModalTitle') : t('createModalTitle')}\n </Components.Heading>\n <Components.Text variant=\"supporting\">\n {addressModal === 'edit' ? t('editModalDescription') : t('createModalDescription')}\n </Components.Text>\n {addressModal === 'edit' ? (\n <SDKFormProvider formHookResult={editHomeAddressForm}>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: '1fr',\n }}\n gap={20}\n >\n <EditStreet1\n label={tHa('street1')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.street1'),\n }}\n />\n <EditStreet2\n label={tHa('street2')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.street1'),\n }}\n />\n <EditCity\n label={tHa('city')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.city'),\n }}\n />\n <EditState\n label={tHa('state')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.state'),\n }}\n portalContainer={addressModalPortal}\n />\n <EditZip label={tHa('zip')} validationMessages={zipValidation} />\n <HomeAddressCourtesyWithholdingBlock\n CourtesyWithholding={EditCourtesyWithholding}\n formHook={editHomeAddressForm}\n tHa={tHa}\n />\n </Grid>\n </SDKFormProvider>\n ) : null}\n {addressModal === 'create' ? (\n <SDKFormProvider formHookResult={createHomeAddressForm}>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: '1fr',\n }}\n gap={20}\n >\n {CreateEffectiveDate ? (\n <CreateEffectiveDate\n label={t('columns.startDate')}\n description={t('startDateHelper')}\n validationMessages={startDateValidation}\n portalContainer={addressModalPortal}\n />\n ) : null}\n <CreateStreet1\n label={tHa('street1')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.street1'),\n }}\n />\n <CreateStreet2\n label={tHa('street2')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.street1'),\n }}\n />\n <CreateCity\n label={tHa('city')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.city'),\n }}\n />\n <CreateState\n label={tHa('state')}\n validationMessages={{\n [HomeAddressErrorCodes.REQUIRED]: tHa('validations.state'),\n }}\n portalContainer={addressModalPortal}\n />\n <CreateZip label={tHa('zip')} validationMessages={zipValidation} />\n <HomeAddressCourtesyWithholdingBlock\n CourtesyWithholding={CreateCourtesyWithholding}\n formHook={createHomeAddressForm}\n tHa={tHa}\n />\n </Grid>\n </SDKFormProvider>\n ) : null}\n </Flex>\n </Components.Modal>\n\n <Components.Modal\n isOpen={deleteConfirmUuid !== null}\n onClose={() => {\n setDeleteConfirmUuid(null)\n }}\n shouldCloseOnBackdropClick={false}\n footer={\n <Flex flexDirection=\"row\" gap={12} justifyContent=\"flex-end\">\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n setDeleteConfirmUuid(null)\n }}\n >\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n variant=\"error\"\n onClick={() => {\n void handleDeleteModalConfirm()\n }}\n isLoading={isDeletePending}\n >\n {t('deleteModalConfirmCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h2\">{t('deleteModalTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {addressForDeleteModal ? (\n <Trans\n t={t}\n i18nKey=\"deleteModalDescription\"\n values={{\n address: formatPendingHomeAddressLine(addressForDeleteModal),\n }}\n components={{\n strong: <Components.Text weight=\"medium\" as=\"span\" />,\n }}\n tOptions={{ interpolation: { escapeValue: false } }}\n />\n ) : null}\n </Components.Text>\n </Flex>\n </Components.Modal>\n </Flex>\n )\n}\n"],"names":["HomeAddressCourtesyWithholdingBlock","CourtesyWithholding","formHook","tHa","Components","useComponentContext","control","courtesyWithholdingEnabled","useWatch","jsxs","Fragment","jsx","Trans","HomeAddressView","editHomeAddressForm","createHomeAddressForm","employeeHomeAddresses","employeeDisplayName","editingHomeAddressUuid","onEditAddressTargetChange","onSaved","onConfirmDelete","isDeletePending","useTranslation","addressModal","setAddressModal","useState","deleteConfirmUuid","setDeleteConfirmUuid","addressModalContainerRef","useRef","addressModalPortal","setAddressModalPortal","useLayoutEffect","syncPortal","id","homeAddress","editStatus","editOnSubmit","editForm","homeAddresses","createStatus","createOnSubmit","createForm","EditStreet1","EditStreet2","EditCity","EditState","EditZip","EditCourtesyWithholding","CreateStreet1","CreateStreet2","CreateCity","CreateState","CreateZip","CreateCourtesyWithholding","CreateEffectiveDate","zipValidation","HomeAddressErrorCodes","startDateValidation","pendingFutureAddress","useMemo","getPendingFutureHomeAddress","addressForDeleteModal","a","changePendingPossessiveLabel","trimmed","chronologicalAsc","b","aDate","bDate","sortedHistory","address","historyEndDate","row","idx","nextStart","nextDate","normalizeToDate","endDate","addDays","y","m","d","formatDateLongWithYear","historyDataView","useDataView","Flex","formatStreetForDisplay","getCityStateZip","HamburgerMenu","PencilSvg","TrashCanSvg","EmptyData","HouseIcon","closeAddressModal","handleDeleteModalConfirm","addressModalSession","handleSave","submitResult","hasFieldErrors","modalPending","FlexItem","formatPendingHomeAddressLine","DataView","SDKFormProvider","Grid"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress';
2
+ /**
3
+ * Returns the next inactive home address whose effective date is strictly after today (local),
4
+ * or undefined when there is no such scheduled change.
5
+ */
6
+ export declare function getPendingFutureHomeAddress(addresses: EmployeeAddress[] | undefined, now?: Date): EmployeeAddress | undefined;
7
+ /** Single-line address for pending-change copy (matches product mock: street, city, ST zip, country). */
8
+ export declare function formatPendingHomeAddressLine(address: EmployeeAddress): string;
@@ -0,0 +1,36 @@
1
+ import { normalizeToDate as l } from "../../../../helpers/dateFormatting.js";
2
+ const f = (t) => new Date(t.getFullYear(), t.getMonth(), t.getDate());
3
+ function S(t, e = /* @__PURE__ */ new Date()) {
4
+ if (!t?.length)
5
+ return;
6
+ const a = f(e), n = t.filter((o) => {
7
+ if (o.active === !0)
8
+ return !1;
9
+ const r = o.effectiveDate;
10
+ if (!r)
11
+ return !1;
12
+ const i = l(r.toString());
13
+ return i ? f(i) > a : !1;
14
+ });
15
+ if (n.length !== 0)
16
+ return n.sort((o, r) => {
17
+ const i = o.effectiveDate?.toString() ?? "", c = r.effectiveDate?.toString() ?? "";
18
+ return i.localeCompare(c);
19
+ }), n[0];
20
+ }
21
+ const u = /* @__PURE__ */ new Set(["USA", "US"]);
22
+ function s(t) {
23
+ if (!t?.trim())
24
+ return "";
25
+ const e = t.trim();
26
+ return u.has(e) ? "United States" : e;
27
+ }
28
+ function m(t) {
29
+ const e = [t.street1, t.street2].filter(Boolean).join(", "), a = [t.city, [t.state, t.zip].filter(Boolean).join(" ")].filter(Boolean).join(", "), n = s(t.country);
30
+ return [e, a, n].filter(Boolean).join(", ");
31
+ }
32
+ export {
33
+ m as formatPendingHomeAddressLine,
34
+ S as getPendingFutureHomeAddress
35
+ };
36
+ //# sourceMappingURL=getPendingFutureHomeAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPendingFutureHomeAddress.js","sources":["../../../../../src/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.ts"],"sourcesContent":["import type { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\n\nconst startOfLocalDay = (d: Date) => new Date(d.getFullYear(), d.getMonth(), d.getDate())\n\n/**\n * Returns the next inactive home address whose effective date is strictly after today (local),\n * or undefined when there is no such scheduled change.\n */\nexport function getPendingFutureHomeAddress(\n addresses: EmployeeAddress[] | undefined,\n now: Date = new Date(),\n): EmployeeAddress | undefined {\n if (!addresses?.length) {\n return undefined\n }\n\n const todayStart = startOfLocalDay(now)\n\n const pending = addresses.filter(address => {\n if (address.active === true) {\n return false\n }\n const raw = address.effectiveDate\n if (!raw) {\n return false\n }\n const parsed = normalizeToDate(raw.toString())\n if (!parsed) {\n return false\n }\n return startOfLocalDay(parsed) > todayStart\n })\n\n if (pending.length === 0) {\n return undefined\n }\n\n pending.sort((a, b) => {\n const as = a.effectiveDate?.toString() ?? ''\n const bs = b.effectiveDate?.toString() ?? ''\n return as.localeCompare(bs)\n })\n\n return pending[0]\n}\n\nconst USA_LABELS = new Set(['USA', 'US'])\n\nfunction formatCountryForDisplay(country: string | null | undefined): string {\n if (!country?.trim()) {\n return ''\n }\n const c = country.trim()\n return USA_LABELS.has(c) ? 'United States' : c\n}\n\n/** Single-line address for pending-change copy (matches product mock: street, city, ST zip, country). */\nexport function formatPendingHomeAddressLine(address: EmployeeAddress): string {\n const streetLine = [address.street1, address.street2].filter(Boolean).join(', ')\n const cityStateZip = [address.city, [address.state, address.zip].filter(Boolean).join(' ')]\n .filter(Boolean)\n .join(', ')\n const country = formatCountryForDisplay(address.country)\n\n return [streetLine, cityStateZip, country].filter(Boolean).join(', ')\n}\n"],"names":["startOfLocalDay","d","getPendingFutureHomeAddress","addresses","now","todayStart","pending","address","raw","parsed","normalizeToDate","a","b","as","bs","USA_LABELS","formatCountryForDisplay","country","c","formatPendingHomeAddressLine","streetLine","cityStateZip"],"mappings":";AAGA,MAAMA,IAAkB,CAACC,MAAY,IAAI,KAAKA,EAAE,eAAeA,EAAE,SAAA,GAAYA,EAAE,SAAS;AAMjF,SAASC,EACdC,GACAC,IAAY,oBAAI,QACa;AAC7B,MAAI,CAACD,GAAW;AACd;AAGF,QAAME,IAAaL,EAAgBI,CAAG,GAEhCE,IAAUH,EAAU,OAAO,CAAAI,MAAW;AAC1C,QAAIA,EAAQ,WAAW;AACrB,aAAO;AAET,UAAMC,IAAMD,EAAQ;AACpB,QAAI,CAACC;AACH,aAAO;AAET,UAAMC,IAASC,EAAgBF,EAAI,SAAA,CAAU;AAC7C,WAAKC,IAGET,EAAgBS,CAAM,IAAIJ,IAFxB;AAAA,EAGX,CAAC;AAED,MAAIC,EAAQ,WAAW;AAIvB,WAAAA,EAAQ,KAAK,CAACK,GAAGC,MAAM;AACrB,YAAMC,IAAKF,EAAE,eAAe,SAAA,KAAc,IACpCG,IAAKF,EAAE,eAAe,SAAA,KAAc;AAC1C,aAAOC,EAAG,cAAcC,CAAE;AAAA,IAC5B,CAAC,GAEMR,EAAQ,CAAC;AAClB;AAEA,MAAMS,IAAa,oBAAI,IAAI,CAAC,OAAO,IAAI,CAAC;AAExC,SAASC,EAAwBC,GAA4C;AAC3E,MAAI,CAACA,GAAS;AACZ,WAAO;AAET,QAAMC,IAAID,EAAQ,KAAA;AAClB,SAAOF,EAAW,IAAIG,CAAC,IAAI,kBAAkBA;AAC/C;AAGO,SAASC,EAA6BZ,GAAkC;AAC7E,QAAMa,IAAa,CAACb,EAAQ,SAASA,EAAQ,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,GACzEc,IAAe,CAACd,EAAQ,MAAM,CAACA,EAAQ,OAAOA,EAAQ,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,CAAC,EACvF,OAAO,OAAO,EACd,KAAK,IAAI,GACNU,IAAUD,EAAwBT,EAAQ,OAAO;AAEvD,SAAO,CAACa,GAAYC,GAAcJ,CAAO,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AACtE;"}
@@ -0,0 +1,45 @@
1
+ import { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress';
2
+ import { OnEventType } from '../../../Base/useBase';
3
+ import { UseHomeAddressFormReady, UseHomeAddressFormResult } from '../../Profile/shared/useHomeAddressForm';
4
+ import { BaseHookReady, HookLoadingResult } from '../../../../partner-hook-utils/types';
5
+ import { EventType } from '../../../../shared/constants';
6
+ export interface UseHomeAddressManagementParams {
7
+ employeeId: string;
8
+ onEvent: OnEventType<EventType, unknown>;
9
+ }
10
+ export interface UseHomeAddressManagementDataPendingForms extends Record<string, unknown> {
11
+ employeeDisplayName: string;
12
+ employeeHomeAddresses: EmployeeAddress[] | undefined;
13
+ editingHomeAddressUuid: string | undefined;
14
+ editHomeAddressForm: UseHomeAddressFormResult;
15
+ createHomeAddressForm: UseHomeAddressFormResult;
16
+ }
17
+ export interface UseHomeAddressManagementDataReady extends Record<string, unknown> {
18
+ employeeDisplayName: string;
19
+ employeeHomeAddresses: EmployeeAddress[] | undefined;
20
+ editingHomeAddressUuid: string | undefined;
21
+ editHomeAddressForm: UseHomeAddressFormReady;
22
+ createHomeAddressForm: UseHomeAddressFormReady;
23
+ }
24
+ export interface UseHomeAddressManagementStatusEmployeeError extends Record<string, unknown> {
25
+ isDeletePending: boolean;
26
+ isEmployeeError: true;
27
+ }
28
+ export interface UseHomeAddressManagementStatusSuccess extends Record<string, unknown> {
29
+ isDeletePending: boolean;
30
+ isEmployeeError: false;
31
+ }
32
+ export interface UseHomeAddressManagementActions {
33
+ setEditAddressTarget: (homeAddressUuid: string | undefined) => void;
34
+ confirmDeleteHomeAddress: (homeAddressUuid: string) => Promise<boolean>;
35
+ }
36
+ export interface UseHomeAddressManagementReadyEmployeeError extends BaseHookReady<UseHomeAddressManagementDataPendingForms, UseHomeAddressManagementStatusEmployeeError> {
37
+ actions: UseHomeAddressManagementActions;
38
+ }
39
+ export interface UseHomeAddressManagementReadySuccess extends BaseHookReady<UseHomeAddressManagementDataReady, UseHomeAddressManagementStatusSuccess> {
40
+ actions: UseHomeAddressManagementActions;
41
+ }
42
+ export type UseHomeAddressManagementReady = UseHomeAddressManagementReadyEmployeeError | UseHomeAddressManagementReadySuccess;
43
+ export type UseHomeAddressManagementResult = HookLoadingResult | UseHomeAddressManagementReady;
44
+ export declare function isUseHomeAddressManagementSuccess(value: UseHomeAddressManagementResult): value is UseHomeAddressManagementReadySuccess;
45
+ export declare function useHomeAddressManagement({ employeeId, onEvent, }: UseHomeAddressManagementParams): UseHomeAddressManagementResult;