@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.
- package/CHANGELOG.md +56 -0
- package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
- package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js +43 -42
- package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +7 -6
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +4 -3
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +4 -3
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +4 -3
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +70 -69
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js +2 -2
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +51 -42
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +29 -26
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +2 -2
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +11 -11
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +3 -3
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +76 -79
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +2 -2
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +2 -2
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +10 -10
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +49 -45
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +24 -18
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
- package/dist/components/Payroll/OffCycle/offCycleStateMachine.js +39 -21
- package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +98 -88
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +64 -60
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +12 -12
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +40 -40
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +205 -185
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js +48 -34
- package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +13 -16
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +138 -110
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +149 -146
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +4 -0
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +22 -35
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +185 -171
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js +45 -34
- package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +44 -44
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +14 -14
- package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +16 -16
- package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +52 -37
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
- package/dist/components/Payroll/Transition/TransitionFlow.js +49 -36
- package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js +24 -47
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
- package/dist/components/Payroll/Transition/transitionStateMachine.js +35 -40
- package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
- package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js +48 -0
- package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js.map +1 -0
- package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js +35 -0
- package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js.map +1 -0
- package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js +23 -0
- package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js.map +1 -0
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +32 -0
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -0
- package/dist/components/Payroll/index.js +7 -5
- package/dist/components/Payroll/index.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +9 -8
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +29 -28
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/apiVersionMismatchHook.js +15 -0
- package/dist/contexts/ApiProvider/apiVersionMismatchHook.js.map +1 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/ThemeProvider/ThemeProvider.js +32 -26
- package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/hooks/usePollingTask/usePollingTask.js +53 -41
- package/dist/hooks/usePollingTask/usePollingTask.js.map +1 -1
- package/dist/i18n/I18n.js +9 -4
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +28 -24
- package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
- package/dist/i18n/en/Payroll.GrossUpModal.json.js +12 -10
- package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollBlocker.json.js +10 -8
- package/dist/i18n/en/Payroll.PayrollBlocker.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +8 -8
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +15 -15
- package/dist/i18n/es_US/Company.StateTaxes.json.js +1 -1
- package/dist/i18n/es_US/Contractor.ContractorList.json.js +14 -12
- package/dist/i18n/es_US/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/es_US/Contractor.Management.Compensation.json.js +4 -4
- package/dist/i18n/es_US/Contractor.Management.Profile.json.js +4 -4
- package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js +40 -38
- package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js.map +1 -1
- package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js +18 -16
- package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js.map +1 -1
- package/dist/i18n/es_US/Contractor.Profile.json.js +5 -5
- package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js +11 -9
- package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js.map +1 -1
- package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js +2 -2
- package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js +6 -6
- package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js +15 -15
- package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js +28 -26
- package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js.map +1 -1
- package/dist/i18n/es_US/Payroll.PayrollOverview.json.js +40 -38
- package/dist/i18n/es_US/Payroll.PayrollOverview.json.js.map +1 -1
- package/dist/i18n/es_US/Payroll.PrintChecksBanner.json.js +14 -0
- package/dist/i18n/es_US/Payroll.PrintChecksBanner.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PrintChecksFailure.json.js +12 -0
- package/dist/i18n/es_US/Payroll.PrintChecksFailure.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PrintChecksForm.json.js +26 -0
- package/dist/i18n/es_US/Payroll.PrintChecksForm.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PrintChecksSummary.json.js +14 -0
- package/dist/i18n/es_US/Payroll.PrintChecksSummary.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.UNSTABLE_PayrollEditEmployee.json.js +78 -0
- package/dist/i18n/es_US/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -0
- package/dist/i18n/es_US/common.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/shared/constants.js +21 -20
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +1 -1
- package/dist/src/components/Common/UI/DatePicker/DatePickerTypes.d.ts +2 -1
- package/dist/src/components/Common/UI/Menu/MenuTypes.d.ts +1 -1
- package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.d.ts +1 -1
- package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +5 -0
- package/dist/src/components/Common/UI/Select/SelectTypes.d.ts +2 -1
- package/dist/src/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +7 -2
- package/dist/src/components/Employee/EmployeeListFlow/employeeListStateMachine.test.d.ts +1 -0
- package/dist/src/components/Payroll/OffCycle/OffCycleFlow.d.ts +2 -0
- package/dist/src/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +2 -0
- package/dist/src/components/Payroll/OffCycle/offCycleStateMachine.d.ts +1 -0
- package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +1 -0
- package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +11 -0
- package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollConfiguration/useCalculationPoll.d.ts +6 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +18 -0
- package/dist/src/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +8 -0
- package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +6 -1
- package/dist/src/components/Payroll/PayrollOverview/useSubmissionPoll.d.ts +10 -1
- package/dist/src/components/Payroll/Transition/TransitionFlow.d.ts +17 -15
- package/dist/src/components/Payroll/Transition/TransitionFlowComponents.d.ts +21 -12
- package/dist/src/components/Payroll/Transition/transitionStateMachine.d.ts +25 -4
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayroll.d.ts +55 -0
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollComponents.d.ts +24 -0
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollTypes.d.ts +23 -0
- package/dist/src/components/Payroll/TransitionPayroll/index.d.ts +2 -0
- package/dist/src/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.d.ts +15 -0
- package/dist/src/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.d.ts +28 -0
- package/dist/src/components/Payroll/index.d.ts +2 -0
- package/dist/src/contexts/ApiProvider/ApiProvider.d.ts +5 -3
- package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.d.ts +3 -0
- package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.test.d.ts +1 -0
- package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +9 -1
- package/dist/src/contexts/ThemeProvider/ThemeProvider.d.ts +8 -3
- package/dist/src/hooks/usePollingTask/usePollingTask.d.ts +55 -14
- package/dist/src/i18n/types.d.ts +20 -0
- package/dist/src/shared/constants.d.ts +2 -0
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +19 -19
- 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
|
|
2
|
-
import { useState as
|
|
3
|
-
import { usePayrollsGetSuspense as
|
|
4
|
-
import { payrollsCalculate as
|
|
5
|
-
import { useGustoEmbeddedContext as
|
|
6
|
-
import { useTranslation as
|
|
7
|
-
import { usePayrollsUpdateMutation as
|
|
8
|
-
import { usePayrollsCalculateGrossUpMutation as
|
|
9
|
-
import { usePayrollsGetBlockersSuspense as
|
|
10
|
-
import { payrollSubmitHandler as
|
|
11
|
-
import { PayrollOverview as
|
|
12
|
-
import { PayrollConfigurationPresentation as
|
|
13
|
-
import { usePayrollConfigurationData as
|
|
14
|
-
import { isGrossUpEligible as
|
|
15
|
-
import { isCalculatingStatus as
|
|
16
|
-
import { BaseComponent as
|
|
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
|
|
19
|
-
import { useBase as
|
|
20
|
-
import { useDateFormatter as
|
|
21
|
-
import { SDKInternalError as
|
|
22
|
-
import { GrossUpModal as
|
|
23
|
-
function
|
|
24
|
-
return /* @__PURE__ */
|
|
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
|
|
26
|
+
const Ve = ({
|
|
27
27
|
onEvent: t,
|
|
28
|
-
companyId:
|
|
29
|
-
payrollId:
|
|
30
|
-
dictionary:
|
|
31
|
-
alerts:
|
|
32
|
-
withReimbursements:
|
|
33
|
-
className:
|
|
28
|
+
companyId: c,
|
|
29
|
+
payrollId: s,
|
|
30
|
+
dictionary: $,
|
|
31
|
+
alerts: J,
|
|
32
|
+
withReimbursements: x = !0,
|
|
33
|
+
className: T
|
|
34
34
|
}) => {
|
|
35
|
-
|
|
36
|
-
const { t:
|
|
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:
|
|
39
|
-
payrollId:
|
|
38
|
+
companyId: c,
|
|
39
|
+
payrollId: s,
|
|
40
40
|
include: ["taxes", "benefits", "deductions", "payroll_status_meta"]
|
|
41
41
|
}),
|
|
42
|
-
[
|
|
43
|
-
), { data:
|
|
44
|
-
() =>
|
|
45
|
-
[
|
|
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
|
-
|
|
48
|
-
const { data:
|
|
49
|
-
companyUuid:
|
|
50
|
-
}),
|
|
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
|
-
})), [
|
|
54
|
-
|
|
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:
|
|
65
|
+
payrollId: s,
|
|
58
66
|
alert: {
|
|
59
67
|
type: "success",
|
|
60
|
-
title:
|
|
68
|
+
title: n("alerts.progressSaved"),
|
|
61
69
|
alertKey: "progressSaved"
|
|
62
70
|
},
|
|
63
71
|
payPeriod: e?.payPeriod
|
|
64
72
|
}), U([]);
|
|
65
73
|
},
|
|
66
|
-
onProcessingFailed:
|
|
67
|
-
|
|
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
|
-
}),
|
|
70
|
-
employeeDetails:
|
|
71
|
-
employeeCompensations:
|
|
72
|
-
paySchedule:
|
|
73
|
-
payPeriod:
|
|
74
|
-
payrollCategory:
|
|
75
|
-
pagination:
|
|
76
|
-
isLoading:
|
|
77
|
-
isAlreadyProcessed:
|
|
78
|
-
refetch:
|
|
79
|
-
} =
|
|
80
|
-
companyId:
|
|
81
|
-
payrollId:
|
|
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:
|
|
85
|
-
excludedEmployeeUuids:
|
|
86
|
-
}),
|
|
96
|
+
disablePrepare: C || k || u.current,
|
|
97
|
+
excludedEmployeeUuids: Z
|
|
98
|
+
}), E = b(
|
|
87
99
|
() => ({
|
|
88
100
|
type: "error",
|
|
89
|
-
title:
|
|
101
|
+
title: n("alerts.alreadyProcessed"),
|
|
90
102
|
alertKey: "alreadyProcessed"
|
|
91
103
|
}),
|
|
92
|
-
[
|
|
93
|
-
),
|
|
94
|
-
|
|
95
|
-
if (!
|
|
96
|
-
|
|
104
|
+
[n]
|
|
105
|
+
), _ = O(!1);
|
|
106
|
+
H(() => {
|
|
107
|
+
if (!w) {
|
|
108
|
+
_.current = !1;
|
|
97
109
|
return;
|
|
98
110
|
}
|
|
99
|
-
|
|
100
|
-
payrollId:
|
|
101
|
-
alert:
|
|
102
|
-
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
|
-
|
|
118
|
+
t,
|
|
119
|
+
s,
|
|
120
|
+
E,
|
|
121
|
+
l.payrollShow?.payPeriod
|
|
110
122
|
]);
|
|
111
|
-
const { mutateAsync:
|
|
112
|
-
|
|
113
|
-
},
|
|
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
|
|
117
|
-
o = (await
|
|
128
|
+
return await f(null, async () => {
|
|
129
|
+
o = (await ce({
|
|
118
130
|
request: {
|
|
119
|
-
payrollUuid:
|
|
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
|
-
},
|
|
132
|
-
if (!m || !
|
|
133
|
-
throw new
|
|
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 =
|
|
148
|
+
const o = M.find((a) => a.employeeUuid === m);
|
|
137
149
|
if (!o)
|
|
138
|
-
throw new
|
|
139
|
-
const r = o.fixedCompensations ?? [],
|
|
140
|
-
(a) => a.name?.toLowerCase() ===
|
|
141
|
-
),
|
|
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() ===
|
|
156
|
+
amount: a.name?.toLowerCase() === g.toLowerCase() ? e : "0"
|
|
145
157
|
}));
|
|
146
|
-
if (!
|
|
158
|
+
if (!Ue) {
|
|
147
159
|
const a = o.hourlyCompensations?.[0]?.jobUuid ?? r[0]?.jobUuid ?? "";
|
|
148
|
-
|
|
149
|
-
name:
|
|
160
|
+
q.push({
|
|
161
|
+
name: g,
|
|
150
162
|
jobUuid: a,
|
|
151
163
|
amount: e
|
|
152
164
|
});
|
|
153
165
|
}
|
|
154
|
-
const
|
|
166
|
+
const Le = (o.hourlyCompensations ?? []).map((a) => ({
|
|
155
167
|
name: a.name,
|
|
156
168
|
jobUuid: a.jobUuid,
|
|
157
169
|
hours: "0"
|
|
158
|
-
})),
|
|
170
|
+
})), Ae = (o.paidTimeOff ?? []).map((a) => ({
|
|
159
171
|
name: a.name,
|
|
160
172
|
hours: "0"
|
|
161
|
-
})),
|
|
173
|
+
})), Se = W({
|
|
162
174
|
...o,
|
|
163
|
-
fixedCompensations:
|
|
164
|
-
hourlyCompensations:
|
|
165
|
-
paidTimeOff:
|
|
175
|
+
fixedCompensations: q,
|
|
176
|
+
hourlyCompensations: Le,
|
|
177
|
+
paidTimeOff: Ae
|
|
166
178
|
});
|
|
167
|
-
await
|
|
168
|
-
const a = await
|
|
179
|
+
await f({}, async () => {
|
|
180
|
+
const a = await B({
|
|
169
181
|
request: {
|
|
170
|
-
companyId:
|
|
171
|
-
payrollId:
|
|
182
|
+
companyId: c,
|
|
183
|
+
payrollId: s,
|
|
172
184
|
payrollUpdate: {
|
|
173
|
-
employeeCompensations: [{ ...
|
|
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
|
|
180
|
-
}),
|
|
181
|
-
},
|
|
191
|
+
}), await R();
|
|
192
|
+
}), j(null), D(!1);
|
|
193
|
+
}, ye = async (e) => {
|
|
182
194
|
try {
|
|
183
|
-
await
|
|
195
|
+
await de(e);
|
|
184
196
|
} catch {
|
|
185
197
|
}
|
|
186
|
-
},
|
|
187
|
-
U([]), u.current = !0, await
|
|
188
|
-
const e = await
|
|
189
|
-
|
|
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
|
|
192
|
-
companyId:
|
|
193
|
-
payrollId:
|
|
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
|
-
|
|
198
|
-
baselineCalculatedAt:
|
|
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
|
-
|
|
217
|
+
G(!1);
|
|
206
218
|
}
|
|
207
219
|
});
|
|
208
220
|
!e.success && e.blockers.length > 0 && U(e.blockers);
|
|
209
221
|
});
|
|
210
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
242
|
+
}, Ce = async (e) => {
|
|
230
243
|
t(i.RUN_PAYROLL_EMPLOYEE_SKIP, {
|
|
231
244
|
employeeId: e.employeeUuid
|
|
232
|
-
}), await
|
|
233
|
-
const o =
|
|
245
|
+
}), await f({}, async () => {
|
|
246
|
+
const o = W(e), r = await B({
|
|
234
247
|
request: {
|
|
235
|
-
companyId:
|
|
236
|
-
payrollId:
|
|
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
|
|
259
|
+
}), await R();
|
|
247
260
|
});
|
|
248
|
-
},
|
|
261
|
+
}, ge = () => {
|
|
249
262
|
t(i.RUN_PAYROLL_BLOCKERS_VIEW_ALL);
|
|
250
263
|
};
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
277
|
+
l.payrollShow?.processingRequest,
|
|
278
|
+
l.payrollShow?.calculatedAt,
|
|
279
|
+
C,
|
|
280
|
+
A,
|
|
281
|
+
P
|
|
262
282
|
]);
|
|
263
|
-
const
|
|
264
|
-
const e =
|
|
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:
|
|
287
|
+
label: n("alerts.payrollLate", {
|
|
268
288
|
initialCheckDate: p.formatShortWithWeekday(e.initialCheckDate)
|
|
269
289
|
}),
|
|
270
|
-
content:
|
|
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 } =
|
|
296
|
+
const { payrollShow: r } = l;
|
|
277
297
|
if (r?.checkDate && r.payrollDeadline)
|
|
278
298
|
return {
|
|
279
|
-
label:
|
|
299
|
+
label: n("alerts.directDepositDeadline", {
|
|
280
300
|
payDate: p.formatShortWithWeekday(r.checkDate),
|
|
281
301
|
...p.formatWithTime(r.payrollDeadline)
|
|
282
302
|
}),
|
|
283
|
-
content:
|
|
303
|
+
content: n("alerts.directDepositDeadlineText"),
|
|
284
304
|
variant: "info"
|
|
285
305
|
};
|
|
286
306
|
})();
|
|
287
|
-
return
|
|
288
|
-
|
|
307
|
+
return w ? /* @__PURE__ */ y(
|
|
308
|
+
Ge,
|
|
289
309
|
{
|
|
290
|
-
className:
|
|
291
|
-
companyId:
|
|
292
|
-
payrollId:
|
|
310
|
+
className: T,
|
|
311
|
+
companyId: c,
|
|
312
|
+
payrollId: s,
|
|
293
313
|
onEvent: (o, r) => {
|
|
294
|
-
o === i.RUN_PAYROLL_CANCELLED &&
|
|
314
|
+
o === i.RUN_PAYROLL_CANCELLED && R(), t(o, r);
|
|
295
315
|
},
|
|
296
|
-
withReimbursements:
|
|
297
|
-
alerts: [
|
|
316
|
+
withReimbursements: x,
|
|
317
|
+
alerts: [E]
|
|
298
318
|
}
|
|
299
|
-
) : /* @__PURE__ */
|
|
300
|
-
/* @__PURE__ */
|
|
301
|
-
|
|
319
|
+
) : /* @__PURE__ */ we(Re, { children: [
|
|
320
|
+
/* @__PURE__ */ y(
|
|
321
|
+
Ne,
|
|
302
322
|
{
|
|
303
|
-
className:
|
|
304
|
-
onCalculatePayroll:
|
|
305
|
-
isCalculateDisabled:
|
|
306
|
-
onEdit:
|
|
307
|
-
onToggleExclude:
|
|
308
|
-
onViewBlockers:
|
|
309
|
-
employeeCompensations:
|
|
310
|
-
employeeDetails:
|
|
311
|
-
payPeriod:
|
|
312
|
-
paySchedule:
|
|
313
|
-
payrollCategory:
|
|
314
|
-
alerts:
|
|
315
|
-
payrollAlert:
|
|
316
|
-
isPending:
|
|
317
|
-
isCalculating:
|
|
318
|
-
payrollBlockers:
|
|
319
|
-
pagination:
|
|
320
|
-
withReimbursements:
|
|
321
|
-
grossUpEnabled:
|
|
322
|
-
onGrossUpSelect:
|
|
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
|
-
|
|
326
|
-
|
|
345
|
+
v && /* @__PURE__ */ y(
|
|
346
|
+
Ke,
|
|
327
347
|
{
|
|
328
|
-
isOpen:
|
|
329
|
-
onCalculateGrossUp:
|
|
330
|
-
onApply:
|
|
348
|
+
isOpen: ue,
|
|
349
|
+
onCalculateGrossUp: me,
|
|
350
|
+
onApply: ye,
|
|
331
351
|
onCancel: () => {
|
|
332
|
-
|
|
352
|
+
D(!1);
|
|
333
353
|
}
|
|
334
354
|
}
|
|
335
355
|
)
|
|
336
356
|
] });
|
|
337
357
|
};
|
|
338
358
|
export {
|
|
339
|
-
|
|
359
|
+
Co as PayrollConfiguration
|
|
340
360
|
};
|
|
341
361
|
//# sourceMappingURL=PayrollConfiguration.js.map
|