@gusto/embedded-react-sdk 0.45.0 → 0.46.2

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 (233) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.d.ts +2 -1
  3. package/dist/components/Common/DataView/DataCards/DataCards.js +14 -13
  4. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  5. package/dist/components/Common/DataView/DataTable/DataTable.d.ts +2 -1
  6. package/dist/components/Common/DataView/DataTable/DataTable.js +51 -50
  7. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  8. package/dist/components/Common/DataView/DataView.d.ts +1 -0
  9. package/dist/components/Common/DataView/DataView.js.map +1 -1
  10. package/dist/components/Common/DataView/useDataView.d.ts +8 -1
  11. package/dist/components/Common/DataView/useDataView.js +20 -17
  12. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +20 -4
  14. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  15. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +20 -4
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  17. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +22 -6
  18. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  19. package/dist/components/Company/BankAccount/BankAccountForm/context.js +20 -4
  20. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  21. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +20 -4
  22. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  23. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  24. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +28 -12
  25. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  26. package/dist/components/Company/Industry/Context.js +23 -7
  27. package/dist/components/Company/Industry/Context.js.map +1 -1
  28. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +20 -4
  29. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  30. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +20 -4
  31. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  32. package/dist/components/Company/OnboardingOverview/context.js +20 -4
  33. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  34. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  35. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +20 -4
  36. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  37. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +20 -4
  38. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  39. package/dist/components/Contractor/Address/useAddress.js +22 -6
  40. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  41. package/dist/components/Contractor/Profile/useContractorProfile.js +52 -42
  42. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  43. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.d.ts +9 -0
  44. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js +76 -0
  45. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js.map +1 -0
  46. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js +8 -0
  47. package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js.map +1 -0
  48. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.d.ts +11 -0
  49. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js +85 -0
  50. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js.map +1 -0
  51. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.module.scss.js +8 -0
  52. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.module.scss.js.map +1 -0
  53. package/dist/components/Employee/Compensation/management/EditCompensation/index.d.ts +3 -0
  54. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.d.ts +25 -0
  55. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js +81 -0
  56. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js.map +1 -0
  57. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js +8 -0
  58. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js.map +1 -0
  59. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.d.ts +18 -0
  60. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +171 -0
  61. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -0
  62. package/dist/components/Employee/Compensation/management/index.d.ts +6 -0
  63. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +6 -1
  64. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +67 -209
  65. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
  66. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.d.ts +18 -0
  67. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +169 -0
  68. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -0
  69. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +16 -0
  70. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js +36 -30
  71. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
  72. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +1 -1
  73. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  74. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
  75. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +212 -187
  76. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  77. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  78. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +8 -0
  79. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js +22 -17
  80. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js.map +1 -1
  81. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +12 -2
  82. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +115 -110
  83. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  84. package/dist/components/Employee/Dashboard/BasicDetailsView.d.ts +8 -3
  85. package/dist/components/Employee/Dashboard/BasicDetailsView.js +108 -84
  86. package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
  87. package/dist/components/Employee/Dashboard/Dashboard.d.ts +2 -0
  88. package/dist/components/Employee/Dashboard/Dashboard.js +86 -68
  89. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  90. package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +8 -4
  91. package/dist/components/Employee/Dashboard/DashboardComponents.js +147 -93
  92. package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
  93. package/dist/components/Employee/Dashboard/DocumentsView.js +18 -11
  94. package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
  95. package/dist/components/Employee/Dashboard/JobAndPayView.js +304 -264
  96. package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
  97. package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js +10 -0
  98. package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js.map +1 -0
  99. package/dist/components/Employee/Dashboard/TaxesView.d.ts +7 -2
  100. package/dist/components/Employee/Dashboard/TaxesView.js +68 -54
  101. package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
  102. package/dist/components/Employee/Dashboard/dashboardStateMachine.js +152 -142
  103. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  104. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.d.ts +6 -0
  105. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +13 -12
  106. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -1
  107. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.d.ts +12 -5
  108. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.js +21 -21
  109. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.js.map +1 -1
  110. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.d.ts +13 -3
  111. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js +53 -55
  112. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js.map +1 -1
  113. package/dist/components/Employee/Dashboard/hooks/useEmployeeForms.d.ts +10 -4
  114. package/dist/components/Employee/Dashboard/hooks/useEmployeeForms.js +10 -12
  115. package/dist/components/Employee/Dashboard/hooks/useEmployeeForms.js.map +1 -1
  116. package/dist/components/Employee/Dashboard/hooks/useEmployeeTaxes.d.ts +10 -3
  117. package/dist/components/Employee/Dashboard/hooks/useEmployeeTaxes.js +19 -14
  118. package/dist/components/Employee/Dashboard/hooks/useEmployeeTaxes.js.map +1 -1
  119. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  120. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  121. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +20 -4
  122. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  123. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  124. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +37 -40
  125. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
  126. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +1 -2
  127. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +64 -71
  128. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  129. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.d.ts +2 -0
  130. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js +25 -0
  131. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js.map +1 -0
  132. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.d.ts +13 -0
  133. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js +37 -0
  134. package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js.map +1 -0
  135. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.d.ts +6 -0
  136. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +69 -0
  137. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -0
  138. package/dist/components/Employee/EmployeeListFlow/index.d.ts +3 -0
  139. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  140. package/dist/components/Employee/HomeAddress/management/HomeAddress.js +15 -12
  141. package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
  142. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +2 -1
  143. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +86 -83
  144. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  145. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  146. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  147. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  148. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  149. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  150. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  151. package/dist/components/Employee/Taxes/useTaxes.js +20 -4
  152. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  153. package/dist/components/Employee/WorkAddress/management/WorkAddress.js +14 -11
  154. package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
  155. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +2 -1
  156. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +92 -89
  157. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  158. package/dist/components/Employee/exports/employeeManagement.d.ts +2 -0
  159. package/dist/components/Employee/exports/employeeManagement.js +18 -16
  160. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  161. package/dist/components/Employee/index.d.ts +2 -0
  162. package/dist/components/Employee/index.js +32 -30
  163. package/dist/components/Employee/index.js.map +1 -1
  164. package/dist/components/Flow/FlowHeader.js +34 -31
  165. package/dist/components/Flow/FlowHeader.js.map +1 -1
  166. package/dist/components/Flow/useFlow.d.ts +12 -0
  167. package/dist/components/Flow/useFlow.js.map +1 -1
  168. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +34 -26
  169. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  170. package/dist/components/Payroll/usePreparedPayrollData.js +36 -22
  171. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  172. package/dist/components/TimeOff/PolicyList/PolicyList.js +92 -69
  173. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  174. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +23 -23
  175. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  176. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +52 -40
  177. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  178. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +1 -1
  179. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  180. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +73 -56
  181. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  182. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +58 -58
  183. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  184. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  185. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +91 -87
  186. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  187. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  188. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +91 -124
  189. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  190. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  191. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +72 -87
  192. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  193. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +1 -6
  194. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +160 -220
  195. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  196. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +7 -3
  197. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +77 -54
  198. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  199. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.test.d.ts +1 -0
  200. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +12 -11
  201. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  202. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +177 -147
  203. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  204. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -1
  205. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +38 -36
  206. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  207. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +2 -0
  208. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +10 -10
  209. package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js +17 -15
  210. package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js.map +1 -1
  211. package/dist/i18n/en/Company.TimeOff.TimeOffPolicyDetails.json.js +9 -9
  212. package/dist/i18n/en/Employee.Compensation.json.js +68 -56
  213. package/dist/i18n/en/Employee.Compensation.json.js.map +1 -1
  214. package/dist/i18n/en/Employee.Dashboard.json.js +26 -24
  215. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  216. package/dist/i18n/en/Employee.DocumentManager.json.js +1 -1
  217. package/dist/i18n/en/Employee.HomeAddress.Management.json.js +12 -10
  218. package/dist/i18n/en/Employee.HomeAddress.Management.json.js.map +1 -1
  219. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +32 -30
  220. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  221. package/dist/i18n/en/Employee.WorkAddress.Management.json.js +16 -14
  222. package/dist/i18n/en/Employee.WorkAddress.Management.json.js.map +1 -1
  223. package/dist/i18n/en/common.json.d.ts +21 -0
  224. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js +33 -32
  225. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  226. package/dist/partner-hook-utils/types.d.ts +4 -0
  227. package/dist/shared/constants.d.ts +4 -0
  228. package/dist/shared/constants.js +20 -18
  229. package/dist/shared/constants.js.map +1 -1
  230. package/dist/style.css +1 -1
  231. package/dist/types/i18next.d.ts +45 -11
  232. package/docs/reference/endpoint-inventory.json +24 -8
  233. package/package.json +1 -1
@@ -1,264 +1,274 @@
1
- import { state as d, transition as n, reduce as E } from "robot3";
2
- import { ProfileContextual as s, HomeAddressContextual as c, WorkAddressContextual as u, FederalTaxesContextual as A, StateTaxesContextual as m, PaymentBankFormContextual as C, PaymentSplitViewContextual as _, DocumentManagerContextual as p, AddJobPlaceholderContextual as D, EditCompensationPlaceholderContextual as x, AddAnotherJobPlaceholderContextual as O, DeductionFormContextual as r, DashboardViewContextual as i } from "./DashboardComponents.js";
3
- import { componentEvents as t } from "../../../shared/constants.js";
4
- const o = E(
5
- (e) => ({
6
- ...e,
7
- component: i,
1
+ import { state as d, transition as e, reduce as t } from "robot3";
2
+ import { ProfileContextual as r, HomeAddressContextual as u, WorkAddressContextual as a, FederalTaxesContextual as i, StateTaxesContextual as C, PaymentBankFormContextual as _, PaymentSplitViewContextual as D, DocumentManagerContextual as O, AddJobContextual as x, EditCompensationContextual as T, AddAnotherJobContextual as m, DeductionFormContextual as A, DashboardViewContextual as c } from "./DashboardComponents.js";
3
+ import { componentEvents as n } from "../../../shared/constants.js";
4
+ const o = t(
5
+ (E) => ({
6
+ ...E,
7
+ component: c,
8
8
  header: null,
9
9
  currentJob: null,
10
10
  successAlert: null
11
11
  })
12
- ), a = (e) => E(
12
+ ), s = (E) => t(
13
13
  (l) => ({
14
14
  ...l,
15
- component: i,
15
+ component: c,
16
16
  header: null,
17
17
  currentJob: null,
18
- successAlert: e
18
+ successAlert: E
19
19
  })
20
20
  ), M = {
21
21
  index: d(
22
- n(
23
- t.EMPLOYEE_UPDATE,
22
+ e(
23
+ n.EMPLOYEE_UPDATE,
24
24
  "profile",
25
- E(
26
- (e) => ({
27
- ...e,
28
- component: s,
29
- header: { type: "minimal" },
25
+ t(
26
+ (E) => ({
27
+ ...E,
28
+ component: r,
30
29
  successAlert: null
31
30
  })
32
31
  )
33
32
  ),
34
- n(
35
- t.EMPLOYEE_HOME_ADDRESS,
33
+ e(
34
+ n.EMPLOYEE_HOME_ADDRESS,
36
35
  "homeAddress",
37
- E(
38
- (e) => ({
39
- ...e,
40
- component: c,
41
- header: { type: "minimal" },
36
+ t(
37
+ (E) => ({
38
+ ...E,
39
+ component: u,
42
40
  successAlert: null
43
41
  })
44
42
  )
45
43
  ),
46
- n(
47
- t.EMPLOYEE_WORK_ADDRESS,
44
+ e(
45
+ n.EMPLOYEE_WORK_ADDRESS,
48
46
  "workAddress",
49
- E(
50
- (e) => ({
51
- ...e,
52
- component: u,
53
- header: { type: "minimal" },
47
+ t(
48
+ (E) => ({
49
+ ...E,
50
+ component: a,
54
51
  successAlert: null
55
52
  })
56
53
  )
57
54
  ),
58
- n(
59
- t.EMPLOYEE_FEDERAL_TAXES_EDIT,
55
+ e(
56
+ n.EMPLOYEE_FEDERAL_TAXES_EDIT,
60
57
  "federalTaxes",
61
- E(
62
- (e) => ({
63
- ...e,
64
- component: A,
65
- header: { type: "minimal" },
58
+ t(
59
+ (E) => ({
60
+ ...E,
61
+ component: i,
66
62
  successAlert: null
67
63
  })
68
64
  )
69
65
  ),
70
- n(
71
- t.EMPLOYEE_STATE_TAXES_EDIT,
66
+ e(
67
+ n.EMPLOYEE_STATE_TAXES_EDIT,
72
68
  "stateTaxes",
73
- E(
74
- (e) => ({
75
- ...e,
76
- component: m,
77
- header: { type: "minimal" },
69
+ t(
70
+ (E) => ({
71
+ ...E,
72
+ component: C,
78
73
  successAlert: null
79
74
  })
80
75
  )
81
76
  ),
82
- n(
83
- t.EMPLOYEE_BANK_ACCOUNT_CREATE,
77
+ e(
78
+ n.EMPLOYEE_BANK_ACCOUNT_CREATE,
84
79
  "paymentBankForm",
85
- E(
86
- (e) => ({
87
- ...e,
88
- component: C,
89
- header: { type: "minimal" },
80
+ t(
81
+ (E) => ({
82
+ ...E,
83
+ component: _,
90
84
  successAlert: null
91
85
  })
92
86
  )
93
87
  ),
94
- n(
95
- t.EMPLOYEE_SPLIT_PAYCHECK,
88
+ e(
89
+ n.EMPLOYEE_SPLIT_PAYCHECK,
96
90
  "paymentSplitView",
97
- E(
98
- (e) => ({
99
- ...e,
100
- component: _,
101
- header: { type: "minimal" },
91
+ t(
92
+ (E) => ({
93
+ ...E,
94
+ component: D,
102
95
  successAlert: null
103
96
  })
104
97
  )
105
98
  ),
106
- n(
107
- t.EMPLOYEE_VIEW_FORM_TO_SIGN,
99
+ e(
100
+ n.EMPLOYEE_VIEW_FORM_TO_SIGN,
108
101
  "documentManager",
109
- E(
110
- (e, l) => ({
111
- ...e,
112
- component: p,
113
- header: { type: "minimal" },
102
+ t(
103
+ (E, l) => ({
104
+ ...E,
105
+ component: O,
114
106
  formId: l.payload.formId,
115
107
  successAlert: null
116
108
  })
117
109
  )
118
110
  ),
119
- n(
120
- t.EMPLOYEE_JOB_ADD,
111
+ e(
112
+ n.EMPLOYEE_JOB_ADD,
121
113
  "addJob",
122
- E(
123
- (e) => ({
124
- ...e,
125
- component: D,
126
- header: { type: "minimal" },
114
+ t(
115
+ (E) => ({
116
+ ...E,
117
+ component: x,
127
118
  currentJob: null,
128
119
  successAlert: null
129
120
  })
130
121
  )
131
122
  ),
132
- n(
133
- t.EMPLOYEE_COMPENSATION_CREATE,
123
+ e(
124
+ n.EMPLOYEE_COMPENSATION_CREATE,
134
125
  "editCompensation",
135
- E(
136
- (e, l) => ({
137
- ...e,
138
- component: x,
139
- header: { type: "minimal" },
126
+ t(
127
+ (E, l) => ({
128
+ ...E,
129
+ component: T,
140
130
  currentJob: l.payload.job,
141
131
  successAlert: null
142
132
  })
143
133
  )
144
134
  ),
145
- n(
146
- t.EMPLOYEE_JOB_ADD_ANOTHER,
135
+ e(
136
+ n.EMPLOYEE_JOB_ADD_ANOTHER,
147
137
  "addAnotherJob",
148
- E(
149
- (e) => ({
150
- ...e,
151
- component: O,
152
- header: { type: "minimal" },
138
+ t(
139
+ (E) => ({
140
+ ...E,
141
+ component: m,
153
142
  currentJob: null,
154
143
  successAlert: null
155
144
  })
156
145
  )
157
146
  ),
158
- n(
159
- t.EMPLOYEE_BANK_ACCOUNT_DELETED,
147
+ e(
148
+ n.EMPLOYEE_BANK_ACCOUNT_DELETED,
160
149
  "index",
161
- E(
162
- (e) => ({
163
- ...e,
150
+ t(
151
+ (E) => ({
152
+ ...E,
164
153
  successAlert: "bankAccountDeleted"
165
154
  })
166
155
  )
167
156
  ),
168
- n(
169
- t.EMPLOYEE_DEDUCTION_ADD,
157
+ e(
158
+ n.EMPLOYEE_DEDUCTION_ADD,
170
159
  "deductionForm",
171
- E(
172
- (e) => ({
173
- ...e,
174
- component: r,
175
- header: { type: "minimal" },
160
+ t(
161
+ (E) => ({
162
+ ...E,
163
+ component: A,
176
164
  successAlert: null,
177
165
  editingDeductionId: void 0
178
166
  })
179
167
  )
180
168
  ),
181
- n(
182
- t.EMPLOYEE_DEDUCTION_EDIT,
169
+ e(
170
+ n.EMPLOYEE_DEDUCTION_EDIT,
183
171
  "deductionForm",
184
- E(
185
- (e, l) => ({
186
- ...e,
187
- component: r,
188
- header: { type: "minimal" },
172
+ t(
173
+ (E, l) => ({
174
+ ...E,
175
+ component: A,
189
176
  successAlert: null,
190
177
  editingDeductionId: l.payload.uuid
191
178
  })
192
179
  )
193
180
  ),
194
- n(
195
- t.EMPLOYEE_DEDUCTION_DELETED,
181
+ e(
182
+ n.EMPLOYEE_DEDUCTION_DELETED,
196
183
  "index",
197
- E(
198
- (e) => ({
199
- ...e,
184
+ t(
185
+ (E) => ({
186
+ ...E,
200
187
  successAlert: "deductionDeleted"
201
188
  })
202
189
  )
203
190
  ),
204
- n(
205
- t.EMPLOYEE_DISMISS,
191
+ e(
192
+ n.EMPLOYEE_DISMISS,
206
193
  "index",
207
- E(
208
- (e) => ({
209
- ...e,
194
+ t(
195
+ (E) => ({
196
+ ...E,
210
197
  successAlert: null
211
198
  })
212
199
  )
200
+ ),
201
+ e(
202
+ n.EMPLOYEE_DASHBOARD_TAB_CHANGE,
203
+ "index",
204
+ t(
205
+ (E, l) => ({
206
+ ...E,
207
+ selectedTab: l.payload.tab
208
+ })
209
+ )
213
210
  )
214
211
  ),
215
- homeAddress: d(n(t.CANCEL, "index", o)),
216
- workAddress: d(n(t.CANCEL, "index", o)),
212
+ homeAddress: d(e(n.CANCEL, "index", o)),
213
+ workAddress: d(e(n.CANCEL, "index", o)),
217
214
  federalTaxes: d(
218
- n(t.CANCEL, "index", o),
219
- n(t.EMPLOYEE_FEDERAL_TAXES_DONE, "index", o)
215
+ e(n.CANCEL, "index", o),
216
+ e(n.EMPLOYEE_FEDERAL_TAXES_DONE, "index", o)
220
217
  ),
221
- stateTaxes: d(n(t.CANCEL, "index", o)),
222
- profile: d(n(t.CANCEL, "index", o)),
218
+ stateTaxes: d(e(n.CANCEL, "index", o)),
219
+ profile: d(e(n.CANCEL, "index", o)),
223
220
  paymentBankForm: d(
224
- n(
225
- t.EMPLOYEE_BANK_ACCOUNT_CREATED,
221
+ e(
222
+ n.EMPLOYEE_BANK_ACCOUNT_CREATED,
226
223
  "index",
227
- a("bankAccountAdded")
224
+ s("bankAccountAdded")
228
225
  ),
229
- n(t.CANCEL, "index", o)
226
+ e(n.CANCEL, "index", o)
230
227
  ),
231
228
  paymentSplitView: d(
232
- n(
233
- t.EMPLOYEE_PAYMENT_METHOD_UPDATED,
229
+ e(
230
+ n.EMPLOYEE_PAYMENT_METHOD_UPDATED,
234
231
  "index",
235
- a("splitUpdated")
232
+ s("splitUpdated")
236
233
  ),
237
- n(t.CANCEL, "index", o)
234
+ e(n.CANCEL, "index", o)
238
235
  ),
239
236
  documentManager: d(
240
- n(t.CANCEL, "index", o)
237
+ e(n.CANCEL, "index", o)
241
238
  ),
242
239
  deductionForm: d(
243
- n(
244
- t.EMPLOYEE_DEDUCTION_CREATED,
240
+ e(
241
+ n.EMPLOYEE_DEDUCTION_CREATED,
245
242
  "index",
246
- a("deductionAdded")
243
+ s("deductionAdded")
247
244
  ),
248
- n(
249
- t.EMPLOYEE_DEDUCTION_UPDATED,
245
+ e(
246
+ n.EMPLOYEE_DEDUCTION_UPDATED,
250
247
  "index",
251
- a("deductionUpdated")
248
+ s("deductionUpdated")
252
249
  ),
253
- n(t.EMPLOYEE_DEDUCTION_CANCEL, "index", o),
254
- n(t.CANCEL, "index", o)
250
+ e(n.EMPLOYEE_DEDUCTION_CANCEL, "index", o),
251
+ e(n.CANCEL, "index", o)
252
+ ),
253
+ addJob: d(
254
+ e(
255
+ n.EMPLOYEE_COMPENSATION_UPDATED,
256
+ "index",
257
+ s("jobAdded")
258
+ ),
259
+ e(n.CANCEL, "index", o)
255
260
  ),
256
- addJob: d(n(t.CANCEL, "index", o)),
257
261
  editCompensation: d(
258
- n(t.CANCEL, "index", o)
262
+ e(n.EMPLOYEE_COMPENSATION_DONE, "index", o),
263
+ e(n.CANCEL, "index", o)
259
264
  ),
260
265
  addAnotherJob: d(
261
- n(t.CANCEL, "index", o)
266
+ e(
267
+ n.EMPLOYEE_COMPENSATION_UPDATED,
268
+ "index",
269
+ s("jobAdded")
270
+ ),
271
+ e(n.CANCEL, "index", o)
262
272
  )
263
273
  };
264
274
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardStateMachine.js","sources":["../../../../src/components/Employee/Dashboard/dashboardStateMachine.ts"],"sourcesContent":["import { transition, reduce, state } from 'robot3'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport {\n DashboardViewContextual,\n HomeAddressContextual,\n WorkAddressContextual,\n FederalTaxesContextual,\n StateTaxesContextual,\n ProfileContextual,\n PaymentBankFormContextual,\n PaymentSplitViewContextual,\n DocumentManagerContextual,\n DeductionFormContextual,\n AddJobPlaceholderContextual,\n EditCompensationPlaceholderContextual,\n AddAnotherJobPlaceholderContextual,\n type DashboardContextInterface,\n} from './DashboardComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\n\ntype EventPayloads = {\n [componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN]: { employeeId: string; formId: string }\n [componentEvents.EMPLOYEE_DEDUCTION_EDIT]: Garnishment\n [componentEvents.EMPLOYEE_COMPENSATION_CREATE]: { employeeId: string; job: Job }\n}\n\nconst returnToIndex = reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: DashboardViewContextual,\n header: null,\n currentJob: null,\n successAlert: null,\n }),\n)\n\nconst returnToIndexWithAlert = (alert: DashboardContextInterface['successAlert']) =>\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: DashboardViewContextual,\n header: null,\n currentJob: null,\n successAlert: alert,\n }),\n )\n\nexport const dashboardStateMachine = {\n index: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_UPDATE,\n 'profile',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: ProfileContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_HOME_ADDRESS,\n 'homeAddress',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: HomeAddressContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_WORK_ADDRESS,\n 'workAddress',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: WorkAddressContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_FEDERAL_TAXES_EDIT,\n 'federalTaxes',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: FederalTaxesContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_STATE_TAXES_EDIT,\n 'stateTaxes',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: StateTaxesContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATE,\n 'paymentBankForm',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: PaymentBankFormContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_SPLIT_PAYCHECK,\n 'paymentSplitView',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: PaymentSplitViewContextual,\n header: { type: 'minimal' },\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN,\n 'documentManager',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN>,\n ): DashboardContextInterface => ({\n ...ctx,\n component: DocumentManagerContextual,\n header: { type: 'minimal' },\n formId: ev.payload.formId,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_JOB_ADD,\n 'addJob',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: AddJobPlaceholderContextual,\n header: { type: 'minimal' },\n currentJob: null,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_CREATE,\n 'editCompensation',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_COMPENSATION_CREATE>,\n ): DashboardContextInterface => ({\n ...ctx,\n component: EditCompensationPlaceholderContextual,\n header: { type: 'minimal' },\n currentJob: ev.payload.job,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_JOB_ADD_ANOTHER,\n 'addAnotherJob',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: AddAnotherJobPlaceholderContextual,\n header: { type: 'minimal' },\n currentJob: null,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED,\n 'index',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n successAlert: 'bankAccountDeleted',\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_ADD,\n 'deductionForm',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: DeductionFormContextual,\n header: { type: 'minimal' },\n successAlert: null,\n editingDeductionId: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_EDIT,\n 'deductionForm',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_DEDUCTION_EDIT>,\n ): DashboardContextInterface => ({\n ...ctx,\n component: DeductionFormContextual,\n header: { type: 'minimal' },\n successAlert: null,\n editingDeductionId: ev.payload.uuid,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_DELETED,\n 'index',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n successAlert: 'deductionDeleted',\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DISMISS,\n 'index',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n successAlert: null,\n }),\n ),\n ),\n ),\n homeAddress: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n workAddress: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n federalTaxes: state<MachineTransition>(\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n transition(componentEvents.EMPLOYEE_FEDERAL_TAXES_DONE, 'index', returnToIndex),\n ),\n stateTaxes: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n profile: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n paymentBankForm: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATED,\n 'index',\n returnToIndexWithAlert('bankAccountAdded'),\n ),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n paymentSplitView: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_PAYMENT_METHOD_UPDATED,\n 'index',\n returnToIndexWithAlert('splitUpdated'),\n ),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n documentManager: state<MachineTransition>(\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n deductionForm: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_CREATED,\n 'index',\n returnToIndexWithAlert('deductionAdded'),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_UPDATED,\n 'index',\n returnToIndexWithAlert('deductionUpdated'),\n ),\n transition(componentEvents.EMPLOYEE_DEDUCTION_CANCEL, 'index', returnToIndex),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n addJob: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n editCompensation: state<MachineTransition>(\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n addAnotherJob: state<MachineTransition>(\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n}\n"],"names":["returnToIndex","reduce","ctx","DashboardViewContextual","returnToIndexWithAlert","alert","dashboardStateMachine","state","transition","componentEvents","ProfileContextual","HomeAddressContextual","WorkAddressContextual","FederalTaxesContextual","StateTaxesContextual","PaymentBankFormContextual","PaymentSplitViewContextual","ev","DocumentManagerContextual","AddJobPlaceholderContextual","EditCompensationPlaceholderContextual","AddAnotherJobPlaceholderContextual","DeductionFormContextual"],"mappings":";;;AA4BA,MAAMA,IAAgBC;AAAA,EACpB,CAACC,OAA+D;AAAA,IAC9D,GAAGA;AAAA,IACH,WAAWC;AAAA,IACX,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,cAAc;AAAA,EAAA;AAElB,GAEMC,IAAyB,CAACC,MAC9BJ;AAAA,EACE,CAACC,OAA+D;AAAA,IAC9D,GAAGA;AAAA,IACH,WAAWC;AAAA,IACX,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,cAAcE;AAAA,EAAA;AAElB,GAEWC,IAAwB;AAAA,EACnC,OAAOC;AAAA,IACLC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWQ;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFF;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWS;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFH;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWU;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFJ;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWW;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFL;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWY;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFN;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWa;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFP;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWc;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFR;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CACEC,GACAe,OAC+B;AAAA,UAC/B,GAAGf;AAAA,UACH,WAAWgB;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,QAAQD,EAAG,QAAQ;AAAA,UACnB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFT;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWiB;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,YAAY;AAAA,UACZ,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFX;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CACEC,GACAe,OAC+B;AAAA,UAC/B,GAAGf;AAAA,UACH,WAAWkB;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,YAAYH,EAAG,QAAQ;AAAA,UACvB,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFT;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWmB;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,YAAY;AAAA,UACZ,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFb;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFM;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,WAAWoB;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,UACd,oBAAoB;AAAA,QAAA;AAAA,MACtB;AAAA,IACF;AAAA,IAEFd;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CACEC,GACAe,OAC+B;AAAA,UAC/B,GAAGf;AAAA,UACH,WAAWoB;AAAA,UACX,QAAQ,EAAE,MAAM,UAAA;AAAA,UAChB,cAAc;AAAA,UACd,oBAAoBL,EAAG,QAAQ;AAAA,QAAA;AAAA,MACjC;AAAA,IACF;AAAA,IAEFT;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFM;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAA+D;AAAA,UAC9D,GAAGA;AAAA,UACH,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EAEF,aAAaK,EAAyBC,EAAWC,EAAgB,QAAQ,SAAST,CAAa,CAAC;AAAA,EAChG,aAAaO,EAAyBC,EAAWC,EAAgB,QAAQ,SAAST,CAAa,CAAC;AAAA,EAChG,cAAcO;AAAA,IACZC,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,IACzDQ,EAAWC,EAAgB,6BAA6B,SAAST,CAAa;AAAA,EAAA;AAAA,EAEhF,YAAYO,EAAyBC,EAAWC,EAAgB,QAAQ,SAAST,CAAa,CAAC;AAAA,EAC/F,SAASO,EAAyBC,EAAWC,EAAgB,QAAQ,SAAST,CAAa,CAAC;AAAA,EAC5F,iBAAiBO;AAAA,IACfC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAL,EAAuB,kBAAkB;AAAA,IAAA;AAAA,IAE3CI,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,EAAA;AAAA,EAE3D,kBAAkBO;AAAA,IAChBC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAL,EAAuB,cAAc;AAAA,IAAA;AAAA,IAEvCI,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,EAAA;AAAA,EAE3D,iBAAiBO;AAAA,IACfC,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,EAAA;AAAA,EAE3D,eAAeO;AAAA,IACbC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAL,EAAuB,gBAAgB;AAAA,IAAA;AAAA,IAEzCI;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAL,EAAuB,kBAAkB;AAAA,IAAA;AAAA,IAE3CI,EAAWC,EAAgB,2BAA2B,SAAST,CAAa;AAAA,IAC5EQ,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,EAAA;AAAA,EAE3D,QAAQO,EAAyBC,EAAWC,EAAgB,QAAQ,SAAST,CAAa,CAAC;AAAA,EAC3F,kBAAkBO;AAAA,IAChBC,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,EAAA;AAAA,EAE3D,eAAeO;AAAA,IACbC,EAAWC,EAAgB,QAAQ,SAAST,CAAa;AAAA,EAAA;AAE7D;"}
1
+ {"version":3,"file":"dashboardStateMachine.js","sources":["../../../../src/components/Employee/Dashboard/dashboardStateMachine.ts"],"sourcesContent":["import { transition, reduce, state } from 'robot3'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { DashboardTab } from './Dashboard'\nimport {\n DashboardViewContextual,\n HomeAddressContextual,\n WorkAddressContextual,\n FederalTaxesContextual,\n StateTaxesContextual,\n ProfileContextual,\n PaymentBankFormContextual,\n PaymentSplitViewContextual,\n DocumentManagerContextual,\n DeductionFormContextual,\n AddJobContextual,\n EditCompensationContextual,\n AddAnotherJobContextual,\n type DashboardContextInterface,\n} from './DashboardComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\n\ntype EventPayloads = {\n [componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN]: { employeeId: string; formId: string }\n [componentEvents.EMPLOYEE_DEDUCTION_EDIT]: Garnishment\n [componentEvents.EMPLOYEE_COMPENSATION_CREATE]: { employeeId: string; job: Job }\n [componentEvents.EMPLOYEE_DASHBOARD_TAB_CHANGE]: { tab: DashboardTab }\n}\n\nconst returnToIndex = reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: DashboardViewContextual,\n header: null,\n currentJob: null,\n successAlert: null,\n }),\n)\n\nconst returnToIndexWithAlert = (alert: DashboardContextInterface['successAlert']) =>\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: DashboardViewContextual,\n header: null,\n currentJob: null,\n successAlert: alert,\n }),\n )\n\nexport const dashboardStateMachine = {\n index: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_UPDATE,\n 'profile',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: ProfileContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_HOME_ADDRESS,\n 'homeAddress',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: HomeAddressContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_WORK_ADDRESS,\n 'workAddress',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: WorkAddressContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_FEDERAL_TAXES_EDIT,\n 'federalTaxes',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: FederalTaxesContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_STATE_TAXES_EDIT,\n 'stateTaxes',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: StateTaxesContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATE,\n 'paymentBankForm',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: PaymentBankFormContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_SPLIT_PAYCHECK,\n 'paymentSplitView',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: PaymentSplitViewContextual,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN,\n 'documentManager',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN>,\n ): DashboardContextInterface => ({\n ...ctx,\n component: DocumentManagerContextual,\n formId: ev.payload.formId,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_JOB_ADD,\n 'addJob',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: AddJobContextual,\n currentJob: null,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_CREATE,\n 'editCompensation',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_COMPENSATION_CREATE>,\n ): DashboardContextInterface => ({\n ...ctx,\n component: EditCompensationContextual,\n currentJob: ev.payload.job,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_JOB_ADD_ANOTHER,\n 'addAnotherJob',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: AddAnotherJobContextual,\n currentJob: null,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED,\n 'index',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n successAlert: 'bankAccountDeleted',\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_ADD,\n 'deductionForm',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n component: DeductionFormContextual,\n successAlert: null,\n editingDeductionId: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_EDIT,\n 'deductionForm',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_DEDUCTION_EDIT>,\n ): DashboardContextInterface => ({\n ...ctx,\n component: DeductionFormContextual,\n successAlert: null,\n editingDeductionId: ev.payload.uuid,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_DELETED,\n 'index',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n successAlert: 'deductionDeleted',\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DISMISS,\n 'index',\n reduce(\n (ctx: DashboardContextInterface): DashboardContextInterface => ({\n ...ctx,\n successAlert: null,\n }),\n ),\n ),\n transition(\n componentEvents.EMPLOYEE_DASHBOARD_TAB_CHANGE,\n 'index',\n reduce(\n (\n ctx: DashboardContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.EMPLOYEE_DASHBOARD_TAB_CHANGE>,\n ): DashboardContextInterface => ({\n ...ctx,\n selectedTab: ev.payload.tab,\n }),\n ),\n ),\n ),\n homeAddress: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n workAddress: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n federalTaxes: state<MachineTransition>(\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n transition(componentEvents.EMPLOYEE_FEDERAL_TAXES_DONE, 'index', returnToIndex),\n ),\n stateTaxes: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n profile: state<MachineTransition>(transition(componentEvents.CANCEL, 'index', returnToIndex)),\n paymentBankForm: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATED,\n 'index',\n returnToIndexWithAlert('bankAccountAdded'),\n ),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n paymentSplitView: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_PAYMENT_METHOD_UPDATED,\n 'index',\n returnToIndexWithAlert('splitUpdated'),\n ),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n documentManager: state<MachineTransition>(\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n deductionForm: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_CREATED,\n 'index',\n returnToIndexWithAlert('deductionAdded'),\n ),\n transition(\n componentEvents.EMPLOYEE_DEDUCTION_UPDATED,\n 'index',\n returnToIndexWithAlert('deductionUpdated'),\n ),\n transition(componentEvents.EMPLOYEE_DEDUCTION_CANCEL, 'index', returnToIndex),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n addJob: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_UPDATED,\n 'index',\n returnToIndexWithAlert('jobAdded'),\n ),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n editCompensation: state<MachineTransition>(\n transition(componentEvents.EMPLOYEE_COMPENSATION_DONE, 'index', returnToIndex),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n addAnotherJob: state<MachineTransition>(\n transition(\n componentEvents.EMPLOYEE_COMPENSATION_UPDATED,\n 'index',\n returnToIndexWithAlert('jobAdded'),\n ),\n transition(componentEvents.CANCEL, 'index', returnToIndex),\n ),\n}\n"],"names":["returnToIndex","reduce","ctx","DashboardViewContextual","returnToIndexWithAlert","alert","dashboardStateMachine","state","transition","componentEvents","ProfileContextual","HomeAddressContextual","WorkAddressContextual","FederalTaxesContextual","StateTaxesContextual","PaymentBankFormContextual","PaymentSplitViewContextual","ev","DocumentManagerContextual","AddJobContextual","EditCompensationContextual","AddAnotherJobContextual","DeductionFormContextual"],"mappings":"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"}
@@ -30,6 +30,12 @@ export interface PendingCompensationChange {
30
30
  effectiveDate: string;
31
31
  jobTitle: string | null;
32
32
  details: PendingChangeDetail[];
33
+ /**
34
+ * True when the job has no current (on-or-before-today) compensation —
35
+ * i.e., the job itself hasn't started yet. The UI renders a "Pending"
36
+ * badge rather than a change alert in this case.
37
+ */
38
+ isNewJob: boolean;
33
39
  }
34
40
  /**
35
41
  * Returns the pending compensation changes for an employee, flattened across
@@ -3,7 +3,7 @@ const D = (t) => new Date(t.getFullYear(), t.getMonth(), t.getDate()), C = (t, e
3
3
  if (!t) return !1;
4
4
  const n = w(t);
5
5
  return n ? D(n) > e : !1;
6
- }, y = (t, e) => {
6
+ }, b = (t, e) => {
7
7
  if (!t) return !1;
8
8
  const n = w(t);
9
9
  return n ? D(n) <= e : !1;
@@ -12,15 +12,15 @@ const D = (t) => new Date(t.getFullYear(), t.getMonth(), t.getDate()), C = (t, e
12
12
  const e = Number(t);
13
13
  return Number.isFinite(e) ? e : null;
14
14
  };
15
- function U(t, e, n) {
15
+ function y(t, e, n) {
16
16
  const a = [], c = t.title ?? n, i = e.title ?? n;
17
17
  i && c !== i && a.push({ kind: "titleChange", title: i });
18
- const u = g(t.rate), o = g(e.rate), d = t.paymentUnit, l = e.paymentUnit;
19
- (o !== null && o !== u || l !== void 0 && l !== d) && o !== null && l && a.push({ kind: "payChange", rate: o, paymentUnit: l }), e.flsaStatus && e.flsaStatus !== t.flsaStatus && a.push({ kind: "flsaChange", flsaStatus: e.flsaStatus });
20
- const f = t.adjustForMinimumWage ?? !1, m = e.adjustForMinimumWage ?? !1, h = t.minimumWages?.[0], p = e.minimumWages?.[0];
21
- return !f && m ? a.push({ kind: "minWageEnabled", wage: p?.wage ?? null }) : f && !m ? a.push({ kind: "minWageDisabled" }) : f && m && (h?.uuid !== p?.uuid || h?.wage !== p?.wage) && a.push({ kind: "minWageChanged", wage: p?.wage ?? null }), a;
18
+ const l = g(t.rate), o = g(e.rate), d = t.paymentUnit, f = e.paymentUnit;
19
+ (o !== null && o !== l || f !== void 0 && f !== d) && o !== null && f && a.push({ kind: "payChange", rate: o, paymentUnit: f }), e.flsaStatus && e.flsaStatus !== t.flsaStatus && a.push({ kind: "flsaChange", flsaStatus: e.flsaStatus });
20
+ const u = t.adjustForMinimumWage ?? !1, m = e.adjustForMinimumWage ?? !1, h = t.minimumWages?.[0], p = e.minimumWages?.[0];
21
+ return !u && m ? a.push({ kind: "minWageEnabled", wage: p?.wage ?? null }) : u && !m ? a.push({ kind: "minWageDisabled" }) : u && m && (h?.uuid !== p?.uuid || h?.wage !== p?.wage) && a.push({ kind: "minWageChanged", wage: p?.wage ?? null }), a;
22
22
  }
23
- function b(t, e) {
23
+ function U(t, e) {
24
24
  const n = g(t.rate);
25
25
  return [
26
26
  {
@@ -35,21 +35,22 @@ function k(t, e = {}) {
35
35
  if (!t?.length) return [];
36
36
  const n = e.today ?? /* @__PURE__ */ new Date(), a = D(n), c = [];
37
37
  for (const i of t) {
38
- const u = i.compensations ?? [], o = u.filter((s) => C(s.effectiveDate, a)).slice().sort((s, r) => (s.effectiveDate ?? "").localeCompare(r.effectiveDate ?? ""));
38
+ const l = i.compensations ?? [], o = l.filter((s) => C(s.effectiveDate, a)).slice().sort((s, r) => (s.effectiveDate ?? "").localeCompare(r.effectiveDate ?? ""));
39
39
  if (o.length === 0) continue;
40
- const d = i.currentCompensationUuid ? u.find((s) => s.uuid === i.currentCompensationUuid) : void 0, l = d && y(d.effectiveDate, a) ? d : null;
40
+ const d = i.currentCompensationUuid ? l.find((s) => s.uuid === i.currentCompensationUuid) : void 0, f = d && b(d.effectiveDate, a) ? d : null;
41
41
  for (let s = 0; s < o.length; s++) {
42
- const r = o[s], f = s === 0 ? l : o[s - 1], m = f ? U(f, r, i.title) : b(r, i.title);
42
+ const r = o[s], u = s === 0 ? f : o[s - 1], m = u ? y(u, r, i.title) : U(r, i.title);
43
43
  c.push({
44
44
  compensationUuid: r.uuid,
45
45
  jobUuid: i.uuid,
46
46
  effectiveDate: r.effectiveDate,
47
47
  jobTitle: i.title,
48
- details: m
48
+ details: m,
49
+ isNewJob: u === null
49
50
  });
50
51
  }
51
52
  }
52
- return c.sort((i, u) => i.effectiveDate.localeCompare(u.effectiveDate)), c;
53
+ return c.sort((i, l) => i.effectiveDate.localeCompare(l.effectiveDate)), c;
53
54
  }
54
55
  export {
55
56
  k as getPendingCompensationChanges
@@ -1 +1 @@
1
- {"version":3,"file":"getPendingCompensationChanges.js","sources":["../../../../src/components/Employee/Dashboard/getPendingCompensationChanges.ts"],"sourcesContent":["import type { Compensation } from '@gusto/embedded-api/models/components/compensation'\nimport type { FlsaStatusType } from '@gusto/embedded-api/models/components/flsastatustype'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\n\nexport type PendingChangeDetail =\n | { kind: 'titleChange'; title: string }\n | { kind: 'payChange'; rate: number; paymentUnit: string }\n | { kind: 'flsaChange'; flsaStatus: FlsaStatusType }\n | { kind: 'minWageEnabled'; wage: string | null }\n | { kind: 'minWageDisabled' }\n | { kind: 'minWageChanged'; wage: string | null }\n | {\n kind: 'newJob'\n title: string | null\n rate: number | null\n paymentUnit: string | null\n }\n\nexport interface PendingCompensationChange {\n compensationUuid: string\n jobUuid: string\n effectiveDate: string\n jobTitle: string | null\n details: PendingChangeDetail[]\n}\n\nconst startOfLocalDay = (d: Date) => new Date(d.getFullYear(), d.getMonth(), d.getDate())\n\nconst isAfterToday = (effectiveDate: string | undefined, todayStart: Date): boolean => {\n if (!effectiveDate) return false\n const parsed = normalizeToDate(effectiveDate)\n if (!parsed) return false\n return startOfLocalDay(parsed) > todayStart\n}\n\nconst isOnOrBeforeToday = (effectiveDate: string | undefined, todayStart: Date): boolean => {\n if (!effectiveDate) return false\n const parsed = normalizeToDate(effectiveDate)\n if (!parsed) return false\n return startOfLocalDay(parsed) <= todayStart\n}\n\nconst numericRate = (rate: string | undefined): number | null => {\n if (rate === undefined || rate === '') return null\n const n = Number(rate)\n return Number.isFinite(n) ? n : null\n}\n\nfunction buildExistingJobDetails(\n baseline: Compensation,\n future: Compensation,\n jobTitle: string | null,\n): PendingChangeDetail[] {\n const details: PendingChangeDetail[] = []\n\n const baseTitle = baseline.title ?? jobTitle\n const futureTitle = future.title ?? jobTitle\n if (futureTitle && baseTitle !== futureTitle) {\n details.push({ kind: 'titleChange', title: futureTitle })\n }\n\n const baseRate = numericRate(baseline.rate)\n const futureRate = numericRate(future.rate)\n const baseUnit = baseline.paymentUnit\n const futureUnit = future.paymentUnit\n const rateDiffers = futureRate !== null && futureRate !== baseRate\n const unitDiffers = futureUnit !== undefined && futureUnit !== baseUnit\n if ((rateDiffers || unitDiffers) && futureRate !== null && futureUnit) {\n details.push({ kind: 'payChange', rate: futureRate, paymentUnit: futureUnit })\n }\n\n if (future.flsaStatus && future.flsaStatus !== baseline.flsaStatus) {\n details.push({ kind: 'flsaChange', flsaStatus: future.flsaStatus })\n }\n\n const baseAdj = baseline.adjustForMinimumWage ?? false\n const futureAdj = future.adjustForMinimumWage ?? false\n const baseMw = baseline.minimumWages?.[0]\n const futureMw = future.minimumWages?.[0]\n\n if (!baseAdj && futureAdj) {\n details.push({ kind: 'minWageEnabled', wage: futureMw?.wage ?? null })\n } else if (baseAdj && !futureAdj) {\n details.push({ kind: 'minWageDisabled' })\n } else if (baseAdj && futureAdj) {\n if (baseMw?.uuid !== futureMw?.uuid || baseMw?.wage !== futureMw?.wage) {\n details.push({ kind: 'minWageChanged', wage: futureMw?.wage ?? null })\n }\n }\n\n return details\n}\n\nfunction buildNewJobDetails(future: Compensation, jobTitle: string | null): PendingChangeDetail[] {\n const rate = numericRate(future.rate)\n return [\n {\n kind: 'newJob',\n title: future.title ?? jobTitle,\n rate,\n paymentUnit: rate !== null && future.paymentUnit ? future.paymentUnit : null,\n },\n ]\n}\n\n/**\n * Returns the pending compensation changes for an employee, flattened across\n * all jobs and sorted globally by `effectiveDate` ascending.\n *\n * A pending change is any `Compensation` whose `effectiveDate` is strictly\n * after today (local midnight). When a single job has multiple future-dated\n * compensations stacked, each is returned in chronological order and the diff\n * details for the N+1th comp are computed against the Nth (rather than the\n * job's current compensation) so the bullets remain meaningful end-to-end.\n *\n * The helper returns structured deltas (a discriminated union per detail) so\n * the consuming UI is responsible for formatting them via i18n / pay-rate\n * helpers. This keeps the helper pure and trivially unit-testable.\n */\nexport function getPendingCompensationChanges(\n jobs: Job[] | undefined,\n options: { today?: Date } = {},\n): PendingCompensationChange[] {\n if (!jobs?.length) return []\n\n const now = options.today ?? new Date()\n const todayStart = startOfLocalDay(now)\n const results: PendingCompensationChange[] = []\n\n for (const job of jobs) {\n const comps = job.compensations ?? []\n\n const futureComps = comps\n .filter(c => isAfterToday(c.effectiveDate, todayStart))\n .slice()\n .sort((a, b) => (a.effectiveDate ?? '').localeCompare(b.effectiveDate ?? ''))\n\n if (futureComps.length === 0) continue\n\n const referencedCurrent = job.currentCompensationUuid\n ? comps.find(c => c.uuid === job.currentCompensationUuid)\n : undefined\n const currentComp =\n referencedCurrent && isOnOrBeforeToday(referencedCurrent.effectiveDate, todayStart)\n ? referencedCurrent\n : null\n\n for (let i = 0; i < futureComps.length; i++) {\n const future = futureComps[i]!\n const baseline = i === 0 ? currentComp : futureComps[i - 1]!\n\n const details = baseline\n ? buildExistingJobDetails(baseline, future, job.title)\n : buildNewJobDetails(future, job.title)\n\n results.push({\n compensationUuid: future.uuid,\n jobUuid: job.uuid,\n effectiveDate: future.effectiveDate!,\n jobTitle: job.title,\n details,\n })\n }\n }\n\n results.sort((a, b) => a.effectiveDate.localeCompare(b.effectiveDate))\n\n return results\n}\n"],"names":["startOfLocalDay","d","isAfterToday","effectiveDate","todayStart","parsed","normalizeToDate","isOnOrBeforeToday","numericRate","rate","n","buildExistingJobDetails","baseline","future","jobTitle","details","baseTitle","futureTitle","baseRate","futureRate","baseUnit","futureUnit","baseAdj","futureAdj","baseMw","futureMw","buildNewJobDetails","getPendingCompensationChanges","jobs","options","now","results","job","comps","futureComps","c","a","b","referencedCurrent","currentComp","i"],"mappings":";AA2BA,MAAMA,IAAkB,CAACC,MAAY,IAAI,KAAKA,EAAE,eAAeA,EAAE,SAAA,GAAYA,EAAE,SAAS,GAElFC,IAAe,CAACC,GAAmCC,MAA8B;AACrF,MAAI,CAACD,EAAe,QAAO;AAC3B,QAAME,IAASC,EAAgBH,CAAa;AAC5C,SAAKE,IACEL,EAAgBK,CAAM,IAAID,IADb;AAEtB,GAEMG,IAAoB,CAACJ,GAAmCC,MAA8B;AAC1F,MAAI,CAACD,EAAe,QAAO;AAC3B,QAAME,IAASC,EAAgBH,CAAa;AAC5C,SAAKE,IACEL,EAAgBK,CAAM,KAAKD,IADd;AAEtB,GAEMI,IAAc,CAACC,MAA4C;AAC/D,MAAIA,MAAS,UAAaA,MAAS,GAAI,QAAO;AAC9C,QAAMC,IAAI,OAAOD,CAAI;AACrB,SAAO,OAAO,SAASC,CAAC,IAAIA,IAAI;AAClC;AAEA,SAASC,EACPC,GACAC,GACAC,GACuB;AACvB,QAAMC,IAAiC,CAAA,GAEjCC,IAAYJ,EAAS,SAASE,GAC9BG,IAAcJ,EAAO,SAASC;AACpC,EAAIG,KAAeD,MAAcC,KAC/BF,EAAQ,KAAK,EAAE,MAAM,eAAe,OAAOE,GAAa;AAG1D,QAAMC,IAAWV,EAAYI,EAAS,IAAI,GACpCO,IAAaX,EAAYK,EAAO,IAAI,GACpCO,IAAWR,EAAS,aACpBS,IAAaR,EAAO;AAG1B,GAFoBM,MAAe,QAAQA,MAAeD,KACtCG,MAAe,UAAaA,MAAeD,MAC3BD,MAAe,QAAQE,KACzDN,EAAQ,KAAK,EAAE,MAAM,aAAa,MAAMI,GAAY,aAAaE,GAAY,GAG3ER,EAAO,cAAcA,EAAO,eAAeD,EAAS,cACtDG,EAAQ,KAAK,EAAE,MAAM,cAAc,YAAYF,EAAO,YAAY;AAGpE,QAAMS,IAAUV,EAAS,wBAAwB,IAC3CW,IAAYV,EAAO,wBAAwB,IAC3CW,IAASZ,EAAS,eAAe,CAAC,GAClCa,IAAWZ,EAAO,eAAe,CAAC;AAExC,SAAI,CAACS,KAAWC,IACdR,EAAQ,KAAK,EAAE,MAAM,kBAAkB,MAAMU,GAAU,QAAQ,MAAM,IAC5DH,KAAW,CAACC,IACrBR,EAAQ,KAAK,EAAE,MAAM,kBAAA,CAAmB,IAC/BO,KAAWC,MAChBC,GAAQ,SAASC,GAAU,QAAQD,GAAQ,SAASC,GAAU,SAChEV,EAAQ,KAAK,EAAE,MAAM,kBAAkB,MAAMU,GAAU,QAAQ,MAAM,GAIlEV;AACT;AAEA,SAASW,EAAmBb,GAAsBC,GAAgD;AAChG,QAAML,IAAOD,EAAYK,EAAO,IAAI;AACpC,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAOA,EAAO,SAASC;AAAA,MACvB,MAAAL;AAAA,MACA,aAAaA,MAAS,QAAQI,EAAO,cAAcA,EAAO,cAAc;AAAA,IAAA;AAAA,EAC1E;AAEJ;AAgBO,SAASc,EACdC,GACAC,IAA4B,IACC;AAC7B,MAAI,CAACD,GAAM,OAAQ,QAAO,CAAA;AAE1B,QAAME,IAAMD,EAAQ,SAAS,oBAAI,KAAA,GAC3BzB,IAAaJ,EAAgB8B,CAAG,GAChCC,IAAuC,CAAA;AAE7C,aAAWC,KAAOJ,GAAM;AACtB,UAAMK,IAAQD,EAAI,iBAAiB,CAAA,GAE7BE,IAAcD,EACjB,OAAO,CAAAE,MAAKjC,EAAaiC,EAAE,eAAe/B,CAAU,CAAC,EACrD,MAAA,EACA,KAAK,CAACgC,GAAGC,OAAOD,EAAE,iBAAiB,IAAI,cAAcC,EAAE,iBAAiB,EAAE,CAAC;AAE9E,QAAIH,EAAY,WAAW,EAAG;AAE9B,UAAMI,IAAoBN,EAAI,0BAC1BC,EAAM,KAAK,OAAKE,EAAE,SAASH,EAAI,uBAAuB,IACtD,QACEO,IACJD,KAAqB/B,EAAkB+B,EAAkB,eAAelC,CAAU,IAC9EkC,IACA;AAEN,aAASE,IAAI,GAAGA,IAAIN,EAAY,QAAQM,KAAK;AAC3C,YAAM3B,IAASqB,EAAYM,CAAC,GACtB5B,IAAW4B,MAAM,IAAID,IAAcL,EAAYM,IAAI,CAAC,GAEpDzB,IAAUH,IACZD,EAAwBC,GAAUC,GAAQmB,EAAI,KAAK,IACnDN,EAAmBb,GAAQmB,EAAI,KAAK;AAExC,MAAAD,EAAQ,KAAK;AAAA,QACX,kBAAkBlB,EAAO;AAAA,QACzB,SAASmB,EAAI;AAAA,QACb,eAAenB,EAAO;AAAA,QACtB,UAAUmB,EAAI;AAAA,QACd,SAAAjB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,SAAAgB,EAAQ,KAAK,CAACK,GAAGC,MAAMD,EAAE,cAAc,cAAcC,EAAE,aAAa,CAAC,GAE9DN;AACT;"}
1
+ {"version":3,"file":"getPendingCompensationChanges.js","sources":["../../../../src/components/Employee/Dashboard/getPendingCompensationChanges.ts"],"sourcesContent":["import type { Compensation } from '@gusto/embedded-api/models/components/compensation'\nimport type { FlsaStatusType } from '@gusto/embedded-api/models/components/flsastatustype'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\n\nexport type PendingChangeDetail =\n | { kind: 'titleChange'; title: string }\n | { kind: 'payChange'; rate: number; paymentUnit: string }\n | { kind: 'flsaChange'; flsaStatus: FlsaStatusType }\n | { kind: 'minWageEnabled'; wage: string | null }\n | { kind: 'minWageDisabled' }\n | { kind: 'minWageChanged'; wage: string | null }\n | {\n kind: 'newJob'\n title: string | null\n rate: number | null\n paymentUnit: string | null\n }\n\nexport interface PendingCompensationChange {\n compensationUuid: string\n jobUuid: string\n effectiveDate: string\n jobTitle: string | null\n details: PendingChangeDetail[]\n /**\n * True when the job has no current (on-or-before-today) compensation —\n * i.e., the job itself hasn't started yet. The UI renders a \"Pending\"\n * badge rather than a change alert in this case.\n */\n isNewJob: boolean\n}\n\nconst startOfLocalDay = (d: Date) => new Date(d.getFullYear(), d.getMonth(), d.getDate())\n\nconst isAfterToday = (effectiveDate: string | undefined, todayStart: Date): boolean => {\n if (!effectiveDate) return false\n const parsed = normalizeToDate(effectiveDate)\n if (!parsed) return false\n return startOfLocalDay(parsed) > todayStart\n}\n\nconst isOnOrBeforeToday = (effectiveDate: string | undefined, todayStart: Date): boolean => {\n if (!effectiveDate) return false\n const parsed = normalizeToDate(effectiveDate)\n if (!parsed) return false\n return startOfLocalDay(parsed) <= todayStart\n}\n\nconst numericRate = (rate: string | undefined): number | null => {\n if (rate === undefined || rate === '') return null\n const n = Number(rate)\n return Number.isFinite(n) ? n : null\n}\n\nfunction buildExistingJobDetails(\n baseline: Compensation,\n future: Compensation,\n jobTitle: string | null,\n): PendingChangeDetail[] {\n const details: PendingChangeDetail[] = []\n\n const baseTitle = baseline.title ?? jobTitle\n const futureTitle = future.title ?? jobTitle\n if (futureTitle && baseTitle !== futureTitle) {\n details.push({ kind: 'titleChange', title: futureTitle })\n }\n\n const baseRate = numericRate(baseline.rate)\n const futureRate = numericRate(future.rate)\n const baseUnit = baseline.paymentUnit\n const futureUnit = future.paymentUnit\n const rateDiffers = futureRate !== null && futureRate !== baseRate\n const unitDiffers = futureUnit !== undefined && futureUnit !== baseUnit\n if ((rateDiffers || unitDiffers) && futureRate !== null && futureUnit) {\n details.push({ kind: 'payChange', rate: futureRate, paymentUnit: futureUnit })\n }\n\n if (future.flsaStatus && future.flsaStatus !== baseline.flsaStatus) {\n details.push({ kind: 'flsaChange', flsaStatus: future.flsaStatus })\n }\n\n const baseAdj = baseline.adjustForMinimumWage ?? false\n const futureAdj = future.adjustForMinimumWage ?? false\n const baseMw = baseline.minimumWages?.[0]\n const futureMw = future.minimumWages?.[0]\n\n if (!baseAdj && futureAdj) {\n details.push({ kind: 'minWageEnabled', wage: futureMw?.wage ?? null })\n } else if (baseAdj && !futureAdj) {\n details.push({ kind: 'minWageDisabled' })\n } else if (baseAdj && futureAdj) {\n if (baseMw?.uuid !== futureMw?.uuid || baseMw?.wage !== futureMw?.wage) {\n details.push({ kind: 'minWageChanged', wage: futureMw?.wage ?? null })\n }\n }\n\n return details\n}\n\nfunction buildNewJobDetails(future: Compensation, jobTitle: string | null): PendingChangeDetail[] {\n const rate = numericRate(future.rate)\n return [\n {\n kind: 'newJob',\n title: future.title ?? jobTitle,\n rate,\n paymentUnit: rate !== null && future.paymentUnit ? future.paymentUnit : null,\n },\n ]\n}\n\n/**\n * Returns the pending compensation changes for an employee, flattened across\n * all jobs and sorted globally by `effectiveDate` ascending.\n *\n * A pending change is any `Compensation` whose `effectiveDate` is strictly\n * after today (local midnight). When a single job has multiple future-dated\n * compensations stacked, each is returned in chronological order and the diff\n * details for the N+1th comp are computed against the Nth (rather than the\n * job's current compensation) so the bullets remain meaningful end-to-end.\n *\n * The helper returns structured deltas (a discriminated union per detail) so\n * the consuming UI is responsible for formatting them via i18n / pay-rate\n * helpers. This keeps the helper pure and trivially unit-testable.\n */\nexport function getPendingCompensationChanges(\n jobs: Job[] | undefined,\n options: { today?: Date } = {},\n): PendingCompensationChange[] {\n if (!jobs?.length) return []\n\n const now = options.today ?? new Date()\n const todayStart = startOfLocalDay(now)\n const results: PendingCompensationChange[] = []\n\n for (const job of jobs) {\n const comps = job.compensations ?? []\n\n const futureComps = comps\n .filter(c => isAfterToday(c.effectiveDate, todayStart))\n .slice()\n .sort((a, b) => (a.effectiveDate ?? '').localeCompare(b.effectiveDate ?? ''))\n\n if (futureComps.length === 0) continue\n\n const referencedCurrent = job.currentCompensationUuid\n ? comps.find(c => c.uuid === job.currentCompensationUuid)\n : undefined\n const currentComp =\n referencedCurrent && isOnOrBeforeToday(referencedCurrent.effectiveDate, todayStart)\n ? referencedCurrent\n : null\n\n for (let i = 0; i < futureComps.length; i++) {\n const future = futureComps[i]!\n const baseline = i === 0 ? currentComp : futureComps[i - 1]!\n\n const details = baseline\n ? buildExistingJobDetails(baseline, future, job.title)\n : buildNewJobDetails(future, job.title)\n\n results.push({\n compensationUuid: future.uuid,\n jobUuid: job.uuid,\n effectiveDate: future.effectiveDate!,\n jobTitle: job.title,\n details,\n isNewJob: baseline === null,\n })\n }\n }\n\n results.sort((a, b) => a.effectiveDate.localeCompare(b.effectiveDate))\n\n return results\n}\n"],"names":["startOfLocalDay","d","isAfterToday","effectiveDate","todayStart","parsed","normalizeToDate","isOnOrBeforeToday","numericRate","rate","n","buildExistingJobDetails","baseline","future","jobTitle","details","baseTitle","futureTitle","baseRate","futureRate","baseUnit","futureUnit","baseAdj","futureAdj","baseMw","futureMw","buildNewJobDetails","getPendingCompensationChanges","jobs","options","now","results","job","comps","futureComps","c","a","b","referencedCurrent","currentComp","i"],"mappings":"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"}
@@ -1,17 +1,24 @@
1
1
  import { Employee } from '@gusto/embedded-api/models/components/employee';
2
2
  import { EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress';
3
3
  import { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress';
4
- import { HookLoadingResult, BaseHookReady } from '../../../../partner-hook-utils/types';
4
+ import { BaseHookReady } from '../../../../partner-hook-utils/types';
5
5
  export interface UseEmployeeBasicDetailsProps {
6
6
  employeeId: string;
7
7
  }
8
- type UseEmployeeBasicDetailsReady = BaseHookReady<{
9
- employee: Employee;
8
+ export type UseEmployeeBasicDetailsResult = BaseHookReady<{
9
+ employee?: Employee;
10
10
  currentHomeAddress?: EmployeeAddress;
11
11
  currentWorkAddress?: EmployeeWorkAddress;
12
12
  }, {
13
13
  isPending: boolean;
14
+ isEmployeeLoading: boolean;
15
+ isHomeAddressLoading: boolean;
16
+ isWorkAddressLoading: boolean;
14
17
  }>;
15
- export type UseEmployeeBasicDetailsResult = HookLoadingResult | UseEmployeeBasicDetailsReady;
18
+ /**
19
+ * Phase B: each query runs non-Suspense so the three cards (employee
20
+ * info, home address, work address) can paint independently. The
21
+ * consuming view branches on the per-query loading flags to render
22
+ * skeletons inside the box bodies.
23
+ */
16
24
  export declare function useEmployeeBasicDetails({ employeeId, }: UseEmployeeBasicDetailsProps): UseEmployeeBasicDetailsResult;
17
- export {};