@gusto/embedded-react-sdk 0.55.1 → 0.55.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  3. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  4. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  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/FederalTaxes/shared/FederalTaxesView.js +1 -1
  34. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
  35. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
  36. package/dist/components/Flow/Flow.js +1 -1
  37. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +3 -2
  38. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  39. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +7 -0
  40. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +191 -153
  41. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  42. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -0
  43. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +87 -81
  44. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  45. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +1 -0
  46. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  47. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +73 -48
  48. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  49. package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -1
  50. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js +22 -20
  51. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  52. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +3 -0
  53. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +22 -20
  54. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  55. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +2 -0
  56. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +34 -26
  57. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  58. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +4 -0
  59. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +51 -43
  60. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  61. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +2 -0
  62. package/dist/components/Payroll/PayrollList/PayrollList.js +48 -47
  63. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  64. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -1
  65. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +44 -43
  66. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  67. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +7 -0
  68. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +115 -112
  69. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  70. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
  71. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +94 -103
  72. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  73. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +22 -16
  74. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  75. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +58 -49
  76. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  77. package/dist/components/Payroll/PrintChecks/PrintChecks.d.ts +21 -0
  78. package/dist/components/Payroll/PrintChecks/PrintChecks.js +68 -0
  79. package/dist/components/Payroll/PrintChecks/PrintChecks.js.map +1 -0
  80. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.d.ts +9 -0
  81. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js +34 -0
  82. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js.map +1 -0
  83. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/index.d.ts +1 -0
  84. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.d.ts +48 -0
  85. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.js +26 -0
  86. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.js.map +1 -0
  87. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.d.ts +14 -0
  88. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +47 -0
  89. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -0
  90. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/index.d.ts +1 -0
  91. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.d.ts +16 -0
  92. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +144 -0
  93. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -0
  94. package/dist/components/Payroll/PrintChecks/PrintChecksForm/index.d.ts +1 -0
  95. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.d.ts +14 -0
  96. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js +39 -0
  97. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js.map +1 -0
  98. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/index.d.ts +1 -0
  99. package/dist/components/Payroll/PrintChecks/index.d.ts +2 -0
  100. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.d.ts +33 -0
  101. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.js +93 -0
  102. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.js.map +1 -0
  103. package/dist/components/Payroll/PrintChecks/types.d.ts +14 -0
  104. package/dist/components/Payroll/index.d.ts +2 -0
  105. package/dist/components/Payroll/index.js +26 -24
  106. package/dist/components/Payroll/index.js.map +1 -1
  107. package/dist/components/Payroll/usePreparedPayrollData.js +9 -8
  108. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  109. package/dist/i18n/I18n.js +4 -0
  110. package/dist/i18n/I18n.js.map +1 -1
  111. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +9 -9
  112. package/dist/i18n/en/Payroll.PayrollOverview.json.js +38 -38
  113. package/dist/i18n/en/Payroll.PayrollReceipts.json.js +2 -2
  114. package/dist/i18n/en/Payroll.PrintChecksBanner.json.js +14 -0
  115. package/dist/i18n/en/Payroll.PrintChecksBanner.json.js.map +1 -0
  116. package/dist/i18n/en/Payroll.PrintChecksFailure.json.js +12 -0
  117. package/dist/i18n/en/Payroll.PrintChecksFailure.json.js.map +1 -0
  118. package/dist/i18n/en/Payroll.PrintChecksForm.json.js +28 -0
  119. package/dist/i18n/en/Payroll.PrintChecksForm.json.js.map +1 -0
  120. package/dist/i18n/en/Payroll.PrintChecksSummary.json.js +14 -0
  121. package/dist/i18n/en/Payroll.PrintChecksSummary.json.js.map +1 -0
  122. package/dist/i18n/types.d.ts +65 -7
  123. package/dist/models/external.d.ts +3 -0
  124. package/dist/partner-hook-utils/form/buildFormSchema.js +60 -54
  125. package/dist/partner-hook-utils/form/buildFormSchema.js.map +1 -1
  126. package/dist/shared/constants.d.ts +28 -0
  127. package/dist/shared/constants.js +61 -50
  128. package/dist/shared/constants.js.map +1 -1
  129. package/dist/style.css +1 -1
  130. package/docs/guides/endpoint-inventory.json +26 -0
  131. package/package.json +2 -2
@@ -0,0 +1,14 @@
1
+ import { BaseComponentInterface } from '../../../Base';
2
+ import { OnEventType } from '../../../Base/useBase';
3
+ import { EventType } from '../../../../shared/constants';
4
+ interface PrintChecksSummaryProps extends BaseComponentInterface<'Payroll.PrintChecksSummary'> {
5
+ documentUrl?: string;
6
+ }
7
+ /** @internal */
8
+ export declare function PrintChecksSummary(props: PrintChecksSummaryProps): import("react").JSX.Element;
9
+ export declare namespace PrintChecksSummary {
10
+ var Footer: ({ onEvent }: {
11
+ onEvent: OnEventType<EventType, unknown>;
12
+ }) => import("react").JSX.Element;
13
+ }
14
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
+ import { useTranslation as n } from "react-i18next";
3
+ import { BaseComponent as h } from "../../../Base/Base.js";
4
+ import "../../../Base/useBase.js";
5
+ import { useComponentContext as i } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { useComponentDictionary as u, useI18n as c } from "../../../../i18n/I18n.js";
7
+ import { Flex as C } from "../../../Common/Flex/Flex.js";
8
+ import { ActionsLayout as d } from "../../../Common/ActionsLayout/ActionsLayout.js";
9
+ import { printChecksEvents as p } from "../../../../shared/constants.js";
10
+ function y(r) {
11
+ return /* @__PURE__ */ e(h, { ...r, children: /* @__PURE__ */ e(f, { ...r, children: r.children }) });
12
+ }
13
+ const f = ({ dictionary: r, documentUrl: o }) => {
14
+ u("Payroll.PrintChecksSummary", r), c("Payroll.PrintChecksSummary");
15
+ const { t } = n("Payroll.PrintChecksSummary"), { Heading: m, Text: s, Link: a } = i();
16
+ return /* @__PURE__ */ l(C, { flexDirection: "column", gap: 16, children: [
17
+ /* @__PURE__ */ e(m, { as: "h2", children: t("succeededTitle") }),
18
+ /* @__PURE__ */ e(s, { variant: "supporting", children: t("succeededDescription") }),
19
+ o && /* @__PURE__ */ e(a, { href: o, target: "_blank", rel: "noreferrer", children: t("viewChecksCta") })
20
+ ] });
21
+ }, P = ({ onEvent: r }) => {
22
+ c("Payroll.PrintChecksSummary");
23
+ const { t: o } = n("Payroll.PrintChecksSummary"), { Button: t } = i();
24
+ return /* @__PURE__ */ e(d, { children: /* @__PURE__ */ e(
25
+ t,
26
+ {
27
+ variant: "secondary",
28
+ onClick: () => {
29
+ r(p.PRINT_CHECKS_CLOSE);
30
+ },
31
+ children: o("closeCta")
32
+ }
33
+ ) });
34
+ };
35
+ y.Footer = P;
36
+ export {
37
+ y as PrintChecksSummary
38
+ };
39
+ //# sourceMappingURL=PrintChecksSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrintChecksSummary.js","sources":["../../../../../src/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { printChecksEvents, type EventType } from '@/shared/constants'\n\ninterface PrintChecksSummaryProps extends BaseComponentInterface<'Payroll.PrintChecksSummary'> {\n documentUrl?: string\n}\n\n/** @internal */\nexport function PrintChecksSummary(props: PrintChecksSummaryProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ dictionary, documentUrl }: PrintChecksSummaryProps) => {\n useComponentDictionary('Payroll.PrintChecksSummary', dictionary)\n useI18n('Payroll.PrintChecksSummary')\n const { t } = useTranslation('Payroll.PrintChecksSummary')\n const { Heading, Text, Link } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h2\">{t('succeededTitle')}</Heading>\n <Text variant=\"supporting\">{t('succeededDescription')}</Text>\n {documentUrl && (\n <Link href={documentUrl} target=\"_blank\" rel=\"noreferrer\">\n {t('viewChecksCta')}\n </Link>\n )}\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.PrintChecksSummary')\n const { t } = useTranslation('Payroll.PrintChecksSummary')\n const { Button } = useComponentContext()\n\n return (\n <ActionsLayout>\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(printChecksEvents.PRINT_CHECKS_CLOSE)\n }}\n >\n {t('closeCta')}\n </Button>\n </ActionsLayout>\n )\n}\nPrintChecksSummary.Footer = Footer\n"],"names":["PrintChecksSummary","props","jsx","BaseComponent","Root","dictionary","documentUrl","useComponentDictionary","useI18n","useTranslation","Heading","Text","Link","useComponentContext","jsxs","Flex","Footer","onEvent","t","Button","ActionsLayout","printChecksEvents"],"mappings":";;;;;;;;;AAaO,SAASA,EAAmBC,GAAgC;AACjE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,YAAAC,GAAY,aAAAC,QAA2C;AACrE,EAAAC,EAAuB,8BAA8BF,CAAU,GAC/DG,EAAQ,4BAA4B;AACpC,QAAM,EAAE,EAAA,IAAMC,EAAe,4BAA4B,GACnD,EAAE,SAAAC,GAAS,MAAAC,GAAM,MAAAC,EAAA,IAASC,EAAA;AAEhC,SACE,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAb,EAACQ,GAAA,EAAQ,IAAG,MAAM,UAAA,EAAE,gBAAgB,GAAE;AAAA,sBACrCC,GAAA,EAAK,SAAQ,cAAc,UAAA,EAAE,sBAAsB,GAAE;AAAA,IACrDL,KACC,gBAAAJ,EAACU,GAAA,EAAK,MAAMN,GAAa,QAAO,UAAS,KAAI,cAC1C,UAAA,EAAE,eAAe,EAAA,CACpB;AAAA,EAAA,GAEJ;AAEJ,GAEMU,IAAS,CAAC,EAAE,SAAAC,QAA4D;AAC5E,EAAAT,EAAQ,4BAA4B;AACpC,QAAM,EAAE,GAAAU,EAAA,IAAMT,EAAe,4BAA4B,GACnD,EAAE,QAAAU,EAAA,IAAWN,EAAA;AAEnB,2BACGO,GAAA,EACC,UAAA,gBAAAlB;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MAAM;AACb,QAAAF,EAAQI,EAAkB,kBAAkB;AAAA,MAC9C;AAAA,MAEC,YAAE,UAAU;AAAA,IAAA;AAAA,EAAA,GAEjB;AAEJ;AACArB,EAAmB,SAASgB;"}
@@ -0,0 +1 @@
1
+ export { PrintChecksSummary } from './PrintChecksSummary';
@@ -0,0 +1,2 @@
1
+ export { PrintChecks } from './PrintChecks';
2
+ export type { PrintChecksProps } from './types';
@@ -0,0 +1,33 @@
1
+ import { printChecksEvents } from '../../../shared/constants';
2
+ /**
3
+ * Payload shapes for each print-checks state machine event.
4
+ *
5
+ * @internal
6
+ */
7
+ export type EventPayloads = {
8
+ /** Banner CTA pressed to begin the print-checks flow. */
9
+ [printChecksEvents.PRINT_CHECKS_START]: undefined;
10
+ /** Form submitted; a generate-and-poll cycle has started. */
11
+ [printChecksEvents.PRINT_CHECKS_GENERATE_START]: undefined;
12
+ /** Generation succeeded; carries the generated checks document URL. */
13
+ [printChecksEvents.PRINT_CHECKS_GENERATE_SUCCEEDED]: {
14
+ documentUrl: string | null;
15
+ };
16
+ /** Generation failed; carries the error message to surface. */
17
+ [printChecksEvents.PRINT_CHECKS_GENERATE_FAILED]: {
18
+ errorMessage: string | null;
19
+ };
20
+ /** User retried after a failure. */
21
+ [printChecksEvents.PRINT_CHECKS_RETRY]: undefined;
22
+ /** Form cancelled. */
23
+ [printChecksEvents.PRINT_CHECKS_CANCEL]: undefined;
24
+ /** Failure or summary screen closed. */
25
+ [printChecksEvents.PRINT_CHECKS_CLOSE]: undefined;
26
+ };
27
+ /** @internal */
28
+ export declare const printChecksMachine: {
29
+ banner: import('robot3').MachineState<any>;
30
+ form: import('robot3').MachineState<any>;
31
+ failure: import('robot3').MachineState<any>;
32
+ summary: import('robot3').MachineState<any>;
33
+ };
@@ -0,0 +1,93 @@
1
+ import { state as t, transition as n, reduce as r } from "robot3";
2
+ import { PrintChecksFormContextual as C, PrintChecksSummaryContextual as i, PrintChecksFailureContextual as m } from "./PrintChecksComponents.js";
3
+ import { printChecksEvents as o } from "../../../shared/constants.js";
4
+ const _ = {
5
+ banner: t(
6
+ n(
7
+ o.PRINT_CHECKS_START,
8
+ "form",
9
+ r((e) => ({
10
+ ...e,
11
+ component: C
12
+ }))
13
+ )
14
+ ),
15
+ form: t(
16
+ n(
17
+ o.PRINT_CHECKS_GENERATE_START,
18
+ "form",
19
+ r((e) => ({
20
+ ...e,
21
+ isGenerating: !0
22
+ }))
23
+ ),
24
+ n(
25
+ o.PRINT_CHECKS_GENERATE_SUCCEEDED,
26
+ "summary",
27
+ r(
28
+ (e, a) => ({
29
+ ...e,
30
+ component: i,
31
+ documentUrl: a.payload.documentUrl ?? void 0,
32
+ isGenerating: !1
33
+ })
34
+ )
35
+ ),
36
+ n(
37
+ o.PRINT_CHECKS_GENERATE_FAILED,
38
+ "failure",
39
+ r(
40
+ (e, a) => ({
41
+ ...e,
42
+ component: m,
43
+ errorMessage: a.payload.errorMessage ?? void 0,
44
+ isGenerating: !1
45
+ })
46
+ )
47
+ ),
48
+ n(
49
+ o.PRINT_CHECKS_CANCEL,
50
+ "banner",
51
+ r((e) => ({
52
+ ...e,
53
+ component: null,
54
+ isGenerating: !1
55
+ }))
56
+ )
57
+ ),
58
+ failure: t(
59
+ n(
60
+ o.PRINT_CHECKS_RETRY,
61
+ "form",
62
+ r((e) => ({
63
+ ...e,
64
+ component: C,
65
+ errorMessage: void 0
66
+ }))
67
+ ),
68
+ n(
69
+ o.PRINT_CHECKS_CLOSE,
70
+ "banner",
71
+ r((e) => ({
72
+ ...e,
73
+ component: null,
74
+ errorMessage: void 0
75
+ }))
76
+ )
77
+ ),
78
+ summary: t(
79
+ n(
80
+ o.PRINT_CHECKS_CLOSE,
81
+ "banner",
82
+ r((e) => ({
83
+ ...e,
84
+ component: null,
85
+ documentUrl: void 0
86
+ }))
87
+ )
88
+ )
89
+ };
90
+ export {
91
+ _ as printChecksMachine
92
+ };
93
+ //# sourceMappingURL=printChecksStateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printChecksStateMachine.js","sources":["../../../../src/components/Payroll/PrintChecks/printChecksStateMachine.tsx"],"sourcesContent":["import { state, transition, reduce } from 'robot3'\nimport type { PrintChecksContextInterface } from './PrintChecksComponents'\nimport {\n PrintChecksFormContextual,\n PrintChecksFailureContextual,\n PrintChecksSummaryContextual,\n} from './PrintChecksComponents'\nimport { printChecksEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\n\n/**\n * Payload shapes for each print-checks state machine event.\n *\n * @internal\n */\nexport type EventPayloads = {\n /** Banner CTA pressed to begin the print-checks flow. */\n [printChecksEvents.PRINT_CHECKS_START]: undefined\n /** Form submitted; a generate-and-poll cycle has started. */\n [printChecksEvents.PRINT_CHECKS_GENERATE_START]: undefined\n /** Generation succeeded; carries the generated checks document URL. */\n [printChecksEvents.PRINT_CHECKS_GENERATE_SUCCEEDED]: {\n documentUrl: string | null\n }\n /** Generation failed; carries the error message to surface. */\n [printChecksEvents.PRINT_CHECKS_GENERATE_FAILED]: {\n errorMessage: string | null\n }\n /** User retried after a failure. */\n [printChecksEvents.PRINT_CHECKS_RETRY]: undefined\n /** Form cancelled. */\n [printChecksEvents.PRINT_CHECKS_CANCEL]: undefined\n /** Failure or summary screen closed. */\n [printChecksEvents.PRINT_CHECKS_CLOSE]: undefined\n}\n\n/** @internal */\nexport const printChecksMachine = {\n banner: state<MachineTransition>(\n transition(\n printChecksEvents.PRINT_CHECKS_START,\n 'form',\n reduce((ctx: PrintChecksContextInterface): PrintChecksContextInterface => ({\n ...ctx,\n component: PrintChecksFormContextual,\n })),\n ),\n ),\n form: state<MachineTransition>(\n transition(\n printChecksEvents.PRINT_CHECKS_GENERATE_START,\n 'form',\n reduce((ctx: PrintChecksContextInterface): PrintChecksContextInterface => ({\n ...ctx,\n isGenerating: true,\n })),\n ),\n transition(\n printChecksEvents.PRINT_CHECKS_GENERATE_SUCCEEDED,\n 'summary',\n reduce(\n (\n ctx: PrintChecksContextInterface,\n ev: MachineEventType<\n EventPayloads,\n typeof printChecksEvents.PRINT_CHECKS_GENERATE_SUCCEEDED\n >,\n ): PrintChecksContextInterface => ({\n ...ctx,\n component: PrintChecksSummaryContextual,\n documentUrl: ev.payload.documentUrl ?? undefined,\n isGenerating: false,\n }),\n ),\n ),\n transition(\n printChecksEvents.PRINT_CHECKS_GENERATE_FAILED,\n 'failure',\n reduce(\n (\n ctx: PrintChecksContextInterface,\n ev: MachineEventType<\n EventPayloads,\n typeof printChecksEvents.PRINT_CHECKS_GENERATE_FAILED\n >,\n ): PrintChecksContextInterface => ({\n ...ctx,\n component: PrintChecksFailureContextual,\n errorMessage: ev.payload.errorMessage ?? undefined,\n isGenerating: false,\n }),\n ),\n ),\n transition(\n printChecksEvents.PRINT_CHECKS_CANCEL,\n 'banner',\n reduce((ctx: PrintChecksContextInterface): PrintChecksContextInterface => ({\n ...ctx,\n component: null,\n isGenerating: false,\n })),\n ),\n ),\n failure: state<MachineTransition>(\n transition(\n printChecksEvents.PRINT_CHECKS_RETRY,\n 'form',\n reduce((ctx: PrintChecksContextInterface): PrintChecksContextInterface => ({\n ...ctx,\n component: PrintChecksFormContextual,\n errorMessage: undefined,\n })),\n ),\n transition(\n printChecksEvents.PRINT_CHECKS_CLOSE,\n 'banner',\n reduce((ctx: PrintChecksContextInterface): PrintChecksContextInterface => ({\n ...ctx,\n component: null,\n errorMessage: undefined,\n })),\n ),\n ),\n summary: state<MachineTransition>(\n transition(\n printChecksEvents.PRINT_CHECKS_CLOSE,\n 'banner',\n reduce((ctx: PrintChecksContextInterface): PrintChecksContextInterface => ({\n ...ctx,\n component: null,\n documentUrl: undefined,\n })),\n ),\n ),\n}\n"],"names":["printChecksMachine","state","transition","printChecksEvents","reduce","ctx","PrintChecksFormContextual","ev","PrintChecksSummaryContextual","PrintChecksFailureContextual"],"mappings":";;;AAqCO,MAAMA,IAAqB;AAAA,EAChC,QAAQC;AAAA,IACNC;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC,EAAO,CAACC,OAAmE;AAAA,QACzE,GAAGA;AAAA,QACH,WAAWC;AAAA,MAAA,EACX;AAAA,IAAA;AAAA,EACJ;AAAA,EAEF,MAAML;AAAA,IACJC;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC,EAAO,CAACC,OAAmE;AAAA,QACzE,GAAGA;AAAA,QACH,cAAc;AAAA,MAAA,EACd;AAAA,IAAA;AAAA,IAEJH;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC;AAAA,QACE,CACEC,GACAE,OAIiC;AAAA,UACjC,GAAGF;AAAA,UACH,WAAWG;AAAA,UACX,aAAaD,EAAG,QAAQ,eAAe;AAAA,UACvC,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFL;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC;AAAA,QACE,CACEC,GACAE,OAIiC;AAAA,UACjC,GAAGF;AAAA,UACH,WAAWI;AAAA,UACX,cAAcF,EAAG,QAAQ,gBAAgB;AAAA,UACzC,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFL;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC,EAAO,CAACC,OAAmE;AAAA,QACzE,GAAGA;AAAA,QACH,WAAW;AAAA,QACX,cAAc;AAAA,MAAA,EACd;AAAA,IAAA;AAAA,EACJ;AAAA,EAEF,SAASJ;AAAA,IACPC;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC,EAAO,CAACC,OAAmE;AAAA,QACzE,GAAGA;AAAA,QACH,WAAWC;AAAA,QACX,cAAc;AAAA,MAAA,EACd;AAAA,IAAA;AAAA,IAEJJ;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC,EAAO,CAACC,OAAmE;AAAA,QACzE,GAAGA;AAAA,QACH,WAAW;AAAA,QACX,cAAc;AAAA,MAAA,EACd;AAAA,IAAA;AAAA,EACJ;AAAA,EAEF,SAASJ;AAAA,IACPC;AAAA,MACEC,EAAkB;AAAA,MAClB;AAAA,MACAC,EAAO,CAACC,OAAmE;AAAA,QACzE,GAAGA;AAAA,QACH,WAAW;AAAA,QACX,aAAa;AAAA,MAAA,EACb;AAAA,IAAA;AAAA,EACJ;AAEJ;"}
@@ -0,0 +1,14 @@
1
+ import { BaseComponentInterface } from '../../Base';
2
+ /**
3
+ * Props for {@link PrintChecks}.
4
+ *
5
+ * @public
6
+ */
7
+ export interface PrintChecksProps extends Omit<BaseComponentInterface<never>, 'onEvent'> {
8
+ /** Identifier of the company that owns the payroll. */
9
+ companyId: string;
10
+ /** Identifier of the payroll to generate printable checks for. */
11
+ payrollId: string;
12
+ /** Callback invoked each time the component emits an event. */
13
+ onEvent?: BaseComponentInterface['onEvent'];
14
+ }
@@ -25,6 +25,8 @@ export { PayrollBlockerList, type ApiPayrollBlocker } from './PayrollBlocker';
25
25
  export type { PayrollBlockerListProps } from './PayrollBlocker/components/PayrollBlockerList';
26
26
  export { RecoveryCases } from './RecoveryCases/RecoveryCases';
27
27
  export type { RecoveryCasesProps } from './RecoveryCases/RecoveryCases';
28
+ export { PrintChecks } from './PrintChecks/PrintChecks';
29
+ export type { PrintChecksProps } from './PrintChecks';
28
30
  export type { OffCyclePayPeriodDateFormData, OffCyclePayrollDateType, } from './OffCyclePayPeriodDateForm';
29
31
  export { OffCycleCreation } from './OffCycleCreation';
30
32
  export type { OffCycleCreationProps, OffCycleCreationFormData } from './OffCycleCreation';
@@ -1,43 +1,45 @@
1
1
  import { PayrollConfiguration as e } from "./PayrollConfiguration/PayrollConfiguration.js";
2
2
  import { PayrollEditEmployee as l } from "./PayrollEditEmployee/PayrollEditEmployee.js";
3
3
  import { PayrollHistory as i } from "./PayrollHistory/PayrollHistory.js";
4
- import { PayrollLanding as a } from "./PayrollLanding/PayrollLanding.js";
4
+ import { PayrollLanding as p } from "./PayrollLanding/PayrollLanding.js";
5
5
  import { PayrollList as x } from "./PayrollList/PayrollList.js";
6
- import { PayrollOverview as n } from "./PayrollOverview/PayrollOverview.js";
6
+ import { PayrollOverview as s } from "./PayrollOverview/PayrollOverview.js";
7
7
  import { PayrollFlow as P } from "./PayrollFlow/PayrollFlow.js";
8
8
  import { PayrollReceipts as C } from "./PayrollReceipts/PayrollReceipts.js";
9
9
  import { ConfirmWireDetails as F } from "./ConfirmWireDetails/ConfirmWireDetails.js";
10
10
  import { RecoveryCases as d } from "./RecoveryCases/RecoveryCases.js";
11
- import { DismissalFlow as g } from "./Dismissal/DismissalFlow.js";
12
- import { DismissalPayPeriodSelection as v } from "./Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js";
13
- import { OffCycleCreation as L } from "./OffCycleCreation/OffCycleCreation.js";
14
- import { OffCycleDeductionsSetting as S } from "./OffCycleDeductionsSetting/OffCycleDeductionsSetting.js";
15
- import { OffCycleFlow as k } from "./OffCycle/OffCycleFlow.js";
16
- import { OffCycleReasonSelection as H } from "./OffCycleReasonSelection/OffCycleReasonSelection.js";
17
- import { PayrollBlockerList as b } from "./PayrollBlocker/components/PayrollBlockerList.js";
18
- import { PayrollExecutionFlow as j } from "./PayrollExecutionFlow/PayrollExecutionFlow.js";
19
- import { TransitionCreation as z } from "./TransitionCreation/TransitionCreation.js";
20
- import { TransitionFlow as G } from "./Transition/TransitionFlow.js";
11
+ import { PrintChecks as g } from "./PrintChecks/PrintChecks.js";
12
+ import { DismissalFlow as v } from "./Dismissal/DismissalFlow.js";
13
+ import { DismissalPayPeriodSelection as L } from "./Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js";
14
+ import { OffCycleCreation as S } from "./OffCycleCreation/OffCycleCreation.js";
15
+ import { OffCycleDeductionsSetting as T } from "./OffCycleDeductionsSetting/OffCycleDeductionsSetting.js";
16
+ import { OffCycleFlow as B } from "./OffCycle/OffCycleFlow.js";
17
+ import { OffCycleReasonSelection as W } from "./OffCycleReasonSelection/OffCycleReasonSelection.js";
18
+ import { PayrollBlockerList as j } from "./PayrollBlocker/components/PayrollBlockerList.js";
19
+ import { PayrollExecutionFlow as z } from "./PayrollExecutionFlow/PayrollExecutionFlow.js";
20
+ import { TransitionCreation as G } from "./TransitionCreation/TransitionCreation.js";
21
+ import { TransitionFlow as J } from "./Transition/TransitionFlow.js";
21
22
  export {
22
23
  F as ConfirmWireDetails,
23
- g as DismissalFlow,
24
- v as DismissalPayPeriodSelection,
25
- L as OffCycleCreation,
26
- S as OffCycleDeductionsSetting,
27
- k as OffCycleFlow,
28
- H as OffCycleReasonSelection,
29
- b as PayrollBlockerList,
24
+ v as DismissalFlow,
25
+ L as DismissalPayPeriodSelection,
26
+ S as OffCycleCreation,
27
+ T as OffCycleDeductionsSetting,
28
+ B as OffCycleFlow,
29
+ W as OffCycleReasonSelection,
30
+ j as PayrollBlockerList,
30
31
  e as PayrollConfiguration,
31
32
  l as PayrollEditEmployee,
32
- j as PayrollExecutionFlow,
33
+ z as PayrollExecutionFlow,
33
34
  P as PayrollFlow,
34
35
  i as PayrollHistory,
35
- a as PayrollLanding,
36
+ p as PayrollLanding,
36
37
  x as PayrollList,
37
- n as PayrollOverview,
38
+ s as PayrollOverview,
38
39
  C as PayrollReceipts,
40
+ g as PrintChecks,
39
41
  d as RecoveryCases,
40
- z as TransitionCreation,
41
- G as TransitionFlow
42
+ G as TransitionCreation,
43
+ J as TransitionFlow
42
44
  };
43
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { useState as M, useRef as y, useMemo as _, useCallback as m, useEffect as b } from "react";
1
+ import { useState as M, useRef as m, useMemo as _, useCallback as y, useEffect as b } from "react";
2
2
  import { usePayrollsPrepareMutation as L } from "@gusto/embedded-api/react-query/payrollsPrepare";
3
3
  import { usePaySchedulesGet as D } from "@gusto/embedded-api/react-query/paySchedulesGet";
4
4
  import { UnprocessableEntityError as T } from "@gusto/embedded-api/models/errors/unprocessableentityerror";
@@ -13,15 +13,16 @@ import "@gusto/embedded-api/models/errors/sdkvalidationerror";
13
13
  import "@gusto/embedded-api/models/errors/httpclienterrors";
14
14
  import "../../shared/constants.js";
15
15
  import "../../contexts/ComponentAdapter/useComponentContext.js";
16
+ import "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
16
17
  import { retryAsync as x } from "../../helpers/retryAsync.js";
17
- const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.category === "invalid_operation") : !1, V = ({
18
+ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.category === "invalid_operation") : !1, W = ({
18
19
  companyId: e,
19
20
  payrollId: r,
20
21
  employeeUuids: a,
21
22
  sortBy: n,
22
23
  onDataReady: l
23
24
  }) => {
24
- const { mutateAsync: c, isPending: p } = L(), [o, f] = M(), t = y(!1), u = y(!1), { baseSubmitHandler: d } = w(), h = _(() => a?.join(",") ?? "", [a]), { data: S, isLoading: E } = D(
25
+ const { mutateAsync: p, isPending: c } = L(), [o, f] = M(), t = m(!1), u = m(!1), { baseSubmitHandler: d } = w(), h = _(() => a?.join(",") ?? "", [a]), { data: S, isLoading: E } = D(
25
26
  {
26
27
  companyId: e,
27
28
  payScheduleId: o?.payPeriod?.payScheduleUuid || ""
@@ -29,8 +30,8 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
29
30
  {
30
31
  enabled: !!o?.payPeriod?.payScheduleUuid
31
32
  }
32
- ), P = m(async () => {
33
- const i = await c({
33
+ ), P = y(async () => {
34
+ const i = await p({
34
35
  request: {
35
36
  companyId: e,
36
37
  payrollId: r,
@@ -41,7 +42,7 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
41
42
  }
42
43
  });
43
44
  f(i.payrollPrepared), i.payrollPrepared && (t.current = !0, l?.(i.payrollPrepared));
44
- }, [e, r, c, h, n, l]), s = m(async () => {
45
+ }, [e, r, p, h, n, l]), s = y(async () => {
45
46
  await d(
46
47
  null,
47
48
  () => x(P, {
@@ -54,7 +55,7 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
54
55
  b(() => {
55
56
  u.current || (u.current = !0, s());
56
57
  }, [s]);
57
- const g = p && !t.current, R = p && t.current, A = g || E;
58
+ const g = c && !t.current, R = c && t.current, A = g || E;
58
59
  return {
59
60
  handlePreparePayroll: s,
60
61
  preparedPayroll: o,
@@ -65,6 +66,6 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
65
66
  };
66
67
  };
67
68
  export {
68
- V as usePreparedPayrollData
69
+ W as usePreparedPayrollData
69
70
  };
70
71
  //# sourceMappingURL=usePreparedPayrollData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [companyId, payrollId, preparePayroll, employeeUuidsKey, sortBy, onDataReady])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AACF,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMf,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMgB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAApB;AAAA,MACA,eAAeQ,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAL;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAAD;AAAA,QAAA;AAAA,MACF;AAAA,IACF,CACD;AACD,IAAAO,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BP,IAAcmB,EAAO,eAAe;AAAA,EAExC,GAAG,CAACvB,GAAWC,GAAWI,GAAgBW,GAAkBb,GAAQC,CAAW,CAAC,GAE1EoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa5B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACmB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
1
+ {"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [companyId, payrollId, preparePayroll, employeeUuidsKey, sortBy, onDataReady])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AACF,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMf,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMgB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAApB;AAAA,MACA,eAAeQ,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAL;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAAD;AAAA,QAAA;AAAA,MACF;AAAA,IACF,CACD;AACD,IAAAO,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BP,IAAcmB,EAAO,eAAe;AAAA,EAExC,GAAG,CAACvB,GAAWC,GAAWI,GAAgBW,GAAkBb,GAAQC,CAAW,CAAC,GAE1EoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa5B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACmB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
package/dist/i18n/I18n.js CHANGED
@@ -111,6 +111,10 @@ const j = "common", s = /* @__PURE__ */ Object.assign({
111
111
  "./en/Payroll.PayrollList.json": () => import("./en/Payroll.PayrollList.json.js").then((e) => e.default),
112
112
  "./en/Payroll.PayrollOverview.json": () => import("./en/Payroll.PayrollOverview.json.js").then((e) => e.default),
113
113
  "./en/Payroll.PayrollReceipts.json": () => import("./en/Payroll.PayrollReceipts.json.js").then((e) => e.default),
114
+ "./en/Payroll.PrintChecksBanner.json": () => import("./en/Payroll.PrintChecksBanner.json.js").then((e) => e.default),
115
+ "./en/Payroll.PrintChecksFailure.json": () => import("./en/Payroll.PrintChecksFailure.json.js").then((e) => e.default),
116
+ "./en/Payroll.PrintChecksForm.json": () => import("./en/Payroll.PrintChecksForm.json.js").then((e) => e.default),
117
+ "./en/Payroll.PrintChecksSummary.json": () => import("./en/Payroll.PrintChecksSummary.json.js").then((e) => e.default),
114
118
  "./en/Payroll.RecoveryCasesList.json": () => import("./en/Payroll.RecoveryCasesList.json.js").then((e) => e.default),
115
119
  "./en/Payroll.RecoveryCasesResubmit.json": () => import("./en/Payroll.RecoveryCasesResubmit.json.js").then((e) => e.default),
116
120
  "./en/Payroll.Transition.json": () => import("./en/Payroll.Transition.json.js").then((e) => e.default),
@@ -1 +1 @@
1
- {"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["/// <reference types=\"vite/client\" />\nimport { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport type { Resources } from './types'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary } from '@/types/Helpers'\n\n/** @internal */\nexport const defaultNS = 'common'\n\nconst translationLoaders = import.meta.glob<Record<string, string>>('./*/*.json', {\n import: 'default',\n})\n\nfunction resolveTranslationLoader(lng: string | undefined, ns: string) {\n const language = lng ?? 'en'\n const primaryPath = `./${language}/${ns}.json`\n const load =\n translationLoaders[primaryPath as keyof typeof translationLoaders] ??\n translationLoaders[`./en/${ns}.json` as keyof typeof translationLoaders]\n return load\n}\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n *\n * @param lng - resource language\n * @param ns - Namespace/name of the component/resource\n * @returns translation resource\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const load = resolveTranslationLoader(lng, ns)\n if (!load) {\n isError = true\n isLoading = false\n return\n }\n resource = await load()\n isLoading = false\n } catch {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n *\n * @param ns - Namespace - should match component name exactly - not exposed to consumers\n * @internal\n */\nexport const useI18n = (\n namespaces:\n keyof CustomTypeOptions['resources'] | Array<keyof CustomTypeOptions['resources']> | null,\n) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!namespaces) return\n const nsMap = Array.isArray(namespaces) ? namespaces : [namespaces]\n for (const ns of nsMap) {\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(\n i18nInstance.resolvedLanguage ?? 'en',\n ns,\n resource,\n true,\n false,\n ) //Last argument is set to false to prevent override of keys provided by partners on GustoProvider level through dictionary prop\n }\n }\n}\n\n/**\n * Used by individual components to override their dictionaries with partner provided resources\n *\n * @internal\n */\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: K,\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","translationLoaders","m","resolveTranslationLoader","lng","ns","primaryPath","resourceCache","LRUCache","loadResource","isLoading","isError","resource","promise","load","useI18n","namespaces","i18nInstance","useTranslation","nsMap","key","resourceGetter","useComponentDictionary","lang"],"mappings":"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"}
1
+ {"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["/// <reference types=\"vite/client\" />\nimport { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport type { Resources } from './types'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary } from '@/types/Helpers'\n\n/** @internal */\nexport const defaultNS = 'common'\n\nconst translationLoaders = import.meta.glob<Record<string, string>>('./*/*.json', {\n import: 'default',\n})\n\nfunction resolveTranslationLoader(lng: string | undefined, ns: string) {\n const language = lng ?? 'en'\n const primaryPath = `./${language}/${ns}.json`\n const load =\n translationLoaders[primaryPath as keyof typeof translationLoaders] ??\n translationLoaders[`./en/${ns}.json` as keyof typeof translationLoaders]\n return load\n}\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n *\n * @param lng - resource language\n * @param ns - Namespace/name of the component/resource\n * @returns translation resource\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const load = resolveTranslationLoader(lng, ns)\n if (!load) {\n isError = true\n isLoading = false\n return\n }\n resource = await load()\n isLoading = false\n } catch {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n *\n * @param ns - Namespace - should match component name exactly - not exposed to consumers\n * @internal\n */\nexport const useI18n = (\n namespaces:\n keyof CustomTypeOptions['resources'] | Array<keyof CustomTypeOptions['resources']> | null,\n) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!namespaces) return\n const nsMap = Array.isArray(namespaces) ? namespaces : [namespaces]\n for (const ns of nsMap) {\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(\n i18nInstance.resolvedLanguage ?? 'en',\n ns,\n resource,\n true,\n false,\n ) //Last argument is set to false to prevent override of keys provided by partners on GustoProvider level through dictionary prop\n }\n }\n}\n\n/**\n * Used by individual components to override their dictionaries with partner provided resources\n *\n * @internal\n */\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: K,\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","translationLoaders","m","resolveTranslationLoader","lng","ns","primaryPath","resourceCache","LRUCache","loadResource","isLoading","isError","resource","promise","load","useI18n","namespaces","i18nInstance","useTranslation","nsMap","key","resourceGetter","useComponentDictionary","lang"],"mappings":";;AAQO,MAAMA,IAAY,UAEnBC,IAAqB,uBAAA,OAAA;AAAA,EAAA,+BAAA,MAAA,OAAA,gCAAA,EAAA,KAAA,CAAAC,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kCAAA,MAAA,OAAA,mCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kCAAA,MAAA,OAAA,mCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8BAAA,MAAA,OAAA,+BAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+BAAA,MAAA,OAAA,gCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wCAAA,MAAA,OAAA,yCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mCAAA,MAAA,OAAA,oCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gCAAA,MAAA,OAAA,iCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iDAAA,MAAA,OAAA,kDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,2CAAA,MAAA,OAAA,4CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,2CAAA,MAAA,OAAA,4CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0CAAA,MAAA,OAAA,2CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8CAAA,MAAA,OAAA,+CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kDAAA,MAAA,OAAA,mDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gCAAA,MAAA,OAAA,iCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0CAAA,MAAA,OAAA,2CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,uCAAA,MAAA,OAAA,wCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kCAAA,MAAA,OAAA,mCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gCAAA,MAAA,OAAA,iCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,2CAAA,MAAA,OAAA,4CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gDAAA,MAAA,OAAA,iDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iDAAA,MAAA,OAAA,kDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,2CAAA,MAAA,OAAA,4CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iDAAA,MAAA,OAAA,kDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0CAAA,MAAA,OAAA,2CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,yDAAA,MAAA,OAAA,0DAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+CAAA,MAAA,OAAA,gDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0DAAA,MAAA,OAAA,2DAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gDAAA,MAAA,OAAA,iDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kDAAA,MAAA,OAAA,mDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gDAAA,MAAA,OAAA,iDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8CAAA,MAAA,OAAA,+CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gCAAA,MAAA,OAAA,iCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0CAAA,MAAA,OAAA,2CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+BAAA,MAAA,OAAA,gCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kCAAA,MAAA,OAAA,mCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mCAAA,MAAA,OAAA,oCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mCAAA,MAAA,OAAA,oCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gCAAA,MAAA,OAAA,iCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wCAAA,MAAA,OAAA,yCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mCAAA,MAAA,OAAA,oCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mCAAA,MAAA,OAAA,oCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,uCAAA,MAAA,OAAA,wCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kCAAA,MAAA,OAAA,mCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8BAAA,MAAA,OAAA,+BAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8CAAA,MAAA,OAAA,+CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,2CAAA,MAAA,OAAA,4CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8CAAA,MAAA,OAAA,+CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+CAAA,MAAA,OAAA,gDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,uDAAA,MAAA,OAAA,wDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wDAAA,MAAA,OAAA,yDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0CAAA,MAAA,OAAA,2CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,yCAAA,MAAA,OAAA,0CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wCAAA,MAAA,OAAA,yCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mCAAA,MAAA,OAAA,oCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,oCAAA,MAAA,OAAA,qCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8BAAA,MAAA,OAAA,+BAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,oCAAA,MAAA,OAAA,qCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qDAAA,MAAA,OAAA,sDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,mDAAA,MAAA,OAAA,oDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sDAAA,MAAA,OAAA,uDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wDAAA,MAAA,OAAA,yDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wDAAA,MAAA,OAAA,yDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4BAAA,MAAA,OAAA,6BAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8CAAA,MAAA,OAAA,+CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+BAAA,MAAA,OAAA,gCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,uCAAA,MAAA,OAAA,wCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,kCAAA,MAAA,OAAA,mCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,8BAAA,MAAA,OAAA,+BAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+CAAA,MAAA,OAAA,gDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,+CAAA,MAAA,OAAA,gDAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,6CAAA,MAAA,OAAA,8CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,oCAAA,MAAA,OAAA,qCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,0CAAA,MAAA,OAAA,2CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,yCAAA,MAAA,OAAA,0CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,oCAAA,MAAA,OAAA,qCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,oCAAA,MAAA,OAAA,qCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,iCAAA,MAAA,OAAA,kCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,uCAAA,MAAA,OAAA,wCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wCAAA,MAAA,OAAA,yCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,qCAAA,MAAA,OAAA,sCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wCAAA,MAAA,OAAA,yCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,uCAAA,MAAA,OAAA,wCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,2CAAA,MAAA,OAAA,4CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,gCAAA,MAAA,OAAA,iCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,wCAAA,MAAA,OAAA,yCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,4CAAA,MAAA,OAAA,6CAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,sCAAA,MAAA,OAAA,uCAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,EAAA,oBAAA,MAAA,OAAA,qBAAA,EAAA,KAAA,CAAAA,MAAAA,EAAA,OAAA;AAAA,CAAA;AAI3B,SAASC,EAAyBC,GAAyBC,GAAY;AAErE,QAAMC,IAAc,KADHF,KAAO,IACS,IAAIC,CAAE;AAIvC,SAFEJ,EAAmBK,CAA8C,KACjEL,EAAmB,QAAQI,CAAE,OAA0C;AAE3E;AAGA,MAAME,IAAgB,IAAIC,EAAS,EAAE,GAQ/BC,IAAe,CAAC,EAAE,KAAAL,IAAM,MAAM,IAAAC,QAAuC;AACzE,MAAIK,IAAY,IACZC,IAAU,IACVC;AAiBJ,QAAMC,KAfkB,YAAY;AAClC,QAAI;AACF,YAAMC,IAAOX,EAAyBC,GAAKC,CAAE;AAC7C,UAAI,CAACS,GAAM;AACT,QAAAH,IAAU,IACVD,IAAY;AACZ;AAAA,MACF;AACA,MAAAE,IAAW,MAAME,EAAA,GACjBJ,IAAY;AAAA,IACd,QAAQ;AACN,MAAAC,IAAU,IACVD,IAAY;AAAA,IACd;AAAA,EACF,GACgB;AAChB,SAAO,MAAM;AACX,QAAIA;AAEF,YAAMG;QACGF;AACT,YAAM,IAAI,MAAM,4CAA4CN,CAAE,EAAE;AAEhE,WAAOO;AAAA,EAEX;AACF,GAQaG,IAAU,CACrBC,MAEG;AAEH,QAAM,EAAE,MAAMC,EAAA,IAAiBC,EAAA;AAE/B,MAAI,CAACF,EAAY;AACjB,QAAMG,IAAQ,MAAM,QAAQH,CAAU,IAAIA,IAAa,CAACA,CAAU;AAClE,aAAWX,KAAMc,GAAO;AACtB,UAAMC,IAAM,GAAGH,EAAa,gBAAgB,IAAIZ,CAAE;AAElD,IAAIE,EAAc,IAAIa,CAAG,MAAM,QAE7Bb,EAAc,IAAIa,GAAKX,EAAa,EAAE,KAAKQ,EAAa,kBAAkB,IAAAZ,EAAA,CAAQ,CAAC;AAGrF,UAAMgB,IAAiBd,EAAc,IAAIa,CAAG;AAC5C,QAAIC,GAAgB;AAClB,YAAMT,IAAWS,EAAA;AACjB,MAAAJ,EAAa;AAAA,QACXA,EAAa,oBAAoB;AAAA,QACjCZ;AAAA,QACAO;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACF,GAOaU,IAAyB,CACpCjB,GACAO,MACG;AACH,QAAM,EAAE,MAAMK,EAAA,IAAiBC,EAAA;AAC/B,MAAIN;AACF,eAAWW,KAAQX;AACjB,MAAAK,EAAa,kBAAkBM,GAAMlB,GAAIO,EAASW,CAAI,GAAG,IAAM,EAAI;AAGzE;"}
@@ -1,9 +1,9 @@
1
- const e = "Edit Payroll", a = "{{payrollType}} payroll for <dateWrapper>{{startDate}} - {{endDate}}</dateWrapper>", t = "{{payrollType}} payroll", o = "Edit Payroll for {{startDate}} - {{endDate}}", l = "Edit Dismissal Payroll", n = "Save and exit", i = "Calculate and review", s = "Calculate and review", r = "Hours and additional earnings", p = "Review and update your employee's hours, reimbursements, and additional earnings below.", d = "Employee compensations", y = { employees: "Employees", hours: "Hours", timeOff: "Time off", additionalEarnings: "Additional earnings", reimbursements: "Reimbursements", totalPay: "Total pay" }, c = "Skipped", u = "Unknown employee", m = { edit: "Edit", skip: "Skip employee", unskip: "Unskip employee", setNetEarnings: "Set employee net earnings" }, g = { progressSaved: "Your progress has been saved", directDepositDeadline: "To pay your employees with direct deposit by {{payDate}}, you'll need to run payroll by {{time}} on {{date}}.", directDepositDeadlineText: "Make sure to submit before the deadline to ensure timely payments.", payrollLate: "Your original pay date was {{initialCheckDate}}", payrollLateText: "Run payroll before {{time}} on {{date}} to pay your employees on {{newCheckDate}}.", payrollDeadline: { label: "Payroll Deadline", message: "To pay your employees with direct deposit by the check date, you'll need to run payroll by the deadline." }, skippedEmployees: { label: "Skipped Employees", employeeAddressNotVerified: "Employee address not verified" }, employeeUpdated: { label: "{{employeeName}} updated successfully" } }, b = "Preparing payroll...", h = "This may take a minute or two. You can navigate away while this happens.", D = "Calculating payroll...", k = "This may take a minute or two. You can navigate away while this happens.", w = "Calculating payroll...", T = {
1
+ const e = "Edit Payroll", a = "{{payrollType}} payroll for <dateWrapper>{{startDate}} - {{endDate}}</dateWrapper>", l = "{{payrollType}} payroll", o = "Edit Payroll for {{startDate}} - {{endDate}}", t = "Edit Dismissal Payroll", n = "Save and exit", i = "Calculate and review", s = "Calculate and review", r = "Hours and additional earnings", p = "Review and update your employee's hours, reimbursements, and additional earnings below.", d = "Employee compensations", y = { employees: "Employees", hours: "Hours", timeOff: "Time off", additionalEarnings: "Additional earnings", reimbursements: "Reimbursements", totalPay: "Total pay" }, c = "Skipped", u = "Unknown employee", m = { edit: "Edit", skip: "Skip employee", unskip: "Unskip employee", setNetEarnings: "Set employee net earnings" }, g = { alreadyProcessed: "This payroll is already processed. If you'd like to make changes, please cancel and re-run it.", progressSaved: "Your progress has been saved", directDepositDeadline: "To pay your employees with direct deposit by {{payDate}}, you'll need to run payroll by {{time}} on {{date}}.", directDepositDeadlineText: "Make sure to submit before the deadline to ensure timely payments.", payrollLate: "Your original pay date was {{initialCheckDate}}", payrollLateText: "Run payroll before {{time}} on {{date}} to pay your employees on {{newCheckDate}}.", payrollDeadline: { label: "Payroll Deadline", message: "To pay your employees with direct deposit by the check date, you'll need to run payroll by the deadline." }, skippedEmployees: { label: "Skipped Employees", employeeAddressNotVerified: "Employee address not verified" }, employeeUpdated: { label: "{{employeeName}} updated successfully" } }, b = "Preparing payroll...", h = "This may take a minute or two. You can navigate away while this happens.", k = "Calculating payroll...", D = "This may take a minute or two. You can navigate away while this happens.", w = "Calculating payroll...", T = {
2
2
  pageTitle: e,
3
3
  description: a,
4
- descriptionDismissal: t,
4
+ descriptionDismissal: l,
5
5
  breadcrumbLabel: o,
6
- breadcrumbLabelDismissal: l,
6
+ breadcrumbLabelDismissal: t,
7
7
  exitFlowCta: n,
8
8
  calculatePayroll: i,
9
9
  calculatePayrollTitle: s,
@@ -17,22 +17,22 @@ const e = "Edit Payroll", a = "{{payrollType}} payroll for <dateWrapper>{{startD
17
17
  alerts: g,
18
18
  loadingTitle: b,
19
19
  loadingDescription: h,
20
- calculatingTitle: D,
21
- calculatingDescription: k,
20
+ calculatingTitle: k,
21
+ calculatingDescription: D,
22
22
  calculatingPayroll: w
23
23
  };
24
24
  export {
25
25
  g as alerts,
26
26
  o as breadcrumbLabel,
27
- l as breadcrumbLabelDismissal,
27
+ t as breadcrumbLabelDismissal,
28
28
  i as calculatePayroll,
29
29
  s as calculatePayrollTitle,
30
- k as calculatingDescription,
30
+ D as calculatingDescription,
31
31
  w as calculatingPayroll,
32
- D as calculatingTitle,
32
+ k as calculatingTitle,
33
33
  T as default,
34
34
  a as description,
35
- t as descriptionDismissal,
35
+ l as descriptionDismissal,
36
36
  m as editMenu,
37
37
  d as employeeCompensationsTitle,
38
38
  n as exitFlowCta,