@gusto/embedded-react-sdk 0.37.0-rc.1 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +44 -8
  2. package/README.md +6 -0
  3. package/dist/UNSTABLE_Hooks.d.ts +1 -1
  4. package/dist/UNSTABLE_Hooks.js +50 -6
  5. package/dist/UNSTABLE_Hooks.js.map +1 -1
  6. package/dist/components/Base/Base.d.ts +2 -1
  7. package/dist/components/Base/Base.js +78 -77
  8. package/dist/components/Base/Base.js.map +1 -1
  9. package/dist/components/Common/Fields/CheckboxField/CheckboxField.d.ts +2 -0
  10. package/dist/components/Common/Fields/CheckboxField/CheckboxField.js +17 -16
  11. package/dist/components/Common/Fields/CheckboxField/CheckboxField.js.map +1 -1
  12. package/dist/components/Common/Fields/DatePickerField/DatePickerField.d.ts +5 -3
  13. package/dist/components/Common/Fields/DatePickerField/DatePickerField.js +46 -36
  14. package/dist/components/Common/Fields/DatePickerField/DatePickerField.js.map +1 -1
  15. package/dist/components/Common/Fields/NumberInputField/NumberInputField.d.ts +2 -0
  16. package/dist/components/Common/Fields/NumberInputField/NumberInputField.js +21 -20
  17. package/dist/components/Common/Fields/NumberInputField/NumberInputField.js.map +1 -1
  18. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.d.ts +3 -1
  19. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js +20 -19
  20. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js.map +1 -1
  21. package/dist/components/Common/Fields/SelectField/SelectField.d.ts +3 -1
  22. package/dist/components/Common/Fields/SelectField/SelectField.js +19 -18
  23. package/dist/components/Common/Fields/SelectField/SelectField.js.map +1 -1
  24. package/dist/components/Common/Fields/SwitchField/SwitchField.d.ts +2 -0
  25. package/dist/components/Common/Fields/SwitchField/SwitchField.js +19 -18
  26. package/dist/components/Common/Fields/SwitchField/SwitchField.js.map +1 -1
  27. package/dist/components/Common/Fields/TextInputField/TextInputField.d.ts +2 -0
  28. package/dist/components/Common/Fields/TextInputField/TextInputField.js +10 -9
  29. package/dist/components/Common/Fields/TextInputField/TextInputField.js.map +1 -1
  30. package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
  31. package/dist/components/Common/SignatureForm/SignatureFormFields.js +1 -1
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +5 -6
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +9 -6
  35. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  36. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +4 -5
  37. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  38. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +9 -6
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  40. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +11 -8
  41. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  42. package/dist/components/Company/BankAccount/BankAccountForm/context.js +9 -6
  43. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  44. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +9 -6
  45. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  46. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +9 -6
  47. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  48. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +15 -12
  49. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  50. package/dist/components/Company/Industry/Context.js +12 -9
  51. package/dist/components/Company/Industry/Context.js.map +1 -1
  52. package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
  53. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  54. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +9 -6
  55. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  56. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +9 -6
  57. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  58. package/dist/components/Company/OnboardingOverview/context.js +9 -6
  59. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  60. package/dist/components/Company/PaySchedule/_parts/Edit.js +9 -10
  61. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  62. package/dist/components/Company/PaySchedule/usePaySchedule.js +11 -8
  63. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  64. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +9 -6
  65. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  66. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +9 -6
  67. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  68. package/dist/components/Contractor/Address/Form.js +6 -7
  69. package/dist/components/Contractor/Address/Form.js.map +1 -1
  70. package/dist/components/Contractor/Address/useAddress.js +11 -8
  71. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  72. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +2 -3
  73. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  74. package/dist/components/Contractor/Profile/useContractorProfile.js +21 -16
  75. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  76. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +14 -11
  77. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  78. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +13 -10
  79. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  80. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +6 -3
  81. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  82. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +2 -3
  83. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  84. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +9 -6
  85. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  86. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +9 -6
  87. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  88. package/dist/components/Employee/EmployeeList/useEmployeeList.js +9 -6
  89. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  90. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +9 -6
  91. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  92. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +11 -8
  93. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  94. package/dist/components/Employee/Profile/HomeAddress.d.ts +3 -3
  95. package/dist/components/Employee/Profile/HomeAddress.js +44 -43
  96. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  97. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +14 -15
  98. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  99. package/dist/components/Employee/Profile/useProfile.js +9 -6
  100. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  101. package/dist/components/Employee/StateTaxes/useStateTaxes.js +9 -6
  102. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  103. package/dist/components/Employee/Taxes/useTaxes.js +9 -6
  104. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  105. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +16 -13
  106. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  107. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +2 -3
  108. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  109. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +185 -177
  110. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  111. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +2 -3
  112. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  113. package/dist/components/Payroll/usePreparedPayrollData.js +7 -5
  114. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  115. package/dist/components/UNSTABLE_Hooks/collectErrors.d.ts +6 -0
  116. package/dist/components/UNSTABLE_Hooks/collectErrors.js +9 -0
  117. package/dist/components/UNSTABLE_Hooks/collectErrors.js.map +1 -0
  118. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.d.ts +1 -1
  119. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.js +3 -3
  120. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.js.map +1 -1
  121. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.d.ts +2 -2
  122. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js +13 -0
  123. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js.map +1 -0
  124. package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.d.ts +11 -6
  125. package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.js +24 -0
  126. package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.js.map +1 -0
  127. package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.d.ts +26 -0
  128. package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.js +24 -0
  129. package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.js.map +1 -0
  130. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.d.ts +53 -0
  131. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.js +34 -0
  132. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.js.map +1 -0
  133. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.test.d.ts +1 -0
  134. package/dist/components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js +14 -0
  135. package/dist/components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js.map +1 -0
  136. package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.d.ts +9 -0
  137. package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js +34 -0
  138. package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js.map +1 -0
  139. package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.d.ts +9 -0
  140. package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js +29 -0
  141. package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js.map +1 -0
  142. package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.d.ts +12 -0
  143. package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js +40 -0
  144. package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js.map +1 -0
  145. package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.d.ts +10 -0
  146. package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js +40 -0
  147. package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js.map +1 -0
  148. package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.d.ts +10 -0
  149. package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.js +40 -0
  150. package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.js.map +1 -0
  151. package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.d.ts +9 -0
  152. package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.js +34 -0
  153. package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.js.map +1 -0
  154. package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.d.ts +11 -0
  155. package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.js +38 -0
  156. package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.js.map +1 -0
  157. package/dist/components/UNSTABLE_Hooks/form/fields/index.d.ts +15 -0
  158. package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.d.ts +2 -0
  159. package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.js +8 -0
  160. package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.js.map +1 -0
  161. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.d.ts +18 -0
  162. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.js +10 -0
  163. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.js.map +1 -0
  164. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.test.d.ts +1 -0
  165. package/dist/components/UNSTABLE_Hooks/form/index.d.ts +6 -1
  166. package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.d.ts +6 -0
  167. package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.js +14 -0
  168. package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.js.map +1 -0
  169. package/dist/components/UNSTABLE_Hooks/form/types.d.ts +12 -0
  170. package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.d.ts +2 -1
  171. package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.js +10 -8
  172. package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.js.map +1 -1
  173. package/dist/components/UNSTABLE_Hooks/form/useFieldsMetadata.d.ts +2 -2
  174. package/dist/components/UNSTABLE_Hooks/form/useFieldsMetadata.js.map +1 -1
  175. package/dist/components/UNSTABLE_Hooks/form/withOptions.js +7 -0
  176. package/dist/components/UNSTABLE_Hooks/form/withOptions.js.map +1 -0
  177. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.d.ts +5 -0
  178. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js +151 -0
  179. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js.map +1 -0
  180. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.d.ts +97 -0
  181. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js +121 -0
  182. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js.map +1 -0
  183. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.d.ts +34 -0
  184. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.js +50 -0
  185. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.js.map +1 -0
  186. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/index.d.ts +5 -1
  187. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.d.ts +97 -9
  188. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js +255 -3
  189. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js.map +1 -1
  190. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.d.ts +5 -0
  191. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js +114 -0
  192. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js.map +1 -0
  193. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +39 -0
  194. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js +45 -0
  195. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -0
  196. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.d.ts +23 -0
  197. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.js +46 -0
  198. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.js.map +1 -0
  199. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/index.d.ts +7 -0
  200. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +77 -0
  201. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js +153 -0
  202. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -0
  203. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.d.ts +5 -0
  204. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js +71 -0
  205. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js.map +1 -0
  206. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.d.ts +10 -0
  207. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.js +14 -0
  208. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.js.map +1 -0
  209. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/index.d.ts +7 -0
  210. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.d.ts +68 -0
  211. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js +129 -0
  212. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js.map +1 -0
  213. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.d.ts +25 -0
  214. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js +24 -0
  215. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js.map +1 -0
  216. package/dist/components/UNSTABLE_Hooks/index.d.ts +8 -4
  217. package/dist/components/UNSTABLE_Hooks/types.d.ts +9 -6
  218. package/dist/components/UNSTABLE_Hooks/useErrorHandling.d.ts +9 -0
  219. package/dist/components/UNSTABLE_Hooks/useErrorHandling.js +12 -0
  220. package/dist/components/UNSTABLE_Hooks/useErrorHandling.js.map +1 -0
  221. package/dist/components/UNSTABLE_Hooks/useErrorHandling.test.d.ts +1 -0
  222. package/dist/helpers/requiredIf.d.ts +13 -0
  223. package/dist/helpers/requiredIf.js +8 -0
  224. package/dist/helpers/requiredIf.js.map +1 -0
  225. package/dist/i18n/I18n.js +5 -5
  226. package/dist/i18n/I18n.js.map +1 -1
  227. package/dist/i18n/en/UNSTABLE.CompensationForm.json.js +58 -0
  228. package/dist/i18n/en/UNSTABLE.CompensationForm.json.js.map +1 -0
  229. package/dist/i18n/en/UNSTABLE.EmployeeDetailsForm.json.js +34 -0
  230. package/dist/i18n/en/UNSTABLE.EmployeeDetailsForm.json.js.map +1 -0
  231. package/dist/i18n/en/UNSTABLE.WorkAddressForm.json.js +24 -0
  232. package/dist/i18n/en/UNSTABLE.WorkAddressForm.json.js.map +1 -0
  233. package/dist/models/WA_RISK_CODES.d.ts +5 -2866
  234. package/dist/models/WA_RISK_CODES.js.map +1 -1
  235. package/dist/style.css +1 -1
  236. package/dist/types/i18next.d.ts +117 -1
  237. package/dist/types/sdkError.d.ts +7 -1
  238. package/dist/types/sdkError.js.map +1 -1
  239. package/docs/reference/endpoint-inventory.json +92 -0
  240. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"useCompensationForm.js","sources":["../../../../../src/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.ts"],"sourcesContent":["import type { Compensation } from '@gusto/embedded-api/models/components/compensation'\nimport type { HookLoadingResult, HookSubmitResult, BaseFormHookReady } from '../../types'\n\nexport interface UseCompensationFormProps {\n employeeId?: string\n startDate?: string\n}\n\nexport interface UseCompensationFormReady extends BaseFormHookReady {\n data: { compensation: Compensation }\n actions: { onSubmit: () => Promise<HookSubmitResult<Compensation> | undefined> }\n}\n\nexport type UseCompensationFormResult = HookLoadingResult | UseCompensationFormReady\n\nexport function useCompensationForm(props: UseCompensationFormProps): UseCompensationFormResult {\n throw new Error('useCompensationForm is not yet implemented')\n}\n"],"names":["useCompensationForm","props"],"mappings":"AAeO,SAASA,EAAoBC,GAA4D;AAC9F,QAAM,IAAI,MAAM,4CAA4C;AAC9D;"}
1
+ {"version":3,"file":"useCompensationForm.js","sources":["../../../../../src/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { Resolver, UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Compensation, PaymentUnit } from '@gusto/embedded-api/models/components/compensation'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { FlsaStatusType } from '@gusto/embedded-api/models/components/flsastatustype'\nimport type { MinimumWage } from '@gusto/embedded-api/models/components/minimumwage'\nimport { useJobsAndCompensationsGetJobs } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { useJobsAndCompensationsCreateJobMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsCreateJob'\nimport { useJobsAndCompensationsUpdateMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdate'\nimport { useJobsAndCompensationsUpdateCompensationMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdateCompensation'\nimport { useLocationsGetMinimumWages } from '@gusto/embedded-api/react-query/locationsGetMinimumWages'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport { useFederalTaxDetailsGet } from '@gusto/embedded-api/react-query/federalTaxDetailsGet'\nimport type { HookSubmitResult } from '../../types'\nimport { useErrorHandling } from '../../useErrorHandling'\nimport { withOptions } from '../../form/withOptions'\nimport { deriveFieldsMetadata } from '../../form/deriveFieldsMetadata'\nimport { createGetFormSubmissionValues } from '../../form/getFormSubmissionValues'\nimport type { RequiredFields } from '../../form/resolveRequiredFields'\nimport {\n createCompensationSchema,\n type CompensationField,\n type CompensationFormData,\n type CompensationFormOutputs,\n} from './compensationSchema'\nimport {\n JobTitleField,\n FlsaStatusField,\n RateField,\n PaymentUnitField,\n AdjustForMinimumWageField,\n MinimumWageIdField,\n TwoPercentShareholderField,\n StateWcCoveredField,\n StateWcClassCodeField,\n StartDateField,\n} from './fields'\nimport { FlsaStatus, PAY_PERIODS, TIP_CREDITS_UNSUPPORTED_STATES } from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { WA_RISK_CLASS_CODES, type WARiskClassCode } from '@/models/WA_RISK_CODES'\n\nexport interface CompensationSubmitCallbacks {\n onJobCreated?: (job: Job) => void\n onJobUpdated?: (job: Job) => void\n onCompensationUpdated?: (compensation: Compensation | undefined) => void\n}\n\nexport interface CompensationSubmitOptions {\n employeeId?: string\n startDate?: string\n}\n\nexport type CompensationRequiredFields = RequiredFields<CompensationField>\n\nexport interface UseCompensationFormProps {\n employeeId?: string\n withStartDateField?: boolean\n jobId?: string\n requiredFields?: CompensationRequiredFields\n defaultValues?: Partial<CompensationFormData>\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n}\n\nfunction findCurrentCompensation(job?: Job | null): Compensation | undefined {\n return job?.compensations?.find(comp => comp.uuid === job.currentCompensationUuid)\n}\n\ntype FlsaStatusValue = CompensationFormData['flsaStatus']\n\nfunction derivePrimaryFlsaStatus(jobs: Job[]): FlsaStatusValue | undefined {\n return jobs.reduce<FlsaStatusValue | undefined>((prev, curr) => {\n const compensation = curr.compensations?.find(\n comp => comp.uuid === curr.currentCompensationUuid,\n )\n if (!curr.primary || !compensation) return prev\n return compensation.flsaStatus ?? prev\n }, undefined)\n}\n\nconst flsaStatusEntries: FlsaStatusType[] = (\n Object.keys(FlsaStatus) as Array<keyof typeof FlsaStatus>\n).map(key => FlsaStatus[key])\n\nconst flsaOptions = flsaStatusEntries.map(status => ({\n value: status,\n label: status,\n}))\n\nconst paymentUnitEntries: PaymentUnit[] = [\n PAY_PERIODS.HOUR,\n PAY_PERIODS.WEEK,\n PAY_PERIODS.MONTH,\n PAY_PERIODS.YEAR,\n PAY_PERIODS.PAYCHECK,\n]\n\nconst paymentUnitOptions = paymentUnitEntries.map(unit => ({\n value: unit,\n label: unit,\n}))\n\nexport function useCompensationForm({\n employeeId,\n withStartDateField = true,\n jobId,\n requiredFields,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseCompensationFormProps) {\n const jobsQuery = useJobsAndCompensationsGetJobs(\n { employeeId: employeeId ?? '' },\n { enabled: !!employeeId },\n )\n const addressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: employeeId ?? '' },\n { enabled: !!employeeId },\n )\n const employeeQuery = useEmployeesGet({ employeeId: employeeId ?? '' }, { enabled: !!employeeId })\n\n const employeeJobs = jobsQuery.data?.jobList\n const workAddresses = addressesQuery.data?.employeeWorkAddressesList\n const currentWorkAddress = workAddresses?.find(address => address.active)\n const locationUuid = currentWorkAddress?.locationUuid\n const employee = employeeQuery.data?.employee\n const companyUuid = employee?.companyUuid\n\n const minWagesQuery = useLocationsGetMinimumWages(\n { locationUuid: locationUuid ?? '' },\n { enabled: !!locationUuid },\n )\n\n const taxQuery = useFederalTaxDetailsGet(\n { companyId: companyUuid ?? '' },\n { enabled: !!companyUuid },\n )\n\n const minimumWages = minWagesQuery.data?.minimumWageList ?? []\n const federalTaxDetails = taxQuery.data?.federalTaxDetails\n const showTwoPercentStakeholder = federalTaxDetails?.taxPayerType === 'S-Corporation'\n\n const currentJob = useMemo<Job | null>(() => {\n if (!employeeJobs) return null\n if (jobId) {\n return employeeJobs.find(j => j.uuid === jobId) ?? null\n }\n return employeeJobs.length === 1 ? (employeeJobs[0] ?? null) : null\n }, [employeeJobs, jobId])\n\n const currentCompensation = useMemo(() => findCurrentCompensation(currentJob), [currentJob])\n\n const primaryFlsaStatus = useMemo(() => {\n if (!employeeJobs) return undefined\n return derivePrimaryFlsaStatus(employeeJobs)\n }, [employeeJobs])\n\n const isCreateMode = !currentJob\n const mode = isCreateMode ? 'create' : 'update'\n\n const schema = createCompensationSchema({\n mode,\n requiredFields,\n withStartDateField,\n })\n\n const state = currentWorkAddress?.state\n\n const hireDate = currentJob?.hireDate\n const resolvedDefaults: CompensationFormData = {\n jobTitle: currentJob?.title || partnerDefaults?.jobTitle || '',\n flsaStatus:\n currentCompensation?.flsaStatus ??\n primaryFlsaStatus ??\n partnerDefaults?.flsaStatus ??\n FlsaStatus.NONEXEMPT,\n rate: Number(currentCompensation?.rate ?? partnerDefaults?.rate ?? 0),\n adjustForMinimumWage: currentCompensation?.adjustForMinimumWage ?? false,\n minimumWageId: currentCompensation?.minimumWages?.[0]?.uuid ?? '',\n paymentUnit:\n currentCompensation?.paymentUnit ?? partnerDefaults?.paymentUnit ?? PAY_PERIODS.HOUR,\n stateWcCovered: currentJob?.stateWcCovered ?? false,\n stateWcClassCode: currentJob?.stateWcClassCode ?? '',\n twoPercentShareholder: currentJob?.twoPercentShareholder ?? false,\n startDate: hireDate ?? partnerDefaults?.startDate ?? null,\n }\n\n const formMethods = useForm<CompensationFormData, unknown, CompensationFormOutputs>({\n resolver: zodResolver(schema) as unknown as Resolver<CompensationFormData>,\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedFlsaStatus = useWatch({\n control: formMethods.control,\n name: 'flsaStatus',\n })\n const watchedAdjustForMinimumWage = useWatch({\n control: formMethods.control,\n name: 'adjustForMinimumWage',\n })\n const watchedStateWcCovered = useWatch({\n control: formMethods.control,\n name: 'stateWcCovered',\n })\n\n useEffect(() => {\n if (watchedFlsaStatus === FlsaStatus.OWNER) {\n formMethods.setValue('paymentUnit', PAY_PERIODS.PAYCHECK)\n } else if (\n watchedFlsaStatus === FlsaStatus.COMMISSION_ONLY_NONEXEMPT ||\n watchedFlsaStatus === FlsaStatus.COMMISSION_ONLY_EXEMPT\n ) {\n formMethods.setValue('paymentUnit', PAY_PERIODS.YEAR)\n formMethods.setValue('rate', 0)\n } else {\n formMethods.setValue('paymentUnit', resolvedDefaults.paymentUnit)\n }\n }, [watchedFlsaStatus, formMethods.setValue, resolvedDefaults.paymentUnit])\n\n const updateCompensationMutation = useJobsAndCompensationsUpdateCompensationMutation()\n const createJobMutation = useJobsAndCompensationsCreateJobMutation()\n const updateJobMutation = useJobsAndCompensationsUpdateMutation()\n\n const isPending =\n updateCompensationMutation.isPending ||\n createJobMutation.isPending ||\n updateJobMutation.isPending\n\n const { baseSubmitHandler, error: submitError, setError } = useBaseSubmit('CompensationForm')\n\n const queries = employeeId\n ? [jobsQuery, addressesQuery, employeeQuery, minWagesQuery, taxQuery]\n : []\n const errorHandling = useErrorHandling(queries, { error: submitError, setError })\n\n const isCommissionOnly =\n watchedFlsaStatus === FlsaStatus.COMMISSION_ONLY_NONEXEMPT ||\n watchedFlsaStatus === FlsaStatus.COMMISSION_ONLY_EXEMPT\n\n const isOwner = watchedFlsaStatus === FlsaStatus.OWNER\n\n const isFlsaSelectionEnabled =\n watchedFlsaStatus !== FlsaStatus.NONEXEMPT || currentJob?.primary === true || isCreateMode\n\n const isAdjustMinimumWageEnabled =\n watchedFlsaStatus === FlsaStatus.NONEXEMPT &&\n minimumWages.length > 0 &&\n state !== undefined &&\n !TIP_CREDITS_UNSUPPORTED_STATES.includes(state)\n\n const isWaState = state === 'WA'\n\n const minimumWageOptions = minimumWages.map(wage => ({\n value: wage.uuid,\n label: `${wage.wage} - ${wage.authority}: ${wage.notes ?? ''}`,\n }))\n\n const stateWcClassCodeOptions = WA_RISK_CLASS_CODES.map(({ code, description }) => ({\n value: code,\n label: `${code}: ${description}`,\n }))\n\n const baseMetadata = deriveFieldsMetadata(schema)\n const fieldsMetadata = {\n startDate: baseMetadata.startDate,\n jobTitle: baseMetadata.jobTitle,\n flsaStatus: withOptions<FlsaStatusType>(\n baseMetadata.flsaStatus,\n flsaOptions,\n flsaStatusEntries,\n ),\n rate: { ...baseMetadata.rate, isDisabled: isCommissionOnly },\n paymentUnit: withOptions<PaymentUnit>(\n { ...baseMetadata.paymentUnit, isDisabled: isOwner || isCommissionOnly },\n paymentUnitOptions,\n paymentUnitEntries,\n ),\n adjustForMinimumWage: {\n ...baseMetadata.adjustForMinimumWage,\n isDisabled: !isAdjustMinimumWageEnabled,\n },\n minimumWageId: withOptions<MinimumWage>(\n baseMetadata.minimumWageId,\n minimumWageOptions,\n minimumWages,\n ),\n twoPercentShareholder: {\n ...baseMetadata.twoPercentShareholder,\n isDisabled: !showTwoPercentStakeholder,\n },\n stateWcCovered: withOptions<string>(\n { ...baseMetadata.stateWcCovered, isDisabled: !isWaState },\n [\n { label: 'Yes', value: 'true' },\n { label: 'No', value: 'false' },\n ],\n ['yes', 'no'],\n ),\n stateWcClassCode: withOptions<WARiskClassCode>(\n { ...baseMetadata.stateWcClassCode, isDisabled: !isWaState },\n stateWcClassCodeOptions,\n WA_RISK_CLASS_CODES,\n ),\n }\n\n const onSubmit = async (\n callbacks?: CompensationSubmitCallbacks,\n options?: CompensationSubmitOptions,\n ): Promise<HookSubmitResult<Compensation | undefined> | undefined> => {\n let submitResult: HookSubmitResult<Compensation | undefined> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: CompensationFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n\n if (!resolvedEmployeeId) {\n throw new SDKInternalError('employeeId is required to submit compensation')\n }\n\n const {\n jobTitle,\n twoPercentShareholder,\n startDate: formStartDate,\n ...compensationData\n } = payload\n\n const resolvedHireDate =\n withStartDateField && formStartDate ? formStartDate : options?.startDate\n\n let updatedJobData: Job\n\n if (!currentJob) {\n if (!resolvedHireDate) {\n throw new SDKInternalError('Start date is required')\n }\n\n const result = await createJobMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n requestBody: {\n title: jobTitle,\n hireDate: resolvedHireDate,\n stateWcCovered: compensationData.stateWcCovered,\n stateWcClassCode: compensationData.stateWcCovered\n ? compensationData.stateWcClassCode\n : null,\n twoPercentShareholder: twoPercentShareholder ?? false,\n },\n },\n })\n updatedJobData = result.job!\n callbacks?.onJobCreated?.(updatedJobData)\n } else {\n const result = await updateJobMutation.mutateAsync({\n request: {\n jobId: currentJob.uuid,\n requestBody: {\n title: jobTitle,\n version: currentJob.version as string,\n hireDate: resolvedHireDate,\n stateWcClassCode: compensationData.stateWcCovered\n ? compensationData.stateWcClassCode\n : null,\n stateWcCovered: compensationData.stateWcCovered,\n twoPercentShareholder: twoPercentShareholder ?? false,\n },\n },\n })\n updatedJobData = result.job!\n callbacks?.onJobUpdated?.(updatedJobData)\n }\n\n const { compensation } = await updateCompensationMutation.mutateAsync({\n request: {\n compensationId: updatedJobData.currentCompensationUuid!,\n compensationsUpdateRequestBody: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n version: updatedJobData.compensations?.find(\n comp => comp.uuid === updatedJobData.currentCompensationUuid,\n )?.version!,\n ...compensationData,\n rate: String(compensationData.rate),\n minimumWages: compensationData.adjustForMinimumWage\n ? [{ uuid: compensationData.minimumWageId }]\n : [],\n },\n },\n })\n\n callbacks?.onCompensationUpdated?.(compensation)\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: compensation,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const isDataLoading = employeeId\n ? jobsQuery.isLoading ||\n addressesQuery.isLoading ||\n employeeQuery.isLoading ||\n minWagesQuery.isLoading ||\n taxQuery.isLoading\n : false\n\n if (\n isDataLoading ||\n (employeeId &&\n (!employeeJobs ||\n !workAddresses ||\n !currentWorkAddress ||\n !employee ||\n !companyUuid ||\n !federalTaxDetails))\n ) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n compensation: currentCompensation ?? null,\n jobs: employeeJobs,\n currentJob,\n minimumWages,\n },\n status: {\n isPending,\n mode: isCreateMode ? 'create' : 'update',\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n StartDate: withStartDateField ? StartDateField : undefined,\n JobTitle: JobTitleField,\n FlsaStatus: isFlsaSelectionEnabled ? FlsaStatusField : undefined,\n Rate: RateField,\n PaymentUnit: PaymentUnitField,\n AdjustForMinimumWage: isAdjustMinimumWageEnabled ? AdjustForMinimumWageField : undefined,\n MinimumWageId:\n isAdjustMinimumWageEnabled && watchedAdjustForMinimumWage\n ? MinimumWageIdField\n : undefined,\n TwoPercentShareholder: showTwoPercentStakeholder ? TwoPercentShareholderField : undefined,\n StateWcCovered: isWaState ? StateWcCoveredField : undefined,\n StateWcClassCode: isWaState && watchedStateWcCovered ? StateWcClassCodeField : undefined,\n },\n fieldsMetadata,\n hookFormInternals: { formMethods },\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\nexport type UseCompensationFormResult = ReturnType<typeof useCompensationForm>\nexport type UseCompensationFormReady = Extract<UseCompensationFormResult, { data: object }>\nexport type CompensationFieldsMetadata = UseCompensationFormReady['form']['fieldsMetadata']\nexport type CompensationFormFields = UseCompensationFormReady['form']['Fields']\n"],"names":["findCurrentCompensation","job","comp","derivePrimaryFlsaStatus","jobs","prev","curr","compensation","flsaStatusEntries","FlsaStatus","key","flsaOptions","status","paymentUnitEntries","PAY_PERIODS","paymentUnitOptions","unit","useCompensationForm","employeeId","withStartDateField","jobId","requiredFields","partnerDefaults","validationMode","shouldFocusError","jobsQuery","useJobsAndCompensationsGetJobs","addressesQuery","useEmployeeAddressesGetWorkAddresses","employeeQuery","useEmployeesGet","employeeJobs","workAddresses","currentWorkAddress","address","locationUuid","employee","companyUuid","minWagesQuery","useLocationsGetMinimumWages","taxQuery","useFederalTaxDetailsGet","minimumWages","federalTaxDetails","showTwoPercentStakeholder","currentJob","useMemo","j","currentCompensation","primaryFlsaStatus","isCreateMode","schema","createCompensationSchema","state","hireDate","resolvedDefaults","formMethods","useForm","zodResolver","watchedFlsaStatus","useWatch","watchedAdjustForMinimumWage","watchedStateWcCovered","useEffect","updateCompensationMutation","useJobsAndCompensationsUpdateCompensationMutation","createJobMutation","useJobsAndCompensationsCreateJobMutation","updateJobMutation","useJobsAndCompensationsUpdateMutation","isPending","baseSubmitHandler","submitError","setError","useBaseSubmit","errorHandling","useErrorHandling","isCommissionOnly","isOwner","isFlsaSelectionEnabled","isAdjustMinimumWageEnabled","TIP_CREDITS_UNSUPPORTED_STATES","isWaState","minimumWageOptions","wage","stateWcClassCodeOptions","WA_RISK_CLASS_CODES","code","description","baseMetadata","deriveFieldsMetadata","fieldsMetadata","withOptions","onSubmit","callbacks","options","submitResult","resolve","data","payload","resolvedEmployeeId","SDKInternalError","jobTitle","twoPercentShareholder","formStartDate","compensationData","resolvedHireDate","updatedJobData","StartDateField","JobTitleField","FlsaStatusField","RateField","PaymentUnitField","AdjustForMinimumWageField","MinimumWageIdField","TwoPercentShareholderField","StateWcCoveredField","StateWcClassCodeField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { UseEmployeeDetailsFormProps } from './useEmployeeDetailsForm';
2
+ import { BaseComponentInterface } from '../../../Base';
3
+ export interface EmployeeDetailsFormProps extends UseEmployeeDetailsFormProps, Omit<BaseComponentInterface, 'defaultValues'> {
4
+ }
5
+ export declare function EmployeeDetailsForm({ FallbackComponent, ...props }: EmployeeDetailsFormProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,114 @@
1
+ import { jsx as i, jsxs as D } from "react/jsx-runtime";
2
+ import { useTranslation as L } from "react-i18next";
3
+ import { SDKFormProvider as I } from "../../form/SDKFormProvider.js";
4
+ import { useEmployeeDetailsForm as f } from "./useEmployeeDetailsForm.js";
5
+ import { useComponentContext as N } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { BaseBoundaries as u, BaseLayout as d } from "../../../Base/Base.js";
7
+ import "../../../Base/useBase.js";
8
+ import { Form as c } from "../../../Common/Form/Form.js";
9
+ import { componentEvents as s } from "../../../../shared/constants.js";
10
+ import "classnames";
11
+ import { ActionsLayout as A } from "../../../Common/ActionsLayout/ActionsLayout.js";
12
+ import "react";
13
+ import { useI18n as R, useComponentDictionary as b } from "../../../../i18n/I18n.js";
14
+ function _({ onEvent: t, dictionary: n, ...E }) {
15
+ R("UNSTABLE.EmployeeDetailsForm"), b("UNSTABLE.EmployeeDetailsForm", n);
16
+ const { t: e } = L("UNSTABLE.EmployeeDetailsForm"), m = N(), a = f({
17
+ ...E,
18
+ requiredFields: { update: ["ssn"] }
19
+ });
20
+ if (a.isLoading)
21
+ return /* @__PURE__ */ i(d, { isLoading: !0, error: a.errorHandling.errors });
22
+ const { Fields: o } = a.form, p = async () => {
23
+ const l = await a.actions.onSubmit({
24
+ onEmployeeCreated: (r) => {
25
+ t(s.EMPLOYEE_CREATED, r);
26
+ },
27
+ onEmployeeUpdated: (r) => {
28
+ t(s.EMPLOYEE_UPDATED, r);
29
+ },
30
+ onOnboardingStatusUpdated: (r) => {
31
+ t(s.EMPLOYEE_ONBOARDING_STATUS_UPDATED, r);
32
+ }
33
+ });
34
+ l && t(s.EMPLOYEE_PROFILE_DONE, l.data);
35
+ };
36
+ return /* @__PURE__ */ i(d, { error: a.errorHandling.errors, children: /* @__PURE__ */ i(I, { formHookResult: a, children: /* @__PURE__ */ D(
37
+ c,
38
+ {
39
+ onSubmit: (l) => {
40
+ l.preventDefault(), p();
41
+ },
42
+ children: [
43
+ /* @__PURE__ */ i(m.Heading, { as: "h2", children: a.status.mode === "create" ? e("addTitle") : e("editTitle") }),
44
+ /* @__PURE__ */ i(
45
+ o.FirstName,
46
+ {
47
+ label: e("firstNameLabel"),
48
+ validationMessages: {
49
+ REQUIRED: e("fieldValidations.firstName.REQUIRED"),
50
+ INVALID_NAME: e("fieldValidations.firstName.INVALID_NAME")
51
+ }
52
+ }
53
+ ),
54
+ /* @__PURE__ */ i(o.MiddleInitial, { label: e("middleInitialLabel") }),
55
+ /* @__PURE__ */ i(
56
+ o.LastName,
57
+ {
58
+ label: e("lastNameLabel"),
59
+ validationMessages: {
60
+ REQUIRED: e("fieldValidations.lastName.REQUIRED"),
61
+ INVALID_NAME: e("fieldValidations.lastName.INVALID_NAME")
62
+ }
63
+ }
64
+ ),
65
+ /* @__PURE__ */ i(
66
+ o.Email,
67
+ {
68
+ label: e("emailLabel"),
69
+ description: e("emailDescription"),
70
+ validationMessages: {
71
+ REQUIRED: e("fieldValidations.email.REQUIRED"),
72
+ INVALID_EMAIL: e("fieldValidations.email.INVALID_EMAIL"),
73
+ EMAIL_REQUIRED_FOR_SELF_ONBOARDING: e(
74
+ "fieldValidations.email.EMAIL_REQUIRED_FOR_SELF_ONBOARDING"
75
+ )
76
+ }
77
+ }
78
+ ),
79
+ o.SelfOnboarding && /* @__PURE__ */ i(
80
+ o.SelfOnboarding,
81
+ {
82
+ label: e("selfOnboardingLabel"),
83
+ description: e("selfOnboardingDescription")
84
+ }
85
+ ),
86
+ /* @__PURE__ */ i(o.DateOfBirth, { label: e("dateOfBirthLabel") }),
87
+ /* @__PURE__ */ i(
88
+ o.Ssn,
89
+ {
90
+ label: e("ssnLabel"),
91
+ validationMessages: {
92
+ INVALID_SSN: e("fieldValidations.ssn.INVALID_SSN")
93
+ }
94
+ }
95
+ ),
96
+ /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(m.Button, { type: "submit", isLoading: a.status.isPending, children: a.status.mode === "create" ? e("createCta") : e("updateCta") }) })
97
+ ]
98
+ }
99
+ ) }) });
100
+ }
101
+ function Q({ FallbackComponent: t, ...n }) {
102
+ return /* @__PURE__ */ i(
103
+ u,
104
+ {
105
+ componentName: "UNSTABLE.EmployeeDetailsForm",
106
+ FallbackComponent: t,
107
+ children: /* @__PURE__ */ i(_, { ...n })
108
+ }
109
+ );
110
+ }
111
+ export {
112
+ Q as EmployeeDetailsForm
113
+ };
114
+ //# sourceMappingURL=EmployeeDetailsForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmployeeDetailsForm.js","sources":["../../../../../src/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SDKFormProvider } from '../../form/SDKFormProvider'\nimport { useEmployeeDetailsForm } from './useEmployeeDetailsForm'\nimport type { UseEmployeeDetailsFormProps } from './useEmployeeDetailsForm'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { ActionsLayout } from '@/components/Common'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\nexport interface EmployeeDetailsFormProps\n extends UseEmployeeDetailsFormProps, Omit<BaseComponentInterface, 'defaultValues'> {}\n\nfunction EmployeeDetailsFormRoot({ onEvent, dictionary, ...hookProps }: EmployeeDetailsFormProps) {\n useI18n('UNSTABLE.EmployeeDetailsForm')\n useComponentDictionary('UNSTABLE.EmployeeDetailsForm', dictionary)\n const { t } = useTranslation('UNSTABLE.EmployeeDetailsForm')\n const Components = useComponentContext()\n const employeeDetails = useEmployeeDetailsForm({\n ...hookProps,\n requiredFields: { update: ['ssn'] },\n })\n\n if (employeeDetails.isLoading) {\n return <BaseLayout isLoading error={employeeDetails.errorHandling.errors} />\n }\n\n const { Fields } = employeeDetails.form\n\n const handleSubmit = async () => {\n const result = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: employee => {\n onEvent(componentEvents.EMPLOYEE_CREATED, employee)\n },\n onEmployeeUpdated: employee => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, employee)\n },\n onOnboardingStatusUpdated: status => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, status)\n },\n })\n if (result) {\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, result.data)\n }\n }\n\n return (\n <BaseLayout error={employeeDetails.errorHandling.errors}>\n <SDKFormProvider formHookResult={employeeDetails}>\n <Form\n onSubmit={e => {\n e.preventDefault()\n void handleSubmit()\n }}\n >\n <Components.Heading as=\"h2\">\n {employeeDetails.status.mode === 'create' ? t('addTitle') : t('editTitle')}\n </Components.Heading>\n\n <Fields.FirstName\n label={t('firstNameLabel')}\n validationMessages={{\n REQUIRED: t('fieldValidations.firstName.REQUIRED'),\n INVALID_NAME: t('fieldValidations.firstName.INVALID_NAME'),\n }}\n />\n\n <Fields.MiddleInitial label={t('middleInitialLabel')} />\n\n <Fields.LastName\n label={t('lastNameLabel')}\n validationMessages={{\n REQUIRED: t('fieldValidations.lastName.REQUIRED'),\n INVALID_NAME: t('fieldValidations.lastName.INVALID_NAME'),\n }}\n />\n\n <Fields.Email\n label={t('emailLabel')}\n description={t('emailDescription')}\n validationMessages={{\n REQUIRED: t('fieldValidations.email.REQUIRED'),\n INVALID_EMAIL: t('fieldValidations.email.INVALID_EMAIL'),\n EMAIL_REQUIRED_FOR_SELF_ONBOARDING: t(\n 'fieldValidations.email.EMAIL_REQUIRED_FOR_SELF_ONBOARDING',\n ),\n }}\n />\n\n {Fields.SelfOnboarding && (\n <Fields.SelfOnboarding\n label={t('selfOnboardingLabel')}\n description={t('selfOnboardingDescription')}\n />\n )}\n\n <Fields.DateOfBirth label={t('dateOfBirthLabel')} />\n\n <Fields.Ssn\n label={t('ssnLabel')}\n validationMessages={{\n INVALID_SSN: t('fieldValidations.ssn.INVALID_SSN'),\n }}\n />\n\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={employeeDetails.status.isPending}>\n {employeeDetails.status.mode === 'create' ? t('createCta') : t('updateCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n )\n}\n\nexport function EmployeeDetailsForm({ FallbackComponent, ...props }: EmployeeDetailsFormProps) {\n return (\n <BaseBoundaries\n componentName=\"UNSTABLE.EmployeeDetailsForm\"\n FallbackComponent={FallbackComponent}\n >\n <EmployeeDetailsFormRoot {...props} />\n </BaseBoundaries>\n )\n}\n"],"names":["EmployeeDetailsFormRoot","onEvent","dictionary","hookProps","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","employeeDetails","useEmployeeDetailsForm","BaseLayout","Fields","handleSubmit","result","employee","componentEvents","status","jsx","SDKFormProvider","jsxs","Form","e","ActionsLayout","EmployeeDetailsForm","FallbackComponent","props","BaseBoundaries"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ import { RequiredFields } from '../../form/resolveRequiredFields';
3
+ export declare const EmployeeDetailsErrorCodes: {
4
+ readonly REQUIRED: "REQUIRED";
5
+ readonly INVALID_NAME: "INVALID_NAME";
6
+ readonly INVALID_EMAIL: "INVALID_EMAIL";
7
+ readonly INVALID_SSN: "INVALID_SSN";
8
+ readonly EMAIL_REQUIRED_FOR_SELF_ONBOARDING: "EMAIL_REQUIRED_FOR_SELF_ONBOARDING";
9
+ };
10
+ export type EmployeeDetailsErrorCode = (typeof EmployeeDetailsErrorCodes)[keyof typeof EmployeeDetailsErrorCodes];
11
+ declare const fieldValidators: {
12
+ firstName: z.ZodString;
13
+ middleInitial: z.ZodString;
14
+ lastName: z.ZodString;
15
+ email: z.ZodEmail;
16
+ dateOfBirth: z.ZodISODate;
17
+ ssn: z.ZodString;
18
+ selfOnboarding: z.ZodBoolean;
19
+ };
20
+ export type EmployeeDetailsField = Exclude<keyof typeof fieldValidators, 'selfOnboarding'>;
21
+ export type EmployeeDetailsFormData = {
22
+ [K in keyof typeof fieldValidators]: z.infer<(typeof fieldValidators)[K]>;
23
+ };
24
+ export type EmployeeDetailsFormOutputs = EmployeeDetailsFormData;
25
+ interface EmployeeDetailsSchemaOptions {
26
+ mode?: 'create' | 'update';
27
+ requiredFields?: RequiredFields<EmployeeDetailsField>;
28
+ hasSsn?: boolean;
29
+ }
30
+ export declare function createEmployeeDetailsSchema(options?: EmployeeDetailsSchemaOptions): z.ZodObject<{
31
+ firstName: z.ZodString;
32
+ middleInitial: z.ZodString;
33
+ lastName: z.ZodString;
34
+ email: z.ZodEmail;
35
+ dateOfBirth: z.ZodISODate;
36
+ ssn: z.ZodString;
37
+ selfOnboarding: z.ZodBoolean;
38
+ }, z.core.$strip>;
39
+ export {};
@@ -0,0 +1,45 @@
1
+ import { z as r } from "zod";
2
+ import { composeFormSchema as D } from "../../form/composeFormSchema.js";
3
+ import { filterRequiredFields as d } from "../../form/resolveRequiredFields.js";
4
+ import { SSN_REGEX as l, NAME_REGEX as o } from "../../../../helpers/validations.js";
5
+ const e = {
6
+ REQUIRED: "REQUIRED",
7
+ INVALID_NAME: "INVALID_NAME",
8
+ INVALID_EMAIL: "INVALID_EMAIL",
9
+ INVALID_SSN: "INVALID_SSN",
10
+ EMAIL_REQUIRED_FOR_SELF_ONBOARDING: "EMAIL_REQUIRED_FOR_SELF_ONBOARDING"
11
+ }, _ = {
12
+ firstName: r.string().min(1, { message: e.REQUIRED }).regex(o, { message: e.INVALID_NAME }),
13
+ middleInitial: r.string(),
14
+ lastName: r.string().min(1, { message: e.REQUIRED }).regex(o, { message: e.INVALID_NAME }),
15
+ email: r.email({
16
+ error: (s) => typeof s.input == "string" && s.input.length === 0 ? e.REQUIRED : e.INVALID_EMAIL
17
+ }),
18
+ dateOfBirth: r.iso.date({ error: () => e.REQUIRED }),
19
+ ssn: r.string({ error: () => e.REQUIRED }).refine((s) => l.test(s.replace(/\D/g, "")), {
20
+ message: e.INVALID_SSN
21
+ }),
22
+ selfOnboarding: r.boolean()
23
+ }, A = /* @__PURE__ */ new Set(["selfOnboarding"]), f = /* @__PURE__ */ new Set(["firstName", "lastName"]);
24
+ function O(s = {}) {
25
+ const { mode: i = "create", requiredFields: t, hasSsn: a = !1 } = s, n = a ? d(t, "ssn") : t, E = D({
26
+ fieldValidators: _,
27
+ fixedFields: A,
28
+ requiredOnCreate: f,
29
+ mode: i,
30
+ requiredFields: n
31
+ });
32
+ return i === "create" ? E.superRefine((m, R) => {
33
+ const { selfOnboarding: N, email: I } = m;
34
+ N && (!I || I.trim() === "") && R.addIssue({
35
+ code: r.ZodIssueCode.custom,
36
+ path: ["email"],
37
+ message: e.EMAIL_REQUIRED_FOR_SELF_ONBOARDING
38
+ });
39
+ }) : E;
40
+ }
41
+ export {
42
+ e as EmployeeDetailsErrorCodes,
43
+ O as createEmployeeDetailsSchema
44
+ };
45
+ //# sourceMappingURL=employeeDetailsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"employeeDetailsSchema.js","sources":["../../../../../src/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.ts"],"sourcesContent":["import { z } from 'zod'\nimport { composeFormSchema } from '../../form/composeFormSchema'\nimport { filterRequiredFields, type RequiredFields } from '../../form/resolveRequiredFields'\nimport { SSN_REGEX, NAME_REGEX } from '@/helpers/validations'\n\nexport const EmployeeDetailsErrorCodes = {\n REQUIRED: 'REQUIRED',\n INVALID_NAME: 'INVALID_NAME',\n INVALID_EMAIL: 'INVALID_EMAIL',\n INVALID_SSN: 'INVALID_SSN',\n EMAIL_REQUIRED_FOR_SELF_ONBOARDING: 'EMAIL_REQUIRED_FOR_SELF_ONBOARDING',\n} as const\n\nexport type EmployeeDetailsErrorCode =\n (typeof EmployeeDetailsErrorCodes)[keyof typeof EmployeeDetailsErrorCodes]\n\nconst fieldValidators = {\n firstName: z\n .string()\n .min(1, { message: EmployeeDetailsErrorCodes.REQUIRED })\n .regex(NAME_REGEX, { message: EmployeeDetailsErrorCodes.INVALID_NAME }),\n middleInitial: z.string(),\n lastName: z\n .string()\n .min(1, { message: EmployeeDetailsErrorCodes.REQUIRED })\n .regex(NAME_REGEX, { message: EmployeeDetailsErrorCodes.INVALID_NAME }),\n email: z.email({\n error: issue =>\n typeof issue.input === 'string' && issue.input.length === 0\n ? EmployeeDetailsErrorCodes.REQUIRED\n : EmployeeDetailsErrorCodes.INVALID_EMAIL,\n }),\n dateOfBirth: z.iso.date({ error: () => EmployeeDetailsErrorCodes.REQUIRED }),\n ssn: z\n .string({ error: () => EmployeeDetailsErrorCodes.REQUIRED })\n .refine((v: string) => SSN_REGEX.test(v.replace(/\\D/g, '')), {\n message: EmployeeDetailsErrorCodes.INVALID_SSN,\n }),\n selfOnboarding: z.boolean(),\n}\n\nexport type EmployeeDetailsField = Exclude<keyof typeof fieldValidators, 'selfOnboarding'>\n\nexport type EmployeeDetailsFormData = {\n [K in keyof typeof fieldValidators]: z.infer<(typeof fieldValidators)[K]>\n}\nexport type EmployeeDetailsFormOutputs = EmployeeDetailsFormData\n\nconst FIXED_FIELDS = new Set(['selfOnboarding'])\nconst REQUIRED_ON_CREATE = new Set<EmployeeDetailsField>(['firstName', 'lastName'])\n\ninterface EmployeeDetailsSchemaOptions {\n mode?: 'create' | 'update'\n requiredFields?: RequiredFields<EmployeeDetailsField>\n hasSsn?: boolean\n}\n\nexport function createEmployeeDetailsSchema(options: EmployeeDetailsSchemaOptions = {}) {\n const { mode = 'create', requiredFields, hasSsn = false } = options\n\n const effectiveRequiredFields = hasSsn\n ? filterRequiredFields(requiredFields, 'ssn')\n : requiredFields\n\n const baseSchema = composeFormSchema({\n fieldValidators,\n fixedFields: FIXED_FIELDS,\n requiredOnCreate: REQUIRED_ON_CREATE,\n mode,\n requiredFields: effectiveRequiredFields,\n })\n\n if (mode === 'create') {\n return baseSchema.superRefine((data, ctx) => {\n const { selfOnboarding, email } = data as EmployeeDetailsFormData\n if (selfOnboarding && (!email || email.trim() === '')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['email'],\n message: EmployeeDetailsErrorCodes.EMAIL_REQUIRED_FOR_SELF_ONBOARDING,\n })\n }\n })\n }\n\n return baseSchema\n}\n"],"names":["EmployeeDetailsErrorCodes","fieldValidators","z","NAME_REGEX","issue","v","SSN_REGEX","FIXED_FIELDS","REQUIRED_ON_CREATE","createEmployeeDetailsSchema","options","mode","requiredFields","hasSsn","effectiveRequiredFields","filterRequiredFields","baseSchema","composeFormSchema","data","ctx","selfOnboarding","email"],"mappings":";;;;AAKO,MAAMA,IAA4B;AAAA,EACvC,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,oCAAoC;AACtC,GAKMC,IAAkB;AAAA,EACtB,WAAWC,EACR,OAAA,EACA,IAAI,GAAG,EAAE,SAASF,EAA0B,SAAA,CAAU,EACtD,MAAMG,GAAY,EAAE,SAASH,EAA0B,cAAc;AAAA,EACxE,eAAeE,EAAE,OAAA;AAAA,EACjB,UAAUA,EACP,OAAA,EACA,IAAI,GAAG,EAAE,SAASF,EAA0B,SAAA,CAAU,EACtD,MAAMG,GAAY,EAAE,SAASH,EAA0B,cAAc;AAAA,EACxE,OAAOE,EAAE,MAAM;AAAA,IACb,OAAO,CAAAE,MACL,OAAOA,EAAM,SAAU,YAAYA,EAAM,MAAM,WAAW,IACtDJ,EAA0B,WAC1BA,EAA0B;AAAA,EAAA,CACjC;AAAA,EACD,aAAaE,EAAE,IAAI,KAAK,EAAE,OAAO,MAAMF,EAA0B,UAAU;AAAA,EAC3E,KAAKE,EACF,OAAO,EAAE,OAAO,MAAMF,EAA0B,UAAU,EAC1D,OAAO,CAACK,MAAcC,EAAU,KAAKD,EAAE,QAAQ,OAAO,EAAE,CAAC,GAAG;AAAA,IAC3D,SAASL,EAA0B;AAAA,EAAA,CACpC;AAAA,EACH,gBAAgBE,EAAE,QAAA;AACpB,GASMK,IAAe,oBAAI,IAAI,CAAC,gBAAgB,CAAC,GACzCC,IAAqB,oBAAI,IAA0B,CAAC,aAAa,UAAU,CAAC;AAQ3E,SAASC,EAA4BC,IAAwC,IAAI;AACtF,QAAM,EAAE,MAAAC,IAAO,UAAU,gBAAAC,GAAgB,QAAAC,IAAS,OAAUH,GAEtDI,IAA0BD,IAC5BE,EAAqBH,GAAgB,KAAK,IAC1CA,GAEEI,IAAaC,EAAkB;AAAA,IACnC,iBAAAhB;AAAA,IACA,aAAaM;AAAA,IACb,kBAAkBC;AAAA,IAClB,MAAAG;AAAA,IACA,gBAAgBG;AAAA,EAAA,CACjB;AAED,SAAIH,MAAS,WACJK,EAAW,YAAY,CAACE,GAAMC,MAAQ;AAC3C,UAAM,EAAE,gBAAAC,GAAgB,OAAAC,EAAA,IAAUH;AAClC,IAAIE,MAAmB,CAACC,KAASA,EAAM,KAAA,MAAW,OAChDF,EAAI,SAAS;AAAA,MACX,MAAMjB,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,OAAO;AAAA,MACd,SAASF,EAA0B;AAAA,IAAA,CACpC;AAAA,EAEL,CAAC,IAGIgB;AACT;"}
@@ -0,0 +1,23 @@
1
+ import { HookFieldProps } from '../../form/types';
2
+ import { TextInputHookFieldProps } from '../../form/fields/TextInputHookField';
3
+ import { DatePickerHookFieldProps } from '../../form/fields/DatePickerHookField';
4
+ import { SwitchHookFieldProps } from '../../form/fields/SwitchHookField';
5
+ import { EmployeeDetailsErrorCodes } from './employeeDetailsSchema';
6
+ export type RequiredValidation = typeof EmployeeDetailsErrorCodes.REQUIRED;
7
+ export type NameValidation = (typeof EmployeeDetailsErrorCodes)['REQUIRED' | 'INVALID_NAME'];
8
+ export type EmailValidation = (typeof EmployeeDetailsErrorCodes)['REQUIRED' | 'INVALID_EMAIL' | 'EMAIL_REQUIRED_FOR_SELF_ONBOARDING'];
9
+ export type SsnValidation = typeof EmployeeDetailsErrorCodes.INVALID_SSN;
10
+ export type FirstNameFieldProps = HookFieldProps<TextInputHookFieldProps<NameValidation>>;
11
+ export declare function FirstNameField(props: FirstNameFieldProps): import("react/jsx-runtime").JSX.Element;
12
+ export type MiddleInitialFieldProps = HookFieldProps<TextInputHookFieldProps>;
13
+ export declare function MiddleInitialField(props: MiddleInitialFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export type LastNameFieldProps = HookFieldProps<TextInputHookFieldProps<NameValidation>>;
15
+ export declare function LastNameField(props: LastNameFieldProps): import("react/jsx-runtime").JSX.Element;
16
+ export type EmailFieldProps = HookFieldProps<TextInputHookFieldProps<EmailValidation>>;
17
+ export declare function EmailField(props: EmailFieldProps): import("react/jsx-runtime").JSX.Element;
18
+ export type DateOfBirthFieldProps = HookFieldProps<DatePickerHookFieldProps>;
19
+ export declare function DateOfBirthField(props: DateOfBirthFieldProps): import("react/jsx-runtime").JSX.Element;
20
+ export type SsnFieldProps = HookFieldProps<TextInputHookFieldProps<SsnValidation>>;
21
+ export declare function SsnField(props: SsnFieldProps): import("react/jsx-runtime").JSX.Element;
22
+ export type SelfOnboardingFieldProps = HookFieldProps<SwitchHookFieldProps>;
23
+ export declare function SelfOnboardingField(props: SelfOnboardingFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,46 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useFieldsMetadata as a } from "../../form/useFieldsMetadata.js";
3
+ import { usePlaceholderSSN as o, normalizeSSN as m } from "../../../../helpers/ssn.js";
4
+ import { SwitchHookField as l } from "../../form/fields/SwitchHookField.js";
5
+ import { TextInputHookField as n } from "../../form/fields/TextInputHookField.js";
6
+ import { DatePickerHookField as d } from "../../form/fields/DatePickerHookField.js";
7
+ function S(e) {
8
+ return /* @__PURE__ */ t(n, { ...e, name: "firstName" });
9
+ }
10
+ function h(e) {
11
+ return /* @__PURE__ */ t(n, { ...e, name: "middleInitial" });
12
+ }
13
+ function N(e) {
14
+ return /* @__PURE__ */ t(n, { ...e, name: "lastName" });
15
+ }
16
+ function k(e) {
17
+ return /* @__PURE__ */ t(n, { ...e, name: "email" });
18
+ }
19
+ function O(e) {
20
+ return /* @__PURE__ */ t(d, { ...e, name: "dateOfBirth" });
21
+ }
22
+ function x(e) {
23
+ const i = a(), r = o(i.ssn?.hasRedactedValue);
24
+ return /* @__PURE__ */ t(
25
+ n,
26
+ {
27
+ ...e,
28
+ name: "ssn",
29
+ transform: m,
30
+ placeholder: r
31
+ }
32
+ );
33
+ }
34
+ function H(e) {
35
+ return /* @__PURE__ */ t(l, { ...e, name: "selfOnboarding" });
36
+ }
37
+ export {
38
+ O as DateOfBirthField,
39
+ k as EmailField,
40
+ S as FirstNameField,
41
+ N as LastNameField,
42
+ h as MiddleInitialField,
43
+ H as SelfOnboardingField,
44
+ x as SsnField
45
+ };
46
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sources":["../../../../../src/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.tsx"],"sourcesContent":["import type { HookFieldProps } from '../../form/types'\nimport type { TextInputHookFieldProps } from '../../form/fields/TextInputHookField'\nimport type { DatePickerHookFieldProps } from '../../form/fields/DatePickerHookField'\nimport type { SwitchHookFieldProps } from '../../form/fields/SwitchHookField'\nimport { TextInputHookField, DatePickerHookField, SwitchHookField } from '../../form/fields'\nimport { useFieldsMetadata } from '../../form/useFieldsMetadata'\nimport type { EmployeeDetailsErrorCodes } from './employeeDetailsSchema'\nimport { normalizeSSN, usePlaceholderSSN } from '@/helpers/ssn'\n\nexport type RequiredValidation = typeof EmployeeDetailsErrorCodes.REQUIRED\nexport type NameValidation = (typeof EmployeeDetailsErrorCodes)['REQUIRED' | 'INVALID_NAME']\nexport type EmailValidation = (typeof EmployeeDetailsErrorCodes)[\n | 'REQUIRED'\n | 'INVALID_EMAIL'\n | 'EMAIL_REQUIRED_FOR_SELF_ONBOARDING']\nexport type SsnValidation = typeof EmployeeDetailsErrorCodes.INVALID_SSN\n\nexport type FirstNameFieldProps = HookFieldProps<TextInputHookFieldProps<NameValidation>>\n\nexport function FirstNameField(props: FirstNameFieldProps) {\n return <TextInputHookField {...props} name=\"firstName\" />\n}\n\nexport type MiddleInitialFieldProps = HookFieldProps<TextInputHookFieldProps>\n\nexport function MiddleInitialField(props: MiddleInitialFieldProps) {\n return <TextInputHookField {...props} name=\"middleInitial\" />\n}\n\nexport type LastNameFieldProps = HookFieldProps<TextInputHookFieldProps<NameValidation>>\n\nexport function LastNameField(props: LastNameFieldProps) {\n return <TextInputHookField {...props} name=\"lastName\" />\n}\n\nexport type EmailFieldProps = HookFieldProps<TextInputHookFieldProps<EmailValidation>>\n\nexport function EmailField(props: EmailFieldProps) {\n return <TextInputHookField {...props} name=\"email\" />\n}\n\nexport type DateOfBirthFieldProps = HookFieldProps<DatePickerHookFieldProps>\n\nexport function DateOfBirthField(props: DateOfBirthFieldProps) {\n return <DatePickerHookField {...props} name=\"dateOfBirth\" />\n}\n\nexport type SsnFieldProps = HookFieldProps<TextInputHookFieldProps<SsnValidation>>\n\nexport function SsnField(props: SsnFieldProps) {\n const metadata = useFieldsMetadata()\n const placeholderSSN = usePlaceholderSSN(metadata.ssn?.hasRedactedValue)\n return (\n <TextInputHookField\n {...props}\n name=\"ssn\"\n transform={normalizeSSN}\n placeholder={placeholderSSN}\n />\n )\n}\n\nexport type SelfOnboardingFieldProps = HookFieldProps<SwitchHookFieldProps>\n\nexport function SelfOnboardingField(props: SelfOnboardingFieldProps) {\n return <SwitchHookField {...props} name=\"selfOnboarding\" />\n}\n"],"names":["FirstNameField","props","jsx","TextInputHookField","MiddleInitialField","LastNameField","EmailField","DateOfBirthField","DatePickerHookField","SsnField","metadata","useFieldsMetadata","placeholderSSN","usePlaceholderSSN","normalizeSSN","SelfOnboardingField","SwitchHookField"],"mappings":";;;;;;AAmBO,SAASA,EAAeC,GAA4B;AACzD,SAAO,gBAAAC,EAACC,GAAA,EAAoB,GAAGF,GAAO,MAAK,aAAY;AACzD;AAIO,SAASG,EAAmBH,GAAgC;AACjE,SAAO,gBAAAC,EAACC,GAAA,EAAoB,GAAGF,GAAO,MAAK,iBAAgB;AAC7D;AAIO,SAASI,EAAcJ,GAA2B;AACvD,SAAO,gBAAAC,EAACC,GAAA,EAAoB,GAAGF,GAAO,MAAK,YAAW;AACxD;AAIO,SAASK,EAAWL,GAAwB;AACjD,SAAO,gBAAAC,EAACC,GAAA,EAAoB,GAAGF,GAAO,MAAK,SAAQ;AACrD;AAIO,SAASM,EAAiBN,GAA8B;AAC7D,SAAO,gBAAAC,EAACM,GAAA,EAAqB,GAAGP,GAAO,MAAK,eAAc;AAC5D;AAIO,SAASQ,EAASR,GAAsB;AAC7C,QAAMS,IAAWC,EAAA,GACXC,IAAiBC,EAAkBH,EAAS,KAAK,gBAAgB;AACvE,SACE,gBAAAR;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,MAAK;AAAA,MACL,WAAWa;AAAA,MACX,aAAaF;AAAA,IAAA;AAAA,EAAA;AAGnB;AAIO,SAASG,EAAoBd,GAAiC;AACnE,SAAO,gBAAAC,EAACc,GAAA,EAAiB,GAAGf,GAAO,MAAK,kBAAiB;AAC3D;"}
@@ -0,0 +1,7 @@
1
+ import "./types/i18next.d.ts"
2
+ export { useEmployeeDetailsForm } from './useEmployeeDetailsForm';
3
+ export type { EmployeeDetailsSubmitCallbacks, EmployeeDetailsRequiredFields, UseEmployeeDetailsFormProps, UseEmployeeDetailsFormResult, UseEmployeeDetailsFormReady, EmployeeDetailsFieldsMetadata, EmployeeDetailsFormFields, } from './useEmployeeDetailsForm';
4
+ export { EmployeeDetailsForm } from './EmployeeDetailsForm';
5
+ export type { EmployeeDetailsFormProps } from './EmployeeDetailsForm';
6
+ export { createEmployeeDetailsSchema, EmployeeDetailsErrorCodes, type EmployeeDetailsErrorCode, type EmployeeDetailsFormData, type EmployeeDetailsFormOutputs, type EmployeeDetailsField, } from './employeeDetailsSchema';
7
+ export type { RequiredValidation as EmployeeDetailsRequiredValidation, NameValidation, EmailValidation, SsnValidation, FirstNameFieldProps, MiddleInitialFieldProps, LastNameFieldProps, EmailFieldProps, DateOfBirthFieldProps, SsnFieldProps, SelfOnboardingFieldProps, } from './fields';
@@ -0,0 +1,77 @@
1
+ import { UseFormProps } from 'react-hook-form';
2
+ import { Employee } from '@gusto/embedded-api/models/components/employee';
3
+ import { HookSubmitResult } from '../../types';
4
+ import { RequiredFields } from '../../form/resolveRequiredFields';
5
+ import { EmployeeDetailsFormData, EmployeeDetailsField } from './employeeDetailsSchema';
6
+ import { FirstNameField, MiddleInitialField, LastNameField, EmailField, DateOfBirthField, SsnField, SelfOnboardingField } from './fields';
7
+ export type EmployeeDetailsRequiredFields = RequiredFields<EmployeeDetailsField>;
8
+ export interface EmployeeDetailsSubmitCallbacks {
9
+ onEmployeeCreated?: (employee: Employee) => void;
10
+ onEmployeeUpdated?: (employee: Employee) => void;
11
+ onOnboardingStatusUpdated?: (status: unknown) => void;
12
+ }
13
+ export interface UseEmployeeDetailsFormProps {
14
+ companyId: string;
15
+ employeeId?: string;
16
+ withSelfOnboardingField?: boolean;
17
+ requiredFields?: EmployeeDetailsRequiredFields;
18
+ defaultValues?: Partial<EmployeeDetailsFormData>;
19
+ validationMode?: UseFormProps['mode'];
20
+ shouldFocusError?: boolean;
21
+ }
22
+ export declare function useEmployeeDetailsForm({ companyId, employeeId, withSelfOnboardingField, requiredFields, defaultValues: partnerDefaults, validationMode, shouldFocusError, }: UseEmployeeDetailsFormProps): {
23
+ isLoading: true;
24
+ errorHandling: import('../..').HookErrorHandling;
25
+ data?: undefined;
26
+ status?: undefined;
27
+ actions?: undefined;
28
+ form?: undefined;
29
+ } | {
30
+ isLoading: false;
31
+ data: {
32
+ employee: Employee | null;
33
+ };
34
+ status: {
35
+ isPending: boolean;
36
+ mode: "create" | "update";
37
+ };
38
+ actions: {
39
+ onSubmit: (callbacks?: EmployeeDetailsSubmitCallbacks) => Promise<HookSubmitResult<Employee> | undefined>;
40
+ };
41
+ errorHandling: import('../..').HookErrorHandling;
42
+ form: {
43
+ Fields: {
44
+ FirstName: typeof FirstNameField;
45
+ MiddleInitial: typeof MiddleInitialField;
46
+ LastName: typeof LastNameField;
47
+ Email: typeof EmailField;
48
+ DateOfBirth: typeof DateOfBirthField;
49
+ Ssn: typeof SsnField;
50
+ SelfOnboarding: typeof SelfOnboardingField | undefined;
51
+ };
52
+ fieldsMetadata: {
53
+ ssn: {
54
+ hasRedactedValue: boolean;
55
+ name: string;
56
+ isRequired?: boolean;
57
+ isDisabled?: boolean;
58
+ };
59
+ email: import('../..').FieldMetadata;
60
+ firstName: import('../..').FieldMetadata;
61
+ lastName: import('../..').FieldMetadata;
62
+ selfOnboarding: import('../..').FieldMetadata;
63
+ middleInitial: import('../..').FieldMetadata;
64
+ dateOfBirth: import('../..').FieldMetadata;
65
+ };
66
+ hookFormInternals: {
67
+ formMethods: import('react-hook-form').UseFormReturn<EmployeeDetailsFormData, unknown, EmployeeDetailsFormData>;
68
+ };
69
+ getFormSubmissionValues: () => EmployeeDetailsFormData | undefined;
70
+ };
71
+ };
72
+ export type UseEmployeeDetailsFormResult = ReturnType<typeof useEmployeeDetailsForm>;
73
+ export type UseEmployeeDetailsFormReady = Extract<UseEmployeeDetailsFormResult, {
74
+ data: object;
75
+ }>;
76
+ export type EmployeeDetailsFieldsMetadata = UseEmployeeDetailsFormReady['form']['fieldsMetadata'];
77
+ export type EmployeeDetailsFormFields = UseEmployeeDetailsFormReady['form']['Fields'];
@@ -0,0 +1,153 @@
1
+ import { useForm as W } from "react-hook-form";
2
+ import { zodResolver as Y } from "@hookform/resolvers/zod";
3
+ import { useEmployeesGet as x } from "@gusto/embedded-api/react-query/employeesGet";
4
+ import { useEmployeesCreateMutation as z } from "@gusto/embedded-api/react-query/employeesCreate";
5
+ import { useEmployeesUpdateMutation as K } from "@gusto/embedded-api/react-query/employeesUpdate";
6
+ import { useEmployeesUpdateOnboardingStatusMutation as Q } from "@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus";
7
+ import { RFCDate as j } from "@gusto/embedded-api/types/rfcdate";
8
+ import { useErrorHandling as k } from "../../useErrorHandling.js";
9
+ import { deriveFieldsMetadata as J } from "../../form/deriveFieldsMetadata.js";
10
+ import { createGetFormSubmissionValues as X } from "../../form/getFormSubmissionValues.js";
11
+ import { createEmployeeDetailsSchema as Z } from "./employeeDetailsSchema.js";
12
+ import { SelfOnboardingField as $, SsnField as ee, DateOfBirthField as te, EmailField as oe, LastNameField as ae, MiddleInitialField as ie, FirstNameField as se } from "./fields.js";
13
+ import { EmployeeOnboardingStatus as t } from "../../../../shared/constants.js";
14
+ import { useBaseSubmit as ne } from "../../../Base/useBaseSubmit.js";
15
+ import { SDKInternalError as O } from "../../../../types/sdkError.js";
16
+ import { removeNonDigits as re } from "../../../../helpers/formattedStrings.js";
17
+ const de = (o) => o?.onboardingStatus ? [
18
+ t.SELF_ONBOARDING_PENDING_INVITE,
19
+ t.SELF_ONBOARDING_INVITED,
20
+ t.SELF_ONBOARDING_INVITED_STARTED,
21
+ t.SELF_ONBOARDING_INVITED_OVERDUE,
22
+ t.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE,
23
+ t.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW
24
+ ].includes(o.onboardingStatus) : !1, me = (o) => o ? o.onboardingStatus === t.ADMIN_ONBOARDING_INCOMPLETE || o.onboardingStatus === t.SELF_ONBOARDING_PENDING_INVITE : !0;
25
+ function Le({
26
+ companyId: o,
27
+ employeeId: a,
28
+ withSelfOnboardingField: A = !0,
29
+ requiredFields: L,
30
+ defaultValues: i,
31
+ validationMode: M = "onSubmit",
32
+ shouldFocusError: G = !0
33
+ }) {
34
+ const m = x({ employeeId: a ?? "" }, { enabled: !!a }), e = m.data?.employee, r = !a, c = me(e), l = Z({
35
+ mode: r ? "create" : "update",
36
+ requiredFields: L,
37
+ hasSsn: e?.hasSsn
38
+ }), p = {
39
+ firstName: e?.firstName ?? i?.firstName ?? "",
40
+ middleInitial: e?.middleInitial ?? i?.middleInitial ?? "",
41
+ lastName: e?.lastName ?? i?.lastName ?? "",
42
+ email: e?.email ?? i?.email ?? "",
43
+ dateOfBirth: e?.dateOfBirth ?? i?.dateOfBirth ?? "",
44
+ ssn: i?.ssn ?? "",
45
+ selfOnboarding: i?.selfOnboarding ?? de(e)
46
+ }, u = W({
47
+ resolver: Y(l),
48
+ mode: M,
49
+ shouldFocusError: G,
50
+ defaultValues: p,
51
+ values: p,
52
+ resetOptions: { keepDirtyValues: !0 }
53
+ }), S = z(), I = K(), g = Q(), R = S.isPending || I.isPending || g.isPending, { baseSubmitHandler: v, error: T, setError: V } = ne("EmployeeDetailsForm"), b = k(a ? [m] : [], { error: T, setError: V }), y = J(l), w = {
54
+ ...y,
55
+ ssn: { ...y.ssn, hasRedactedValue: e?.hasSsn ?? !1 }
56
+ }, P = async (E) => {
57
+ let _;
58
+ return await new Promise((D) => {
59
+ u.handleSubmit(
60
+ async (q) => {
61
+ await v(q, async (C) => {
62
+ const { selfOnboarding: f, dateOfBirth: N, ssn: F, ...B } = C, d = F ? re(F) : void 0, h = d && d.length > 0;
63
+ let s;
64
+ if (r) {
65
+ const n = await S.mutateAsync({
66
+ request: {
67
+ companyId: o,
68
+ requestBody: {
69
+ ...B,
70
+ selfOnboarding: f,
71
+ dateOfBirth: N ? new j(new Date(N)) : void 0,
72
+ ssn: h ? d : void 0
73
+ }
74
+ }
75
+ });
76
+ if (!n.employee)
77
+ throw new O("Employee creation failed");
78
+ s = n.employee, E?.onEmployeeCreated?.(s);
79
+ } else {
80
+ if (!e)
81
+ throw new O("Employee data is not available");
82
+ if (c) {
83
+ const U = e.onboardingStatus === t.SELF_ONBOARDING_PENDING_INVITE;
84
+ if (f !== U) {
85
+ const { employeeOnboardingStatus: H } = await g.mutateAsync({
86
+ request: {
87
+ employeeId: e.uuid,
88
+ requestBody: {
89
+ onboardingStatus: f ? t.SELF_ONBOARDING_PENDING_INVITE : t.ADMIN_ONBOARDING_INCOMPLETE
90
+ }
91
+ }
92
+ });
93
+ E?.onOnboardingStatusUpdated?.(H);
94
+ }
95
+ }
96
+ const n = await I.mutateAsync({
97
+ request: {
98
+ employeeId: e.uuid,
99
+ requestBody: {
100
+ version: e.version,
101
+ ...B,
102
+ dateOfBirth: N || void 0,
103
+ ssn: h ? d : void 0
104
+ }
105
+ }
106
+ });
107
+ if (!n.employee)
108
+ throw new O("Employee update failed");
109
+ s = n.employee, E?.onEmployeeUpdated?.(s);
110
+ }
111
+ _ = {
112
+ mode: r ? "create" : "update",
113
+ data: s
114
+ };
115
+ }), D();
116
+ },
117
+ () => {
118
+ D();
119
+ }
120
+ )();
121
+ }), _;
122
+ };
123
+ return (a ? m.isLoading : !1) || a && !e ? { isLoading: !0, errorHandling: b } : {
124
+ isLoading: !1,
125
+ data: {
126
+ employee: e ?? null
127
+ },
128
+ status: {
129
+ isPending: R,
130
+ mode: r ? "create" : "update"
131
+ },
132
+ actions: { onSubmit: P },
133
+ errorHandling: b,
134
+ form: {
135
+ Fields: {
136
+ FirstName: se,
137
+ MiddleInitial: ie,
138
+ LastName: ae,
139
+ Email: oe,
140
+ DateOfBirth: te,
141
+ Ssn: ee,
142
+ SelfOnboarding: A && c ? $ : void 0
143
+ },
144
+ fieldsMetadata: w,
145
+ hookFormInternals: { formMethods: u },
146
+ getFormSubmissionValues: X(u, l)
147
+ }
148
+ };
149
+ }
150
+ export {
151
+ Le as useEmployeeDetailsForm
152
+ };
153
+ //# sourceMappingURL=useEmployeeDetailsForm.js.map