@gusto/embedded-react-sdk 0.55.8 → 0.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +40 -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/OffCycleCreation/OffCycleCreation.js +83 -76
  58. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  59. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +63 -60
  60. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  61. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +184 -165
  62. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  63. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js +48 -34
  64. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js.map +1 -1
  65. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +185 -171
  66. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  67. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js +45 -34
  68. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js.map +1 -1
  69. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +44 -44
  70. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  71. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +14 -14
  72. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +16 -16
  73. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -1
  74. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +52 -37
  75. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
  76. package/dist/components/Payroll/usePreparedPayrollData.js +9 -8
  77. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  78. package/dist/contexts/ApiProvider/ApiProvider.js +29 -28
  79. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  80. package/dist/contexts/ApiProvider/apiVersionMismatchHook.js +15 -0
  81. package/dist/contexts/ApiProvider/apiVersionMismatchHook.js.map +1 -0
  82. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  83. package/dist/contexts/ThemeProvider/ThemeProvider.js +32 -26
  84. package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
  85. package/dist/hooks/usePollingTask/usePollingTask.js +53 -41
  86. package/dist/hooks/usePollingTask/usePollingTask.js.map +1 -1
  87. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +28 -24
  88. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  89. package/dist/i18n/en/Payroll.GrossUpModal.json.js +12 -10
  90. package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -1
  91. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +8 -8
  92. package/dist/i18n/en/Payroll.PayrollOverview.json.js +15 -15
  93. package/dist/package.json.js +1 -1
  94. package/dist/src/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +1 -1
  95. package/dist/src/components/Common/UI/DatePicker/DatePickerTypes.d.ts +2 -1
  96. package/dist/src/components/Common/UI/Menu/MenuTypes.d.ts +1 -1
  97. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.d.ts +1 -1
  98. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +5 -0
  99. package/dist/src/components/Common/UI/Select/SelectTypes.d.ts +2 -1
  100. package/dist/src/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +7 -2
  101. package/dist/src/components/Employee/EmployeeListFlow/employeeListStateMachine.test.d.ts +1 -0
  102. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
  103. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +6 -0
  104. package/dist/src/components/Payroll/PayrollConfiguration/useCalculationPoll.d.ts +6 -1
  105. package/dist/src/components/Payroll/PayrollOverview/useSubmissionPoll.d.ts +10 -1
  106. package/dist/src/contexts/ApiProvider/ApiProvider.d.ts +5 -3
  107. package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.d.ts +3 -0
  108. package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.test.d.ts +1 -0
  109. package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +9 -1
  110. package/dist/src/contexts/ThemeProvider/ThemeProvider.d.ts +8 -3
  111. package/dist/src/hooks/usePollingTask/usePollingTask.d.ts +55 -14
  112. package/dist/src/i18n/types.d.ts +14 -0
  113. package/dist/style.css +1 -1
  114. package/docs/guides/endpoint-inventory.json +5 -0
  115. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleCreationPresentation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useFormContext } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport { OffCycleReasonSelectionPresentation } from '../OffCycleReasonSelection'\nimport { OffCyclePayPeriodDateFormPresentation } from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation'\nimport { OffCycleTaxWithholdingTable } from '../OffCycleTaxWithholdingTable'\nimport { OffCycleTaxWithholdingModal } from '../OffCycleTaxWithholdingModal'\nimport {\n WAGE_TYPE_CATEGORIES,\n type WageTypeGroup,\n} from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type {\n OffCycleCreationFormData,\n OffCycleCreationPresentationProps,\n} from './OffCycleCreationTypes'\nimport styles from './OffCycleCreationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, RadioGroupField, SwitchField, MultiSelectComboBoxField } from '@/components/Common'\n\n/** @internal */\nexport function OffCycleCreationPresentation({\n employees,\n isPending,\n minCheckDate,\n minCheckOnlyDate,\n maxDate,\n minPayPeriodDate,\n taxWithholdingConfig,\n isTaxWithholdingModalOpen,\n onTaxWithholdingEditClick,\n onTaxWithholdingModalDone,\n onTaxWithholdingModalCancel,\n className,\n}: OffCycleCreationPresentationProps) {\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n useI18n('Payroll.OffCycleTaxWithholding')\n const { t } = useTranslation('Payroll.OffCycleCreation')\n const { t: tDeductions } = useTranslation('Payroll.OffCycleDeductionsSetting')\n const { t: tEmployees } = useTranslation('Payroll.EmployeeSelection')\n const { t: tWithholding } = useTranslation('Payroll.OffCycleTaxWithholding')\n const { Heading, Text, Button } = useComponentContext()\n\n const wageTypeGroups: WageTypeGroup[] = useMemo(\n () =>\n WAGE_TYPE_CATEGORIES.map(category => {\n const group: WageTypeGroup = {\n category,\n label: tWithholding(`wageTypeGroups.${category}.label`),\n taxedAsDescription: tWithholding(`wageTypeGroups.${category}.taxedAsDescription`),\n }\n if (category === 'regular' || category === 'supplemental') {\n group.description = tWithholding(`wageTypeGroups.${category}.description`)\n }\n return group\n }),\n [tWithholding],\n )\n\n const { setValue, watch } = useFormContext<OffCycleCreationFormData>()\n const includeAllEmployees = watch('includeAllEmployees')\n\n const handleToggleIncludeAll = useCallback(\n (checked: boolean) => {\n if (checked) {\n setValue('selectedEmployeeUuids', [])\n }\n },\n [setValue],\n )\n\n const deductionsOptions = [\n {\n value: false,\n label: tDeductions('options.include.label'),\n },\n {\n value: true,\n label: tDeductions('options.skip.label'),\n },\n ]\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Text variant=\"supporting\">{t('pageDescription')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={20}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h3\">{t('payPeriodSectionTitle')}</Heading>\n <Text variant=\"supporting\">{t('payPeriodSectionDescription')}</Text>\n </Flex>\n <OffCyclePayPeriodDateFormPresentation\n minCheckDate={minCheckDate}\n minCheckOnlyDate={minCheckOnlyDate}\n maxDate={maxDate}\n minPayPeriodDate={minPayPeriodDate}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <OffCycleReasonSelectionPresentation name=\"reason\" />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Heading as=\"h3\">{tEmployees('sectionTitle')}</Heading>\n <SwitchField\n name=\"includeAllEmployees\"\n label={t('includeAllEmployeesLabel')}\n onChange={handleToggleIncludeAll}\n />\n {!includeAllEmployees && (\n <MultiSelectComboBoxField\n name=\"selectedEmployeeUuids\"\n label={tEmployees('sectionTitle')}\n shouldVisuallyHideLabel\n placeholder={tEmployees('searchPlaceholder')}\n options={employees}\n />\n )}\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <RadioGroupField<boolean>\n name=\"skipRegularDeductions\"\n label={tDeductions('title')}\n description={tDeductions('description')}\n options={deductionsOptions}\n convertValueToString={value => String(value)}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Text variant=\"supporting\">\n <Trans\n t={t}\n i18nKey=\"taxWithholdingDisclaimer\"\n components={{ bold: <Text as=\"span\" weight=\"bold\" /> }}\n />\n </Text>\n <OffCycleTaxWithholdingTable\n wageTypeGroups={wageTypeGroups}\n config={taxWithholdingConfig}\n onEditClick={onTaxWithholdingEditClick}\n />\n {isTaxWithholdingModalOpen && (\n <OffCycleTaxWithholdingModal\n isOpen\n defaultConfig={taxWithholdingConfig}\n onDone={onTaxWithholdingModalDone}\n onCancel={onTaxWithholdingModalCancel}\n />\n )}\n </Flex>\n\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button type=\"submit\" isLoading={isPending} isDisabled={isPending}>\n {t('continueCta')}\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["OffCycleCreationPresentation","employees","isPending","minCheckDate","minCheckOnlyDate","maxDate","minPayPeriodDate","taxWithholdingConfig","isTaxWithholdingModalOpen","onTaxWithholdingEditClick","onTaxWithholdingModalDone","onTaxWithholdingModalCancel","className","useI18n","t","useTranslation","tDeductions","tEmployees","tWithholding","Heading","Text","Button","useComponentContext","wageTypeGroups","useMemo","WAGE_TYPE_CATEGORIES","category","group","setValue","watch","useFormContext","includeAllEmployees","handleToggleIncludeAll","useCallback","checked","deductionsOptions","Flex","jsxs","jsx","OffCyclePayPeriodDateFormPresentation","styles","OffCycleReasonSelectionPresentation","SwitchField","MultiSelectComboBoxField","RadioGroupField","value","Trans","OffCycleTaxWithholdingTable","OffCycleTaxWithholdingModal"],"mappings":"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"}
1
+ {"version":3,"file":"OffCycleCreationPresentation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useFormContext } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport { OffCycleReasonSelectionPresentation } from '../OffCycleReasonSelection'\nimport { OffCyclePayPeriodDateFormPresentation } from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation'\nimport { OffCycleTaxWithholdingTable } from '../OffCycleTaxWithholdingTable'\nimport { OffCycleTaxWithholdingModal } from '../OffCycleTaxWithholdingModal'\nimport { PayrollBlockerAlerts } from '../PayrollBlocker/components/PayrollBlockerAlerts'\nimport {\n WAGE_TYPE_CATEGORIES,\n type WageTypeGroup,\n} from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type {\n OffCycleCreationFormData,\n OffCycleCreationPresentationProps,\n} from './OffCycleCreationTypes'\nimport styles from './OffCycleCreationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, RadioGroupField, SwitchField, MultiSelectComboBoxField } from '@/components/Common'\n\n/** @internal */\nexport function OffCycleCreationPresentation({\n employees,\n blockers,\n isPending,\n minCheckDate,\n minCheckOnlyDate,\n maxDate,\n minPayPeriodDate,\n taxWithholdingConfig,\n isTaxWithholdingModalOpen,\n onTaxWithholdingEditClick,\n onTaxWithholdingModalDone,\n onTaxWithholdingModalCancel,\n className,\n}: OffCycleCreationPresentationProps) {\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n useI18n('Payroll.OffCycleTaxWithholding')\n const { t } = useTranslation('Payroll.OffCycleCreation')\n const { t: tDeductions } = useTranslation('Payroll.OffCycleDeductionsSetting')\n const { t: tEmployees } = useTranslation('Payroll.EmployeeSelection')\n const { t: tWithholding } = useTranslation('Payroll.OffCycleTaxWithholding')\n const { Heading, Text, Button } = useComponentContext()\n\n const wageTypeGroups: WageTypeGroup[] = useMemo(\n () =>\n WAGE_TYPE_CATEGORIES.map(category => {\n const group: WageTypeGroup = {\n category,\n label: tWithholding(`wageTypeGroups.${category}.label`),\n taxedAsDescription: tWithholding(`wageTypeGroups.${category}.taxedAsDescription`),\n }\n if (category === 'regular' || category === 'supplemental') {\n group.description = tWithholding(`wageTypeGroups.${category}.description`)\n }\n return group\n }),\n [tWithholding],\n )\n\n const { setValue, watch } = useFormContext<OffCycleCreationFormData>()\n const includeAllEmployees = watch('includeAllEmployees')\n\n const handleToggleIncludeAll = useCallback(\n (checked: boolean) => {\n if (checked) {\n setValue('selectedEmployeeUuids', [])\n }\n },\n [setValue],\n )\n\n const deductionsOptions = [\n {\n value: false,\n label: tDeductions('options.include.label'),\n },\n {\n value: true,\n label: tDeductions('options.skip.label'),\n },\n ]\n\n const hasBlockers = blockers.length > 0\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={32}>\n {hasBlockers && <PayrollBlockerAlerts blockers={blockers} />}\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Text variant=\"supporting\">{t('pageDescription')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={20}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h3\">{t('payPeriodSectionTitle')}</Heading>\n <Text variant=\"supporting\">{t('payPeriodSectionDescription')}</Text>\n </Flex>\n <OffCyclePayPeriodDateFormPresentation\n minCheckDate={minCheckDate}\n minCheckOnlyDate={minCheckOnlyDate}\n maxDate={maxDate}\n minPayPeriodDate={minPayPeriodDate}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <OffCycleReasonSelectionPresentation name=\"reason\" />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Heading as=\"h3\">{tEmployees('sectionTitle')}</Heading>\n <SwitchField\n name=\"includeAllEmployees\"\n label={t('includeAllEmployeesLabel')}\n onChange={handleToggleIncludeAll}\n />\n {!includeAllEmployees && (\n <MultiSelectComboBoxField\n name=\"selectedEmployeeUuids\"\n label={tEmployees('sectionTitle')}\n shouldVisuallyHideLabel\n placeholder={tEmployees('searchPlaceholder')}\n options={employees}\n />\n )}\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <RadioGroupField<boolean>\n name=\"skipRegularDeductions\"\n label={tDeductions('title')}\n description={tDeductions('description')}\n options={deductionsOptions}\n convertValueToString={value => String(value)}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Text variant=\"supporting\">\n <Trans\n t={t}\n i18nKey=\"taxWithholdingDisclaimer\"\n components={{ bold: <Text as=\"span\" weight=\"bold\" /> }}\n />\n </Text>\n <OffCycleTaxWithholdingTable\n wageTypeGroups={wageTypeGroups}\n config={taxWithholdingConfig}\n onEditClick={onTaxWithholdingEditClick}\n />\n {isTaxWithholdingModalOpen && (\n <OffCycleTaxWithholdingModal\n isOpen\n defaultConfig={taxWithholdingConfig}\n onDone={onTaxWithholdingModalDone}\n onCancel={onTaxWithholdingModalCancel}\n />\n )}\n </Flex>\n\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button type=\"submit\" isLoading={isPending} isDisabled={isPending || hasBlockers}>\n {t('continueCta')}\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["OffCycleCreationPresentation","employees","blockers","isPending","minCheckDate","minCheckOnlyDate","maxDate","minPayPeriodDate","taxWithholdingConfig","isTaxWithholdingModalOpen","onTaxWithholdingEditClick","onTaxWithholdingModalDone","onTaxWithholdingModalCancel","className","useI18n","t","useTranslation","tDeductions","tEmployees","tWithholding","Heading","Text","Button","useComponentContext","wageTypeGroups","useMemo","WAGE_TYPE_CATEGORIES","category","group","setValue","watch","useFormContext","includeAllEmployees","handleToggleIncludeAll","useCallback","checked","deductionsOptions","hasBlockers","Flex","jsx","PayrollBlockerAlerts","jsxs","OffCyclePayPeriodDateFormPresentation","styles","OffCycleReasonSelectionPresentation","SwitchField","MultiSelectComboBoxField","RadioGroupField","value","Trans","OffCycleTaxWithholdingTable","OffCycleTaxWithholdingModal"],"mappings":"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"}
@@ -1,120 +1,132 @@
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,
28
+ companyId: c,
29
29
  payrollId: l,
30
- dictionary: q,
31
- alerts: K,
32
- withReimbursements: D = !0,
33
- className: E
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,
38
+ companyId: c,
39
39
  payrollId: l,
40
40
  include: ["taxes", "benefits", "deductions", "payroll_status_meta"]
41
41
  }),
42
- [n, l]
43
- ), { data: s, refetch: J } = ge(V), z = _(
42
+ [c, l]
43
+ ), { data: s, refetch: X } = Ee(Q), Z = b(
44
44
  () => s.payrollShow?.employeeCompensations?.filter((e) => e.excluded).map((e) => e.employeeUuid).filter(Boolean) ?? [],
45
45
  [s.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(s.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
65
  payrollId: l,
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
+ }), 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,
81
93
  payrollId: l,
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, {
111
+ _.current || (_.current = !0, t(i.RUN_PAYROLL_ALREADY_PROCESSED, {
100
112
  payrollId: l,
101
- alert: w,
113
+ alert: E,
102
114
  payPeriod: s.payrollShow?.payPeriod
103
115
  }));
104
116
  }, [
105
- L,
117
+ w,
106
118
  t,
107
119
  l,
108
- w,
120
+ E,
109
121
  s.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
131
  payrollUuid: l,
120
132
  payrollGrossUpRequest: {
@@ -128,73 +140,73 @@ 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,
182
+ companyId: c,
171
183
  payrollId: l,
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,
203
+ const o = await _e(z, {
204
+ companyId: c,
193
205
  payrollId: l
194
206
  });
195
207
  if (!o.ok)
196
208
  throw o.error;
197
- h({
209
+ A({
198
210
  baselineCalculatedAt: s.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
@@ -202,18 +214,18 @@ const ve = ({
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, {
212
224
  employeeId: e.uuid,
213
225
  firstName: e.firstName,
214
226
  lastName: e.lastName
215
227
  });
216
- }, M = (e) => {
228
+ }, W = (e) => {
217
229
  const { paymentMethod: o } = e;
218
230
  return {
219
231
  employeeUuid: e.employeeUuid,
@@ -226,13 +238,13 @@ const ve = ({
226
238
  ...o && o !== "Historical" ? { paymentMethod: o } : {},
227
239
  memo: e.memo || void 0
228
240
  };
229
- }, pe = async (e) => {
241
+ }, Ce = async (e) => {
230
242
  t(i.RUN_PAYROLL_EMPLOYEE_SKIP, {
231
243
  employeeId: e.employeeUuid
232
- }), await y({}, async () => {
233
- const o = M(e), r = await G({
244
+ }), await f({}, async () => {
245
+ const o = W(e), r = await B({
234
246
  request: {
235
- companyId: n,
247
+ companyId: c,
236
248
  payrollId: l,
237
249
  payrollUpdate: {
238
250
  employeeCompensations: [
@@ -243,31 +255,38 @@ const ve = ({
243
255
  });
244
256
  t(i.RUN_PAYROLL_EMPLOYEE_SAVED, {
245
257
  payrollPrepared: r.payrollPrepared
246
- }), await S();
258
+ }), await R();
247
259
  });
248
- }, me = () => {
260
+ }, ge = () => {
249
261
  t(i.RUN_PAYROLL_BLOCKERS_VIEW_ALL);
250
262
  };
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
- });
263
+ H(() => {
264
+ if (!C) {
265
+ if (!K(s.payrollShow?.processingRequest)) {
266
+ h.current = !1;
267
+ return;
268
+ }
269
+ h.current || (L(!1), P(null), A({
270
+ baselineCalculatedAt: s.payrollShow?.calculatedAt?.getTime() ?? null,
271
+ // We have seen the calculating status, which is why we're starting to poll now until it completes or fails.
272
+ sawCalculatingThisPoll: !0
273
+ }));
274
+ }
257
275
  }, [
258
276
  s.payrollShow?.processingRequest,
259
277
  s.payrollShow?.calculatedAt,
260
- f,
261
- h
278
+ C,
279
+ A,
280
+ P
262
281
  ]);
263
- const de = (() => {
282
+ const he = (() => {
264
283
  const e = s.payrollShow?.payrollStatusMeta;
265
284
  if (e?.payrollLate && e.initialCheckDate && e.expectedDebitTime && e.expectedCheckDate)
266
285
  return {
267
- label: c("alerts.payrollLate", {
286
+ label: n("alerts.payrollLate", {
268
287
  initialCheckDate: p.formatShortWithWeekday(e.initialCheckDate)
269
288
  }),
270
- content: c("alerts.payrollLateText", {
289
+ content: n("alerts.payrollLateText", {
271
290
  ...p.formatWithTime(e.expectedDebitTime),
272
291
  newCheckDate: p.formatShortWithWeekday(e.expectedCheckDate)
273
292
  }),
@@ -276,66 +295,66 @@ const ve = ({
276
295
  const { payrollShow: r } = s;
277
296
  if (r?.checkDate && r.payrollDeadline)
278
297
  return {
279
- label: c("alerts.directDepositDeadline", {
298
+ label: n("alerts.directDepositDeadline", {
280
299
  payDate: p.formatShortWithWeekday(r.checkDate),
281
300
  ...p.formatWithTime(r.payrollDeadline)
282
301
  }),
283
- content: c("alerts.directDepositDeadlineText"),
302
+ content: n("alerts.directDepositDeadlineText"),
284
303
  variant: "info"
285
304
  };
286
305
  })();
287
- return L ? /* @__PURE__ */ d(
288
- Ee,
306
+ return w ? /* @__PURE__ */ y(
307
+ Ge,
289
308
  {
290
- className: E,
291
- companyId: n,
309
+ className: T,
310
+ companyId: c,
292
311
  payrollId: l,
293
312
  onEvent: (o, r) => {
294
- o === i.RUN_PAYROLL_CANCELLED && S(), t(o, r);
313
+ o === i.RUN_PAYROLL_CANCELLED && R(), t(o, r);
295
314
  },
296
- withReimbursements: D,
297
- alerts: [w]
315
+ withReimbursements: x,
316
+ alerts: [E]
298
317
  }
299
- ) : /* @__PURE__ */ Ue(he, { children: [
300
- /* @__PURE__ */ d(
301
- Oe,
318
+ ) : /* @__PURE__ */ we(Re, { children: [
319
+ /* @__PURE__ */ y(
320
+ Ne,
302
321
  {
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
322
+ className: T,
323
+ onCalculatePayroll: fe,
324
+ isCalculateDisabled: N.length > 0,
325
+ onEdit: Pe,
326
+ onToggleExclude: Ce,
327
+ onViewBlockers: ge,
328
+ employeeCompensations: M,
329
+ employeeDetails: ae,
330
+ payPeriod: se,
331
+ paySchedule: re,
332
+ payrollCategory: S,
333
+ alerts: J,
334
+ payrollAlert: he,
335
+ isPending: F || ie || ne,
336
+ isCalculating: F,
337
+ payrollBlockers: ee,
338
+ pagination: le,
339
+ withReimbursements: x,
340
+ grossUpEnabled: v,
341
+ onGrossUpSelect: pe
323
342
  }
324
343
  ),
325
- Y && /* @__PURE__ */ d(
326
- je,
344
+ v && /* @__PURE__ */ y(
345
+ Ke,
327
346
  {
328
- isOpen: re,
329
- onCalculateGrossUp: le,
330
- onApply: ne,
347
+ isOpen: ue,
348
+ onCalculateGrossUp: me,
349
+ onApply: ye,
331
350
  onCancel: () => {
332
- R(!1);
351
+ D(!1);
333
352
  }
334
353
  }
335
354
  )
336
355
  ] });
337
356
  };
338
357
  export {
339
- uo as PayrollConfiguration
358
+ Co as PayrollConfiguration
340
359
  };
341
360
  //# sourceMappingURL=PayrollConfiguration.js.map