@gusto/embedded-react-sdk 0.51.2 → 0.52.1

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 (296) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/components/Base/Base.d.ts +2 -0
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes.d.ts +1 -1
  5. package/dist/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
  6. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  7. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +4 -1
  8. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -1
  9. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
  10. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +1 -1
  11. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  12. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -2
  13. package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +3 -2
  14. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +1 -1
  15. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
  16. package/dist/components/Common/UI/FormBox/FormBox.d.ts +9 -0
  17. package/dist/components/Common/UI/FormBox/FormBox.js +13 -0
  18. package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -0
  19. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +14 -0
  20. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -0
  21. package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +26 -0
  22. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.d.ts +9 -0
  23. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js +23 -0
  24. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js.map +1 -0
  25. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js +8 -0
  26. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js.map +1 -0
  27. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.d.ts +36 -0
  28. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js +7 -0
  29. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js.map +1 -0
  30. package/dist/components/Common/UI/FormBoxHeader/index.d.ts +1 -0
  31. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -0
  32. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  33. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +3 -3
  34. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  35. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -2
  36. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -2
  37. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  38. package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -2
  39. package/dist/components/Common/UI/Table/TableTypes.d.ts +4 -4
  40. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  41. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -2
  42. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +1 -2
  43. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -3
  44. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  45. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +1 -1
  46. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -3
  47. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  48. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -5
  49. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  50. package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +1 -1
  51. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -3
  52. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  53. package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +1 -1
  54. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  55. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  56. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/signCompanyFormSchema.d.ts +1 -1
  57. package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +1 -1
  58. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -8
  59. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  60. package/dist/components/Company/Industry/Context.js +8 -6
  61. package/dist/components/Company/Industry/Context.js.map +1 -1
  62. package/dist/components/Company/Locations/LocationForm/Form.d.ts +1 -1
  63. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -3
  64. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  65. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -3
  66. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  67. package/dist/components/Company/OnboardingOverview/context.js +5 -3
  68. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  69. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +3 -3
  70. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
  71. package/dist/components/Company/StateTaxes/StateTaxes.d.ts +10 -1
  72. package/dist/components/Company/StateTaxes/StateTaxes.js +23 -17
  73. package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
  74. package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
  75. package/dist/components/Company/StateTaxes/StateTaxesComponents.js +17 -10
  76. package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
  77. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -3
  78. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  79. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +26 -26
  80. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  81. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +9 -0
  82. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +24 -24
  83. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
  84. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -3
  85. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  86. package/dist/components/Contractor/Address/Address.d.ts +4 -3
  87. package/dist/components/Contractor/Address/Address.js.map +1 -1
  88. package/dist/components/Contractor/Address/shared/useContractorAddressForm/contractorAddressSchema.d.ts +2 -2
  89. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.d.ts +1 -1
  90. package/dist/components/Contractor/ContractorList/index.d.ts +2 -1
  91. package/dist/components/Contractor/ContractorList/index.js +123 -98
  92. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  93. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +22 -19
  94. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
  95. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.d.ts +1 -1
  96. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.d.ts +1 -1
  97. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +1 -1
  98. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.d.ts +1 -1
  99. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.js.map +1 -1
  100. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +2 -0
  101. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  102. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js +150 -80
  103. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  104. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.test.d.ts +1 -0
  105. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountFormSchema.d.ts +1 -1
  106. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.d.ts +1 -1
  107. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.js.map +1 -1
  108. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.d.ts +2 -2
  109. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  110. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +1 -1
  111. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  112. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +2 -2
  113. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  114. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +17 -5
  115. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +32 -31
  116. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  117. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +16 -4
  118. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +33 -29
  119. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  120. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +1 -1
  121. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +19 -18
  122. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
  123. package/dist/components/Contractor/Profile/ContractorProfile.d.ts +1 -1
  124. package/dist/components/Contractor/Profile/ContractorProfile.js +114 -110
  125. package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
  126. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +27 -26
  127. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
  128. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.d.ts +1 -1
  129. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +6 -6
  130. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
  131. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +1 -1
  132. package/dist/components/Contractor/Submit/Submit.js +106 -63
  133. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  134. package/dist/components/Employee/Compensation/onboarding/Compensation.d.ts +0 -4
  135. package/dist/components/Employee/Compensation/onboarding/Compensation.js +38 -42
  136. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
  137. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +2 -2
  138. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +1 -1
  139. package/dist/components/Employee/Dashboard/index.d.ts +1 -1
  140. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +1 -1
  141. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +1 -1
  142. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +2 -2
  143. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  144. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  145. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +2 -2
  146. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -4
  147. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  148. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +2 -2
  149. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js +27 -32
  150. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -1
  151. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +1 -2
  152. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  153. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.d.ts +2 -2
  154. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.d.ts +1 -1
  155. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.d.ts +1 -1
  156. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js +1 -3
  157. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js.map +1 -1
  158. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +55 -49
  159. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  160. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +1 -1
  161. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +1 -1
  162. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +2 -2
  163. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +1 -1
  164. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +1 -1
  165. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +2 -2
  166. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
  167. package/dist/components/Employee/exports/employeeManagement.d.ts +1 -1
  168. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +4 -5
  169. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +101 -125
  170. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  171. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +0 -5
  172. package/dist/components/InformationRequests/InformationRequestsComponents.js +12 -13
  173. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  174. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js +4 -4
  175. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  176. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +1 -1
  177. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +8 -8
  178. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  179. package/dist/components/Payroll/OffCycle/index.d.ts +1 -1
  180. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +1 -1
  181. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +97 -92
  182. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  183. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +2 -3
  184. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  185. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +2 -2
  186. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
  187. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  188. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +57 -56
  189. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  190. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  191. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +23 -6
  192. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js +37 -33
  193. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  194. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +2 -2
  195. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js +6 -6
  196. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  197. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +1 -1
  198. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  199. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
  200. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  201. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  202. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -1
  203. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +1 -1
  204. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  205. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
  206. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +31 -31
  207. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  208. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +9 -5
  209. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  210. package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +1 -1
  211. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +1 -1
  212. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  213. package/dist/components/Payroll/Transition/index.d.ts +1 -1
  214. package/dist/components/Payroll/helpers.d.ts +22 -8
  215. package/dist/components/Payroll/helpers.js +1 -1
  216. package/dist/components/Payroll/helpers.js.map +1 -1
  217. package/dist/components/Payroll/index.d.ts +3 -2
  218. package/dist/components/Payroll/payrollTypes.d.ts +1 -1
  219. package/dist/components/Payroll/payrollTypes.js +1 -1
  220. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  221. package/dist/components/Payroll/usePreparedPayrollData.d.ts +1 -1
  222. package/dist/components/Payroll/usePreparedPayrollData.js +10 -8
  223. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  224. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +1 -1
  225. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +19 -19
  226. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  227. package/dist/contexts/ApiProvider/ApiProvider.d.ts +5 -5
  228. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  229. package/dist/contexts/ApiProvider/apiVersion.d.ts +2 -2
  230. package/dist/contexts/ApiProvider/apiVersion.js +1 -1
  231. package/dist/contexts/ApiProvider/apiVersion.js.map +1 -1
  232. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +40 -36
  233. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  234. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +2 -0
  235. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
  236. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +18 -16
  237. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  238. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +7 -1
  239. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  240. package/dist/contexts/GustoProvider/GustoProvider.d.ts +5 -5
  241. package/dist/contexts/GustoProvider/GustoProvider.js +6 -6
  242. package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
  243. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +8 -7
  244. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +8 -8
  245. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  246. package/dist/contexts/GustoProvider/index.d.ts +1 -1
  247. package/dist/contexts/ThemeProvider/types.d.ts +2 -2
  248. package/dist/contexts/index.d.ts +2 -6
  249. package/dist/i18n/en/Contractor.ContractorList.json.js +22 -18
  250. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  251. package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
  252. package/dist/i18n/en/Contractor.Submit.json.js +11 -11
  253. package/dist/i18n/en/Employee.OnboardingSummary.json.js +24 -20
  254. package/dist/i18n/en/Employee.OnboardingSummary.json.js.map +1 -1
  255. package/dist/i18n/types.d.ts +15 -3
  256. package/dist/index.d.ts +8 -7
  257. package/dist/index.js +121 -134
  258. package/dist/index.js.map +1 -1
  259. package/dist/models/WA_RISK_CODES.d.ts +6 -2
  260. package/dist/models/WA_RISK_CODES.js.map +1 -1
  261. package/dist/models/external.d.ts +67 -57
  262. package/dist/partner-hook-utils/composeErrorHandler.d.ts +13 -4
  263. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  264. package/dist/partner-hook-utils/form/SDKFormProvider.d.ts +11 -2
  265. package/dist/partner-hook-utils/form/SDKFormProvider.js +7 -1
  266. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  267. package/dist/partner-hook-utils/form/composeSubmitHandler.d.ts +11 -4
  268. package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
  269. package/dist/partner-hook-utils/form/fields/CheckboxHookField.d.ts +1 -0
  270. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  271. package/dist/partner-hook-utils/form/fields/DatePickerHookField.d.ts +1 -0
  272. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  273. package/dist/partner-hook-utils/form/fields/NumberInputHookField.d.ts +1 -0
  274. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  275. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.d.ts +1 -0
  276. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  277. package/dist/partner-hook-utils/form/fields/SelectHookField.d.ts +1 -0
  278. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  279. package/dist/partner-hook-utils/form/fields/SwitchHookField.d.ts +1 -0
  280. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  281. package/dist/partner-hook-utils/form/fields/TextInputHookField.d.ts +1 -0
  282. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  283. package/dist/partner-hook-utils/form/fields/index.d.ts +1 -0
  284. package/dist/partner-hook-utils/form/index.d.ts +3 -3
  285. package/dist/partner-hook-utils/form/useHookFieldResolution.js.map +1 -1
  286. package/dist/partner-hook-utils/index.d.ts +1 -1
  287. package/dist/partner-hook-utils/types.d.ts +16 -3
  288. package/dist/shared/constants.d.ts +12 -2
  289. package/dist/shared/constants.js +11 -10
  290. package/dist/shared/constants.js.map +1 -1
  291. package/dist/style.css +1 -1
  292. package/dist/types/Helpers.d.ts +13 -0
  293. package/dist/types/hooks.d.ts +2 -1
  294. package/dist/types/observability.d.ts +1 -0
  295. package/docs/guides/endpoint-inventory.json +396 -380
  296. package/package.json +17 -17
@@ -22,7 +22,7 @@ export type DeductionFormErrorCode = (typeof DeductionFormErrorCodes)[keyof type
22
22
  * @public
23
23
  * @interface
24
24
  */
25
- export type DeductionFormData = { description: string; recurring: boolean; deductAsPercentage: boolean; amount: number; totalAmount: number; annualMaximum: number; garnishmentType: "child_support" | "federal_tax_lien" | "state_tax_lien" | "student_loan" | "creditor_garnishment" | "federal_loan" | "other_garnishment"; };
25
+ export type DeductionFormData = { description: string; recurring: boolean; deductAsPercentage: boolean; amount: number; totalAmount: number; annualMaximum: number; garnishmentType: "child_support" | "creditor_garnishment" | "federal_loan" | "federal_tax_lien" | "other_garnishment" | "state_tax_lien" | "student_loan"; };
26
26
  /** @internal */
27
27
  export type DeductionFormOutputs = DeductionFormData;
28
28
  /**
@@ -31,7 +31,7 @@ export type DeductionFormOutputs = DeductionFormData;
31
31
  *
32
32
  * @public
33
33
  */
34
- export type DeductionFormOptionalFieldsToRequire = { create?: ("totalAmount" | "annualMaximum")[] | undefined; update?: ("totalAmount" | "annualMaximum")[] | undefined; };
34
+ export type DeductionFormOptionalFieldsToRequire = { create?: ("annualMaximum" | "totalAmount")[] | undefined; update?: ("annualMaximum" | "totalAmount")[] | undefined; };
35
35
  /** @internal */
36
36
  interface DeductionFormSchemaOptions {
37
37
  mode?: 'create' | 'update';
@@ -9,13 +9,15 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../../../shared/constants.js";
13
15
  import "../../../../../../contexts/ComponentAdapter/useComponentContext.js";
14
16
  import "../../../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
17
  import { createCompoundContext as t } from "../../../../../Base/createCompoundContext.js";
16
- const [a, f] = t("DocumentListContext");
18
+ const [v, P] = t("DocumentListContext");
17
19
  export {
18
- f as DocumentListProvider,
19
- a as useDocumentList
20
+ P as DocumentListProvider,
21
+ v as useDocumentList
20
22
  };
21
23
  //# sourceMappingURL=useDocumentList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAYA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
1
+ {"version":3,"file":"useDocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;AAYA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
@@ -17,6 +17,6 @@ export declare const generateEmploymentEligibilitySchema: (hasDocumentNumber?: b
17
17
  country: z.ZodOptional<z.ZodString>;
18
18
  }, z.core.$strip>;
19
19
  /** @internal */
20
- export type EmploymentEligibilityInputs = z.input<ReturnType<typeof generateEmploymentEligibilitySchema>>;
20
+ export type EmploymentEligibilityInputs = { authorizationStatus?: "citizen" | "noncitizen" | "permanent_resident" | "alien" | undefined; documentType?: "uscis_alien_registration_number" | "form_i94" | "foreign_passport" | undefined; documentNumber?: string | undefined; expirationDate?: Date | undefined; country?: string | undefined; };
21
21
  /** @internal */
22
- export type EmploymentEligibilityPayload = z.infer<ReturnType<typeof generateEmploymentEligibilitySchema>>;
22
+ export type EmploymentEligibilityPayload = { authorizationStatus?: "citizen" | "noncitizen" | "permanent_resident" | "alien" | undefined; documentType?: "uscis_alien_registration_number" | "form_i94" | "foreign_passport" | undefined; documentNumber?: string | undefined; expirationDate?: string | undefined; country?: string | undefined; };
@@ -14,10 +14,7 @@ function M(o) {
14
14
  }
15
15
  const P = ({ employeeId: o, dictionary: t }) => {
16
16
  b("Employee.EmployeeDocuments", t);
17
- const { onEvent: s, baseSubmitHandler: r } = S(), { data: u } = d({ employeeId: o }), e = u.employee, a = e?.onboardingDocumentsConfig?.i9Document ?? !1, c = e?.onboardingStatus ? (
18
- // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses
19
- N.has(e.onboardingStatus) || e.onboardingStatus === C.SELF_ONBOARDING_PENDING_INVITE
20
- ) : !1, { mutateAsync: p } = y(), E = D({
17
+ const { onEvent: s, baseSubmitHandler: r } = S(), { data: u } = d({ employeeId: o }), e = u.employee, a = e?.onboardingDocumentsConfig?.i9Document ?? !1, c = e?.onboardingStatus ? N.has(e.onboardingStatus) || e.onboardingStatus === C.SELF_ONBOARDING_PENDING_INVITE : !1, { mutateAsync: p } = y(), E = D({
21
18
  mutationKey: f()
22
19
  }) > 0;
23
20
  return /* @__PURE__ */ n(
@@ -1 +1 @@
1
- {"version":3,"file":"EmployeeDocuments.js","sources":["../../../../../../src/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.tsx"],"sourcesContent":["import { useIsMutating } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport {\n useEmployeesUpdateOnboardingDocumentsConfigMutation,\n mutationKeyEmployeesUpdateOnboardingDocumentsConfig,\n} from '@gusto/embedded-api/react-query/employeesUpdateOnboardingDocumentsConfig'\nimport {\n EmployeeDocumentsPresentation,\n type EmployeeDocumentsFormValues,\n} from './EmployeeDocumentsPresentation'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary } from '@/i18n'\nimport {\n componentEvents,\n EmployeeSelfOnboardingStatuses,\n EmployeeOnboardingStatus,\n} from '@/shared/constants'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport type { OnboardingContextInterface } from '@/components/Employee/OnboardingFlow/OnboardingFlowComponents'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/**\n * Props for {@link EmployeeDocuments}.\n *\n * @public\n */\nexport interface EmployeeDocumentsProps extends BaseComponentInterface<'Employee.EmployeeDocuments'> {\n /** The associated employee identifier. */\n employeeId: string\n}\n\n/**\n * Onboarding step for selecting which documents the employee must complete.\n *\n * @remarks\n * Shows the I-9 toggle when the employee is self-onboarding (so the employee\n * can choose whether their employer will collect I-9 verification) and a\n * summary otherwise. Persists the selection to the employee's onboarding\n * documents configuration and advances the parent flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/onboardingDocumentsConfig/updated` | Fired after the employee's documents configuration is saved | The updated documents configuration response |\n * | `employee/documents/done` | Fired when the step is complete and the parent flow can advance | — |\n *\n * @param props - Component props including `employeeId` and `onEvent`.\n * @returns The employee documents onboarding step.\n * @public\n */\nexport function EmployeeDocuments(props: EmployeeDocumentsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, dictionary }: EmployeeDocumentsProps) => {\n useComponentDictionary('Employee.EmployeeDocuments', dictionary)\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { data } = useEmployeesGetSuspense({ employeeId })\n const employee = data.employee\n const currentI9Status = employee?.onboardingDocumentsConfig?.i9Document ?? false\n\n const isEmployeeSelfOnboarding = employee?.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n EmployeeSelfOnboardingStatuses.has(employee.onboardingStatus) ||\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n : false\n\n const { mutateAsync: updateOnboardingDocumentsConfig } =\n useEmployeesUpdateOnboardingDocumentsConfigMutation()\n\n const isMutating = useIsMutating({\n mutationKey: mutationKeyEmployeesUpdateOnboardingDocumentsConfig(),\n })\n const isPending = isMutating > 0\n\n const onSubmit = async (formData: EmployeeDocumentsFormValues) => {\n await baseSubmitHandler(formData, async () => {\n const response = await updateOnboardingDocumentsConfig({\n request: {\n employeeId,\n employeeOnboardingDocumentsConfigRequest: {\n i9Document: formData.includeI9,\n },\n },\n })\n\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_DOCUMENTS_CONFIG_UPDATED, response)\n onEvent(componentEvents.EMPLOYEE_DOCUMENTS_DONE)\n })\n }\n\n const handleDone = () => {\n onEvent(componentEvents.EMPLOYEE_DOCUMENTS_DONE)\n }\n\n return (\n <EmployeeDocumentsPresentation\n isEmployeeSelfOnboarding={isEmployeeSelfOnboarding}\n currentI9Status={currentI9Status}\n onSubmit={onSubmit}\n onDone={handleDone}\n isPending={isPending}\n />\n )\n}\n\n/** @internal */\nexport const EmployeeDocumentsContextual = () => {\n const { employeeId, onEvent } = useFlow<OnboardingContextInterface>()\n\n return <EmployeeDocuments employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n"],"names":["EmployeeDocuments","props","jsx","BaseComponent","Root","employeeId","dictionary","useComponentDictionary","onEvent","baseSubmitHandler","useBase","data","useEmployeesGetSuspense","employee","currentI9Status","isEmployeeSelfOnboarding","EmployeeSelfOnboardingStatuses","EmployeeOnboardingStatus","updateOnboardingDocumentsConfig","useEmployeesUpdateOnboardingDocumentsConfigMutation","isPending","useIsMutating","mutationKeyEmployeesUpdateOnboardingDocumentsConfig","EmployeeDocumentsPresentation","formData","response","componentEvents","EmployeeDocumentsContextual","useFlow","ensureRequired"],"mappings":";;;;;;;;;;;AAkDO,SAASA,EAAkBC,GAA+B;AAC/D,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,YAAAC,GAAY,YAAAC,QAAyC;AACnE,EAAAC,EAAuB,8BAA8BD,CAAU;AAC/D,QAAM,EAAE,SAAAE,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GAEjC,EAAE,MAAAC,EAAA,IAASC,EAAwB,EAAE,YAAAP,GAAY,GACjDQ,IAAWF,EAAK,UAChBG,IAAkBD,GAAU,2BAA2B,cAAc,IAErEE,IAA2BF,GAAU;AAAA;AAAA,IAEvCG,EAA+B,IAAIH,EAAS,gBAAgB,KAC5DA,EAAS,qBAAqBI,EAAyB;AAAA,MACvD,IAEE,EAAE,aAAaC,EAAA,IACnBC,EAAA,GAKIC,IAHaC,EAAc;AAAA,IAC/B,aAAaC,EAAA;AAAA,EAAoD,CAClE,IAC8B;AAsB/B,SACE,gBAAApB;AAAA,IAACqB;AAAA,IAAA;AAAA,MACC,0BAAAR;AAAA,MACA,iBAAAD;AAAA,MACA,UAxBa,OAAOU,MAA0C;AAChE,cAAMf,EAAkBe,GAAU,YAAY;AAC5C,gBAAMC,IAAW,MAAMP,EAAgC;AAAA,YACrD,SAAS;AAAA,cACP,YAAAb;AAAA,cACA,0CAA0C;AAAA,gBACxC,YAAYmB,EAAS;AAAA,cAAA;AAAA,YACvB;AAAA,UACF,CACD;AAED,UAAAhB,EAAQkB,EAAgB,8CAA8CD,CAAQ,GAC9EjB,EAAQkB,EAAgB,uBAAuB;AAAA,QACjD,CAAC;AAAA,MACH;AAAA,MAWI,QATe,MAAM;AACvB,QAAAlB,EAAQkB,EAAgB,uBAAuB;AAAA,MACjD;AAAA,MAQI,WAAAN;AAAA,IAAA;AAAA,EAAA;AAGN,GAGaO,IAA8B,MAAM;AAC/C,QAAM,EAAE,YAAAtB,GAAY,SAAAG,EAAA,IAAYoB,EAAA;AAEhC,2BAAQ5B,GAAA,EAAkB,YAAY6B,EAAexB,CAAU,GAAG,SAAAG,GAAkB;AACtF;"}
1
+ {"version":3,"file":"EmployeeDocuments.js","sources":["../../../../../../src/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.tsx"],"sourcesContent":["import { useIsMutating } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport {\n useEmployeesUpdateOnboardingDocumentsConfigMutation,\n mutationKeyEmployeesUpdateOnboardingDocumentsConfig,\n} from '@gusto/embedded-api/react-query/employeesUpdateOnboardingDocumentsConfig'\nimport {\n EmployeeDocumentsPresentation,\n type EmployeeDocumentsFormValues,\n} from './EmployeeDocumentsPresentation'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary } from '@/i18n'\nimport {\n componentEvents,\n EmployeeSelfOnboardingStatuses,\n EmployeeOnboardingStatus,\n} from '@/shared/constants'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport type { OnboardingContextInterface } from '@/components/Employee/OnboardingFlow/OnboardingFlowComponents'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/**\n * Props for {@link EmployeeDocuments}.\n *\n * @public\n */\nexport interface EmployeeDocumentsProps extends BaseComponentInterface<'Employee.EmployeeDocuments'> {\n /** The associated employee identifier. */\n employeeId: string\n}\n\n/**\n * Onboarding step for selecting which documents the employee must complete.\n *\n * @remarks\n * Shows the I-9 toggle when the employee is self-onboarding (so the employee\n * can choose whether their employer will collect I-9 verification) and a\n * summary otherwise. Persists the selection to the employee's onboarding\n * documents configuration and advances the parent flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/onboardingDocumentsConfig/updated` | Fired after the employee's documents configuration is saved | The updated documents configuration response |\n * | `employee/documents/done` | Fired when the step is complete and the parent flow can advance | — |\n *\n * @param props - Component props including `employeeId` and `onEvent`.\n * @returns The employee documents onboarding step.\n * @public\n */\nexport function EmployeeDocuments(props: EmployeeDocumentsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, dictionary }: EmployeeDocumentsProps) => {\n useComponentDictionary('Employee.EmployeeDocuments', dictionary)\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { data } = useEmployeesGetSuspense({ employeeId })\n const employee = data.employee\n const currentI9Status = employee?.onboardingDocumentsConfig?.i9Document ?? false\n\n const isEmployeeSelfOnboarding = employee?.onboardingStatus\n ? EmployeeSelfOnboardingStatuses.has(employee.onboardingStatus) ||\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n : false\n\n const { mutateAsync: updateOnboardingDocumentsConfig } =\n useEmployeesUpdateOnboardingDocumentsConfigMutation()\n\n const isMutating = useIsMutating({\n mutationKey: mutationKeyEmployeesUpdateOnboardingDocumentsConfig(),\n })\n const isPending = isMutating > 0\n\n const onSubmit = async (formData: EmployeeDocumentsFormValues) => {\n await baseSubmitHandler(formData, async () => {\n const response = await updateOnboardingDocumentsConfig({\n request: {\n employeeId,\n employeeOnboardingDocumentsConfigRequest: {\n i9Document: formData.includeI9,\n },\n },\n })\n\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_DOCUMENTS_CONFIG_UPDATED, response)\n onEvent(componentEvents.EMPLOYEE_DOCUMENTS_DONE)\n })\n }\n\n const handleDone = () => {\n onEvent(componentEvents.EMPLOYEE_DOCUMENTS_DONE)\n }\n\n return (\n <EmployeeDocumentsPresentation\n isEmployeeSelfOnboarding={isEmployeeSelfOnboarding}\n currentI9Status={currentI9Status}\n onSubmit={onSubmit}\n onDone={handleDone}\n isPending={isPending}\n />\n )\n}\n\n/** @internal */\nexport const EmployeeDocumentsContextual = () => {\n const { employeeId, onEvent } = useFlow<OnboardingContextInterface>()\n\n return <EmployeeDocuments employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n"],"names":["EmployeeDocuments","props","jsx","BaseComponent","Root","employeeId","dictionary","useComponentDictionary","onEvent","baseSubmitHandler","useBase","data","useEmployeesGetSuspense","employee","currentI9Status","isEmployeeSelfOnboarding","EmployeeSelfOnboardingStatuses","EmployeeOnboardingStatus","updateOnboardingDocumentsConfig","useEmployeesUpdateOnboardingDocumentsConfigMutation","isPending","useIsMutating","mutationKeyEmployeesUpdateOnboardingDocumentsConfig","EmployeeDocumentsPresentation","formData","response","componentEvents","EmployeeDocumentsContextual","useFlow","ensureRequired"],"mappings":";;;;;;;;;;;AAkDO,SAASA,EAAkBC,GAA+B;AAC/D,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,YAAAC,GAAY,YAAAC,QAAyC;AACnE,EAAAC,EAAuB,8BAA8BD,CAAU;AAC/D,QAAM,EAAE,SAAAE,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GAEjC,EAAE,MAAAC,EAAA,IAASC,EAAwB,EAAE,YAAAP,GAAY,GACjDQ,IAAWF,EAAK,UAChBG,IAAkBD,GAAU,2BAA2B,cAAc,IAErEE,IAA2BF,GAAU,mBACvCG,EAA+B,IAAIH,EAAS,gBAAgB,KAC5DA,EAAS,qBAAqBI,EAAyB,iCACvD,IAEE,EAAE,aAAaC,EAAA,IACnBC,EAAA,GAKIC,IAHaC,EAAc;AAAA,IAC/B,aAAaC,EAAA;AAAA,EAAoD,CAClE,IAC8B;AAsB/B,SACE,gBAAApB;AAAA,IAACqB;AAAA,IAAA;AAAA,MACC,0BAAAR;AAAA,MACA,iBAAAD;AAAA,MACA,UAxBa,OAAOU,MAA0C;AAChE,cAAMf,EAAkBe,GAAU,YAAY;AAC5C,gBAAMC,IAAW,MAAMP,EAAgC;AAAA,YACrD,SAAS;AAAA,cACP,YAAAb;AAAA,cACA,0CAA0C;AAAA,gBACxC,YAAYmB,EAAS;AAAA,cAAA;AAAA,YACvB;AAAA,UACF,CACD;AAED,UAAAhB,EAAQkB,EAAgB,8CAA8CD,CAAQ,GAC9EjB,EAAQkB,EAAgB,uBAAuB;AAAA,QACjD,CAAC;AAAA,MACH;AAAA,MAWI,QATe,MAAM;AACvB,QAAAlB,EAAQkB,EAAgB,uBAAuB;AAAA,MACjD;AAAA,MAQI,WAAAN;AAAA,IAAA;AAAA,EAAA;AAGN,GAGaO,IAA8B,MAAM;AAC/C,QAAM,EAAE,YAAAtB,GAAY,SAAAG,EAAA,IAAYoB,EAAA;AAEhC,2BAAQ5B,GAAA,EAAkB,YAAY6B,EAAexB,CAAU,GAAG,SAAAG,GAAkB;AACtF;"}
@@ -98,14 +98,14 @@ export declare const PREPARER_FIELDS_BY_INDEX: SignEmployeeFormField[][];
98
98
  *
99
99
  * @public
100
100
  */
101
- export type SignEmployeeFormField = "signature" | "confirmSignature" | "usedPreparer" | "preparerFirstName" | "preparerLastName" | "preparerStreet1" | "preparerStreet2" | "preparerCity" | "preparerState" | "preparerZip" | "preparerSignature" | "preparerAgree" | "preparer2FirstName" | "preparer2LastName" | "preparer2Street1" | "preparer2Street2" | "preparer2City" | "preparer2State" | "preparer2Zip" | "preparer2Signature" | "preparer2Agree" | "preparer3FirstName" | "preparer3LastName" | "preparer3Street1" | "preparer3Street2" | "preparer3City" | "preparer3State" | "preparer3Zip" | "preparer3Signature" | "preparer3Agree" | "preparer4FirstName" | "preparer4LastName" | "preparer4Street1" | "preparer4Street2" | "preparer4City" | "preparer4State" | "preparer4Zip" | "preparer4Signature" | "preparer4Agree";
101
+ export type SignEmployeeFormField = "confirmSignature" | "preparer2Agree" | "preparer2City" | "preparer2FirstName" | "preparer2LastName" | "preparer2Signature" | "preparer2State" | "preparer2Street1" | "preparer2Street2" | "preparer2Zip" | "preparer3Agree" | "preparer3City" | "preparer3FirstName" | "preparer3LastName" | "preparer3Signature" | "preparer3State" | "preparer3Street1" | "preparer3Street2" | "preparer3Zip" | "preparer4Agree" | "preparer4City" | "preparer4FirstName" | "preparer4LastName" | "preparer4Signature" | "preparer4State" | "preparer4Street1" | "preparer4Street2" | "preparer4Zip" | "preparerAgree" | "preparerCity" | "preparerFirstName" | "preparerLastName" | "preparerSignature" | "preparerState" | "preparerStreet1" | "preparerStreet2" | "preparerZip" | "signature" | "usedPreparer";
102
102
  /**
103
103
  * Shape of the values managed by the I-9 sign-employee form.
104
104
  *
105
105
  * @public
106
106
  * @interface
107
107
  */
108
- export type SignEmployeeFormData = { signature: string; confirmSignature: boolean; usedPreparer: "yes" | "no"; preparerFirstName: string; preparerLastName: string; preparerStreet1: string; preparerStreet2: string; preparerCity: string; preparerState: string; preparerZip: string; preparerSignature: string; preparerAgree: boolean; preparer2FirstName: string; preparer2LastName: string; preparer2Street1: string; preparer2Street2: string; preparer2City: string; preparer2State: string; preparer2Zip: string; preparer2Signature: string; preparer2Agree: boolean; preparer3FirstName: string; preparer3LastName: string; preparer3Street1: string; preparer3Street2: string; preparer3City: string; preparer3State: string; preparer3Zip: string; preparer3Signature: string; preparer3Agree: boolean; preparer4FirstName: string; preparer4LastName: string; preparer4Street1: string; preparer4Street2: string; preparer4City: string; preparer4State: string; preparer4Zip: string; preparer4Signature: string; preparer4Agree: boolean; };
108
+ export type SignEmployeeFormData = { signature: string; confirmSignature: boolean; usedPreparer: "no" | "yes"; preparerFirstName: string; preparerLastName: string; preparerStreet1: string; preparerStreet2: string; preparerCity: string; preparerState: string; preparerZip: string; preparerSignature: string; preparerAgree: boolean; preparer2FirstName: string; preparer2LastName: string; preparer2Street1: string; preparer2Street2: string; preparer2City: string; preparer2State: string; preparer2Zip: string; preparer2Signature: string; preparer2Agree: boolean; preparer3FirstName: string; preparer3LastName: string; preparer3Street1: string; preparer3Street2: string; preparer3City: string; preparer3State: string; preparer3Zip: string; preparer3Signature: string; preparer3Agree: boolean; preparer4FirstName: string; preparer4LastName: string; preparer4Street1: string; preparer4Street2: string; preparer4City: string; preparer4State: string; preparer4Zip: string; preparer4Signature: string; preparer4Agree: boolean; };
109
109
  /** @internal */
110
110
  export type SignEmployeeFormOutputs = SignEmployeeFormData;
111
111
  /** @internal */
@@ -1,12 +1,8 @@
1
1
  import { z as e } from "zod";
2
2
  import { buildFormSchema as u } from "../../../../../partner-hook-utils/form/buildFormSchema.js";
3
- const R = {
3
+ const E = {
4
4
  REQUIRED: "REQUIRED"
5
- }, S = 4;
6
- function I(i, n) {
7
- return i === 1 ? `preparer${n}` : `preparer${i}${n}`;
8
- }
9
- const r = {
5
+ }, S = 4, r = {
10
6
  firstName: "preparerFirstName",
11
7
  lastName: "preparerLastName",
12
8
  street1: "preparerStreet1",
@@ -46,21 +42,21 @@ const r = {
46
42
  zip: "preparer4Zip",
47
43
  signature: "preparer4Signature",
48
44
  agree: "preparer4Agree"
49
- }, D = [
45
+ }, I = [
50
46
  r,
51
47
  t,
52
48
  s,
53
49
  a
54
- ], l = Object.values(r), N = Object.values(t), P = Object.values(s), f = Object.values(a), m = [
50
+ ], l = Object.values(r), N = Object.values(t), P = Object.values(s), f = Object.values(a), R = [
55
51
  l,
56
52
  N,
57
53
  P,
58
54
  f
59
- ], _ = m.flat(), p = e.boolean().refine((i) => i, {
60
- message: R.REQUIRED
55
+ ], _ = R.flat(), i = e.boolean().refine((n) => n, {
56
+ message: E.REQUIRED
61
57
  }), A = {
62
58
  signature: e.string(),
63
- confirmSignature: p,
59
+ confirmSignature: i,
64
60
  usedPreparer: e.enum(["yes", "no"]),
65
61
  // Preparer 1
66
62
  [r.firstName]: e.string(),
@@ -71,7 +67,7 @@ const r = {
71
67
  [r.state]: e.string(),
72
68
  [r.zip]: e.string(),
73
69
  [r.signature]: e.string(),
74
- [r.agree]: p,
70
+ [r.agree]: i,
75
71
  // Preparer 2
76
72
  [t.firstName]: e.string(),
77
73
  [t.lastName]: e.string(),
@@ -81,7 +77,7 @@ const r = {
81
77
  [t.state]: e.string(),
82
78
  [t.zip]: e.string(),
83
79
  [t.signature]: e.string(),
84
- [t.agree]: p,
80
+ [t.agree]: i,
85
81
  // Preparer 3
86
82
  [s.firstName]: e.string(),
87
83
  [s.lastName]: e.string(),
@@ -91,7 +87,7 @@ const r = {
91
87
  [s.state]: e.string(),
92
88
  [s.zip]: e.string(),
93
89
  [s.signature]: e.string(),
94
- [s.agree]: p,
90
+ [s.agree]: i,
95
91
  // Preparer 4
96
92
  [a.firstName]: e.string(),
97
93
  [a.lastName]: e.string(),
@@ -101,36 +97,35 @@ const r = {
101
97
  [a.state]: e.string(),
102
98
  [a.zip]: e.string(),
103
99
  [a.signature]: e.string(),
104
- [a.agree]: p
105
- }, F = {
100
+ [a.agree]: i
101
+ }, d = {
106
102
  [r.street2]: "never",
107
103
  [t.street2]: "never",
108
104
  [s.street2]: "never",
109
105
  [a.street2]: "never"
110
106
  };
111
- function L(i = {}) {
112
- const { isI9: n = !1, preparerCount: c = 0 } = i, o = [];
113
- if (!n)
114
- o.push("usedPreparer", ..._);
107
+ function D(n = {}) {
108
+ const { isI9: m = !1, preparerCount: c = 0 } = n, g = [];
109
+ if (!m)
110
+ g.push("usedPreparer", ..._);
115
111
  else
116
- for (let g = 0; g < S; g++)
117
- if (g + 1 > c) {
118
- const E = m[g];
119
- E && o.push(...E);
112
+ for (let p = 0; p < S; p++)
113
+ if (p + 1 > c) {
114
+ const o = R[p];
115
+ o && g.push(...o);
120
116
  }
121
117
  return u(A, {
122
- requiredFieldsConfig: F,
123
- requiredErrorCode: R.REQUIRED,
118
+ requiredFieldsConfig: d,
119
+ requiredErrorCode: E.REQUIRED,
124
120
  mode: "create",
125
- excludeFields: o
121
+ excludeFields: g
126
122
  });
127
123
  }
128
124
  export {
129
125
  S as MAX_PREPARERS,
130
- D as PREPARERS_BY_INDEX,
131
- m as PREPARER_FIELDS_BY_INDEX,
132
- R as SignEmployeeFormErrorCodes,
133
- L as createSignEmployeeFormSchema,
134
- I as preparerFieldName
126
+ I as PREPARERS_BY_INDEX,
127
+ R as PREPARER_FIELDS_BY_INDEX,
128
+ E as SignEmployeeFormErrorCodes,
129
+ D as createSignEmployeeFormSchema
135
130
  };
136
131
  //# sourceMappingURL=signEmployeeFormSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signEmployeeFormSchema.js","sources":["../../../../../../src/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n buildFormSchema,\n type RequiredFieldConfig,\n} from '@/partner-hook-utils/form/buildFormSchema'\n\n// ── Error codes ────────────────────────────────────────────────────────\n\n/**\n * Validation error codes emitted by the I-9 sign-employee form schema. Map\n * these codes to localized copy in `validationMessages` when composing the\n * hook.\n *\n * @public\n */\nexport const SignEmployeeFormErrorCodes = {\n REQUIRED: 'REQUIRED',\n} as const\n\n/**\n * Union of validation error code strings emitted by the I-9 sign-employee\n * form schema.\n *\n * @public\n */\nexport type SignEmployeeFormErrorCode =\n (typeof SignEmployeeFormErrorCodes)[keyof typeof SignEmployeeFormErrorCodes]\n\n// ── Preparer naming helpers ────────────────────────────────────────────\n\n/**\n * Maximum number of I-9 preparers and translators the form supports.\n *\n * @public\n */\nexport const MAX_PREPARERS = 4\n\n/**\n * One-based preparer index used to reference preparer field groups (1–4).\n *\n * @public\n */\nexport type PreparerIndex = 1 | 2 | 3 | 4\n\n/**\n * Suffix segment of a preparer field name — the part that follows\n * `preparer` (or `preparerN`) in the field key.\n *\n * @public\n */\nexport type PreparerFieldSuffix =\n | 'FirstName'\n | 'LastName'\n | 'Street1'\n | 'Street2'\n | 'City'\n | 'State'\n | 'Zip'\n | 'Signature'\n | 'Agree'\n\n/** @internal */\nexport function preparerFieldName(index: PreparerIndex, field: PreparerFieldSuffix): string {\n return index === 1 ? `preparer${field}` : `preparer${index}${field}`\n}\n\n// ── Preparer field name constants ──────────────────────────────────────\n\ntype PreparerFieldMap = Record<\n | 'firstName'\n | 'lastName'\n | 'street1'\n | 'street2'\n | 'city'\n | 'state'\n | 'zip'\n | 'signature'\n | 'agree',\n SignEmployeeFormField\n>\n\nconst PREPARER_1 = {\n firstName: 'preparerFirstName',\n lastName: 'preparerLastName',\n street1: 'preparerStreet1',\n street2: 'preparerStreet2',\n city: 'preparerCity',\n state: 'preparerState',\n zip: 'preparerZip',\n signature: 'preparerSignature',\n agree: 'preparerAgree',\n} as const\n\nconst PREPARER_2 = {\n firstName: 'preparer2FirstName',\n lastName: 'preparer2LastName',\n street1: 'preparer2Street1',\n street2: 'preparer2Street2',\n city: 'preparer2City',\n state: 'preparer2State',\n zip: 'preparer2Zip',\n signature: 'preparer2Signature',\n agree: 'preparer2Agree',\n} as const\n\nconst PREPARER_3 = {\n firstName: 'preparer3FirstName',\n lastName: 'preparer3LastName',\n street1: 'preparer3Street1',\n street2: 'preparer3Street2',\n city: 'preparer3City',\n state: 'preparer3State',\n zip: 'preparer3Zip',\n signature: 'preparer3Signature',\n agree: 'preparer3Agree',\n} as const\n\nconst PREPARER_4 = {\n firstName: 'preparer4FirstName',\n lastName: 'preparer4LastName',\n street1: 'preparer4Street1',\n street2: 'preparer4Street2',\n city: 'preparer4City',\n state: 'preparer4State',\n zip: 'preparer4Zip',\n signature: 'preparer4Signature',\n agree: 'preparer4Agree',\n} as const\n\n/**\n * Per-preparer field name maps indexed by preparer position (0-based). Use\n * these to look up the form field name for a given preparer slot — for\n * example `PREPARERS_BY_INDEX[1].firstName` resolves to\n * `'preparer2FirstName'`.\n *\n * @public\n */\nexport const PREPARERS_BY_INDEX = [\n PREPARER_1,\n PREPARER_2,\n PREPARER_3,\n PREPARER_4,\n] satisfies PreparerFieldMap[]\n\n// ── Per-preparer field name lists (used for excludeFields) ──────────────\n\ntype ValuesOf<T> = T[keyof T]\n\nconst PREPARER_1_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_1) as ValuesOf<\n typeof PREPARER_1\n>[]\nconst PREPARER_2_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_2) as ValuesOf<\n typeof PREPARER_2\n>[]\nconst PREPARER_3_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_3) as ValuesOf<\n typeof PREPARER_3\n>[]\nconst PREPARER_4_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_4) as ValuesOf<\n typeof PREPARER_4\n>[]\n\n/**\n * Flat list of preparer field names per preparer slot (0-based), useful for\n * iterating every field that belongs to a single preparer.\n *\n * @public\n */\nexport const PREPARER_FIELDS_BY_INDEX: SignEmployeeFormField[][] = [\n PREPARER_1_FIELDS,\n PREPARER_2_FIELDS,\n PREPARER_3_FIELDS,\n PREPARER_4_FIELDS,\n]\n\nconst ALL_PREPARER_FIELDS = PREPARER_FIELDS_BY_INDEX.flat()\n\n// ── Field validators ───────────────────────────────────────────────────\n\nconst agreeValidator = z.boolean().refine(val => val, {\n message: SignEmployeeFormErrorCodes.REQUIRED,\n})\n\nconst fieldValidators = {\n signature: z.string(),\n confirmSignature: agreeValidator,\n usedPreparer: z.enum(['yes', 'no']),\n\n // Preparer 1\n [PREPARER_1.firstName]: z.string(),\n [PREPARER_1.lastName]: z.string(),\n [PREPARER_1.street1]: z.string(),\n [PREPARER_1.street2]: z.string(),\n [PREPARER_1.city]: z.string(),\n [PREPARER_1.state]: z.string(),\n [PREPARER_1.zip]: z.string(),\n [PREPARER_1.signature]: z.string(),\n [PREPARER_1.agree]: agreeValidator,\n\n // Preparer 2\n [PREPARER_2.firstName]: z.string(),\n [PREPARER_2.lastName]: z.string(),\n [PREPARER_2.street1]: z.string(),\n [PREPARER_2.street2]: z.string(),\n [PREPARER_2.city]: z.string(),\n [PREPARER_2.state]: z.string(),\n [PREPARER_2.zip]: z.string(),\n [PREPARER_2.signature]: z.string(),\n [PREPARER_2.agree]: agreeValidator,\n\n // Preparer 3\n [PREPARER_3.firstName]: z.string(),\n [PREPARER_3.lastName]: z.string(),\n [PREPARER_3.street1]: z.string(),\n [PREPARER_3.street2]: z.string(),\n [PREPARER_3.city]: z.string(),\n [PREPARER_3.state]: z.string(),\n [PREPARER_3.zip]: z.string(),\n [PREPARER_3.signature]: z.string(),\n [PREPARER_3.agree]: agreeValidator,\n\n // Preparer 4\n [PREPARER_4.firstName]: z.string(),\n [PREPARER_4.lastName]: z.string(),\n [PREPARER_4.street1]: z.string(),\n [PREPARER_4.street2]: z.string(),\n [PREPARER_4.city]: z.string(),\n [PREPARER_4.state]: z.string(),\n [PREPARER_4.zip]: z.string(),\n [PREPARER_4.signature]: z.string(),\n [PREPARER_4.agree]: agreeValidator,\n}\n\n/**\n * Field names accepted by the I-9 sign-employee form.\n *\n * @public\n */\nexport type SignEmployeeFormField = keyof typeof fieldValidators\n\n/**\n * Shape of the values managed by the I-9 sign-employee form.\n *\n * @public\n * @interface\n */\nexport type SignEmployeeFormData = {\n [K in keyof typeof fieldValidators]: z.infer<(typeof fieldValidators)[K]>\n}\n/** @internal */\nexport type SignEmployeeFormOutputs = SignEmployeeFormData\n\n// ── Required fields config ─────────────────────────────────────────────\n\nconst requiredFieldsConfig = {\n [PREPARER_1.street2]: 'never',\n [PREPARER_2.street2]: 'never',\n [PREPARER_3.street2]: 'never',\n [PREPARER_4.street2]: 'never',\n} satisfies RequiredFieldConfig<typeof fieldValidators>\n\n// ── Schema factory ─────────────────────────────────────────────────────\n\n/** @internal */\ninterface SignEmployeeFormSchemaOptions {\n isI9?: boolean\n preparerCount?: number\n}\n\n/** @internal */\nexport function createSignEmployeeFormSchema(options: SignEmployeeFormSchemaOptions = {}) {\n const { isI9 = false, preparerCount = 0 } = options\n\n const excludeFields: SignEmployeeFormField[] = []\n\n if (!isI9) {\n excludeFields.push('usedPreparer', ...ALL_PREPARER_FIELDS)\n } else {\n for (let index = 0; index < MAX_PREPARERS; index++) {\n if (index + 1 > preparerCount) {\n const preparerFields = PREPARER_FIELDS_BY_INDEX[index]\n if (preparerFields) excludeFields.push(...preparerFields)\n }\n }\n }\n\n return buildFormSchema(fieldValidators, {\n requiredFieldsConfig,\n requiredErrorCode: SignEmployeeFormErrorCodes.REQUIRED,\n mode: 'create',\n excludeFields,\n })\n}\n"],"names":["SignEmployeeFormErrorCodes","MAX_PREPARERS","preparerFieldName","index","field","PREPARER_1","PREPARER_2","PREPARER_3","PREPARER_4","PREPARERS_BY_INDEX","PREPARER_1_FIELDS","PREPARER_2_FIELDS","PREPARER_3_FIELDS","PREPARER_4_FIELDS","PREPARER_FIELDS_BY_INDEX","ALL_PREPARER_FIELDS","agreeValidator","z","val","fieldValidators","requiredFieldsConfig","createSignEmployeeFormSchema","options","isI9","preparerCount","excludeFields","preparerFields","buildFormSchema"],"mappings":"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"}
1
+ {"version":3,"file":"signEmployeeFormSchema.js","sources":["../../../../../../src/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n buildFormSchema,\n type RequiredFieldConfig,\n} from '@/partner-hook-utils/form/buildFormSchema'\n\n// ── Error codes ────────────────────────────────────────────────────────\n\n/**\n * Validation error codes emitted by the I-9 sign-employee form schema. Map\n * these codes to localized copy in `validationMessages` when composing the\n * hook.\n *\n * @public\n */\nexport const SignEmployeeFormErrorCodes = {\n REQUIRED: 'REQUIRED',\n} as const\n\n/**\n * Union of validation error code strings emitted by the I-9 sign-employee\n * form schema.\n *\n * @public\n */\nexport type SignEmployeeFormErrorCode =\n (typeof SignEmployeeFormErrorCodes)[keyof typeof SignEmployeeFormErrorCodes]\n\n// ── Preparer naming helpers ────────────────────────────────────────────\n\n/**\n * Maximum number of I-9 preparers and translators the form supports.\n *\n * @public\n */\nexport const MAX_PREPARERS = 4\n\n/**\n * One-based preparer index used to reference preparer field groups (1–4).\n *\n * @public\n */\nexport type PreparerIndex = 1 | 2 | 3 | 4\n\n/**\n * Suffix segment of a preparer field name — the part that follows\n * `preparer` (or `preparerN`) in the field key.\n *\n * @public\n */\nexport type PreparerFieldSuffix =\n | 'FirstName'\n | 'LastName'\n | 'Street1'\n | 'Street2'\n | 'City'\n | 'State'\n | 'Zip'\n | 'Signature'\n | 'Agree'\n\n/** @internal */\nexport function preparerFieldName(index: PreparerIndex, field: PreparerFieldSuffix): string {\n return index === 1 ? `preparer${field}` : `preparer${index}${field}`\n}\n\n// ── Preparer field name constants ──────────────────────────────────────\n\ntype PreparerFieldMap = Record<\n | 'firstName'\n | 'lastName'\n | 'street1'\n | 'street2'\n | 'city'\n | 'state'\n | 'zip'\n | 'signature'\n | 'agree',\n SignEmployeeFormField\n>\n\nconst PREPARER_1 = {\n firstName: 'preparerFirstName',\n lastName: 'preparerLastName',\n street1: 'preparerStreet1',\n street2: 'preparerStreet2',\n city: 'preparerCity',\n state: 'preparerState',\n zip: 'preparerZip',\n signature: 'preparerSignature',\n agree: 'preparerAgree',\n} as const\n\nconst PREPARER_2 = {\n firstName: 'preparer2FirstName',\n lastName: 'preparer2LastName',\n street1: 'preparer2Street1',\n street2: 'preparer2Street2',\n city: 'preparer2City',\n state: 'preparer2State',\n zip: 'preparer2Zip',\n signature: 'preparer2Signature',\n agree: 'preparer2Agree',\n} as const\n\nconst PREPARER_3 = {\n firstName: 'preparer3FirstName',\n lastName: 'preparer3LastName',\n street1: 'preparer3Street1',\n street2: 'preparer3Street2',\n city: 'preparer3City',\n state: 'preparer3State',\n zip: 'preparer3Zip',\n signature: 'preparer3Signature',\n agree: 'preparer3Agree',\n} as const\n\nconst PREPARER_4 = {\n firstName: 'preparer4FirstName',\n lastName: 'preparer4LastName',\n street1: 'preparer4Street1',\n street2: 'preparer4Street2',\n city: 'preparer4City',\n state: 'preparer4State',\n zip: 'preparer4Zip',\n signature: 'preparer4Signature',\n agree: 'preparer4Agree',\n} as const\n\n/**\n * Per-preparer field name maps indexed by preparer position (0-based). Use\n * these to look up the form field name for a given preparer slot — for\n * example `PREPARERS_BY_INDEX[1].firstName` resolves to\n * `'preparer2FirstName'`.\n *\n * @public\n */\nexport const PREPARERS_BY_INDEX = [\n PREPARER_1,\n PREPARER_2,\n PREPARER_3,\n PREPARER_4,\n] satisfies PreparerFieldMap[]\n\n// ── Per-preparer field name lists (used for excludeFields) ──────────────\n\ntype ValuesOf<T> = T[keyof T]\n\nconst PREPARER_1_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_1) as ValuesOf<\n typeof PREPARER_1\n>[]\nconst PREPARER_2_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_2) as ValuesOf<\n typeof PREPARER_2\n>[]\nconst PREPARER_3_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_3) as ValuesOf<\n typeof PREPARER_3\n>[]\nconst PREPARER_4_FIELDS: SignEmployeeFormField[] = Object.values(PREPARER_4) as ValuesOf<\n typeof PREPARER_4\n>[]\n\n/**\n * Flat list of preparer field names per preparer slot (0-based), useful for\n * iterating every field that belongs to a single preparer.\n *\n * @public\n */\nexport const PREPARER_FIELDS_BY_INDEX: SignEmployeeFormField[][] = [\n PREPARER_1_FIELDS,\n PREPARER_2_FIELDS,\n PREPARER_3_FIELDS,\n PREPARER_4_FIELDS,\n]\n\nconst ALL_PREPARER_FIELDS = PREPARER_FIELDS_BY_INDEX.flat()\n\n// ── Field validators ───────────────────────────────────────────────────\n\nconst agreeValidator = z.boolean().refine(val => val, {\n message: SignEmployeeFormErrorCodes.REQUIRED,\n})\n\nconst fieldValidators = {\n signature: z.string(),\n confirmSignature: agreeValidator,\n usedPreparer: z.enum(['yes', 'no']),\n\n // Preparer 1\n [PREPARER_1.firstName]: z.string(),\n [PREPARER_1.lastName]: z.string(),\n [PREPARER_1.street1]: z.string(),\n [PREPARER_1.street2]: z.string(),\n [PREPARER_1.city]: z.string(),\n [PREPARER_1.state]: z.string(),\n [PREPARER_1.zip]: z.string(),\n [PREPARER_1.signature]: z.string(),\n [PREPARER_1.agree]: agreeValidator,\n\n // Preparer 2\n [PREPARER_2.firstName]: z.string(),\n [PREPARER_2.lastName]: z.string(),\n [PREPARER_2.street1]: z.string(),\n [PREPARER_2.street2]: z.string(),\n [PREPARER_2.city]: z.string(),\n [PREPARER_2.state]: z.string(),\n [PREPARER_2.zip]: z.string(),\n [PREPARER_2.signature]: z.string(),\n [PREPARER_2.agree]: agreeValidator,\n\n // Preparer 3\n [PREPARER_3.firstName]: z.string(),\n [PREPARER_3.lastName]: z.string(),\n [PREPARER_3.street1]: z.string(),\n [PREPARER_3.street2]: z.string(),\n [PREPARER_3.city]: z.string(),\n [PREPARER_3.state]: z.string(),\n [PREPARER_3.zip]: z.string(),\n [PREPARER_3.signature]: z.string(),\n [PREPARER_3.agree]: agreeValidator,\n\n // Preparer 4\n [PREPARER_4.firstName]: z.string(),\n [PREPARER_4.lastName]: z.string(),\n [PREPARER_4.street1]: z.string(),\n [PREPARER_4.street2]: z.string(),\n [PREPARER_4.city]: z.string(),\n [PREPARER_4.state]: z.string(),\n [PREPARER_4.zip]: z.string(),\n [PREPARER_4.signature]: z.string(),\n [PREPARER_4.agree]: agreeValidator,\n}\n\n/**\n * Field names accepted by the I-9 sign-employee form.\n *\n * @public\n */\nexport type SignEmployeeFormField = keyof typeof fieldValidators\n\n/**\n * Shape of the values managed by the I-9 sign-employee form.\n *\n * @public\n * @interface\n */\nexport type SignEmployeeFormData = {\n [K in keyof typeof fieldValidators]: z.infer<(typeof fieldValidators)[K]>\n}\n/** @internal */\nexport type SignEmployeeFormOutputs = SignEmployeeFormData\n\n// ── Required fields config ─────────────────────────────────────────────\n\nconst requiredFieldsConfig = {\n [PREPARER_1.street2]: 'never',\n [PREPARER_2.street2]: 'never',\n [PREPARER_3.street2]: 'never',\n [PREPARER_4.street2]: 'never',\n} satisfies RequiredFieldConfig<typeof fieldValidators>\n\n// ── Schema factory ─────────────────────────────────────────────────────\n\n/** @internal */\ninterface SignEmployeeFormSchemaOptions {\n isI9?: boolean\n preparerCount?: number\n}\n\n/** @internal */\nexport function createSignEmployeeFormSchema(options: SignEmployeeFormSchemaOptions = {}) {\n const { isI9 = false, preparerCount = 0 } = options\n\n const excludeFields: SignEmployeeFormField[] = []\n\n if (!isI9) {\n excludeFields.push('usedPreparer', ...ALL_PREPARER_FIELDS)\n } else {\n for (let index = 0; index < MAX_PREPARERS; index++) {\n if (index + 1 > preparerCount) {\n const preparerFields = PREPARER_FIELDS_BY_INDEX[index]\n if (preparerFields) excludeFields.push(...preparerFields)\n }\n }\n }\n\n return buildFormSchema(fieldValidators, {\n requiredFieldsConfig,\n requiredErrorCode: SignEmployeeFormErrorCodes.REQUIRED,\n mode: 'create',\n excludeFields,\n })\n}\n"],"names":["SignEmployeeFormErrorCodes","MAX_PREPARERS","PREPARER_1","PREPARER_2","PREPARER_3","PREPARER_4","PREPARERS_BY_INDEX","PREPARER_1_FIELDS","PREPARER_2_FIELDS","PREPARER_3_FIELDS","PREPARER_4_FIELDS","PREPARER_FIELDS_BY_INDEX","ALL_PREPARER_FIELDS","agreeValidator","z","val","fieldValidators","requiredFieldsConfig","createSignEmployeeFormSchema","options","isI9","preparerCount","excludeFields","index","preparerFields","buildFormSchema"],"mappings":"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"}
@@ -9,8 +9,7 @@ import { composeErrorHandler as R } from "../../../../partner-hook-utils/compose
9
9
  import { EmployeeOnboardingStatus as r, EmployeeSelfOnboardingStatuses as v } from "../../../../shared/constants.js";
10
10
  function C(e, s) {
11
11
  const a = [];
12
- return s !== "terminated" && (e.onboardingStatus === r.ADMIN_ONBOARDING_INCOMPLETE || e.onboardingStatus === r.SELF_ONBOARDING_PENDING_INVITE || e.onboardingStatus === r.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW || e.onboardingStatus === r.ONBOARDING_COMPLETED) && a.push("edit"), e.onboardingStatus && // @ts-expect-error: onboardingStatus during runtime can be one of self onboarding statuses
13
- v.has(e.onboardingStatus) && a.push("cancel_self_onboarding"), e.onboardingStatus === r.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE && a.push("review"), e.onboarded || a.push("delete"), s === "active" && a.push("dismiss"), s === "terminated" && a.push("rehire"), a;
12
+ return s !== "terminated" && (e.onboardingStatus === r.ADMIN_ONBOARDING_INCOMPLETE || e.onboardingStatus === r.SELF_ONBOARDING_PENDING_INVITE || e.onboardingStatus === r.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW || e.onboardingStatus === r.ONBOARDING_COMPLETED) && a.push("edit"), e.onboardingStatus && v.has(e.onboardingStatus) && a.push("cancel_self_onboarding"), e.onboardingStatus === r.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE && a.push("review"), e.onboarded || a.push("delete"), s === "active" && a.push("dismiss"), s === "terminated" && a.push("rehire"), a;
14
13
  }
15
14
  function J({
16
15
  companyId: e,
@@ -1 +1 @@
1
- {"version":3,"file":"useEmployeeList.js","sources":["../../../../../src/components/Employee/EmployeeList/shared/useEmployeeList.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useEmployeesList } from '@gusto/embedded-api/react-query/employeesList'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { EmployeeOnboardingStatus as EmployeeOnboardingStatusEntity } from '@gusto/embedded-api/models/components/employeeonboardingstatus'\nimport { useEmployeesDeleteMutation } from '@gusto/embedded-api/react-query/employeesDelete'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { EmployeeOnboardingStatus, EmployeeSelfOnboardingStatuses } from '@/shared/constants'\nimport type { HookLoadingResult, BaseHookReady } from '@/partner-hook-utils/types'\n\n/**\n * Action that may be performed on an employee row, determined by the employee's onboarding state\n * and the `employeeType` filter passed to {@link useEmployeeList}.\n *\n * @public\n */\nexport type EmployeeAction =\n 'edit' | 'delete' | 'cancel_self_onboarding' | 'review' | 'dismiss' | 'rehire'\n\n/**\n * An employee entity extended with the actions permitted on it and a reference to its primary job.\n *\n * @public\n */\nexport interface EmployeeWithActions extends Employee {\n /** Actions permitted for this employee given its onboarding status and the active filter. */\n allowedActions: EmployeeAction[]\n /** The employee's primary job, if one is marked primary. */\n primaryJob?: Job\n}\n\n/**\n * Filter applied to {@link useEmployeeList} that scopes the result set and tailors the per-row action list.\n *\n * @public\n */\nexport type EmployeeType = 'active' | 'onboarding' | 'terminated'\n\n/**\n * Props for {@link useEmployeeList}.\n *\n * @public\n */\nexport interface UseEmployeeListProps {\n /** The associated company identifier. */\n companyId: string\n /** Filters the list and tailors the allowed actions. Omit to list all employees. */\n employeeType?: EmployeeType\n}\n\n/**\n * Ready state of {@link useEmployeeList}.\n *\n * @public\n */\nexport interface UseEmployeeListReady extends BaseHookReady<\n { employees: EmployeeWithActions[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the current employee list page. */\n pagination: PaginationControlProps\n /** Actions that mutate an employee's state, gated by the entry's `allowedActions`. */\n actions: {\n /** Deletes the employee. */\n onDelete: (employeeId: string) => Promise<void>\n /** Moves the employee into the admin-review onboarding status. Resolves to the updated record, or `undefined` if the call failed. */\n onReview: (employeeId: string) => Promise<EmployeeOnboardingStatusEntity | undefined>\n /** Reverts a self-onboarding employee to admin-driven onboarding. Resolves to the updated record, or `undefined` if the call failed. */\n onCancelSelfOnboarding: (\n employeeId: string,\n ) => Promise<EmployeeOnboardingStatusEntity | undefined>\n }\n}\n\n/**\n * Return type of {@link useEmployeeList}.\n *\n * @public\n */\nexport type UseEmployeeListResult = HookLoadingResult | UseEmployeeListReady\n\nfunction deriveAllowedActions(employee: Employee, employeeType?: EmployeeType): EmployeeAction[] {\n const actions: EmployeeAction[] = []\n\n // Edit action - available for certain onboarding statuses, but not for terminated employees\n if (\n employeeType !== 'terminated' &&\n (employee.onboardingStatus === EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE ||\n employee.onboardingStatus ===\n EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW ||\n employee.onboardingStatus === EmployeeOnboardingStatus.ONBOARDING_COMPLETED)\n ) {\n actions.push('edit')\n }\n\n // Cancel self onboarding - available for employees in self-onboarding flow\n if (\n employee.onboardingStatus &&\n // @ts-expect-error: onboardingStatus during runtime can be one of self onboarding statuses\n EmployeeSelfOnboardingStatuses.has(employee.onboardingStatus)\n ) {\n actions.push('cancel_self_onboarding')\n }\n\n // Review action - available when employee completed self-onboarding\n if (\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE\n ) {\n actions.push('review')\n }\n\n // Delete action - available for non-onboarded employees\n if (!employee.onboarded) {\n actions.push('delete')\n }\n\n // Tab-specific actions for ManagementEmployeeList\n if (employeeType === 'active') {\n actions.push('dismiss')\n }\n\n if (employeeType === 'terminated') {\n actions.push('rehire')\n }\n\n return actions\n}\n\n/**\n * Fetches a paginated list of a company's employees and decorates each entry with the actions\n * allowed for its current onboarding state.\n *\n * @remarks\n * `employeeType` maps to a server-side filter and changes which actions appear on each row:\n * `'active'` adds `dismiss`, `'terminated'` adds `rehire`, `'onboarding'` adds none. Omit it\n * to list every employee.\n *\n * Page changes use placeholder data: the previous page stays rendered while the next one loads,\n * and `status.isFetching` flips to `true` during the request.\n *\n * @param input - Company and optional filter for the list.\n * @returns A {@link HookLoadingResult} while the first page is in flight, or a {@link UseEmployeeListReady} once data has arrived.\n * @public\n *\n * @example\n * ```tsx\n * import { useEmployeeList } from '@gusto/embedded-react-sdk'\n *\n * function EmployeeListPage({ companyId }: { companyId: string }) {\n * const employeeList = useEmployeeList({ companyId, employeeType: 'onboarding' })\n *\n * if (employeeList.isLoading) return <div>Loading...</div>\n *\n * return (\n * <ul>\n * {employeeList.data.employees.map(employee => (\n * <li key={employee.uuid}>\n * {employee.firstName} {employee.lastName}\n * {employee.allowedActions.includes('delete') && (\n * <button onClick={() => employeeList.actions.onDelete(employee.uuid)}>Delete</button>\n * )}\n * </li>\n * ))}\n * </ul>\n * )\n * }\n * ```\n */\nexport function useEmployeeList({\n companyId,\n employeeType,\n}: UseEmployeeListProps): UseEmployeeListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const queryParams = useMemo(() => {\n const baseParams = {\n companyId,\n page: currentPage,\n per: itemsPerPage,\n }\n\n switch (employeeType) {\n case 'active':\n return { ...baseParams, onboardedActive: true }\n case 'onboarding':\n return { ...baseParams, onboarded: false }\n case 'terminated':\n return { ...baseParams, terminated: true }\n default:\n return baseParams\n }\n }, [companyId, currentPage, itemsPerPage, employeeType])\n\n const employeesQuery = useEmployeesList(queryParams, { placeholderData: keepPreviousData })\n\n const deleteEmployeeMutation = useEmployeesDeleteMutation()\n const updateOnboardingStatusMutation = useEmployeesUpdateOnboardingStatusMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('EmployeeList')\n\n const errorHandling = composeErrorHandler([employeesQuery], { submitError, setSubmitError })\n\n const isPending = deleteEmployeeMutation.isPending || updateOnboardingStatusMutation.isPending\n\n const { data, isFetching } = employeesQuery\n\n const employees = useMemo<EmployeeWithActions[]>(() => {\n return (data?.showEmployees ?? []).map(employee => {\n const primaryJob = employee.jobs?.find(job => job.primary === true)\n\n return {\n ...employee,\n allowedActions: deriveAllowedActions(employee, employeeType),\n primaryJob,\n }\n })\n }, [data?.showEmployees, employeeType])\n\n const paginationProps = data?.httpMeta.response.headers\n ? getPaginationProps(data.httpMeta.response.headers, isFetching)\n : {\n handleNextPage: () => {},\n handleFirstPage: () => {},\n handleLastPage: () => {},\n handlePreviousPage: () => {},\n handleItemsPerPageChange: () => {},\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n itemsPerPage: 5 as const,\n }\n\n const onDelete = async (employeeId: string): Promise<void> => {\n await baseSubmitHandler(employeeId, async id => {\n await deleteEmployeeMutation.mutateAsync({\n request: { employeeId: id },\n })\n })\n }\n\n const onReview = async (\n employeeId: string,\n ): Promise<EmployeeOnboardingStatusEntity | undefined> => {\n let onboardingStatus: EmployeeOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(employeeId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n employeeId: id,\n requestBody: {\n onboardingStatus: EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n },\n },\n })\n\n onboardingStatus = result.employeeOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const onCancelSelfOnboarding = async (\n employeeId: string,\n ): Promise<EmployeeOnboardingStatusEntity | undefined> => {\n let onboardingStatus: EmployeeOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(employeeId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n employeeId: id,\n requestBody: {\n onboardingStatus: EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n onboardingStatus = result.employeeOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const isLoading = !data && isFetching\n\n if (isLoading) {\n return {\n isLoading: true,\n errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: {\n employees,\n },\n pagination: paginationProps,\n status: { isFetching, isPending },\n actions: { onDelete, onReview, onCancelSelfOnboarding },\n errorHandling,\n }\n}\n"],"names":["deriveAllowedActions","employee","employeeType","actions","EmployeeOnboardingStatus","EmployeeSelfOnboardingStatuses","useEmployeeList","companyId","currentPage","itemsPerPage","getPaginationProps","usePagination","queryParams","useMemo","baseParams","employeesQuery","useEmployeesList","keepPreviousData","deleteEmployeeMutation","useEmployeesDeleteMutation","updateOnboardingStatusMutation","useEmployeesUpdateOnboardingStatusMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","data","isFetching","employees","primaryJob","job","paginationProps","onDelete","employeeId","id","onReview","onboardingStatus","onCancelSelfOnboarding"],"mappings":"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"}
1
+ {"version":3,"file":"useEmployeeList.js","sources":["../../../../../src/components/Employee/EmployeeList/shared/useEmployeeList.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useEmployeesList } from '@gusto/embedded-api/react-query/employeesList'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { EmployeeOnboardingStatus as EmployeeOnboardingStatusEntity } from '@gusto/embedded-api/models/components/employeeonboardingstatus'\nimport { useEmployeesDeleteMutation } from '@gusto/embedded-api/react-query/employeesDelete'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { EmployeeOnboardingStatus, EmployeeSelfOnboardingStatuses } from '@/shared/constants'\nimport type { HookLoadingResult, BaseHookReady } from '@/partner-hook-utils/types'\n\n/**\n * Action that may be performed on an employee row, determined by the employee's onboarding state\n * and the `employeeType` filter passed to {@link useEmployeeList}.\n *\n * @public\n */\nexport type EmployeeAction =\n 'edit' | 'delete' | 'cancel_self_onboarding' | 'review' | 'dismiss' | 'rehire'\n\n/**\n * An employee entity extended with the actions permitted on it and a reference to its primary job.\n *\n * @public\n */\nexport interface EmployeeWithActions extends Employee {\n /** Actions permitted for this employee given its onboarding status and the active filter. */\n allowedActions: EmployeeAction[]\n /** The employee's primary job, if one is marked primary. */\n primaryJob?: Job\n}\n\n/**\n * Filter applied to {@link useEmployeeList} that scopes the result set and tailors the per-row action list.\n *\n * @public\n */\nexport type EmployeeType = 'active' | 'onboarding' | 'terminated'\n\n/**\n * Props for {@link useEmployeeList}.\n *\n * @public\n */\nexport interface UseEmployeeListProps {\n /** The associated company identifier. */\n companyId: string\n /** Filters the list and tailors the allowed actions. Omit to list all employees. */\n employeeType?: EmployeeType\n}\n\n/**\n * Ready state of {@link useEmployeeList}.\n *\n * @public\n */\nexport interface UseEmployeeListReady extends BaseHookReady<\n { employees: EmployeeWithActions[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the current employee list page. */\n pagination: PaginationControlProps\n /** Actions that mutate an employee's state, gated by the entry's `allowedActions`. */\n actions: {\n /** Deletes the employee. */\n onDelete: (employeeId: string) => Promise<void>\n /** Moves the employee into the admin-review onboarding status. Resolves to the updated record, or `undefined` if the call failed. */\n onReview: (employeeId: string) => Promise<EmployeeOnboardingStatusEntity | undefined>\n /** Reverts a self-onboarding employee to admin-driven onboarding. Resolves to the updated record, or `undefined` if the call failed. */\n onCancelSelfOnboarding: (\n employeeId: string,\n ) => Promise<EmployeeOnboardingStatusEntity | undefined>\n }\n}\n\n/**\n * Return type of {@link useEmployeeList}.\n *\n * @public\n */\nexport type UseEmployeeListResult = HookLoadingResult | UseEmployeeListReady\n\nfunction deriveAllowedActions(employee: Employee, employeeType?: EmployeeType): EmployeeAction[] {\n const actions: EmployeeAction[] = []\n\n // Edit action - available for certain onboarding statuses, but not for terminated employees\n if (\n employeeType !== 'terminated' &&\n (employee.onboardingStatus === EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE ||\n employee.onboardingStatus ===\n EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW ||\n employee.onboardingStatus === EmployeeOnboardingStatus.ONBOARDING_COMPLETED)\n ) {\n actions.push('edit')\n }\n\n // Cancel self onboarding - available for employees in self-onboarding flow\n if (employee.onboardingStatus && EmployeeSelfOnboardingStatuses.has(employee.onboardingStatus)) {\n actions.push('cancel_self_onboarding')\n }\n\n // Review action - available when employee completed self-onboarding\n if (\n employee.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE\n ) {\n actions.push('review')\n }\n\n // Delete action - available for non-onboarded employees\n if (!employee.onboarded) {\n actions.push('delete')\n }\n\n // Tab-specific actions for ManagementEmployeeList\n if (employeeType === 'active') {\n actions.push('dismiss')\n }\n\n if (employeeType === 'terminated') {\n actions.push('rehire')\n }\n\n return actions\n}\n\n/**\n * Fetches a paginated list of a company's employees and decorates each entry with the actions\n * allowed for its current onboarding state.\n *\n * @remarks\n * `employeeType` maps to a server-side filter and changes which actions appear on each row:\n * `'active'` adds `dismiss`, `'terminated'` adds `rehire`, `'onboarding'` adds none. Omit it\n * to list every employee.\n *\n * Page changes use placeholder data: the previous page stays rendered while the next one loads,\n * and `status.isFetching` flips to `true` during the request.\n *\n * @param input - Company and optional filter for the list.\n * @returns A {@link HookLoadingResult} while the first page is in flight, or a {@link UseEmployeeListReady} once data has arrived.\n * @public\n *\n * @example\n * ```tsx\n * import { useEmployeeList } from '@gusto/embedded-react-sdk'\n *\n * function EmployeeListPage({ companyId }: { companyId: string }) {\n * const employeeList = useEmployeeList({ companyId, employeeType: 'onboarding' })\n *\n * if (employeeList.isLoading) return <div>Loading...</div>\n *\n * return (\n * <ul>\n * {employeeList.data.employees.map(employee => (\n * <li key={employee.uuid}>\n * {employee.firstName} {employee.lastName}\n * {employee.allowedActions.includes('delete') && (\n * <button onClick={() => employeeList.actions.onDelete(employee.uuid)}>Delete</button>\n * )}\n * </li>\n * ))}\n * </ul>\n * )\n * }\n * ```\n */\nexport function useEmployeeList({\n companyId,\n employeeType,\n}: UseEmployeeListProps): UseEmployeeListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const queryParams = useMemo(() => {\n const baseParams = {\n companyId,\n page: currentPage,\n per: itemsPerPage,\n }\n\n switch (employeeType) {\n case 'active':\n return { ...baseParams, onboardedActive: true }\n case 'onboarding':\n return { ...baseParams, onboarded: false }\n case 'terminated':\n return { ...baseParams, terminated: true }\n default:\n return baseParams\n }\n }, [companyId, currentPage, itemsPerPage, employeeType])\n\n const employeesQuery = useEmployeesList(queryParams, { placeholderData: keepPreviousData })\n\n const deleteEmployeeMutation = useEmployeesDeleteMutation()\n const updateOnboardingStatusMutation = useEmployeesUpdateOnboardingStatusMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('EmployeeList')\n\n const errorHandling = composeErrorHandler([employeesQuery], { submitError, setSubmitError })\n\n const isPending = deleteEmployeeMutation.isPending || updateOnboardingStatusMutation.isPending\n\n const { data, isFetching } = employeesQuery\n\n const employees = useMemo<EmployeeWithActions[]>(() => {\n return (data?.showEmployees ?? []).map(employee => {\n const primaryJob = employee.jobs?.find(job => job.primary === true)\n\n return {\n ...employee,\n allowedActions: deriveAllowedActions(employee, employeeType),\n primaryJob,\n }\n })\n }, [data?.showEmployees, employeeType])\n\n const paginationProps = data?.httpMeta.response.headers\n ? getPaginationProps(data.httpMeta.response.headers, isFetching)\n : {\n handleNextPage: () => {},\n handleFirstPage: () => {},\n handleLastPage: () => {},\n handlePreviousPage: () => {},\n handleItemsPerPageChange: () => {},\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n itemsPerPage: 5 as const,\n }\n\n const onDelete = async (employeeId: string): Promise<void> => {\n await baseSubmitHandler(employeeId, async id => {\n await deleteEmployeeMutation.mutateAsync({\n request: { employeeId: id },\n })\n })\n }\n\n const onReview = async (\n employeeId: string,\n ): Promise<EmployeeOnboardingStatusEntity | undefined> => {\n let onboardingStatus: EmployeeOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(employeeId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n employeeId: id,\n requestBody: {\n onboardingStatus: EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n },\n },\n })\n\n onboardingStatus = result.employeeOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const onCancelSelfOnboarding = async (\n employeeId: string,\n ): Promise<EmployeeOnboardingStatusEntity | undefined> => {\n let onboardingStatus: EmployeeOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(employeeId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n employeeId: id,\n requestBody: {\n onboardingStatus: EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n onboardingStatus = result.employeeOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const isLoading = !data && isFetching\n\n if (isLoading) {\n return {\n isLoading: true,\n errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: {\n employees,\n },\n pagination: paginationProps,\n status: { isFetching, isPending },\n actions: { onDelete, onReview, onCancelSelfOnboarding },\n errorHandling,\n }\n}\n"],"names":["deriveAllowedActions","employee","employeeType","actions","EmployeeOnboardingStatus","EmployeeSelfOnboardingStatuses","useEmployeeList","companyId","currentPage","itemsPerPage","getPaginationProps","usePagination","queryParams","useMemo","baseParams","employeesQuery","useEmployeesList","keepPreviousData","deleteEmployeeMutation","useEmployeesDeleteMutation","updateOnboardingStatusMutation","useEmployeesUpdateOnboardingStatusMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","data","isFetching","employees","primaryJob","job","paginationProps","onDelete","employeeId","id","onReview","onboardingStatus","onCancelSelfOnboarding"],"mappings":"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"}
@@ -34,7 +34,7 @@ export type FilingStatusValue = (typeof FILING_STATUS_VALUES)[number];
34
34
  *
35
35
  * @public
36
36
  */
37
- export type FederalTaxesField = "filingStatus" | "twoJobs" | "dependentsAmount" | "otherIncome" | "deductions" | "extraWithholding";
37
+ export type FederalTaxesField = "deductions" | "dependentsAmount" | "extraWithholding" | "filingStatus" | "otherIncome" | "twoJobs";
38
38
  /**
39
39
  * Shape of the values managed by the federal taxes form.
40
40
  *
@@ -50,7 +50,7 @@ export type FederalTaxesFormOutputs = FederalTaxesFormData;
50
50
  *
51
51
  * @public
52
52
  */
53
- export type FederalTaxesOptionalFieldsToRequire = { create?: ("twoJobs" | "dependentsAmount" | "otherIncome" | "deductions" | "extraWithholding")[] | undefined; update?: ("twoJobs" | "dependentsAmount" | "otherIncome" | "deductions" | "extraWithholding")[] | undefined; };
53
+ export type FederalTaxesOptionalFieldsToRequire = { create?: ("deductions" | "dependentsAmount" | "extraWithholding" | "otherIncome" | "twoJobs")[] | undefined; update?: ("deductions" | "dependentsAmount" | "extraWithholding" | "otherIncome" | "twoJobs")[] | undefined; };
54
54
  /** @internal */
55
55
  interface FederalTaxesSchemaOptions {
56
56
  optionalFieldsToRequire?: FederalTaxesOptionalFieldsToRequire;
@@ -136,4 +136,4 @@ export type UseFederalTaxesFormResult = HookLoadingResult | UseFederalTaxesFormR
136
136
  *
137
137
  * @public
138
138
  */
139
- export type FederalTaxesFieldsMetadata = { filingStatus: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"Single" | "Married" | "Head of Household" | "Exempt from withholding">; twoJobs: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<boolean>; dependentsAmount: FieldMetadata; otherIncome: FieldMetadata; deductions: FieldMetadata; extraWithholding: FieldMetadata; };
139
+ export type FederalTaxesFieldsMetadata = { filingStatus: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<"Exempt from withholding" | "Head of Household" | "Married" | "Single">; twoJobs: import("../../../../../partner-hook-utils/types").FieldMetadataWithOptions<boolean>; dependentsAmount: FieldMetadata; otherIncome: FieldMetadata; deductions: FieldMetadata; extraWithholding: FieldMetadata; };
@@ -18,4 +18,4 @@ export declare const INITIAL_COMPONENT_MAP: {
18
18
  *
19
19
  * @public
20
20
  */
21
- export type OnboardingExecutionInitialState = keyof typeof INITIAL_COMPONENT_MAP;
21
+ export type OnboardingExecutionInitialState = "employeeProfile";
@@ -13,9 +13,7 @@ const E = (e) => (r) => ({
13
13
  s.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE,
14
14
  s.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,
15
15
  s.ONBOARDING_COMPLETED
16
- ]), P = (e) => !(!e.withEmployeeI9 || e.onboardingStatus && M.has(e.onboardingStatus)), u = (e) => e.onboardingStatus ? !// prettier-ignore
17
- // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses
18
- (_.has(e.onboardingStatus) || e.onboardingStatus === s.SELF_ONBOARDING_PENDING_INVITE) : !0, g = {
16
+ ]), P = (e) => !(!e.withEmployeeI9 || e.onboardingStatus && M.has(e.onboardingStatus)), u = (e) => e.onboardingStatus ? !(_.has(e.onboardingStatus) || e.onboardingStatus === s.SELF_ONBOARDING_PENDING_INVITE) : !0, g = {
19
17
  employeeProfile: a(
20
18
  o(
21
19
  n.EMPLOYEE_PROFILE_DONE,
@@ -1 +1 @@
1
- {"version":3,"file":"onboardingExecutionStateMachine.js","sources":["../../../../src/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n FederalTaxesContextual,\n StateTaxesContextual,\n DeductionsContextual,\n type OnboardingContextInterface,\n} from './OnboardingExecutionFlowComponents'\nimport {\n componentEvents,\n EmployeeSelfOnboardingStatuses,\n EmployeeOnboardingStatus,\n} from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport { CompensationContextual } from '@/components/Employee/Compensation'\nimport { EmployeeDocumentsContextual } from '@/components/Employee/Documents/onboarding/EmployeeDocuments'\nimport { PaymentMethodContextual } from '@/components/Employee/PaymentMethod'\nimport { ProfileContextual } from '@/components/Employee/Profile/onboarding/Profile'\nimport { OnboardingSummaryContextual } from '@/components/Employee/OnboardingSummary'\n\ntype EventPayloads = {\n [componentEvents.EMPLOYEE_PROFILE_DONE]: {\n uuid: string\n onboardingStatus: (typeof EmployeeOnboardingStatus)[keyof typeof EmployeeOnboardingStatus]\n startDate: string\n }\n}\n\nconst createReducer = (props: Partial<OnboardingContextInterface>) => {\n return (ctx: OnboardingContextInterface): OnboardingContextInterface => ({\n ...ctx,\n ...props,\n })\n}\n\nconst employeeDocumentsConfigCompletedStatuses: Set<\n (typeof EmployeeOnboardingStatus)[keyof typeof EmployeeOnboardingStatus]\n> = new Set([\n EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n EmployeeOnboardingStatus.ONBOARDING_COMPLETED,\n])\n\nconst employeeDocumentsGuard = (ctx: OnboardingContextInterface) => {\n if (!ctx.withEmployeeI9) return false\n if (ctx.onboardingStatus && employeeDocumentsConfigCompletedStatuses.has(ctx.onboardingStatus))\n return false\n return true\n}\n\nconst selfOnboardingGuard = (ctx: OnboardingContextInterface) =>\n ctx.onboardingStatus\n ? !(\n // prettier-ignore\n // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n EmployeeSelfOnboardingStatuses.has(ctx.onboardingStatus) ||\n ctx.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n )\n : true\n\n/** @internal */\nexport const onboardingExecutionMachine = {\n employeeProfile: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_PROFILE_DONE,\n 'compensation',\n reduce(\n (\n ctx: OnboardingContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_PROFILE_DONE>,\n ): OnboardingContextInterface => ({\n ...ctx,\n component: CompensationContextual,\n employeeId: ev.payload.uuid,\n onboardingStatus: ev.payload.onboardingStatus,\n startDate: ev.payload.startDate,\n }),\n ),\n ),\n ),\n compensation: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_DONE,\n 'federalTaxes',\n reduce(createReducer({ component: FederalTaxesContextual })),\n guard(selfOnboardingGuard),\n ),\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_DONE,\n 'deductions',\n reduce(createReducer({ component: DeductionsContextual })),\n ),\n ),\n federalTaxes: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_FEDERAL_TAXES_DONE,\n 'stateTaxes',\n reduce(createReducer({ component: StateTaxesContextual })),\n guard(selfOnboardingGuard),\n ),\n ),\n stateTaxes: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_STATE_TAXES_DONE,\n 'paymentMethod',\n reduce(createReducer({ component: PaymentMethodContextual })),\n guard(selfOnboardingGuard),\n ),\n ),\n paymentMethod: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_PAYMENT_METHOD_DONE,\n 'deductions',\n reduce(createReducer({ component: DeductionsContextual })),\n ),\n ),\n deductions: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_DONE,\n 'employeeDocuments',\n reduce(createReducer({ component: EmployeeDocumentsContextual })),\n guard(employeeDocumentsGuard),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_DONE,\n 'summary',\n reduce(createReducer({ component: OnboardingSummaryContextual })),\n ),\n ),\n employeeDocuments: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_DOCUMENTS_DONE,\n 'summary',\n reduce(createReducer({ component: OnboardingSummaryContextual })),\n ),\n ),\n summary: state<MachineTransition>(),\n}\n\n/** @internal */\nexport const INITIAL_COMPONENT_MAP = {\n employeeProfile: ProfileContextual,\n} as const\n\n/**\n * The set of steps {@link OnboardingExecutionFlow} can be started on.\n *\n * @public\n */\nexport type OnboardingExecutionInitialState = keyof typeof INITIAL_COMPONENT_MAP\n"],"names":["createReducer","props","ctx","employeeDocumentsConfigCompletedStatuses","EmployeeOnboardingStatus","employeeDocumentsGuard","selfOnboardingGuard","EmployeeSelfOnboardingStatuses","onboardingExecutionMachine","state","transition","componentEvents","reduce","ev","CompensationContextual","FederalTaxesContextual","guard","DeductionsContextual","StateTaxesContextual","PaymentMethodContextual","EmployeeDocumentsContextual","OnboardingSummaryContextual","INITIAL_COMPONENT_MAP","ProfileContextual"],"mappings":";;;;;;;;AA2BA,MAAMA,IAAgB,CAACC,MACd,CAACC,OAAiE;AAAA,EACvE,GAAGA;AAAA,EACH,GAAGD;AAAA,IAIDE,wBAEE,IAAI;AAAA,EACVC,EAAyB;AAAA,EACzBA,EAAyB;AAAA,EACzBA,EAAyB;AAC3B,CAAC,GAEKC,IAAyB,CAACH,MAC1B,GAACA,EAAI,kBACLA,EAAI,oBAAoBC,EAAyC,IAAID,EAAI,gBAAgB,IAKzFI,IAAsB,CAACJ,MAC3BA,EAAI,mBACA;AAAA;AAAA,CAGEK,EAA+B,IAAIL,EAAI,gBAAgB,KACvDA,EAAI,qBAAqBE,EAAyB,kCAEpD,IAGOI,IAA6B;AAAA,EACxC,iBAAiBC;AAAA,IACfC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC;AAAA,QACE,CACEV,GACAW,OACgC;AAAA,UAChC,GAAGX;AAAA,UACH,WAAWY;AAAA,UACX,YAAYD,EAAG,QAAQ;AAAA,UACvB,kBAAkBA,EAAG,QAAQ;AAAA,UAC7B,WAAWA,EAAG,QAAQ;AAAA,QAAA;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEF,cAAcJ;AAAA,IACZC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWe,EAAA,CAAwB,CAAC;AAAA,MAC3DC,EAAMV,CAAmB;AAAA,IAAA;AAAA,IAE3BI;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWiB,EAAA,CAAsB,CAAC;AAAA,IAAA;AAAA,EAC3D;AAAA,EAEF,cAAcR;AAAA,IACZC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWkB,EAAA,CAAsB,CAAC;AAAA,MACzDF,EAAMV,CAAmB;AAAA,IAAA;AAAA,EAC3B;AAAA,EAEF,YAAYG;AAAA,IACVC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWmB,EAAA,CAAyB,CAAC;AAAA,MAC5DH,EAAMV,CAAmB;AAAA,IAAA;AAAA,EAC3B;AAAA,EAEF,eAAeG;AAAA,IACbC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWiB,EAAA,CAAsB,CAAC;AAAA,IAAA;AAAA,EAC3D;AAAA,EAEF,YAAYR;AAAA,IACVC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWoB,EAAA,CAA6B,CAAC;AAAA,MAChEJ,EAAMX,CAAsB;AAAA,IAAA;AAAA,IAE9BK;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWqB,EAAA,CAA6B,CAAC;AAAA,IAAA;AAAA,EAClE;AAAA,EAEF,mBAAmBZ;AAAA,IACjBC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWqB,EAAA,CAA6B,CAAC;AAAA,IAAA;AAAA,EAClE;AAAA,EAEF,SAASZ,EAAA;AACX,GAGaa,IAAwB;AAAA,EACnC,iBAAiBC;AACnB;"}
1
+ {"version":3,"file":"onboardingExecutionStateMachine.js","sources":["../../../../src/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n FederalTaxesContextual,\n StateTaxesContextual,\n DeductionsContextual,\n type OnboardingContextInterface,\n} from './OnboardingExecutionFlowComponents'\nimport {\n componentEvents,\n EmployeeSelfOnboardingStatuses,\n EmployeeOnboardingStatus,\n} from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport { CompensationContextual } from '@/components/Employee/Compensation'\nimport { EmployeeDocumentsContextual } from '@/components/Employee/Documents/onboarding/EmployeeDocuments'\nimport { PaymentMethodContextual } from '@/components/Employee/PaymentMethod'\nimport { ProfileContextual } from '@/components/Employee/Profile/onboarding/Profile'\nimport { OnboardingSummaryContextual } from '@/components/Employee/OnboardingSummary'\n\ntype EventPayloads = {\n [componentEvents.EMPLOYEE_PROFILE_DONE]: {\n uuid: string\n onboardingStatus: (typeof EmployeeOnboardingStatus)[keyof typeof EmployeeOnboardingStatus]\n startDate: string\n }\n}\n\nconst createReducer = (props: Partial<OnboardingContextInterface>) => {\n return (ctx: OnboardingContextInterface): OnboardingContextInterface => ({\n ...ctx,\n ...props,\n })\n}\n\nconst employeeDocumentsConfigCompletedStatuses: Set<\n (typeof EmployeeOnboardingStatus)[keyof typeof EmployeeOnboardingStatus]\n> = new Set([\n EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE,\n EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n EmployeeOnboardingStatus.ONBOARDING_COMPLETED,\n])\n\nconst employeeDocumentsGuard = (ctx: OnboardingContextInterface) => {\n if (!ctx.withEmployeeI9) return false\n if (ctx.onboardingStatus && employeeDocumentsConfigCompletedStatuses.has(ctx.onboardingStatus))\n return false\n return true\n}\n\nconst selfOnboardingGuard = (ctx: OnboardingContextInterface) =>\n ctx.onboardingStatus\n ? !(\n EmployeeSelfOnboardingStatuses.has(ctx.onboardingStatus) ||\n ctx.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_PENDING_INVITE\n )\n : true\n\n/** @internal */\nexport const onboardingExecutionMachine = {\n employeeProfile: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_PROFILE_DONE,\n 'compensation',\n reduce(\n (\n ctx: OnboardingContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_PROFILE_DONE>,\n ): OnboardingContextInterface => ({\n ...ctx,\n component: CompensationContextual,\n employeeId: ev.payload.uuid,\n onboardingStatus: ev.payload.onboardingStatus,\n startDate: ev.payload.startDate,\n }),\n ),\n ),\n ),\n compensation: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_DONE,\n 'federalTaxes',\n reduce(createReducer({ component: FederalTaxesContextual })),\n guard(selfOnboardingGuard),\n ),\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_DONE,\n 'deductions',\n reduce(createReducer({ component: DeductionsContextual })),\n ),\n ),\n federalTaxes: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_FEDERAL_TAXES_DONE,\n 'stateTaxes',\n reduce(createReducer({ component: StateTaxesContextual })),\n guard(selfOnboardingGuard),\n ),\n ),\n stateTaxes: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_STATE_TAXES_DONE,\n 'paymentMethod',\n reduce(createReducer({ component: PaymentMethodContextual })),\n guard(selfOnboardingGuard),\n ),\n ),\n paymentMethod: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_PAYMENT_METHOD_DONE,\n 'deductions',\n reduce(createReducer({ component: DeductionsContextual })),\n ),\n ),\n deductions: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_DONE,\n 'employeeDocuments',\n reduce(createReducer({ component: EmployeeDocumentsContextual })),\n guard(employeeDocumentsGuard),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_DONE,\n 'summary',\n reduce(createReducer({ component: OnboardingSummaryContextual })),\n ),\n ),\n employeeDocuments: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_DOCUMENTS_DONE,\n 'summary',\n reduce(createReducer({ component: OnboardingSummaryContextual })),\n ),\n ),\n summary: state<MachineTransition>(),\n}\n\n/** @internal */\nexport const INITIAL_COMPONENT_MAP = {\n employeeProfile: ProfileContextual,\n} as const\n\n/**\n * The set of steps {@link OnboardingExecutionFlow} can be started on.\n *\n * @public\n */\nexport type OnboardingExecutionInitialState = keyof typeof INITIAL_COMPONENT_MAP\n"],"names":["createReducer","props","ctx","employeeDocumentsConfigCompletedStatuses","EmployeeOnboardingStatus","employeeDocumentsGuard","selfOnboardingGuard","EmployeeSelfOnboardingStatuses","onboardingExecutionMachine","state","transition","componentEvents","reduce","ev","CompensationContextual","FederalTaxesContextual","guard","DeductionsContextual","StateTaxesContextual","PaymentMethodContextual","EmployeeDocumentsContextual","OnboardingSummaryContextual","INITIAL_COMPONENT_MAP","ProfileContextual"],"mappings":";;;;;;;;AA2BA,MAAMA,IAAgB,CAACC,MACd,CAACC,OAAiE;AAAA,EACvE,GAAGA;AAAA,EACH,GAAGD;AAAA,IAIDE,wBAEE,IAAI;AAAA,EACVC,EAAyB;AAAA,EACzBA,EAAyB;AAAA,EACzBA,EAAyB;AAC3B,CAAC,GAEKC,IAAyB,CAACH,MAC1B,GAACA,EAAI,kBACLA,EAAI,oBAAoBC,EAAyC,IAAID,EAAI,gBAAgB,IAKzFI,IAAsB,CAACJ,MAC3BA,EAAI,mBACA,EACEK,EAA+B,IAAIL,EAAI,gBAAgB,KACvDA,EAAI,qBAAqBE,EAAyB,kCAEpD,IAGOI,IAA6B;AAAA,EACxC,iBAAiBC;AAAA,IACfC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC;AAAA,QACE,CACEV,GACAW,OACgC;AAAA,UAChC,GAAGX;AAAA,UACH,WAAWY;AAAA,UACX,YAAYD,EAAG,QAAQ;AAAA,UACvB,kBAAkBA,EAAG,QAAQ;AAAA,UAC7B,WAAWA,EAAG,QAAQ;AAAA,QAAA;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEF,cAAcJ;AAAA,IACZC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWe,EAAA,CAAwB,CAAC;AAAA,MAC3DC,EAAMV,CAAmB;AAAA,IAAA;AAAA,IAE3BI;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWiB,EAAA,CAAsB,CAAC;AAAA,IAAA;AAAA,EAC3D;AAAA,EAEF,cAAcR;AAAA,IACZC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWkB,EAAA,CAAsB,CAAC;AAAA,MACzDF,EAAMV,CAAmB;AAAA,IAAA;AAAA,EAC3B;AAAA,EAEF,YAAYG;AAAA,IACVC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWmB,EAAA,CAAyB,CAAC;AAAA,MAC5DH,EAAMV,CAAmB;AAAA,IAAA;AAAA,EAC3B;AAAA,EAEF,eAAeG;AAAA,IACbC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWiB,EAAA,CAAsB,CAAC;AAAA,IAAA;AAAA,EAC3D;AAAA,EAEF,YAAYR;AAAA,IACVC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWoB,EAAA,CAA6B,CAAC;AAAA,MAChEJ,EAAMX,CAAsB;AAAA,IAAA;AAAA,IAE9BK;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWqB,EAAA,CAA6B,CAAC;AAAA,IAAA;AAAA,EAClE;AAAA,EAEF,mBAAmBZ;AAAA,IACjBC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAC,EAAOZ,EAAc,EAAE,WAAWqB,EAAA,CAA6B,CAAC;AAAA,IAAA;AAAA,EAClE;AAAA,EAEF,SAASZ,EAAA;AACX,GAGaa,IAAwB;AAAA,EACnC,iBAAiBC;AACnB;"}