@gusto/embedded-react-sdk 0.13.4 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/assets/icons/plus-circle.svg.js +10 -0
  3. package/dist/assets/icons/plus-circle.svg.js.map +1 -0
  4. package/dist/assets/icons/spinner_large.svg.js +10 -0
  5. package/dist/assets/icons/spinner_large.svg.js.map +1 -0
  6. package/dist/assets/icons/x-circle.svg.js +10 -0
  7. package/dist/assets/icons/x-circle.svg.js.map +1 -0
  8. package/dist/components/Common/Flex/Flex.js +16 -12
  9. package/dist/components/Common/Flex/Flex.js.map +1 -1
  10. package/dist/components/Common/Loading/Loading.d.ts +5 -1
  11. package/dist/components/Common/Loading/Loading.js +9 -9
  12. package/dist/components/Common/Loading/Loading.js.map +1 -1
  13. package/dist/components/Common/Loading/Loading.module.scss.js +1 -1
  14. package/dist/components/Common/SignatureForm/SignatureForm.js +1 -1
  15. package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
  16. package/dist/components/Common/SignatureForm/SignatureFormFields.js +1 -1
  17. package/dist/components/Common/UI/Alert/Alert.module.scss.js +14 -14
  18. package/dist/components/Common/UI/Button/ButtonIcon.module.scss.js +1 -1
  19. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.d.ts +3 -0
  20. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.js +25 -0
  21. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.js.map +1 -0
  22. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.module.scss.js +10 -0
  23. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.module.scss.js.map +1 -0
  24. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.d.ts +18 -0
  25. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js +8 -0
  26. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -0
  27. package/dist/components/Common/UI/LoadingSpinner/index.d.ts +4 -0
  28. package/dist/components/Common/index.d.ts +1 -0
  29. package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -6
  30. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  31. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +2 -3
  32. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +2 -3
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  35. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +3 -2
  36. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  37. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +14 -13
  38. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +2 -3
  40. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  41. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +6 -5
  42. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  43. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +11 -10
  44. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  45. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +6 -6
  46. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +8 -9
  47. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  48. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +8 -9
  49. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  50. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -8
  51. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  52. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -5
  53. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  54. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +2 -3
  55. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  56. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +3 -2
  57. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  58. package/dist/components/Company/DocumentSigner/DocumentSigner.js +0 -1
  59. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  60. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +7 -6
  61. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  62. package/dist/components/Company/FederalTaxes/Actions.js +5 -6
  63. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  64. package/dist/components/Company/FederalTaxes/FederalTaxes.js +13 -12
  65. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  66. package/dist/components/Company/FederalTaxes/Form.js +3 -4
  67. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  68. package/dist/components/Company/Industry/Actions.js +2 -3
  69. package/dist/components/Company/Industry/Actions.js.map +1 -1
  70. package/dist/components/Company/Industry/Edit.js +4 -5
  71. package/dist/components/Company/Industry/Edit.js.map +1 -1
  72. package/dist/components/Company/Locations/LocationForm/Actions.js +6 -7
  73. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  74. package/dist/components/Company/Locations/LocationForm/Form.js +6 -5
  75. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  76. package/dist/components/Company/Locations/LocationForm/LocationForm.js +11 -10
  77. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  78. package/dist/components/Company/Locations/LocationsList/Actions.js +6 -7
  79. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  80. package/dist/components/Company/Locations/LocationsList/List.js +9 -10
  81. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  82. package/dist/components/Company/Locations/LocationsList/LocationsList.js +7 -6
  83. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  84. package/dist/components/Company/OnboardingOverview/Completed.js +10 -11
  85. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  86. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +6 -7
  87. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  88. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +3 -2
  89. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  90. package/dist/components/Company/PaySchedule/PaySchedule.js +34 -33
  91. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  92. package/dist/components/Company/PaySchedule/_parts/Actions.js +9 -10
  93. package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
  94. package/dist/components/Company/PaySchedule/_parts/Edit.js +17 -16
  95. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  96. package/dist/components/Company/PaySchedule/_parts/Head.js +6 -7
  97. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  98. package/dist/components/Company/PaySchedule/_parts/List.js +14 -15
  99. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  100. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
  101. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  102. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +2 -3
  103. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  104. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +2 -3
  105. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  106. package/dist/components/Contractor/Address/Address.js +5 -4
  107. package/dist/components/Contractor/Address/Address.js.map +1 -1
  108. package/dist/components/Contractor/Address/Form.js +4 -3
  109. package/dist/components/Contractor/Address/Form.js.map +1 -1
  110. package/dist/components/Contractor/ContractorList/index.js +17 -17
  111. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +5 -6
  112. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
  113. package/dist/components/Contractor/Profile/ContractorProfileForm.js +13 -13
  114. package/dist/components/Contractor/Submit/Submit.js +1 -1
  115. package/dist/components/Employee/Compensation/Actions.js +1 -1
  116. package/dist/components/Employee/Compensation/Compensation.js +144 -147
  117. package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
  118. package/dist/components/Employee/Compensation/Edit.js +38 -37
  119. package/dist/components/Employee/Compensation/Edit.js.map +1 -1
  120. package/dist/components/Employee/Compensation/List.js +22 -23
  121. package/dist/components/Employee/Compensation/List.js.map +1 -1
  122. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +8 -8
  123. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +9 -9
  124. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +8 -8
  125. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +7 -7
  126. package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +8 -8
  127. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +6 -7
  128. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
  129. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +8 -7
  130. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  131. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +2 -3
  132. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  133. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +10 -9
  134. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  135. package/dist/components/Employee/EmployeeList/Actions.js +2 -3
  136. package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
  137. package/dist/components/Employee/EmployeeList/EmployeeList.js +3 -4
  138. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  139. package/dist/components/Employee/EmployeeList/Head.js +5 -6
  140. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  141. package/dist/components/Employee/EmployeeList/List.js +14 -14
  142. package/dist/components/Employee/FederalTaxes/Actions.js +6 -7
  143. package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -1
  144. package/dist/components/Employee/FederalTaxes/FederalForm.js +11 -12
  145. package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
  146. package/dist/components/Employee/Landing/Landing.js +8 -8
  147. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  148. package/dist/components/Employee/PaymentMethod/Actions.js +5 -6
  149. package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
  150. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +1 -1
  151. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +8 -9
  152. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
  153. package/dist/components/Employee/PaymentMethod/Split.js +8 -8
  154. package/dist/components/Employee/Profile/Actions.js +6 -7
  155. package/dist/components/Employee/Profile/Actions.js.map +1 -1
  156. package/dist/components/Employee/Profile/HomeAddress.js +6 -5
  157. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  158. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +22 -21
  159. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  160. package/dist/components/Employee/StateTaxes/Actions.js +7 -8
  161. package/dist/components/Employee/StateTaxes/Actions.js.map +1 -1
  162. package/dist/components/Employee/Taxes/Actions.js +8 -9
  163. package/dist/components/Employee/Taxes/Actions.js.map +1 -1
  164. package/dist/components/Employee/Taxes/FederalForm.js +12 -13
  165. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  166. package/dist/components/Payroll/PayrollBlocker/PayrollBlocker.d.ts +6 -0
  167. package/dist/components/Payroll/PayrollBlocker/PayrollBlocker.js +32 -0
  168. package/dist/components/Payroll/PayrollBlocker/PayrollBlocker.js.map +1 -0
  169. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.d.ts +14 -0
  170. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +53 -0
  171. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -0
  172. package/dist/components/Payroll/PayrollBlocker/{PayrollBlockerList.d.ts → components/PayrollBlockerList.d.ts} +14 -1
  173. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +39 -0
  174. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -0
  175. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.module.scss.js +8 -0
  176. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.module.scss.js.map +1 -0
  177. package/dist/components/Payroll/PayrollBlocker/index.d.ts +4 -3
  178. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +27 -0
  179. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +39 -0
  180. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -0
  181. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +108 -66
  182. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  183. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +7 -2
  184. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +177 -124
  185. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  186. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.module.scss.js +8 -0
  187. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.module.scss.js.map +1 -0
  188. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +39 -36
  189. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  190. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +66 -65
  191. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  192. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +8 -9
  193. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  194. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +1 -0
  195. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +32 -26
  196. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  197. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +1 -0
  198. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +72 -48
  199. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  200. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +10 -11
  201. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  202. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +2 -1
  203. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +28 -36
  204. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  205. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +15 -0
  206. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +62 -0
  207. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -0
  208. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.d.ts +5 -0
  209. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +93 -0
  210. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -0
  211. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +1 -1
  212. package/dist/components/Payroll/PayrollList/PayrollList.js +65 -24
  213. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  214. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +13 -1
  215. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +149 -52
  216. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  217. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +10 -0
  218. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js.map +1 -0
  219. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +2 -1
  220. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +105 -77
  221. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  222. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
  223. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +309 -263
  224. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  225. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +2 -1
  226. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +26 -12
  227. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  228. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +2 -1
  229. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +44 -41
  230. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  231. package/dist/components/Payroll/index.d.ts +1 -1
  232. package/dist/components/Payroll/index.js +6 -8
  233. package/dist/components/Payroll/index.js.map +1 -1
  234. package/dist/components/Payroll/usePreparedPayrollData.js +39 -24
  235. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  236. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +28 -26
  237. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  238. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
  239. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +28 -23
  240. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  241. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +2 -0
  242. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  243. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -3
  244. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  245. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.d.ts +3 -1
  246. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js +8 -8
  247. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js.map +1 -1
  248. package/dist/hooks/useContainerBreakpoints/useContainerBreakpoints.js.map +1 -1
  249. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +17 -17
  250. package/dist/i18n/en/Payroll.PayrollList.json.js +24 -14
  251. package/dist/i18n/en/Payroll.PayrollList.json.js.map +1 -1
  252. package/dist/i18n/en/Payroll.PayrollOverview.json.js +56 -50
  253. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  254. package/dist/i18n/en/Payroll.PayrollReceipts.json.js +14 -12
  255. package/dist/i18n/en/Payroll.PayrollReceipts.json.js.map +1 -1
  256. package/dist/i18n/en/PayrollBlocker.json.js +17 -11
  257. package/dist/i18n/en/PayrollBlocker.json.js.map +1 -1
  258. package/dist/shared/constants.d.ts +7 -1
  259. package/dist/shared/constants.js +11 -8
  260. package/dist/shared/constants.js.map +1 -1
  261. package/dist/style.css +1 -1
  262. package/dist/types/i18next.d.ts +159 -3
  263. package/package.json +21 -21
  264. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerAlerts.d.ts +0 -7
  265. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerTypes.d.ts +0 -101
  266. package/dist/components/Payroll/RunPayrollFlow/RunPayroll.js +0 -126
  267. package/dist/components/Payroll/RunPayrollFlow/RunPayroll.js.map +0 -1
  268. package/dist/components/Payroll/RunPayrollFlow/RunPayrollFlow.js +0 -22
  269. package/dist/components/Payroll/RunPayrollFlow/RunPayrollFlow.js.map +0 -1
@@ -1,13 +1,12 @@
1
1
  import { jsxs as l, Fragment as a, jsx as r } from "react/jsx-runtime";
2
- import { useTranslation as s, Trans as m } from "react-i18next";
2
+ import { useTranslation as s, Trans as u } from "react-i18next";
3
3
  import { z as t } from "zod";
4
4
  import "classnames";
5
- import "../../../shared/constants.js";
6
- import { RadioGroupField as u } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
5
+ import { useComponentContext as m } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { SelectField as d } from "../../Common/Fields/SelectField/SelectField.js";
7
+ import { RadioGroupField as f } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
7
8
  import { NumberInputField as i } from "../../Common/Fields/NumberInputField/NumberInputField.js";
8
- import { useComponentContext as d } from "../../../contexts/ComponentAdapter/useComponentContext.js";
9
- import { SelectField as f } from "../../Common/Fields/SelectField/SelectField.js";
10
- const q = t.object({
9
+ const R = t.object({
11
10
  filingStatus: t.string().min(1),
12
11
  twoJobs: t.string().min(1),
13
12
  dependentsAmount: t.number().transform(String),
@@ -16,8 +15,8 @@ const q = t.object({
16
15
  extraWithholding: t.number().transform(String),
17
16
  w4DataType: t.enum(["pre_2020_w4", "rev_2020_w4"])
18
17
  });
19
- function v() {
20
- const { t: e } = s("Employee.Taxes"), o = d(), n = [
18
+ function q() {
19
+ const { t: e } = s("Employee.Taxes"), o = m(), n = [
21
20
  { value: "Single", label: e("filingStatusSingle") },
22
21
  { value: "Married", label: e("filingStatusMarried") },
23
22
  { value: "Head of Household", label: e("filingStatusHeadOfHousehold") },
@@ -25,7 +24,7 @@ function v() {
25
24
  ];
26
25
  return /* @__PURE__ */ l(a, { children: [
27
26
  /* @__PURE__ */ r(
28
- f,
27
+ d,
29
28
  {
30
29
  name: "filingStatus",
31
30
  label: e("federalFilingStatus1c"),
@@ -36,14 +35,14 @@ function v() {
36
35
  }
37
36
  ),
38
37
  /* @__PURE__ */ r(
39
- u,
38
+ f,
40
39
  {
41
40
  name: "twoJobs",
42
41
  isRequired: !0,
43
42
  label: e("multipleJobs2c"),
44
43
  errorMessage: e("validations.federalTwoJobs"),
45
44
  description: /* @__PURE__ */ r(o.Text, { children: /* @__PURE__ */ r(
46
- m,
45
+ u,
47
46
  {
48
47
  i18nKey: "includesSpouseExplanation",
49
48
  t: e,
@@ -103,7 +102,7 @@ function v() {
103
102
  ] });
104
103
  }
105
104
  export {
106
- v as FederalForm,
107
- q as FederalFormSchema
105
+ q as FederalForm,
106
+ R as FederalFormSchema
108
107
  };
109
108
  //# sourceMappingURL=FederalForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FederalForm.js","sources":["../../../../src/components/Employee/Taxes/FederalForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { NumberInputField, RadioGroupField, SelectField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const FederalFormSchema = z.object({\n filingStatus: z.string().min(1),\n twoJobs: z.string().min(1),\n dependentsAmount: z.number().transform(String),\n otherIncome: z.number().transform(String),\n deductions: z.number().transform(String),\n extraWithholding: z.number().transform(String),\n w4DataType: z.enum(['pre_2020_w4', 'rev_2020_w4']),\n})\n\nexport type FederalFormInputs = z.input<typeof FederalFormSchema>\nexport type FederalFormPayload = z.output<typeof FederalFormSchema>\n\nexport function FederalForm() {\n const { t } = useTranslation('Employee.Taxes')\n const Components = useComponentContext()\n\n const filingStatusCategories = [\n { value: 'Single', label: t('filingStatusSingle') },\n { value: 'Married', label: t('filingStatusMarried') },\n { value: 'Head of Household', label: t('filingStatusHeadOfHousehold') },\n { value: 'Exempt from withholding', label: t('filingStatusExemptFromWithholding') },\n ]\n\n return (\n <>\n <SelectField\n name=\"filingStatus\"\n label={t('federalFilingStatus1c')}\n placeholder={t('federalFillingStatusPlaceholder')}\n options={filingStatusCategories}\n isRequired\n errorMessage={t('validations.federalFilingStatus')}\n />\n <RadioGroupField\n name=\"twoJobs\"\n isRequired\n label={t('multipleJobs2c')}\n errorMessage={t('validations.federalTwoJobs')}\n description={\n <Components.Text>\n <Trans\n i18nKey={'includesSpouseExplanation'}\n t={t}\n components={{\n irs_link: <Components.Link />,\n }}\n />\n </Components.Text>\n }\n options={[\n { value: 'true', label: t('twoJobYesLabel') },\n { value: 'false', label: t('twoJobNoLabel') },\n ]}\n />\n <NumberInputField\n name=\"dependentsAmount\"\n isRequired\n label={t('dependentsTotalIfApplicable')}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"otherIncome\"\n isRequired\n label={t('otherIncome')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"deductions\"\n isRequired\n label={t('deductions')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"extraWithholding\"\n isRequired\n label={t('extraWithholding')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n </>\n )\n}\n"],"names":["FederalFormSchema","z","FederalForm","t","useTranslation","Components","useComponentContext","filingStatusCategories","jsxs","Fragment","jsx","SelectField","RadioGroupField","Trans","NumberInputField"],"mappings":"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"}
1
+ {"version":3,"file":"FederalForm.js","sources":["../../../../src/components/Employee/Taxes/FederalForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { NumberInputField, RadioGroupField, SelectField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const FederalFormSchema = z.object({\n filingStatus: z.string().min(1),\n twoJobs: z.string().min(1),\n dependentsAmount: z.number().transform(String),\n otherIncome: z.number().transform(String),\n deductions: z.number().transform(String),\n extraWithholding: z.number().transform(String),\n w4DataType: z.enum(['pre_2020_w4', 'rev_2020_w4']),\n})\n\nexport type FederalFormInputs = z.input<typeof FederalFormSchema>\nexport type FederalFormPayload = z.output<typeof FederalFormSchema>\n\nexport function FederalForm() {\n const { t } = useTranslation('Employee.Taxes')\n const Components = useComponentContext()\n\n const filingStatusCategories = [\n { value: 'Single', label: t('filingStatusSingle') },\n { value: 'Married', label: t('filingStatusMarried') },\n { value: 'Head of Household', label: t('filingStatusHeadOfHousehold') },\n { value: 'Exempt from withholding', label: t('filingStatusExemptFromWithholding') },\n ]\n\n return (\n <>\n <SelectField\n name=\"filingStatus\"\n label={t('federalFilingStatus1c')}\n placeholder={t('federalFillingStatusPlaceholder')}\n options={filingStatusCategories}\n isRequired\n errorMessage={t('validations.federalFilingStatus')}\n />\n <RadioGroupField\n name=\"twoJobs\"\n isRequired\n label={t('multipleJobs2c')}\n errorMessage={t('validations.federalTwoJobs')}\n description={\n <Components.Text>\n <Trans\n i18nKey={'includesSpouseExplanation'}\n t={t}\n components={{\n irs_link: <Components.Link />,\n }}\n />\n </Components.Text>\n }\n options={[\n { value: 'true', label: t('twoJobYesLabel') },\n { value: 'false', label: t('twoJobNoLabel') },\n ]}\n />\n <NumberInputField\n name=\"dependentsAmount\"\n isRequired\n label={t('dependentsTotalIfApplicable')}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"otherIncome\"\n isRequired\n label={t('otherIncome')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"deductions\"\n isRequired\n label={t('deductions')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"extraWithholding\"\n isRequired\n label={t('extraWithholding')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n </>\n )\n}\n"],"names":["FederalFormSchema","z","FederalForm","t","useTranslation","Components","useComponentContext","filingStatusCategories","jsxs","Fragment","jsx","SelectField","RadioGroupField","Trans","NumberInputField"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { BaseComponentInterface } from '../../Base/Base';
2
+ interface PayrollBlockerProps extends BaseComponentInterface<'PayrollBlocker'> {
3
+ companyId: string;
4
+ }
5
+ export declare function PayrollBlocker(props: PayrollBlockerProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useTranslation as y } from "react-i18next";
3
+ import { usePayrollsGetBlockersSuspense as k } from "@gusto/embedded-api/react-query/payrollsGetBlockers";
4
+ import { PayrollBlockerList as f } from "./components/PayrollBlockerList.js";
5
+ import { getBlockerTranslationKeys as B } from "./payrollHelpers.js";
6
+ import { BaseComponent as d } from "../../Base/Base.js";
7
+ import { useComponentDictionary as P, useI18n as g } from "../../../i18n/I18n.js";
8
+ function U(o) {
9
+ return /* @__PURE__ */ t(d, { ...o, children: /* @__PURE__ */ t(K, { ...o, children: o.children }) });
10
+ }
11
+ function K({ className: o, dictionary: i, companyId: s }) {
12
+ P("PayrollBlocker", i), g("PayrollBlocker");
13
+ const { t: e } = y("PayrollBlocker"), { data: a } = k({
14
+ companyUuid: s
15
+ }), l = (a.payrollBlockerList ?? []).map((n) => {
16
+ const r = n.key ?? "unknown", c = B(r), m = e(c.titleKey, {
17
+ defaultValue: r.replace(/_/g, " ").replace(/\b\w/g, (u) => u.toUpperCase())
18
+ }), p = e(c.descriptionKey, {
19
+ defaultValue: n.message || e("defaultBlockerDescription")
20
+ });
21
+ return {
22
+ id: r,
23
+ title: m,
24
+ description: p
25
+ };
26
+ });
27
+ return l.length === 0 ? null : /* @__PURE__ */ t(f, { className: o, blockers: l });
28
+ }
29
+ export {
30
+ U as PayrollBlocker
31
+ };
32
+ //# sourceMappingURL=PayrollBlocker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayrollBlocker.js","sources":["../../../../src/components/Payroll/PayrollBlocker/PayrollBlocker.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { PayrollBlockerList, type PayrollBlocker } from './components/PayrollBlockerList'\nimport { getBlockerTranslationKeys } from './payrollHelpers'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\ninterface PayrollBlockerProps extends BaseComponentInterface<'PayrollBlocker'> {\n companyId: string\n}\n\nexport function PayrollBlocker(props: PayrollBlockerProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, dictionary, companyId }: PayrollBlockerProps) {\n useComponentDictionary('PayrollBlocker', dictionary)\n useI18n('PayrollBlocker')\n const { t } = useTranslation('PayrollBlocker')\n\n const { data } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = data.payrollBlockerList ?? []\n\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key ?? 'unknown'\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blockerKey.replace(/_/g, ' ').replace(/\\b\\w/g, letter => letter.toUpperCase()),\n })\n\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n\n return {\n id: blockerKey,\n title,\n description,\n }\n })\n\n if (blockers.length === 0) {\n return null\n }\n\n return <PayrollBlockerList className={className} blockers={blockers} />\n}\n"],"names":["PayrollBlocker","props","jsx","BaseComponent","Root","className","dictionary","companyId","useComponentDictionary","useI18n","t","useTranslation","data","usePayrollsGetBlockersSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","letter","description","PayrollBlockerList"],"mappings":";;;;;;;AAWO,SAASA,EAAeC,GAA4B;AACzD,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,YAAAC,GAAY,WAAAC,KAAkC;AACvE,EAAAC,EAAuB,kBAAkBF,CAAU,GACnDG,EAAQ,gBAAgB;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,gBAAgB,GAEvC,EAAE,MAAAC,EAAA,IAASC,EAA+B;AAAA,IAC9C,aAAaN;AAAA,EAAA,CACd,GAIKO,KAFqBF,EAAK,sBAAsB,CAAA,GAEA,IAAI,CAAAG,MAAW;AACnE,UAAMC,IAAaD,EAAQ,OAAO,WAC5BE,IAAkBC,EAA0BF,CAAU,GAEtDG,IAAQT,EAAEO,EAAgB,UAAU;AAAA,MACxC,cAAcD,EAAW,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,CAAAI,MAAUA,EAAO,YAAA,CAAa;AAAA,IAAA,CAC5F,GAEKC,IAAcX,EAAEO,EAAgB,gBAAgB;AAAA,MACpD,cAAcF,EAAQ,WAAWL,EAAE,2BAA2B;AAAA,IAAA,CAC/D;AAED,WAAO;AAAA,MACL,IAAIM;AAAA,MACJ,OAAAG;AAAA,MACA,aAAAE;AAAA,IAAA;AAAA,EAEJ,CAAC;AAED,SAAIP,EAAS,WAAW,IACf,OAGF,gBAAAZ,EAACoB,GAAA,EAAmB,WAAAjB,GAAsB,UAAAS,EAAA,CAAoB;AACvE;"}
@@ -0,0 +1,14 @@
1
+ import { ApiPayrollBlocker } from '../payrollHelpers';
2
+ interface PayrollBlockerAlertsProps {
3
+ blockers: ApiPayrollBlocker[];
4
+ className?: string;
5
+ onMultipleViewClick?: () => void;
6
+ multipleViewLabel?: string;
7
+ }
8
+ /**
9
+ * PayrollBlockerAlerts - Alert-style component for inline blocker display
10
+ * Shows single blocker as alert, or multiple blockers as summary with "Review" button
11
+ * Returns null for empty blocker arrays
12
+ */
13
+ export declare function PayrollBlockerAlerts({ blockers, onMultipleViewClick, multipleViewLabel, className, }: PayrollBlockerAlertsProps): import("react/jsx-runtime").JSX.Element | null;
14
+ export {};
@@ -0,0 +1,53 @@
1
+ import { jsx as l, jsxs as d } from "react/jsx-runtime";
2
+ import { useTranslation as v } from "react-i18next";
3
+ import { getBlockerTranslationKeys as A } from "../payrollHelpers.js";
4
+ import { useComponentContext as C } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
5
+ import { Flex as m } from "../../../Common/Flex/Flex.js";
6
+ import "classnames";
7
+ import { useI18n as D } from "../../../../i18n/I18n.js";
8
+ function z({
9
+ blockers: n,
10
+ onMultipleViewClick: i,
11
+ multipleViewLabel: h,
12
+ className: s
13
+ }) {
14
+ D("PayrollBlocker");
15
+ const { t: e } = v("PayrollBlocker"), { Alert: c, Button: f, Text: a, UnorderedList: x } = C();
16
+ if (n.length === 0)
17
+ return null;
18
+ const g = n.length > 1, p = n.map((r) => {
19
+ const o = A(r.key), B = e(o.titleKey, {
20
+ defaultValue: r.key.replace(/_/g, " ").replace(/\b\w/g, (K) => K.toUpperCase())
21
+ }), T = e(o.descriptionKey, {
22
+ defaultValue: r.message || e("defaultBlockerDescription")
23
+ }), k = e(o.helpTextKey, { defaultValue: e("defaultBlockerHelpText") });
24
+ return {
25
+ ...r,
26
+ title: B,
27
+ description: T,
28
+ helpText: k
29
+ };
30
+ }), t = p[0];
31
+ if (!g && t)
32
+ return /* @__PURE__ */ l(c, { status: "error", label: t.title, className: s, children: /* @__PURE__ */ d(m, { flexDirection: "column", gap: 8, children: [
33
+ /* @__PURE__ */ l(a, { children: t.description }),
34
+ t.helpText && t.helpText !== t.description && /* @__PURE__ */ l(a, { variant: "supporting", size: "sm", children: t.helpText })
35
+ ] }) });
36
+ const y = p.map((r) => r.title), u = h || e("viewAllBlockers");
37
+ return /* @__PURE__ */ l(
38
+ c,
39
+ {
40
+ status: "error",
41
+ label: e("multipleIssuesTitle", { count: n.length }),
42
+ className: s,
43
+ children: /* @__PURE__ */ d(m, { flexDirection: "column", gap: 16, children: [
44
+ /* @__PURE__ */ l(x, { items: y }),
45
+ i && /* @__PURE__ */ l("div", { children: /* @__PURE__ */ l(f, { variant: "secondary", onClick: i, title: u, children: u }) })
46
+ ] })
47
+ }
48
+ );
49
+ }
50
+ export {
51
+ z as PayrollBlockerAlerts
52
+ };
53
+ //# sourceMappingURL=PayrollBlockerAlerts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayrollBlockerAlerts.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type ApiPayrollBlocker, getBlockerTranslationKeys } from '../payrollHelpers'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex } from '@/components/Common'\nimport { useI18n } from '@/i18n'\n\ninterface PayrollBlockerAlertsProps {\n blockers: ApiPayrollBlocker[]\n className?: string\n onMultipleViewClick?: () => void\n multipleViewLabel?: string\n}\n\n/**\n * PayrollBlockerAlerts - Alert-style component for inline blocker display\n * Shows single blocker as alert, or multiple blockers as summary with \"Review\" button\n * Returns null for empty blocker arrays\n */\nexport function PayrollBlockerAlerts({\n blockers,\n onMultipleViewClick,\n multipleViewLabel,\n className,\n}: PayrollBlockerAlertsProps) {\n useI18n('PayrollBlocker')\n const { t } = useTranslation('PayrollBlocker')\n const { Alert, Button, Text, UnorderedList } = useComponentContext()\n\n // Return null for empty blockers array\n if (blockers.length === 0) {\n return null\n }\n\n const hasMultipleBlockers = blockers.length > 1\n\n const enrichedBlockers = blockers.map(blocker => {\n const translationKeys = getBlockerTranslationKeys(blocker.key)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blocker.key.replace(/_/g, ' ').replace(/\\b\\w/g, l => l.toUpperCase()),\n })\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n const helpText = t(translationKeys.helpTextKey, { defaultValue: t('defaultBlockerHelpText') })\n\n return {\n ...blocker,\n title,\n description,\n helpText,\n }\n })\n\n const singleBlocker = enrichedBlockers[0]\n\n if (!hasMultipleBlockers && singleBlocker) {\n return (\n <Alert status=\"error\" label={singleBlocker.title} className={className}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text>{singleBlocker.description}</Text>\n {singleBlocker.helpText && singleBlocker.helpText !== singleBlocker.description && (\n <Text variant=\"supporting\" size=\"sm\">\n {singleBlocker.helpText}\n </Text>\n )}\n </Flex>\n </Alert>\n )\n }\n\n const listItems = enrichedBlockers.map(blocker => blocker.title)\n const defaultMultipleLabel = multipleViewLabel || t('viewAllBlockers')\n\n return (\n <Alert\n status=\"error\"\n label={t('multipleIssuesTitle', { count: blockers.length })}\n className={className}\n >\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={listItems} />\n {onMultipleViewClick && (\n <div>\n <Button variant=\"secondary\" onClick={onMultipleViewClick} title={defaultMultipleLabel}>\n {defaultMultipleLabel}\n </Button>\n </div>\n )}\n </Flex>\n </Alert>\n )\n}\n"],"names":["PayrollBlockerAlerts","blockers","onMultipleViewClick","multipleViewLabel","className","useI18n","t","useTranslation","Alert","Button","Text","UnorderedList","useComponentContext","hasMultipleBlockers","enrichedBlockers","blocker","translationKeys","getBlockerTranslationKeys","title","l","description","helpText","singleBlocker","jsx","jsxs","Flex","listItems","defaultMultipleLabel"],"mappings":";;;;;;;AAkBO,SAASA,EAAqB;AAAA,EACnC,UAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AACF,GAA8B;AAC5B,EAAAC,EAAQ,gBAAgB;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,gBAAgB,GACvC,EAAE,OAAAC,GAAO,QAAAC,GAAQ,MAAAC,GAAM,eAAAC,EAAA,IAAkBC,EAAA;AAG/C,MAAIX,EAAS,WAAW;AACtB,WAAO;AAGT,QAAMY,IAAsBZ,EAAS,SAAS,GAExCa,IAAmBb,EAAS,IAAI,CAAAc,MAAW;AAC/C,UAAMC,IAAkBC,EAA0BF,EAAQ,GAAG,GAEvDG,IAAQZ,EAAEU,EAAgB,UAAU;AAAA,MACxC,cAAcD,EAAQ,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,CAAAI,MAAKA,EAAE,YAAA,CAAa;AAAA,IAAA,CACnF,GACKC,IAAcd,EAAEU,EAAgB,gBAAgB;AAAA,MACpD,cAAcD,EAAQ,WAAWT,EAAE,2BAA2B;AAAA,IAAA,CAC/D,GACKe,IAAWf,EAAEU,EAAgB,aAAa,EAAE,cAAcV,EAAE,wBAAwB,GAAG;AAE7F,WAAO;AAAA,MACL,GAAGS;AAAA,MACH,OAAAG;AAAA,MACA,aAAAE;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAEJ,CAAC,GAEKC,IAAgBR,EAAiB,CAAC;AAExC,MAAI,CAACD,KAAuBS;AAC1B,WACE,gBAAAC,EAACf,GAAA,EAAM,QAAO,SAAQ,OAAOc,EAAc,OAAO,WAAAlB,GAChD,UAAA,gBAAAoB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAF,EAACb,GAAA,EAAM,YAAc,YAAA,CAAY;AAAA,MAChCY,EAAc,YAAYA,EAAc,aAAaA,EAAc,eAClE,gBAAAC,EAACb,GAAA,EAAK,SAAQ,cAAa,MAAK,MAC7B,YAAc,SAAA,CACjB;AAAA,IAAA,EAAA,CAEJ,EAAA,CACF;AAIJ,QAAMgB,IAAYZ,EAAiB,IAAI,CAAAC,MAAWA,EAAQ,KAAK,GACzDY,IAAuBxB,KAAqBG,EAAE,iBAAiB;AAErE,SACE,gBAAAiB;AAAA,IAACf;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,OAAOF,EAAE,uBAAuB,EAAE,OAAOL,EAAS,QAAQ;AAAA,MAC1D,WAAAG;AAAA,MAEA,UAAA,gBAAAoB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,QAAA,gBAAAF,EAACZ,GAAA,EAAc,OAAOe,EAAA,CAAW;AAAA,QAChCxB,KACC,gBAAAqB,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACd,GAAA,EAAO,SAAQ,aAAY,SAASP,GAAqB,OAAOyB,GAC9D,UAAAA,EAAA,CACH,EAAA,CACF;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,6 +1,19 @@
1
- import { PayrollBlockerListProps } from './PayrollBlockerTypes';
1
+ export interface PayrollBlocker {
2
+ id: string;
3
+ title: string;
4
+ description: string;
5
+ action?: {
6
+ label: string;
7
+ onClick: () => void;
8
+ };
9
+ }
10
+ interface PayrollBlockerListProps {
11
+ blockers: PayrollBlocker[];
12
+ className?: string;
13
+ }
2
14
  /**
3
15
  * PayrollBlockerList - DataView-based component displaying payroll blockers
4
16
  * Shows each blocker with individual resolution buttons
5
17
  */
6
18
  export declare function PayrollBlockerList({ blockers, className }: PayrollBlockerListProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
+ import { useTranslation as f } from "react-i18next";
3
+ import p from "classnames";
4
+ import u from "./PayrollBlockerList.module.scss.js";
5
+ import { useComponentContext as h } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { FlexItem as x, Flex as o } from "../../../Common/Flex/Flex.js";
7
+ import { DataView as g } from "../../../Common/DataView/DataView.js";
8
+ import { useDataView as y } from "../../../Common/DataView/useDataView.js";
9
+ import { useI18n as b } from "../../../../i18n/I18n.js";
10
+ function v({ blockers: i, className: a }) {
11
+ b("PayrollBlocker");
12
+ const { t: l } = f("PayrollBlocker"), { Button: c, Text: n, Heading: m } = h(), d = y({
13
+ data: i,
14
+ columns: [
15
+ {
16
+ title: l("blockerSectionLabel"),
17
+ render: (t) => /* @__PURE__ */ e(x, { flexGrow: 1, children: /* @__PURE__ */ s(o, { flexDirection: "column", gap: 8, children: [
18
+ /* @__PURE__ */ e(n, { weight: "semibold", children: t.title }),
19
+ /* @__PURE__ */ e(n, { variant: "supporting", children: t.description })
20
+ ] }) })
21
+ },
22
+ {
23
+ title: "",
24
+ render: (t) => {
25
+ const r = t.action;
26
+ return r ? /* @__PURE__ */ e(o, { justifyContent: "flex-end", alignItems: "center", children: /* @__PURE__ */ e(c, { variant: "secondary", onClick: r.onClick, title: r.label, children: r.label }) }) : null;
27
+ }
28
+ }
29
+ ]
30
+ });
31
+ return i.length === 0 ? null : /* @__PURE__ */ e("div", { className: p(u.root, a), children: /* @__PURE__ */ s(o, { flexDirection: "column", gap: 24, children: [
32
+ /* @__PURE__ */ e(m, { as: "h2", styledAs: "h4", children: l("blockersListTitle") }),
33
+ /* @__PURE__ */ e(g, { ...d, label: l("blockersListTitle") })
34
+ ] }) });
35
+ }
36
+ export {
37
+ v as PayrollBlockerList
38
+ };
39
+ //# sourceMappingURL=PayrollBlockerList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport styles from './PayrollBlockerList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, FlexItem } from '@/components/Common'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { useI18n } from '@/i18n'\n\nexport interface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\ninterface PayrollBlockerListProps {\n blockers: PayrollBlocker[]\n className?: string\n}\n\n/**\n * PayrollBlockerList - DataView-based component displaying payroll blockers\n * Shows each blocker with individual resolution buttons\n */\nexport function PayrollBlockerList({ blockers, className }: PayrollBlockerListProps) {\n useI18n('PayrollBlocker')\n const { t } = useTranslation('PayrollBlocker')\n const { Button, Text, Heading } = useComponentContext()\n\n const dataViewProps = useDataView({\n data: blockers,\n columns: [\n {\n title: t('blockerSectionLabel'),\n render: blocker => (\n <FlexItem flexGrow={1}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text weight=\"semibold\">{blocker.title}</Text>\n <Text variant=\"supporting\">{blocker.description}</Text>\n </Flex>\n </FlexItem>\n ),\n },\n {\n title: '',\n render: blocker => {\n // For presentational purposes, just show the primary action if it exists\n const action = blocker.action\n\n if (!action) {\n return null\n }\n\n return (\n <Flex justifyContent=\"flex-end\" alignItems=\"center\">\n <Button variant=\"secondary\" onClick={action.onClick} title={action.label}>\n {action.label}\n </Button>\n </Flex>\n )\n },\n },\n ],\n })\n\n if (blockers.length === 0) {\n return null\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={24}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","blockers","className","useI18n","t","useTranslation","Button","Text","Heading","useComponentContext","dataViewProps","useDataView","blocker","jsx","FlexItem","jsxs","Flex","action","classNames","styles","DataView"],"mappings":";;;;;;;;;AA4BO,SAASA,EAAmB,EAAE,UAAAC,GAAU,WAAAC,KAAsC;AACnF,EAAAC,EAAQ,gBAAgB;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,gBAAgB,GACvC,EAAE,QAAAC,GAAQ,MAAAC,GAAM,SAAAC,EAAA,IAAYC,EAAA,GAE5BC,IAAgBC,EAAY;AAAA,IAChC,MAAMV;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,OAAOG,EAAE,qBAAqB;AAAA,QAC9B,QAAQ,CAAAQ,MACN,gBAAAC,EAACC,GAAA,EAAS,UAAU,GAClB,UAAA,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAH,EAACN,GAAA,EAAK,QAAO,YAAY,UAAAK,EAAQ,OAAM;AAAA,UACvC,gBAAAC,EAACN,GAAA,EAAK,SAAQ,cAAc,YAAQ,YAAA,CAAY;AAAA,QAAA,EAAA,CAClD,EAAA,CACF;AAAA,MAAA;AAAA,MAGJ;AAAA,QACE,OAAO;AAAA,QACP,QAAQ,CAAAK,MAAW;AAEjB,gBAAMK,IAASL,EAAQ;AAEvB,iBAAKK,sBAKFD,GAAA,EAAK,gBAAe,YAAW,YAAW,UACzC,4BAACV,GAAA,EAAO,SAAQ,aAAY,SAASW,EAAO,SAAS,OAAOA,EAAO,OAChE,UAAAA,EAAO,OACV,EAAA,CACF,IARO;AAAA,QAUX;AAAA,MAAA;AAAA,IACF;AAAA,EACF,CACD;AAED,SAAIhB,EAAS,WAAW,IACf,OAIP,gBAAAY,EAAC,OAAA,EAAI,WAAWK,EAAWC,EAAO,MAAMjB,CAAS,GAC/C,UAAA,gBAAAa,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAH,EAACL,KAAQ,IAAG,MAAK,UAAS,MACvB,UAAAJ,EAAE,mBAAmB,GACxB;AAAA,sBAECgB,GAAA,EAAU,GAAGV,GAAe,OAAON,EAAE,mBAAmB,EAAA,CAAG;AAAA,EAAA,EAAA,CAC9D,EAAA,CACF;AAEJ;"}
@@ -0,0 +1,8 @@
1
+ const o = "_root_gqrwc_1", t = {
2
+ root: o
3
+ };
4
+ export {
5
+ t as default,
6
+ o as root
7
+ };
8
+ //# sourceMappingURL=PayrollBlockerList.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayrollBlockerList.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,4 +1,5 @@
1
1
  import "./types/i18next.d.ts"
2
- export { PayrollBlockerAlerts } from './PayrollBlockerAlerts';
3
- export { PayrollBlockerList } from './PayrollBlockerList';
4
- export type { PayrollBlocker, PayrollBlockerProps, PayrollBlockerListProps, PayrollBlockerStatus, PayrollBlockerResolutionStep, } from './PayrollBlockerTypes';
2
+ export { PayrollBlocker } from './PayrollBlocker';
3
+ export { PayrollBlockerAlerts } from './components/PayrollBlockerAlerts';
4
+ export { PayrollBlockerList } from './components/PayrollBlockerList';
5
+ export type { ApiPayrollBlocker } from './payrollHelpers';
@@ -0,0 +1,27 @@
1
+ import { PayrollBlockersError } from '@gusto/embedded-api/models/errors/payrollblockerserror';
2
+ import { UnprocessableEntityErrorObject1 } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject1';
3
+ export interface ApiPayrollBlocker {
4
+ key: string;
5
+ message?: string;
6
+ }
7
+ export declare function isPayrollBlockersError(error: unknown): error is PayrollBlockersError;
8
+ export declare function isUnprocessableEntityWithPayrollBlockers(error: unknown): error is UnprocessableEntityErrorObject1;
9
+ export declare function parsePayrollBlockersFromError(error: unknown): ApiPayrollBlocker[];
10
+ export interface PayrollSubmitResult {
11
+ success: boolean;
12
+ blockers: ApiPayrollBlocker[];
13
+ }
14
+ /**
15
+ * Direct submit handler for payroll operations that handles payroll blockers
16
+ * Returns blockers if found, otherwise throws the error for caller to handle
17
+ */
18
+ export declare const payrollSubmitHandler: (payrollHandler: () => Promise<void>) => Promise<PayrollSubmitResult>;
19
+ /**
20
+ * Get translation keys for a blocker - use these in components with useTranslation
21
+ */
22
+ export declare function getBlockerTranslationKeys(key: string): {
23
+ titleKey: string;
24
+ descriptionKey: string;
25
+ helpTextKey: string;
26
+ defaultActionKey: string;
27
+ };
@@ -0,0 +1,39 @@
1
+ import { PayrollBlockersError as s } from "@gusto/embedded-api/models/errors/payrollblockerserror";
2
+ import { UnprocessableEntityErrorObject1 as l } from "@gusto/embedded-api/models/errors/unprocessableentityerrorobject1";
3
+ function t(r) {
4
+ return typeof r == "object" && r !== null && "key" in r && typeof r.key == "string";
5
+ }
6
+ function c(r) {
7
+ return r instanceof s;
8
+ }
9
+ function a(r) {
10
+ return r instanceof l && Array.isArray(r.errors) && r.errors.some((o) => o.category === "payroll_blocker");
11
+ }
12
+ function y(r) {
13
+ return c(r) ? !r.errors || r.errors.length === 0 ? [] : r.errors.map((e) => ({ key: t(e.metadata) ? e.metadata.key : e.errorKey || "unknown", message: e.message })) : a(r) ? r.errors.filter((e) => e.category === "payroll_blocker").map((e) => ({ key: t(e.metadata) ? e.metadata.key : e.errorKey || "unknown", message: e.message })) : [];
14
+ }
15
+ const i = (r) => r instanceof s ? !0 : r instanceof l ? Array.isArray(r.errors) && r.errors.some((o) => o.category === "payroll_blocker") : !1, f = async (r) => {
16
+ try {
17
+ return await r(), { success: !0, blockers: [] };
18
+ } catch (o) {
19
+ if (i(o))
20
+ return { success: !1, blockers: y(o) };
21
+ throw o;
22
+ }
23
+ };
24
+ function b(r) {
25
+ return {
26
+ titleKey: `PayrollBlocker:blockers.${r}.title`,
27
+ descriptionKey: `PayrollBlocker:blockers.${r}.description`,
28
+ helpTextKey: `PayrollBlocker:blockers.${r}.helpText`,
29
+ defaultActionKey: `PayrollBlocker:blockers.${r}.defaultAction`
30
+ };
31
+ }
32
+ export {
33
+ b as getBlockerTranslationKeys,
34
+ c as isPayrollBlockersError,
35
+ a as isUnprocessableEntityWithPayrollBlockers,
36
+ y as parsePayrollBlockersFromError,
37
+ f as payrollSubmitHandler
38
+ };
39
+ //# sourceMappingURL=payrollHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payrollHelpers.js","sources":["../../../../src/components/Payroll/PayrollBlocker/payrollHelpers.ts"],"sourcesContent":["import { PayrollBlockersError } from '@gusto/embedded-api/models/errors/payrollblockerserror'\nimport { UnprocessableEntityErrorObject1 } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject1'\n\nfunction hasMetadataKey(metadata: unknown): metadata is { key: string } {\n return (\n typeof metadata === 'object' &&\n metadata !== null &&\n 'key' in metadata &&\n typeof (metadata as { key: unknown }).key === 'string'\n )\n}\n\nexport interface ApiPayrollBlocker {\n key: string\n message?: string\n}\n\nexport function isPayrollBlockersError(error: unknown): error is PayrollBlockersError {\n return error instanceof PayrollBlockersError\n}\n\nexport function isUnprocessableEntityWithPayrollBlockers(\n error: unknown,\n): error is UnprocessableEntityErrorObject1 {\n return (\n error instanceof UnprocessableEntityErrorObject1 &&\n Array.isArray(error.errors) &&\n error.errors.some(err => err.category === 'payroll_blocker')\n )\n}\n\nexport function parsePayrollBlockersFromError(error: unknown): ApiPayrollBlocker[] {\n // Handle PayrollBlockersError (dedicated blocker error type)\n if (isPayrollBlockersError(error)) {\n if (!error.errors || error.errors.length === 0) {\n return []\n }\n\n const blockers = error.errors.map(err => {\n const key = hasMetadataKey(err.metadata) ? err.metadata.key : err.errorKey || 'unknown'\n\n return { key, message: err.message }\n })\n\n return blockers\n }\n\n // Handle UnprocessableEntityErrorObject1 with payroll blockers\n if (isUnprocessableEntityWithPayrollBlockers(error)) {\n const blockers = error.errors\n .filter(err => err.category === 'payroll_blocker')\n .map(err => {\n const key = hasMetadataKey(err.metadata) ? err.metadata.key : err.errorKey || 'unknown'\n\n return { key, message: err.message }\n })\n\n return blockers\n }\n\n return []\n}\n\ntype PayrollBlockerError = PayrollBlockersError | UnprocessableEntityErrorObject1\n\nconst hasPayrollBlockers = (error: unknown): error is PayrollBlockerError => {\n if (error instanceof PayrollBlockersError) {\n return true\n }\n if (error instanceof UnprocessableEntityErrorObject1) {\n return (\n Array.isArray(error.errors) && error.errors.some(err => err.category === 'payroll_blocker')\n )\n }\n return false\n}\n\nexport interface PayrollSubmitResult {\n success: boolean\n blockers: ApiPayrollBlocker[]\n}\n\n/**\n * Direct submit handler for payroll operations that handles payroll blockers\n * Returns blockers if found, otherwise throws the error for caller to handle\n */\nexport const payrollSubmitHandler = async (\n payrollHandler: () => Promise<void>,\n): Promise<PayrollSubmitResult> => {\n try {\n await payrollHandler()\n return { success: true, blockers: [] }\n } catch (error: unknown) {\n if (hasPayrollBlockers(error)) {\n const blockers = parsePayrollBlockersFromError(error)\n return { success: false, blockers }\n }\n\n // For non-payroll errors, re-throw\n throw error\n }\n}\n\n/**\n * Get translation keys for a blocker - use these in components with useTranslation\n */\nexport function getBlockerTranslationKeys(key: string) {\n return {\n titleKey: `PayrollBlocker:blockers.${key}.title`,\n descriptionKey: `PayrollBlocker:blockers.${key}.description`,\n helpTextKey: `PayrollBlocker:blockers.${key}.helpText`,\n defaultActionKey: `PayrollBlocker:blockers.${key}.defaultAction`,\n }\n}\n"],"names":["hasMetadataKey","metadata","isPayrollBlockersError","error","PayrollBlockersError","isUnprocessableEntityWithPayrollBlockers","UnprocessableEntityErrorObject1","err","parsePayrollBlockersFromError","hasPayrollBlockers","payrollSubmitHandler","payrollHandler","getBlockerTranslationKeys","key"],"mappings":";;AAGA,SAASA,EAAeC,GAAgD;AACtE,SACE,OAAOA,KAAa,YACpBA,MAAa,QACb,SAASA,KACT,OAAQA,EAA8B,OAAQ;AAElD;AAOO,SAASC,EAAuBC,GAA+C;AACpF,SAAOA,aAAiBC;AAC1B;AAEO,SAASC,EACdF,GAC0C;AAC1C,SACEA,aAAiBG,KACjB,MAAM,QAAQH,EAAM,MAAM,KAC1BA,EAAM,OAAO,KAAK,CAAAI,MAAOA,EAAI,aAAa,iBAAiB;AAE/D;AAEO,SAASC,EAA8BL,GAAqC;AAEjF,SAAID,EAAuBC,CAAK,IAC1B,CAACA,EAAM,UAAUA,EAAM,OAAO,WAAW,IACpC,CAAA,IAGQA,EAAM,OAAO,IAAI,CAAAI,OAGzB,EAAE,KAFGP,EAAeO,EAAI,QAAQ,IAAIA,EAAI,SAAS,MAAMA,EAAI,YAAY,WAEhE,SAASA,EAAI,QAAA,EAC5B,IAMCF,EAAyCF,CAAK,IAC/BA,EAAM,OACpB,OAAO,CAAAI,MAAOA,EAAI,aAAa,iBAAiB,EAChD,IAAI,CAAAA,OAGI,EAAE,KAFGP,EAAeO,EAAI,QAAQ,IAAIA,EAAI,SAAS,MAAMA,EAAI,YAAY,WAEhE,SAASA,EAAI,QAAA,EAC5B,IAKE,CAAA;AACT;AAIA,MAAME,IAAqB,CAACN,MACtBA,aAAiBC,IACZ,KAELD,aAAiBG,IAEjB,MAAM,QAAQH,EAAM,MAAM,KAAKA,EAAM,OAAO,KAAK,CAAAI,MAAOA,EAAI,aAAa,iBAAiB,IAGvF,IAYIG,IAAuB,OAClCC,MACiC;AACjC,MAAI;AACF,iBAAMA,EAAA,GACC,EAAE,SAAS,IAAM,UAAU,CAAA,EAAC;AAAA,EACrC,SAASR,GAAgB;AACvB,QAAIM,EAAmBN,CAAK;AAE1B,aAAO,EAAE,SAAS,IAAO,UADRK,EAA8BL,CAAK,EAC3B;AAI3B,UAAMA;AAAA,EACR;AACF;AAKO,SAASS,EAA0BC,GAAa;AACrD,SAAO;AAAA,IACL,UAAU,2BAA2BA,CAAG;AAAA,IACxC,gBAAgB,2BAA2BA,CAAG;AAAA,IAC9C,aAAa,2BAA2BA,CAAG;AAAA,IAC3C,kBAAkB,2BAA2BA,CAAG;AAAA,EAAA;AAEpD;"}
@@ -1,80 +1,122 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { useEffect as h } from "react";
3
- import { useEmployeesListSuspense as D } from "@gusto/embedded-api/react-query/employeesList";
4
- import { usePayrollsGetSuspense as S } from "@gusto/embedded-api/react-query/payrollsGet";
5
- import { usePayrollsCalculateMutation as A } from "@gusto/embedded-api/react-query/payrollsCalculate";
6
- import { PayrollProcessingRequestStatus as c } from "@gusto/embedded-api/models/components/payrollprocessingrequest";
7
- import { useTranslation as E } from "react-i18next";
8
- import { usePreparedPayrollData as _ } from "../usePreparedPayrollData.js";
9
- import { PayrollConfigurationPresentation as O } from "./PayrollConfigurationPresentation.js";
10
- import { BaseComponent as q } from "../../Base/Base.js";
11
- import { useBase as w } from "../../Base/useBase.js";
12
- import { componentEvents as i } from "../../../shared/constants.js";
13
- import { useComponentDictionary as B, useI18n as U } from "../../../i18n/I18n.js";
14
- const u = (o) => o?.payrollShow?.processingRequest?.status === c.Calculating, Y = (o) => o?.payrollShow?.processingRequest?.status === c.CalculateSuccess;
15
- function Q(o) {
16
- return /* @__PURE__ */ a(q, { ...o, children: /* @__PURE__ */ a(x, { ...o, children: o.children }) });
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { useState as f, useEffect as N } from "react";
3
+ import { useEmployeesListSuspense as b } from "@gusto/embedded-api/react-query/employeesList";
4
+ import { usePayrollsGetSuspense as x } from "@gusto/embedded-api/react-query/payrollsGet";
5
+ import { usePayrollsCalculateMutation as B } from "@gusto/embedded-api/react-query/payrollsCalculate";
6
+ import { PayrollProcessingRequestStatus as p } from "@gusto/embedded-api/models/components/payrollprocessingrequest";
7
+ import { useTranslation as k } from "react-i18next";
8
+ import { usePayrollsUpdateMutation as T } from "@gusto/embedded-api/react-query/payrollsUpdate";
9
+ import { usePreparedPayrollData as H } from "../usePreparedPayrollData.js";
10
+ import { payrollSubmitHandler as M } from "../PayrollBlocker/payrollHelpers.js";
11
+ import { PayrollConfigurationPresentation as V } from "./PayrollConfigurationPresentation.js";
12
+ import { BaseComponent as F } from "../../Base/Base.js";
13
+ import { componentEvents as a } from "../../../shared/constants.js";
14
+ import { useComponentDictionary as G, useI18n as K } from "../../../i18n/I18n.js";
15
+ import { useBase as j } from "../../Base/useBase.js";
16
+ const I = (e) => e?.status === p.Calculating, W = (e) => e?.status === p.CalculateSuccess;
17
+ function ce(e) {
18
+ return /* @__PURE__ */ m(F, { ...e, children: /* @__PURE__ */ m(z, { ...e, children: e.children }) });
17
19
  }
18
- const x = ({
19
- onEvent: o,
20
- companyId: t,
21
- payrollId: e,
22
- dictionary: m,
23
- alerts: p
20
+ const z = ({
21
+ onEvent: e,
22
+ companyId: l,
23
+ payrollId: s,
24
+ dictionary: d,
25
+ alerts: g
24
26
  }) => {
25
- B("Payroll.PayrollConfiguration", m), U("Payroll.PayrollConfiguration");
26
- const { t: n } = E("Payroll.PayrollConfiguration"), { LoadingIndicator: f } = w(), { data: r } = S(
27
+ G("Payroll.PayrollConfiguration", d), K("Payroll.PayrollConfiguration");
28
+ const { t: P } = k("Payroll.PayrollConfiguration"), { baseSubmitHandler: y } = j(), [t, n] = f(!1), [L, c] = f([]), { data: C } = b({
29
+ companyId: l
30
+ }), { data: r } = x(
27
31
  {
28
- companyId: t,
29
- payrollId: e,
32
+ companyId: l,
33
+ payrollId: s,
30
34
  include: ["taxes", "benefits", "deductions"]
31
35
  },
32
- {
33
- refetchInterval: (l) => u(l.state.data) ? 5e3 : !1
34
- }
35
- ), { data: y } = D({
36
- companyId: t
37
- }), { mutateAsync: P } = A(), {
38
- preparedPayroll: s,
39
- paySchedule: C,
40
- isLoading: d
41
- } = _({
42
- companyId: t,
43
- payrollId: e
44
- }), g = () => {
45
- o(i.RUN_PAYROLL_BACK);
46
- }, L = async () => {
47
- await P({
48
- request: {
49
- companyId: t,
50
- payrollId: e
51
- }
36
+ { refetchInterval: t ? 5e3 : !1 }
37
+ ), { mutateAsync: R } = B(), { mutateAsync: S, isPending: _ } = T(), {
38
+ preparedPayroll: u,
39
+ paySchedule: E,
40
+ isLoading: A,
41
+ handlePreparePayroll: w
42
+ } = H({
43
+ companyId: l,
44
+ payrollId: s
45
+ }), O = async () => {
46
+ c([]), await y({}, async () => {
47
+ const o = await M(async () => {
48
+ await R({
49
+ request: {
50
+ companyId: l,
51
+ payrollId: s
52
+ }
53
+ }), n(!0);
54
+ });
55
+ !o.success && o.blockers.length > 0 && c(o.blockers);
52
56
  });
53
- }, R = (l) => {
54
- o(i.RUN_PAYROLL_EMPLOYEE_EDIT, { employeeId: l.uuid });
55
- };
56
- return h(() => {
57
- Y(r) && o(i.RUN_PAYROLL_CALCULATED, {
58
- payrollId: e,
59
- alert: { type: "success", title: n("alerts.progressSaved") }
57
+ }, h = (o) => {
58
+ e(a.RUN_PAYROLL_EMPLOYEE_EDIT, { employeeId: o.uuid });
59
+ }, U = ({
60
+ paymentMethod: o,
61
+ ...i
62
+ }) => ({
63
+ ...i,
64
+ ...o && o !== "Historical" ? { paymentMethod: o } : {},
65
+ memo: i.memo || void 0
66
+ }), D = async (o) => {
67
+ e(a.RUN_PAYROLL_EMPLOYEE_SKIP, {
68
+ employeeId: o.employeeUuid
69
+ }), await y({}, async () => {
70
+ const i = U(o), q = await S({
71
+ request: {
72
+ companyId: l,
73
+ payrollId: s,
74
+ payrollUpdate: {
75
+ employeeCompensations: [
76
+ { ...i, excluded: !i.excluded }
77
+ ]
78
+ }
79
+ }
80
+ });
81
+ e(a.RUN_PAYROLL_EMPLOYEE_SAVED, {
82
+ payrollPrepared: q.payrollPrepared
83
+ }), await w();
60
84
  });
61
- }, [r, o, e, n]), d || u(r) ? /* @__PURE__ */ a(f, {}) : /* @__PURE__ */ a(
62
- O,
85
+ }, Y = () => {
86
+ e(a.RUN_PAYROLL_BLOCKERS_VIEW_ALL);
87
+ };
88
+ return N(() => {
89
+ I(r.payrollShow?.processingRequest) && !t && n(!0), t && W(r.payrollShow?.processingRequest) && (e(a.RUN_PAYROLL_CALCULATED, {
90
+ payrollId: s,
91
+ alert: { type: "success", title: P("alerts.progressSaved") }
92
+ }), c([]), n(!1)), t && r.payrollShow?.processingRequest?.status === p.ProcessingFailed && (e(a.RUN_PAYROLL_PROCESSING_FAILED), n(!1));
93
+ }, [
94
+ r.payrollShow?.processingRequest,
95
+ t,
96
+ e,
97
+ P,
98
+ s,
99
+ r.payrollShow?.calculatedAt
100
+ ]), /* @__PURE__ */ m(
101
+ V,
63
102
  {
64
- onBack: g,
65
- onCalculatePayroll: L,
66
- onEdit: R,
67
- employeeCompensations: s?.employeeCompensations || [],
68
- employeeDetails: y.showEmployees || [],
69
- payPeriod: s?.payPeriod,
70
- paySchedule: C,
71
- isOffCycle: s?.offCycle,
72
- alerts: p
103
+ onCalculatePayroll: O,
104
+ onEdit: h,
105
+ onToggleExclude: D,
106
+ onViewBlockers: Y,
107
+ employeeCompensations: u?.employeeCompensations || [],
108
+ employeeDetails: C.showEmployees || [],
109
+ payPeriod: u?.payPeriod,
110
+ paySchedule: E,
111
+ isOffCycle: u?.offCycle,
112
+ alerts: g,
113
+ isPending: t || A || _,
114
+ payrollBlockers: L
73
115
  }
74
116
  );
75
117
  };
76
118
  export {
77
- Q as PayrollConfiguration,
78
- x as Root
119
+ ce as PayrollConfiguration,
120
+ z as Root
79
121
  };
80
122
  //# sourceMappingURL=PayrollConfiguration.js.map