@gusto/embedded-react-sdk 0.55.8 → 0.56.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 (211) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  3. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js +43 -42
  4. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js.map +1 -1
  5. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  6. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  7. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  8. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  9. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  10. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  11. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  12. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  13. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  14. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  15. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  16. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  17. package/dist/components/Company/Industry/Context.js +7 -6
  18. package/dist/components/Company/Industry/Context.js.map +1 -1
  19. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  20. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  21. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  22. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  23. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  24. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  25. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  26. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  27. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  28. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  29. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +4 -3
  30. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  31. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  32. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  33. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +70 -69
  34. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  35. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js +2 -2
  36. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
  37. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +51 -42
  38. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  39. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +29 -26
  40. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
  41. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +2 -2
  42. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  43. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +11 -11
  44. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  45. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +3 -3
  46. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
  47. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +76 -79
  48. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  49. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +2 -2
  50. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  51. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +2 -2
  52. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  53. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +10 -10
  54. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  55. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +49 -45
  56. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  57. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
  58. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +24 -18
  59. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  60. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js +39 -21
  61. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
  62. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +98 -88
  63. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  64. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +64 -60
  65. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  66. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +12 -12
  67. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  68. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +40 -40
  69. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  70. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +205 -185
  71. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  72. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js +48 -34
  73. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js.map +1 -1
  74. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +13 -16
  75. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  76. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
  77. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  78. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +138 -110
  79. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
  80. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +149 -146
  81. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  82. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  83. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +4 -0
  84. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  85. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  86. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +22 -35
  87. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  88. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +185 -171
  89. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  90. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js +45 -34
  91. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js.map +1 -1
  92. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +44 -44
  93. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  94. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +14 -14
  95. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +16 -16
  96. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -1
  97. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +52 -37
  98. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
  99. package/dist/components/Payroll/Transition/TransitionFlow.js +49 -36
  100. package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
  101. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +24 -47
  102. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  103. package/dist/components/Payroll/Transition/transitionStateMachine.js +35 -40
  104. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
  105. package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js +48 -0
  106. package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js.map +1 -0
  107. package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js +35 -0
  108. package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js.map +1 -0
  109. package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js +23 -0
  110. package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js.map +1 -0
  111. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +32 -0
  112. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -0
  113. package/dist/components/Payroll/index.js +7 -5
  114. package/dist/components/Payroll/index.js.map +1 -1
  115. package/dist/components/Payroll/usePreparedPayrollData.js +9 -8
  116. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  117. package/dist/contexts/ApiProvider/ApiProvider.js +29 -28
  118. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  119. package/dist/contexts/ApiProvider/apiVersionMismatchHook.js +15 -0
  120. package/dist/contexts/ApiProvider/apiVersionMismatchHook.js.map +1 -0
  121. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  122. package/dist/contexts/ThemeProvider/ThemeProvider.js +32 -26
  123. package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
  124. package/dist/hooks/usePollingTask/usePollingTask.js +53 -41
  125. package/dist/hooks/usePollingTask/usePollingTask.js.map +1 -1
  126. package/dist/i18n/I18n.js +9 -4
  127. package/dist/i18n/I18n.js.map +1 -1
  128. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +28 -24
  129. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  130. package/dist/i18n/en/Payroll.GrossUpModal.json.js +12 -10
  131. package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -1
  132. package/dist/i18n/en/Payroll.PayrollBlocker.json.js +10 -8
  133. package/dist/i18n/en/Payroll.PayrollBlocker.json.js.map +1 -1
  134. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +8 -8
  135. package/dist/i18n/en/Payroll.PayrollOverview.json.js +15 -15
  136. package/dist/i18n/es_US/Company.StateTaxes.json.js +1 -1
  137. package/dist/i18n/es_US/Contractor.ContractorList.json.js +14 -12
  138. package/dist/i18n/es_US/Contractor.ContractorList.json.js.map +1 -1
  139. package/dist/i18n/es_US/Contractor.Management.Compensation.json.js +4 -4
  140. package/dist/i18n/es_US/Contractor.Management.Profile.json.js +4 -4
  141. package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js +40 -38
  142. package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js.map +1 -1
  143. package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js +18 -16
  144. package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js.map +1 -1
  145. package/dist/i18n/es_US/Contractor.Profile.json.js +5 -5
  146. package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js +11 -9
  147. package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js.map +1 -1
  148. package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js +2 -2
  149. package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js +6 -6
  150. package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js +15 -15
  151. package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js +28 -26
  152. package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js.map +1 -1
  153. package/dist/i18n/es_US/Payroll.PayrollOverview.json.js +40 -38
  154. package/dist/i18n/es_US/Payroll.PayrollOverview.json.js.map +1 -1
  155. package/dist/i18n/es_US/Payroll.PrintChecksBanner.json.js +14 -0
  156. package/dist/i18n/es_US/Payroll.PrintChecksBanner.json.js.map +1 -0
  157. package/dist/i18n/es_US/Payroll.PrintChecksFailure.json.js +12 -0
  158. package/dist/i18n/es_US/Payroll.PrintChecksFailure.json.js.map +1 -0
  159. package/dist/i18n/es_US/Payroll.PrintChecksForm.json.js +26 -0
  160. package/dist/i18n/es_US/Payroll.PrintChecksForm.json.js.map +1 -0
  161. package/dist/i18n/es_US/Payroll.PrintChecksSummary.json.js +14 -0
  162. package/dist/i18n/es_US/Payroll.PrintChecksSummary.json.js.map +1 -0
  163. package/dist/i18n/es_US/Payroll.UNSTABLE_PayrollEditEmployee.json.js +78 -0
  164. package/dist/i18n/es_US/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -0
  165. package/dist/i18n/es_US/common.json.js +1 -1
  166. package/dist/package.json.js +1 -1
  167. package/dist/shared/constants.js +21 -20
  168. package/dist/shared/constants.js.map +1 -1
  169. package/dist/src/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +1 -1
  170. package/dist/src/components/Common/UI/DatePicker/DatePickerTypes.d.ts +2 -1
  171. package/dist/src/components/Common/UI/Menu/MenuTypes.d.ts +1 -1
  172. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.d.ts +1 -1
  173. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +5 -0
  174. package/dist/src/components/Common/UI/Select/SelectTypes.d.ts +2 -1
  175. package/dist/src/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +7 -2
  176. package/dist/src/components/Employee/EmployeeListFlow/employeeListStateMachine.test.d.ts +1 -0
  177. package/dist/src/components/Payroll/OffCycle/OffCycleFlow.d.ts +2 -0
  178. package/dist/src/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +2 -0
  179. package/dist/src/components/Payroll/OffCycle/offCycleStateMachine.d.ts +1 -0
  180. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +1 -0
  181. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
  182. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +11 -0
  183. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +1 -1
  184. package/dist/src/components/Payroll/PayrollConfiguration/useCalculationPoll.d.ts +6 -1
  185. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +18 -0
  186. package/dist/src/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +1 -1
  187. package/dist/src/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +8 -0
  188. package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -1
  189. package/dist/src/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +6 -1
  190. package/dist/src/components/Payroll/PayrollOverview/useSubmissionPoll.d.ts +10 -1
  191. package/dist/src/components/Payroll/Transition/TransitionFlow.d.ts +17 -15
  192. package/dist/src/components/Payroll/Transition/TransitionFlowComponents.d.ts +21 -12
  193. package/dist/src/components/Payroll/Transition/transitionStateMachine.d.ts +25 -4
  194. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayroll.d.ts +55 -0
  195. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollComponents.d.ts +24 -0
  196. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollTypes.d.ts +23 -0
  197. package/dist/src/components/Payroll/TransitionPayroll/index.d.ts +2 -0
  198. package/dist/src/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.d.ts +15 -0
  199. package/dist/src/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.d.ts +28 -0
  200. package/dist/src/components/Payroll/index.d.ts +2 -0
  201. package/dist/src/contexts/ApiProvider/ApiProvider.d.ts +5 -3
  202. package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.d.ts +3 -0
  203. package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.test.d.ts +1 -0
  204. package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +9 -1
  205. package/dist/src/contexts/ThemeProvider/ThemeProvider.d.ts +8 -3
  206. package/dist/src/hooks/usePollingTask/usePollingTask.d.ts +55 -14
  207. package/dist/src/i18n/types.d.ts +20 -0
  208. package/dist/src/shared/constants.d.ts +2 -0
  209. package/dist/style.css +1 -1
  210. package/docs/guides/endpoint-inventory.json +19 -19
  211. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { useRecoveryCasesGetSuspense } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport { InformationRequestStatus } from '@gusto/embedded-api/models/components/informationrequest'\nimport { getBlockerTranslationKeys } from '../payrollHelpers'\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 { useComponentDictionary, useI18n } from '@/i18n'\nimport { RecoveryCases } from '@/components/Payroll/RecoveryCases'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { informationRequestEvents, recoveryCasesEvents, type EventType } from '@/shared/constants'\n\ntype ResponseAlertType = 'recoveryCaseResubmitted' | 'informationRequestResponded'\n\ninterface ResponseAlert {\n id: number\n type: ResponseAlertType\n}\n\ninterface ResponseAlertState {\n id: number\n alerts: ResponseAlert[]\n}\n\ninterface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\n/**\n * Props for {@link PayrollBlockerList}.\n *\n * @public\n */\nexport interface PayrollBlockerListProps extends BaseComponentInterface<'Payroll.PayrollBlocker'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays the list of blockers preventing payroll from being processed for a company.\n *\n * @remarks\n * Blockers indicate issues that must be resolved before a payroll can be calculated or\n * submitted, such as missing employee information, invalid tax setups, or incomplete\n * company configuration. The component also renders open recovery cases and outstanding\n * information requests for the company when present, and re-emits any events those\n * embedded surfaces fire through `onEvent`.\n *\n * @param props - {@link PayrollBlockerListProps}\n * @returns The rendered blocker list.\n * @public\n */\nexport function PayrollBlockerList(props: PayrollBlockerListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, companyId, dictionary, onEvent }: PayrollBlockerListProps) {\n useComponentDictionary('Payroll.PayrollBlocker', dictionary)\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n const { Button, Text, Heading, Alert } = useComponentContext()\n\n const [alertState, setAlertState] = useState<ResponseAlertState>({\n id: 0,\n alerts: [],\n })\n\n const handleDismissAlert = useCallback((alertId: number) => {\n setAlertState(prev => ({\n ...prev,\n alerts: prev.alerts.filter(alert => alert.id !== alertId),\n }))\n }, [])\n\n const addAlert = useCallback((alertType: ResponseAlertType) => {\n setAlertState(prev => ({\n id: prev.id + 1,\n alerts: [{ id: prev.id, type: alertType }, ...prev.alerts],\n }))\n }, [])\n\n const handleEvent = useCallback(\n (type: EventType, data?: unknown) => {\n if (type === recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_DONE) {\n addAlert('recoveryCaseResubmitted')\n }\n\n if (type === informationRequestEvents.INFORMATION_REQUEST_FORM_DONE) {\n addAlert('informationRequestResponded')\n }\n\n onEvent(type, data)\n },\n [onEvent, addAlert],\n )\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const { data: recoveryCasesData } = useRecoveryCasesGetSuspense({\n companyUuid: companyId,\n })\n\n const { data: informationRequestsData } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = blockersData.payrollBlockers ?? []\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blockerKey\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, (letter: string) => 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 const recoveryCases = recoveryCasesData.recoveryCases ?? []\n const informationRequests = informationRequestsData.informationRequests ?? []\n\n const hasUnrecoveredCases = recoveryCases.some(\n recoveryCase => recoveryCase.status !== 'recovered',\n )\n\n const hasInformationRequests = informationRequests.some(\n request => request.status !== InformationRequestStatus.Approved,\n )\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 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 const hasBlockers = blockers.length > 0\n const hasAnyContent = hasBlockers || hasUnrecoveredCases || hasInformationRequests\n\n if (!hasAnyContent) {\n return (\n <div className={classNames(styles.root, className)}>\n <Text>{t('noBlockersMessage')}</Text>\n </div>\n )\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={32}>\n {alertState.alerts.map(alert => (\n <Alert\n key={alert.id}\n status=\"success\"\n label={t(`alerts.${alert.type}.title`)}\n onDismiss={() => {\n handleDismissAlert(alert.id)\n }}\n >\n <Text>{t(`alerts.${alert.type}.description`)}</Text>\n </Alert>\n ))}\n\n {hasBlockers && (\n <Flex flexDirection=\"column\" gap={20}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n )}\n\n {hasUnrecoveredCases && <RecoveryCases companyId={companyId} onEvent={handleEvent} />}\n\n {hasInformationRequests && (\n <InformationRequestsFlow companyId={companyId} withAlert={false} onEvent={handleEvent} />\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","props","jsx","BaseComponent","Root","className","companyId","dictionary","onEvent","useComponentDictionary","useI18n","t","useTranslation","Button","Text","Heading","Alert","useComponentContext","alertState","setAlertState","useState","handleDismissAlert","useCallback","alertId","prev","alert","addAlert","alertType","handleEvent","type","data","recoveryCasesEvents","informationRequestEvents","blockersData","usePayrollsGetBlockersSuspense","recoveryCasesData","useRecoveryCasesGetSuspense","informationRequestsData","useInformationRequestsGetInformationRequestsSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","letter","description","recoveryCases","informationRequests","hasUnrecoveredCases","recoveryCase","hasInformationRequests","request","InformationRequestStatus","dataViewProps","useDataView","FlexItem","jsxs","Flex","action","hasBlockers","classNames","styles","DataView","RecoveryCases","InformationRequestsFlow"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { useRecoveryCasesGetSuspense } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport { InformationRequestStatus } from '@gusto/embedded-api/models/components/informationrequest'\nimport { getBlockerTranslationKeys } from '../payrollHelpers'\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 { useComponentDictionary, useI18n } from '@/i18n'\nimport { RecoveryCases } from '@/components/Payroll/RecoveryCases'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { informationRequestEvents, recoveryCasesEvents, type EventType } from '@/shared/constants'\n\ntype ResponseAlertType = 'recoveryCaseResubmitted' | 'informationRequestResponded'\n\ninterface ResponseAlert {\n id: number\n type: ResponseAlertType\n}\n\ninterface ResponseAlertState {\n id: number\n alerts: ResponseAlert[]\n}\n\ninterface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\n/**\n * Props for {@link PayrollBlockerList}.\n *\n * @public\n */\nexport interface PayrollBlockerListProps extends BaseComponentInterface<'Payroll.PayrollBlocker'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays the list of blockers preventing payroll from being processed for a company.\n *\n * @remarks\n * Blockers indicate issues that must be resolved before a payroll can be calculated or\n * submitted, such as missing employee information, invalid tax setups, or incomplete\n * company configuration. The component also renders open recovery cases and outstanding\n * information requests for the company when present, and re-emits any events those\n * embedded surfaces fire through `onEvent`.\n *\n * @param props - {@link PayrollBlockerListProps}\n * @returns The rendered blocker list.\n * @public\n */\nexport function PayrollBlockerList(props: PayrollBlockerListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, companyId, dictionary, onEvent }: PayrollBlockerListProps) {\n useComponentDictionary('Payroll.PayrollBlocker', dictionary)\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n const { Button, Text, Heading, Alert } = useComponentContext()\n\n const [alertState, setAlertState] = useState<ResponseAlertState>({\n id: 0,\n alerts: [],\n })\n\n const handleDismissAlert = useCallback((alertId: number) => {\n setAlertState(prev => ({\n ...prev,\n alerts: prev.alerts.filter(alert => alert.id !== alertId),\n }))\n }, [])\n\n const addAlert = useCallback((alertType: ResponseAlertType) => {\n setAlertState(prev => ({\n id: prev.id + 1,\n alerts: [{ id: prev.id, type: alertType }, ...prev.alerts],\n }))\n }, [])\n\n const handleEvent = useCallback(\n (type: EventType, data?: unknown) => {\n if (type === recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_DONE) {\n addAlert('recoveryCaseResubmitted')\n }\n\n if (type === informationRequestEvents.INFORMATION_REQUEST_FORM_DONE) {\n addAlert('informationRequestResponded')\n }\n\n onEvent(type, data)\n },\n [onEvent, addAlert],\n )\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const { data: recoveryCasesData } = useRecoveryCasesGetSuspense({\n companyUuid: companyId,\n })\n\n const { data: informationRequestsData } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = blockersData.payrollBlockers ?? []\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: t('genericBlockerTitle'),\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 const recoveryCases = recoveryCasesData.recoveryCases ?? []\n const informationRequests = informationRequestsData.informationRequests ?? []\n\n const hasUnrecoveredCases = recoveryCases.some(\n recoveryCase => recoveryCase.status !== 'recovered',\n )\n\n const hasInformationRequests = informationRequests.some(\n request => request.status !== InformationRequestStatus.Approved,\n )\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 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 const hasBlockers = blockers.length > 0\n const hasAnyContent = hasBlockers || hasUnrecoveredCases || hasInformationRequests\n\n if (!hasAnyContent) {\n return (\n <div className={classNames(styles.root, className)}>\n <Text>{t('noBlockersMessage')}</Text>\n </div>\n )\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={32}>\n {alertState.alerts.map(alert => (\n <Alert\n key={alert.id}\n status=\"success\"\n label={t(`alerts.${alert.type}.title`)}\n onDismiss={() => {\n handleDismissAlert(alert.id)\n }}\n >\n <Text>{t(`alerts.${alert.type}.description`)}</Text>\n </Alert>\n ))}\n\n {hasBlockers && (\n <Flex flexDirection=\"column\" gap={20}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n )}\n\n {hasUnrecoveredCases && <RecoveryCases companyId={companyId} onEvent={handleEvent} />}\n\n {hasInformationRequests && (\n <InformationRequestsFlow companyId={companyId} withAlert={false} onEvent={handleEvent} />\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","props","jsx","BaseComponent","Root","className","companyId","dictionary","onEvent","useComponentDictionary","useI18n","t","useTranslation","Button","Text","Heading","Alert","useComponentContext","alertState","setAlertState","useState","handleDismissAlert","useCallback","alertId","prev","alert","addAlert","alertType","handleEvent","type","data","recoveryCasesEvents","informationRequestEvents","blockersData","usePayrollsGetBlockersSuspense","recoveryCasesData","useRecoveryCasesGetSuspense","informationRequestsData","useInformationRequestsGetInformationRequestsSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","description","recoveryCases","informationRequests","hasUnrecoveredCases","recoveryCase","hasInformationRequests","request","InformationRequestStatus","dataViewProps","useDataView","FlexItem","jsxs","Flex","action","hasBlockers","classNames","styles","DataView","RecoveryCases","InformationRequestsFlow"],"mappings":"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"}
@@ -1,122 +1,134 @@
1
- import { jsx as d, jsxs as Ue, Fragment as he } from "react/jsx-runtime";
2
- import { useState as P, useRef as j, useMemo as _, useEffect as v } from "react";
3
- import { usePayrollsGetSuspense as ge } from "@gusto/embedded-api/react-query/payrollsGet";
4
- import { payrollsCalculate as Le } from "@gusto/embedded-api/funcs/payrollsCalculate";
5
- import { useGustoEmbeddedContext as Se } from "@gusto/embedded-api/react-query/_context";
6
- import { useTranslation as we } from "react-i18next";
7
- import { usePayrollsUpdateMutation as Ae } from "@gusto/embedded-api/react-query/payrollsUpdate";
8
- import { usePayrollsCalculateGrossUpMutation as Re } from "@gusto/embedded-api/react-query/payrollsCalculateGrossUp";
9
- import { usePayrollsGetBlockersSuspense as _e } from "@gusto/embedded-api/react-query/payrollsGetBlockers";
10
- import { payrollSubmitHandler as De } from "../PayrollBlocker/payrollHelpers.js";
11
- import { PayrollOverview as Ee } from "../PayrollOverview/PayrollOverview.js";
12
- import { PayrollConfigurationPresentation as Oe } from "./PayrollConfigurationPresentation.js";
13
- import { usePayrollConfigurationData as be } from "./usePayrollConfigurationData.js";
14
- import { isGrossUpEligible as xe, getGrossUpTargetCompensationName as ke } from "./grossUpHelpers.js";
15
- import { isCalculatingStatus as F, useCalculationPoll as Te } from "./useCalculationPoll.js";
16
- import { BaseComponent as Ge } from "../../Base/Base.js";
1
+ import { jsx as y, jsxs as we, Fragment as Re } from "react/jsx-runtime";
2
+ import { useState as d, useRef as O, useMemo as b, useEffect as H } from "react";
3
+ import { usePayrollsGetSuspense as Ee } from "@gusto/embedded-api/react-query/payrollsGet";
4
+ import { payrollsCalculate as _e } from "@gusto/embedded-api/funcs/payrollsCalculate";
5
+ import { useGustoEmbeddedContext as De } from "@gusto/embedded-api/react-query/_context";
6
+ import { useTranslation as Oe } from "react-i18next";
7
+ import { usePayrollsUpdateMutation as be } from "@gusto/embedded-api/react-query/payrollsUpdate";
8
+ import { usePayrollsCalculateGrossUpMutation as xe } from "@gusto/embedded-api/react-query/payrollsCalculateGrossUp";
9
+ import { usePayrollsGetBlockersSuspense as Te } from "@gusto/embedded-api/react-query/payrollsGetBlockers";
10
+ import { payrollSubmitHandler as ke } from "../PayrollBlocker/payrollHelpers.js";
11
+ import { PayrollOverview as Ge } from "../PayrollOverview/PayrollOverview.js";
12
+ import { PayrollConfigurationPresentation as Ne } from "./PayrollConfigurationPresentation.js";
13
+ import { usePayrollConfigurationData as Ye } from "./usePayrollConfigurationData.js";
14
+ import { isGrossUpEligible as Fe, getGrossUpTargetCompensationName as Me } from "./grossUpHelpers.js";
15
+ import { isCalculatingStatus as K, useCalculationPoll as Be } from "./useCalculationPoll.js";
16
+ import { BaseComponent as je } from "../../Base/Base.js";
17
17
  import { componentEvents as i } from "../../../shared/constants.js";
18
- import { useComponentDictionary as Ne, useI18n as Ye } from "../../../i18n/I18n.js";
19
- import { useBase as Me } from "../../Base/useBase.js";
20
- import { useDateFormatter as Be } from "../../../hooks/useDateFormatter.js";
21
- import { SDKInternalError as W } from "../../../types/sdkError.js";
22
- import { GrossUpModal as je } from "../GrossUpModal/GrossUpModal.js";
23
- function uo(t) {
24
- return /* @__PURE__ */ d(Ge, { ...t, children: /* @__PURE__ */ d(ve, { ...t, children: t.children }) });
18
+ import { useComponentDictionary as ve, useI18n as We } from "../../../i18n/I18n.js";
19
+ import { useBase as qe } from "../../Base/useBase.js";
20
+ import { useDateFormatter as He } from "../../../hooks/useDateFormatter.js";
21
+ import { SDKInternalError as V } from "../../../types/sdkError.js";
22
+ import { GrossUpModal as Ke } from "../GrossUpModal/GrossUpModal.js";
23
+ function Co(t) {
24
+ return /* @__PURE__ */ y(je, { ...t, children: /* @__PURE__ */ y(Ve, { ...t, children: t.children }) });
25
25
  }
26
- const ve = ({
26
+ const Ve = ({
27
27
  onEvent: t,
28
- companyId: n,
29
- payrollId: l,
30
- dictionary: q,
31
- alerts: K,
32
- withReimbursements: D = !0,
33
- className: E
28
+ companyId: c,
29
+ payrollId: s,
30
+ dictionary: $,
31
+ alerts: J,
32
+ withReimbursements: x = !0,
33
+ className: T
34
34
  }) => {
35
- Ne("Payroll.PayrollConfiguration", q), Ye("Payroll.PayrollConfiguration");
36
- const { t: c } = we("Payroll.PayrollConfiguration"), { baseSubmitHandler: y } = Me(), p = Be(), [O, b] = P(!1), u = j(!1), H = Se(), V = _(
35
+ ve("Payroll.PayrollConfiguration", $), We("Payroll.PayrollConfiguration");
36
+ const { t: n } = Oe("Payroll.PayrollConfiguration"), { baseSubmitHandler: f, setError: P } = qe(), p = He(), [k, G] = d(!1), u = O(!1), h = O(!1), z = De(), Q = b(
37
37
  () => ({
38
- companyId: n,
39
- payrollId: l,
38
+ companyId: c,
39
+ payrollId: s,
40
40
  include: ["taxes", "benefits", "deductions", "payroll_status_meta"]
41
41
  }),
42
- [n, l]
43
- ), { data: s, refetch: J } = ge(V), z = _(
44
- () => s.payrollShow?.employeeCompensations?.filter((e) => e.excluded).map((e) => e.employeeUuid).filter(Boolean) ?? [],
45
- [s.payrollShow?.employeeCompensations]
42
+ [c, s]
43
+ ), { data: l, refetch: X } = Ee(Q), Z = b(
44
+ () => l.payrollShow?.employeeCompensations?.filter((e) => e.excluded).map((e) => e.employeeUuid).filter(Boolean) ?? [],
45
+ [l.payrollShow?.employeeCompensations]
46
46
  );
47
- F(s.payrollShow?.processingRequest) && (u.current = !0);
48
- const { data: Q } = _e({
49
- companyUuid: n
50
- }), x = (Q.payrollBlockers ?? []).map((e) => ({
47
+ K(l.payrollShow?.processingRequest) && (u.current = !0);
48
+ const { data: I } = Te({
49
+ companyUuid: c
50
+ }), N = (I.payrollBlockers ?? []).map((e) => ({
51
51
  key: e.key,
52
52
  message: e.message
53
- })), [X, U] = P(x), { start: h, isPolling: f } = Te({
54
- refetch: J,
53
+ })), [ee, U] = d(N), [oe, L] = d(!1), Y = () => {
54
+ t(i.RUN_PAYROLL_PROCESSING_FAILED), L(!0), P({
55
+ category: "internal_error",
56
+ message: `${n("alerts.processingFailed.label")}. ${n("alerts.processingFailed.message")}`,
57
+ fieldErrors: []
58
+ });
59
+ }, te = (e) => {
60
+ Y(), e?.calculatedAt == null && (u.current = !1);
61
+ }, { start: A, isPolling: C } = Be({
62
+ refetch: X,
55
63
  onCalculated: (e) => {
56
64
  t(i.RUN_PAYROLL_CALCULATED, {
57
- payrollId: l,
65
+ payrollId: s,
58
66
  alert: {
59
67
  type: "success",
60
- title: c("alerts.progressSaved"),
68
+ title: n("alerts.progressSaved"),
61
69
  alertKey: "progressSaved"
62
70
  },
63
71
  payPeriod: e?.payPeriod
64
72
  }), U([]);
65
73
  },
66
- onProcessingFailed: (e) => {
67
- t(i.RUN_PAYROLL_PROCESSING_FAILED), e?.calculatedAt == null && (u.current = !1);
74
+ onProcessingFailed: te,
75
+ // Unlike a real processing failure, we never confirmed whether the calculation actually
76
+ // succeeded server-side, so this must not reset hasSeenCalculatingRef — doing so would
77
+ // re-arm prepare and risk wiping a calculation that may have genuinely completed.
78
+ onError: () => {
79
+ h.current = !0, Y();
68
80
  }
69
- }), k = O || f || u.current, {
70
- employeeDetails: Z,
71
- employeeCompensations: T,
72
- paySchedule: $,
73
- payPeriod: I,
74
- payrollCategory: g,
75
- pagination: ee,
76
- isLoading: oe,
77
- isAlreadyProcessed: L,
78
- refetch: S
79
- } = be({
80
- companyId: n,
81
- payrollId: l,
81
+ }), F = !oe && (k || C || u.current), {
82
+ employeeDetails: ae,
83
+ employeeCompensations: M,
84
+ paySchedule: re,
85
+ payPeriod: se,
86
+ payrollCategory: S,
87
+ pagination: le,
88
+ isLoading: ie,
89
+ isAlreadyProcessed: w,
90
+ refetch: R
91
+ } = Ye({
92
+ companyId: c,
93
+ payrollId: s,
82
94
  // Don't prepare while calculating, or once we've seen it calculate. If the payroll was already
83
95
  // calculated when we opened (e.g. clicking Edit), we do prepare so it can be edited.
84
- disablePrepare: f || O || u.current,
85
- excludedEmployeeUuids: z
86
- }), w = _(
96
+ disablePrepare: C || k || u.current,
97
+ excludedEmployeeUuids: Z
98
+ }), E = b(
87
99
  () => ({
88
100
  type: "error",
89
- title: c("alerts.alreadyProcessed"),
101
+ title: n("alerts.alreadyProcessed"),
90
102
  alertKey: "alreadyProcessed"
91
103
  }),
92
- [c]
93
- ), A = j(!1);
94
- v(() => {
95
- if (!L) {
96
- A.current = !1;
104
+ [n]
105
+ ), _ = O(!1);
106
+ H(() => {
107
+ if (!w) {
108
+ _.current = !1;
97
109
  return;
98
110
  }
99
- A.current || (A.current = !0, t(i.RUN_PAYROLL_ALREADY_PROCESSED, {
100
- payrollId: l,
101
- alert: w,
102
- payPeriod: s.payrollShow?.payPeriod
111
+ _.current || (_.current = !0, t(i.RUN_PAYROLL_ALREADY_PROCESSED, {
112
+ payrollId: s,
113
+ alert: E,
114
+ payPeriod: l.payrollShow?.payPeriod
103
115
  }));
104
116
  }, [
105
- L,
106
- t,
107
- l,
108
117
  w,
109
- s.payrollShow?.payPeriod
118
+ t,
119
+ s,
120
+ E,
121
+ l.payrollShow?.payPeriod
110
122
  ]);
111
- const { mutateAsync: G, isPending: te } = Ae(), { mutateAsync: ae } = Re(), [m, N] = P(null), [re, R] = P(!1), Y = xe(g), C = ke(g), se = (e) => {
112
- N(e), R(!0), t(i.RUN_PAYROLL_GROSS_UP_SELECTED, { employeeUuid: e });
113
- }, le = async (e) => {
123
+ const { mutateAsync: B, isPending: ne } = be(), { mutateAsync: ce } = xe(), [m, j] = d(null), [ue, D] = d(!1), v = Fe(S), g = Me(S), pe = (e) => {
124
+ j(e), D(!0), t(i.RUN_PAYROLL_GROSS_UP_SELECTED, { employeeUuid: e });
125
+ }, me = async (e) => {
114
126
  if (!m) return null;
115
127
  let o = null;
116
- return await y(null, async () => {
117
- o = (await ae({
128
+ return await f(null, async () => {
129
+ o = (await ce({
118
130
  request: {
119
- payrollUuid: l,
131
+ payrollUuid: s,
120
132
  payrollGrossUpRequest: {
121
133
  employeeUuid: m,
122
134
  netPay: e.toString()
@@ -128,92 +140,93 @@ const ve = ({
128
140
  employeeUuid: m
129
141
  });
130
142
  }), o;
131
- }, ie = async (e) => {
132
- if (!m || !C)
133
- throw new W(
143
+ }, de = async (e) => {
144
+ if (!m || !g)
145
+ throw new V(
134
146
  "Unable to apply gross-up: missing employee or target compensation."
135
147
  );
136
- const o = T.find((a) => a.employeeUuid === m);
148
+ const o = M.find((a) => a.employeeUuid === m);
137
149
  if (!o)
138
- throw new W("Unable to apply gross-up: employee compensation not found.");
139
- const r = o.fixedCompensations ?? [], ye = r.some(
140
- (a) => a.name?.toLowerCase() === C.toLowerCase()
141
- ), B = r.map((a) => ({
150
+ throw new V("Unable to apply gross-up: employee compensation not found.");
151
+ const r = o.fixedCompensations ?? [], Ue = r.some(
152
+ (a) => a.name?.toLowerCase() === g.toLowerCase()
153
+ ), q = r.map((a) => ({
142
154
  name: a.name,
143
155
  jobUuid: a.jobUuid,
144
- amount: a.name?.toLowerCase() === C.toLowerCase() ? e : "0"
156
+ amount: a.name?.toLowerCase() === g.toLowerCase() ? e : "0"
145
157
  }));
146
- if (!ye) {
158
+ if (!Ue) {
147
159
  const a = o.hourlyCompensations?.[0]?.jobUuid ?? r[0]?.jobUuid ?? "";
148
- B.push({
149
- name: C,
160
+ q.push({
161
+ name: g,
150
162
  jobUuid: a,
151
163
  amount: e
152
164
  });
153
165
  }
154
- const fe = (o.hourlyCompensations ?? []).map((a) => ({
166
+ const Le = (o.hourlyCompensations ?? []).map((a) => ({
155
167
  name: a.name,
156
168
  jobUuid: a.jobUuid,
157
169
  hours: "0"
158
- })), Ce = (o.paidTimeOff ?? []).map((a) => ({
170
+ })), Ae = (o.paidTimeOff ?? []).map((a) => ({
159
171
  name: a.name,
160
172
  hours: "0"
161
- })), Pe = M({
173
+ })), Se = W({
162
174
  ...o,
163
- fixedCompensations: B,
164
- hourlyCompensations: fe,
165
- paidTimeOff: Ce
175
+ fixedCompensations: q,
176
+ hourlyCompensations: Le,
177
+ paidTimeOff: Ae
166
178
  });
167
- await y({}, async () => {
168
- const a = await G({
179
+ await f({}, async () => {
180
+ const a = await B({
169
181
  request: {
170
- companyId: n,
171
- payrollId: l,
182
+ companyId: c,
183
+ payrollId: s,
172
184
  payrollUpdate: {
173
- employeeCompensations: [{ ...Pe, excluded: !1 }]
185
+ employeeCompensations: [{ ...Se, excluded: !1 }]
174
186
  }
175
187
  }
176
188
  });
177
189
  t(i.RUN_PAYROLL_EMPLOYEE_SAVED, {
178
190
  payrollPrepared: a.payrollPrepared
179
- }), await S();
180
- }), N(null), R(!1);
181
- }, ne = async (e) => {
191
+ }), await R();
192
+ }), j(null), D(!1);
193
+ }, ye = async (e) => {
182
194
  try {
183
- await ie(e);
195
+ await de(e);
184
196
  } catch {
185
197
  }
186
- }, ce = async () => {
187
- U([]), u.current = !0, await y({}, async () => {
188
- const e = await De(async () => {
189
- b(!0);
198
+ }, fe = async () => {
199
+ U([]), L(!1), P(null), u.current = !0, await f({}, async () => {
200
+ const e = await ke(async () => {
201
+ G(!0);
190
202
  try {
191
- const o = await Le(H, {
192
- companyId: n,
193
- payrollId: l
203
+ const o = await _e(z, {
204
+ companyId: c,
205
+ payrollId: s
194
206
  });
195
207
  if (!o.ok)
196
208
  throw o.error;
197
- h({
198
- baselineCalculatedAt: s.payrollShow?.calculatedAt?.getTime() ?? null,
209
+ A({
210
+ baselineCalculatedAt: l.payrollShow?.calculatedAt?.getTime() ?? null,
199
211
  // We just submitted the payroll, so we haven't yet seen it return with the calculating status
200
212
  sawCalculatingThisPoll: !1
201
213
  });
202
214
  } catch (o) {
203
215
  throw u.current = !1, o;
204
216
  } finally {
205
- b(!1);
217
+ G(!1);
206
218
  }
207
219
  });
208
220
  !e.success && e.blockers.length > 0 && U(e.blockers);
209
221
  });
210
- }, ue = (e) => {
222
+ }, Pe = (e) => {
211
223
  t(i.RUN_PAYROLL_EMPLOYEE_EDIT, {
224
+ payrollId: s,
212
225
  employeeId: e.uuid,
213
226
  firstName: e.firstName,
214
227
  lastName: e.lastName
215
228
  });
216
- }, M = (e) => {
229
+ }, W = (e) => {
217
230
  const { paymentMethod: o } = e;
218
231
  return {
219
232
  employeeUuid: e.employeeUuid,
@@ -226,14 +239,14 @@ const ve = ({
226
239
  ...o && o !== "Historical" ? { paymentMethod: o } : {},
227
240
  memo: e.memo || void 0
228
241
  };
229
- }, pe = async (e) => {
242
+ }, Ce = async (e) => {
230
243
  t(i.RUN_PAYROLL_EMPLOYEE_SKIP, {
231
244
  employeeId: e.employeeUuid
232
- }), await y({}, async () => {
233
- const o = M(e), r = await G({
245
+ }), await f({}, async () => {
246
+ const o = W(e), r = await B({
234
247
  request: {
235
- companyId: n,
236
- payrollId: l,
248
+ companyId: c,
249
+ payrollId: s,
237
250
  payrollUpdate: {
238
251
  employeeCompensations: [
239
252
  { ...o, excluded: !o.excluded }
@@ -243,99 +256,106 @@ const ve = ({
243
256
  });
244
257
  t(i.RUN_PAYROLL_EMPLOYEE_SAVED, {
245
258
  payrollPrepared: r.payrollPrepared
246
- }), await S();
259
+ }), await R();
247
260
  });
248
- }, me = () => {
261
+ }, ge = () => {
249
262
  t(i.RUN_PAYROLL_BLOCKERS_VIEW_ALL);
250
263
  };
251
- v(() => {
252
- f || F(s.payrollShow?.processingRequest) && h({
253
- baselineCalculatedAt: s.payrollShow?.calculatedAt?.getTime() ?? null,
254
- // We have seen the calculating status, which is why we're starting to poll now until it completes or fails.
255
- sawCalculatingThisPoll: !0
256
- });
264
+ H(() => {
265
+ if (!C) {
266
+ if (!K(l.payrollShow?.processingRequest)) {
267
+ h.current = !1;
268
+ return;
269
+ }
270
+ h.current || (L(!1), P(null), A({
271
+ baselineCalculatedAt: l.payrollShow?.calculatedAt?.getTime() ?? null,
272
+ // We have seen the calculating status, which is why we're starting to poll now until it completes or fails.
273
+ sawCalculatingThisPoll: !0
274
+ }));
275
+ }
257
276
  }, [
258
- s.payrollShow?.processingRequest,
259
- s.payrollShow?.calculatedAt,
260
- f,
261
- h
277
+ l.payrollShow?.processingRequest,
278
+ l.payrollShow?.calculatedAt,
279
+ C,
280
+ A,
281
+ P
262
282
  ]);
263
- const de = (() => {
264
- const e = s.payrollShow?.payrollStatusMeta;
283
+ const he = (() => {
284
+ const e = l.payrollShow?.payrollStatusMeta;
265
285
  if (e?.payrollLate && e.initialCheckDate && e.expectedDebitTime && e.expectedCheckDate)
266
286
  return {
267
- label: c("alerts.payrollLate", {
287
+ label: n("alerts.payrollLate", {
268
288
  initialCheckDate: p.formatShortWithWeekday(e.initialCheckDate)
269
289
  }),
270
- content: c("alerts.payrollLateText", {
290
+ content: n("alerts.payrollLateText", {
271
291
  ...p.formatWithTime(e.expectedDebitTime),
272
292
  newCheckDate: p.formatShortWithWeekday(e.expectedCheckDate)
273
293
  }),
274
294
  variant: "warning"
275
295
  };
276
- const { payrollShow: r } = s;
296
+ const { payrollShow: r } = l;
277
297
  if (r?.checkDate && r.payrollDeadline)
278
298
  return {
279
- label: c("alerts.directDepositDeadline", {
299
+ label: n("alerts.directDepositDeadline", {
280
300
  payDate: p.formatShortWithWeekday(r.checkDate),
281
301
  ...p.formatWithTime(r.payrollDeadline)
282
302
  }),
283
- content: c("alerts.directDepositDeadlineText"),
303
+ content: n("alerts.directDepositDeadlineText"),
284
304
  variant: "info"
285
305
  };
286
306
  })();
287
- return L ? /* @__PURE__ */ d(
288
- Ee,
307
+ return w ? /* @__PURE__ */ y(
308
+ Ge,
289
309
  {
290
- className: E,
291
- companyId: n,
292
- payrollId: l,
310
+ className: T,
311
+ companyId: c,
312
+ payrollId: s,
293
313
  onEvent: (o, r) => {
294
- o === i.RUN_PAYROLL_CANCELLED && S(), t(o, r);
314
+ o === i.RUN_PAYROLL_CANCELLED && R(), t(o, r);
295
315
  },
296
- withReimbursements: D,
297
- alerts: [w]
316
+ withReimbursements: x,
317
+ alerts: [E]
298
318
  }
299
- ) : /* @__PURE__ */ Ue(he, { children: [
300
- /* @__PURE__ */ d(
301
- Oe,
319
+ ) : /* @__PURE__ */ we(Re, { children: [
320
+ /* @__PURE__ */ y(
321
+ Ne,
302
322
  {
303
- className: E,
304
- onCalculatePayroll: ce,
305
- isCalculateDisabled: x.length > 0,
306
- onEdit: ue,
307
- onToggleExclude: pe,
308
- onViewBlockers: me,
309
- employeeCompensations: T,
310
- employeeDetails: Z,
311
- payPeriod: I,
312
- paySchedule: $,
313
- payrollCategory: g,
314
- alerts: K,
315
- payrollAlert: de,
316
- isPending: k || oe || te,
317
- isCalculating: k,
318
- payrollBlockers: X,
319
- pagination: ee,
320
- withReimbursements: D,
321
- grossUpEnabled: Y,
322
- onGrossUpSelect: se
323
+ className: T,
324
+ onCalculatePayroll: fe,
325
+ isCalculateDisabled: N.length > 0,
326
+ onEdit: Pe,
327
+ onToggleExclude: Ce,
328
+ onViewBlockers: ge,
329
+ employeeCompensations: M,
330
+ employeeDetails: ae,
331
+ payPeriod: se,
332
+ paySchedule: re,
333
+ payrollCategory: S,
334
+ alerts: J,
335
+ payrollAlert: he,
336
+ isPending: F || ie || ne,
337
+ isCalculating: F,
338
+ payrollBlockers: ee,
339
+ pagination: le,
340
+ withReimbursements: x,
341
+ grossUpEnabled: v,
342
+ onGrossUpSelect: pe
323
343
  }
324
344
  ),
325
- Y && /* @__PURE__ */ d(
326
- je,
345
+ v && /* @__PURE__ */ y(
346
+ Ke,
327
347
  {
328
- isOpen: re,
329
- onCalculateGrossUp: le,
330
- onApply: ne,
348
+ isOpen: ue,
349
+ onCalculateGrossUp: me,
350
+ onApply: ye,
331
351
  onCancel: () => {
332
- R(!1);
352
+ D(!1);
333
353
  }
334
354
  }
335
355
  )
336
356
  ] });
337
357
  };
338
358
  export {
339
- uo as PayrollConfiguration
359
+ Co as PayrollConfiguration
340
360
  };
341
361
  //# sourceMappingURL=PayrollConfiguration.js.map