@gusto/embedded-react-sdk 0.55.1 → 0.55.3

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 (161) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/components/Common/FieldLayout/FieldLayout.js +6 -6
  3. package/dist/components/Common/Fieldset/Fieldset.js +6 -6
  4. package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayout.js +6 -6
  5. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  6. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  7. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js +58 -49
  8. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js.map +1 -1
  9. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.module.scss.js +14 -10
  10. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.module.scss.js.map +1 -1
  11. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +4 -0
  12. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +6 -3
  14. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  15. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +6 -3
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  17. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +8 -5
  18. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  19. package/dist/components/Company/BankAccount/BankAccountForm/context.js +6 -3
  20. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  21. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.d.ts +4 -0
  22. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  23. package/dist/components/Company/DocumentSigner/DocumentList/List.js +11 -8
  24. package/dist/components/Company/DocumentSigner/DocumentList/List.js.map +1 -1
  25. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +6 -3
  26. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  27. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +11 -8
  28. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  29. package/dist/components/Company/Industry/Context.js +9 -6
  30. package/dist/components/Company/Industry/Context.js.map +1 -1
  31. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +6 -3
  32. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  33. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +6 -3
  34. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  35. package/dist/components/Company/OnboardingOverview/context.js +6 -3
  36. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  37. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +6 -3
  38. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  39. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +6 -3
  40. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  41. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +6 -3
  42. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  43. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +116 -116
  44. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  45. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +4 -0
  46. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +19 -19
  47. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  48. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +16 -13
  49. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
  50. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +6 -3
  51. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  52. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.d.ts +4 -0
  53. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  54. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  55. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
  56. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
  57. package/dist/components/Flow/Flow.js +1 -1
  58. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +3 -2
  59. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  60. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +75 -71
  61. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  62. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +7 -0
  63. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +202 -165
  64. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  65. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -0
  66. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +88 -82
  67. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  68. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +1 -0
  69. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  70. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +73 -48
  71. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  72. package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -1
  73. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js +22 -20
  74. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  75. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +3 -0
  76. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +22 -20
  77. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  78. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +2 -0
  79. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +34 -26
  80. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  81. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +4 -0
  82. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +51 -43
  83. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  84. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +2 -0
  85. package/dist/components/Payroll/PayrollList/PayrollList.js +48 -47
  86. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  87. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -1
  88. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +44 -43
  89. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  90. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +15 -1
  91. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +188 -172
  92. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  93. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +3 -1
  94. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +110 -118
  95. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  96. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +22 -16
  97. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  98. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +58 -49
  99. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  100. package/dist/components/Payroll/PrintChecks/PrintChecks.d.ts +21 -0
  101. package/dist/components/Payroll/PrintChecks/PrintChecks.js +68 -0
  102. package/dist/components/Payroll/PrintChecks/PrintChecks.js.map +1 -0
  103. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.d.ts +9 -0
  104. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js +34 -0
  105. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js.map +1 -0
  106. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/index.d.ts +1 -0
  107. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.d.ts +48 -0
  108. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.js +26 -0
  109. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.js.map +1 -0
  110. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.d.ts +14 -0
  111. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +47 -0
  112. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -0
  113. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/index.d.ts +1 -0
  114. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.d.ts +16 -0
  115. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +144 -0
  116. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -0
  117. package/dist/components/Payroll/PrintChecks/PrintChecksForm/index.d.ts +1 -0
  118. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.d.ts +14 -0
  119. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js +39 -0
  120. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js.map +1 -0
  121. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/index.d.ts +1 -0
  122. package/dist/components/Payroll/PrintChecks/index.d.ts +2 -0
  123. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.d.ts +33 -0
  124. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.js +93 -0
  125. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.js.map +1 -0
  126. package/dist/components/Payroll/PrintChecks/types.d.ts +14 -0
  127. package/dist/components/Payroll/helpers.d.ts +0 -15
  128. package/dist/components/Payroll/helpers.js +13 -18
  129. package/dist/components/Payroll/helpers.js.map +1 -1
  130. package/dist/components/Payroll/index.d.ts +2 -0
  131. package/dist/components/Payroll/index.js +26 -24
  132. package/dist/components/Payroll/index.js.map +1 -1
  133. package/dist/components/Payroll/usePreparedPayrollData.js +15 -12
  134. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  135. package/dist/i18n/I18n.js +4 -0
  136. package/dist/i18n/I18n.js.map +1 -1
  137. package/dist/i18n/en/Company.DocumentList.json.js +34 -32
  138. package/dist/i18n/en/Company.DocumentList.json.js.map +1 -1
  139. package/dist/i18n/en/Employee.DocumentSigner.json.js +24 -22
  140. package/dist/i18n/en/Employee.DocumentSigner.json.js.map +1 -1
  141. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +9 -9
  142. package/dist/i18n/en/Payroll.PayrollOverview.json.js +36 -36
  143. package/dist/i18n/en/Payroll.PayrollReceipts.json.js +2 -2
  144. package/dist/i18n/en/Payroll.PrintChecksBanner.json.js +14 -0
  145. package/dist/i18n/en/Payroll.PrintChecksBanner.json.js.map +1 -0
  146. package/dist/i18n/en/Payroll.PrintChecksFailure.json.js +12 -0
  147. package/dist/i18n/en/Payroll.PrintChecksFailure.json.js.map +1 -0
  148. package/dist/i18n/en/Payroll.PrintChecksForm.json.js +28 -0
  149. package/dist/i18n/en/Payroll.PrintChecksForm.json.js.map +1 -0
  150. package/dist/i18n/en/Payroll.PrintChecksSummary.json.js +14 -0
  151. package/dist/i18n/en/Payroll.PrintChecksSummary.json.js.map +1 -0
  152. package/dist/i18n/types.d.ts +376 -8
  153. package/dist/models/external.d.ts +3 -0
  154. package/dist/partner-hook-utils/form/buildFormSchema.js +60 -54
  155. package/dist/partner-hook-utils/form/buildFormSchema.js.map +1 -1
  156. package/dist/shared/constants.d.ts +28 -0
  157. package/dist/shared/constants.js +61 -50
  158. package/dist/shared/constants.js.map +1 -1
  159. package/dist/style.css +1 -1
  160. package/docs/guides/endpoint-inventory.json +26 -0
  161. package/package.json +6 -6
@@ -1,31 +1,31 @@
1
1
  import { jsx as a, jsxs as b } from "react/jsx-runtime";
2
2
  import { OffCycleReasonType as m } from "@gusto/embedded-api/models/components/payrollshow";
3
- import { useRef as ye, useMemo as q, useState as z } from "react";
4
- import { useTranslation as fe } from "react-i18next";
5
- import { getPayrollTypeLabel as pe } from "../helpers.js";
3
+ import { useRef as fe, useMemo as q, useState as z } from "react";
4
+ import { useTranslation as pe } from "react-i18next";
5
+ import { getPayrollTypeLabel as De } from "../helpers.js";
6
6
  import i from "./PayrollListPresentation.module.scss.js";
7
7
  import { Flex as O } from "../../Common/Flex/Flex.js";
8
8
  import { EmptyData as V } from "../../Common/EmptyData/EmptyData.js";
9
- import { HamburgerMenu as De } from "../../Common/HamburgerMenu/HamburgerMenu.js";
10
- import { DateRangeFilter as Pe } from "../../Common/DateRangeFilter/DateRangeFilter.js";
11
- import { useComponentContext as Ce } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
- import { useI18n as he } from "../../../i18n/I18n.js";
13
- import { formatDateToStringDate as be } from "../../../helpers/dateFormatting.js";
14
- import { useDateFormatter as ge } from "../../../hooks/useDateFormatter.js";
15
- import Se from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
16
- import { PayrollStatusBadges as ke } from "../PayrollStatusBadges/PayrollStatusBadges.js";
17
- import { DataView as Le } from "../../Common/DataView/DataView.js";
9
+ import { HamburgerMenu as Pe } from "../../Common/HamburgerMenu/HamburgerMenu.js";
10
+ import { DateRangeFilter as Ce } from "../../Common/DateRangeFilter/DateRangeFilter.js";
11
+ import { useComponentContext as he } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
+ import { useI18n as be } from "../../../i18n/I18n.js";
13
+ import { formatDateToStringDate as ge } from "../../../helpers/dateFormatting.js";
14
+ import { useDateFormatter as Se } from "../../../hooks/useDateFormatter.js";
15
+ import ke from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
16
+ import { PayrollStatusBadges as Le } from "../PayrollStatusBadges/PayrollStatusBadges.js";
17
+ import { DataView as Ae } from "../../Common/DataView/DataView.js";
18
18
  const G = /* @__PURE__ */ new Set([
19
19
  m.Bonus,
20
20
  m.Correction,
21
21
  m.DismissedEmployee
22
22
  ]);
23
- function Ae(r, g, y) {
23
+ function Oe(r, g, y) {
24
24
  if (r.processed) return !1;
25
25
  const f = r.payPeriod?.startDate ? new Date(r.payPeriod.startDate) : null, S = !r.offCycle || r.offCycleReason === m.TransitionFromOldPaySchedule, c = g.length === 0 && S && y && f && y >= f, k = r.offCycle && !!r.offCycleReason && G.has(r.offCycleReason);
26
26
  return !!(c || k);
27
27
  }
28
- const Ke = ({
28
+ const qe = ({
29
29
  onRunPayroll: r,
30
30
  onSubmitPayroll: g,
31
31
  onSkipPayroll: y,
@@ -43,21 +43,22 @@ const Ke = ({
43
43
  blockers: L,
44
44
  wireInRequests: ee,
45
45
  dateRangeFilter: s,
46
- hasUnprocessedTransitions: te = !1
46
+ hasUnprocessedTransitions: te = !1,
47
+ withOffcyclePayroll: ae = !0
47
48
  }) => {
48
- const { Box: ae, BoxHeader: le, Button: A, ButtonIcon: v, Dialog: N, Heading: oe, Text: re, Alert: E } = Ce();
49
- he("Payroll.PayrollList");
50
- const { t } = fe("Payroll.PayrollList"), d = ge(), B = ye(null), T = Se({ ref: B }).includes("large"), p = q(() => {
51
- const e = be(/* @__PURE__ */ new Date());
49
+ const { Box: le, BoxHeader: oe, Button: A, ButtonIcon: v, Dialog: N, Heading: re, Text: ne, Alert: E } = he();
50
+ be("Payroll.PayrollList");
51
+ const { t } = pe("Payroll.PayrollList"), d = Se(), B = fe(null), T = ke({ ref: B }).includes("large"), p = q(() => {
52
+ const e = ge(/* @__PURE__ */ new Date());
52
53
  return e ? new Date(e) : null;
53
54
  }, []), F = q(
54
- () => c.some((e) => Ae(e, L, p)),
55
+ () => c.some((e) => Oe(e, L, p)),
55
56
  [c, L, p]
56
57
  ), [D, H] = z({
57
58
  isOpen: !1,
58
59
  payrollId: null,
59
60
  payPeriod: null
60
- }), ne = (e, l) => {
61
+ }), ie = (e, l) => {
61
62
  H({
62
63
  isOpen: !0,
63
64
  payrollId: e,
@@ -69,13 +70,13 @@ const Ke = ({
69
70
  payrollId: null,
70
71
  payPeriod: null
71
72
  });
72
- }, ie = () => {
73
+ }, se = () => {
73
74
  D.payrollId && (y({ payrollUuid: D.payrollId }), M());
74
75
  }, [P, w] = z({
75
76
  isOpen: !1,
76
77
  payrollId: null,
77
78
  payPeriod: null
78
- }), se = (e, l) => {
79
+ }), ce = (e, l) => {
79
80
  w({
80
81
  isOpen: !0,
81
82
  payrollId: e,
@@ -87,7 +88,7 @@ const Ke = ({
87
88
  payrollId: null,
88
89
  payPeriod: null
89
90
  });
90
- }, ce = () => {
91
+ }, de = () => {
91
92
  P.payrollId && (f({ payrollUuid: P.payrollId }), R());
92
93
  }, U = (e, l) => {
93
94
  const n = d.formatShort(e), o = d.formatShortWithYear(l);
@@ -145,9 +146,9 @@ const Ke = ({
145
146
  }
146
147
  ) }),
147
148
  /* @__PURE__ */ b(O, { justifyContent: "space-between", alignItems: "center", children: [
148
- /* @__PURE__ */ a(oe, { as: "h2", children: t("title") }),
149
+ /* @__PURE__ */ a(re, { as: "h2", children: t("title") }),
149
150
  /* @__PURE__ */ a(
150
- Pe,
151
+ Ce,
151
152
  {
152
153
  startDate: s.startDate,
153
154
  endDate: s.endDate,
@@ -167,7 +168,7 @@ const Ke = ({
167
168
  )
168
169
  ] }),
169
170
  /* @__PURE__ */ a(
170
- Le,
171
+ Ae,
171
172
  {
172
173
  breakAt: "large",
173
174
  pagination: k,
@@ -190,13 +191,13 @@ const Ke = ({
190
191
  l,
191
192
  " - ",
192
193
  n,
193
- /* @__PURE__ */ a(re, { variant: "supporting", size: "sm", children: I.find((o) => o.uuid === e?.payScheduleUuid)?.name || I.find((o) => o.uuid === e?.payScheduleUuid)?.customName })
194
+ /* @__PURE__ */ a(ne, { variant: "supporting", size: "sm", children: I.find((o) => o.uuid === e?.payScheduleUuid)?.name || I.find((o) => o.uuid === e?.payScheduleUuid)?.customName })
194
195
  ] });
195
196
  },
196
197
  title: t("tableHeaders.0")
197
198
  },
198
199
  {
199
- render: (e) => pe(e),
200
+ render: (e) => De(e),
200
201
  title: t("tableHeaders.1")
201
202
  },
202
203
  {
@@ -213,7 +214,7 @@ const Ke = ({
213
214
  const l = ee.find(
214
215
  (n) => n.paymentUuid === e.payrollUuid
215
216
  );
216
- return /* @__PURE__ */ a(ke, { payroll: e, wireInRequest: l });
217
+ return /* @__PURE__ */ a(Le, { payroll: e, wireInRequest: l });
217
218
  }
218
219
  },
219
220
  ...T ? [] : [
@@ -243,25 +244,25 @@ const Ke = ({
243
244
  const { fullPeriod: u } = U(
244
245
  o?.startDate,
245
246
  o?.endDate
246
- ), j = o?.startDate ? new Date(o.startDate) : null, de = !e.offCycle || e.offCycleReason === m.TransitionFromOldPaySchedule, _ = L.length === 0 && de && p && j && p >= j, ue = e.offCycle && !!e.offCycleReason && G.has(e.offCycleReason), K = _ ? [
247
+ ), j = o?.startDate ? new Date(o.startDate) : null, ue = !e.offCycle || e.offCycleReason === m.TransitionFromOldPaySchedule, _ = L.length === 0 && ue && p && j && p >= j, me = e.offCycle && !!e.offCycleReason && G.has(e.offCycleReason), K = _ ? [
247
248
  {
248
249
  label: t("skipPayrollCta"),
249
250
  onClick: () => {
250
- ne(l, u);
251
+ ie(l, u);
251
252
  }
252
253
  }
253
- ] : ue ? [
254
+ ] : me ? [
254
255
  {
255
256
  label: t("deletePayrollCta"),
256
257
  onClick: () => {
257
- se(l, u);
258
+ ce(l, u);
258
259
  }
259
260
  }
260
- ] : null, me = K !== null;
261
+ ] : null, ye = K !== null;
261
262
  return /* @__PURE__ */ b("div", { className: i.actionsContainer, children: [
262
263
  Y,
263
- me ? /* @__PURE__ */ a(
264
- De,
264
+ ye ? /* @__PURE__ */ a(
265
+ Pe,
265
266
  {
266
267
  isLoading: _ ? C : h,
267
268
  menuLabel: t("payrollMenuLabel"),
@@ -286,7 +287,7 @@ const Ke = ({
286
287
  {
287
288
  isOpen: D.isOpen,
288
289
  onClose: M,
289
- onPrimaryActionClick: ie,
290
+ onPrimaryActionClick: se,
290
291
  isDestructive: !0,
291
292
  title: t("skipPayrollDialog.title", { payPeriod: D.payPeriod }),
292
293
  primaryActionLabel: t("skipPayrollDialog.confirmCta"),
@@ -299,7 +300,7 @@ const Ke = ({
299
300
  {
300
301
  isOpen: P.isOpen,
301
302
  onClose: R,
302
- onPrimaryActionClick: ce,
303
+ onPrimaryActionClick: de,
303
304
  isDestructive: !0,
304
305
  title: t("deletePayrollDialog.title", {
305
306
  payPeriod: P.payPeriod
@@ -309,11 +310,11 @@ const Ke = ({
309
310
  children: t("deletePayrollDialog.body")
310
311
  }
311
312
  ),
312
- /* @__PURE__ */ a("div", { className: i.offCycleCta, children: /* @__PURE__ */ a(
313
- ae,
313
+ ae && /* @__PURE__ */ a("div", { className: i.offCycleCta, children: /* @__PURE__ */ a(
314
+ le,
314
315
  {
315
316
  header: /* @__PURE__ */ a(
316
- le,
317
+ oe,
317
318
  {
318
319
  title: t("offCycleCta.title"),
319
320
  description: t("offCycleCta.description")
@@ -325,6 +326,6 @@ const Ke = ({
325
326
  ] }) });
326
327
  };
327
328
  export {
328
- Ke as PayrollListPresentation
329
+ qe as PayrollListPresentation
329
330
  };
330
331
  //# sourceMappingURL=PayrollListPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollListPresentation.js","sources":["../../../../src/components/Payroll/PayrollList/PayrollListPresentation.tsx"],"sourcesContent":["import type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport { OffCycleReasonType } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { useState, useRef, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport { getPayrollTypeLabel } from '../helpers'\nimport styles from './PayrollListPresentation.module.scss'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { DataView, Flex, HamburgerMenu, DateRangeFilter, EmptyData } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport { useI18n } from '@/i18n'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\nconst CANCELLABLE_OFF_CYCLE_REASONS = new Set<string>([\n OffCycleReasonType.Bonus,\n OffCycleReasonType.Correction,\n OffCycleReasonType.DismissedEmployee,\n])\n\nfunction hasKebabActions(\n payroll: Payroll,\n blockers: ApiPayrollBlocker[],\n todayAtMidnight: Date | null,\n): boolean {\n if (payroll.processed) return false\n\n const payPeriodStartDate = payroll.payPeriod?.startDate\n ? new Date(payroll.payPeriod.startDate)\n : null\n\n const isSkippablePayroll =\n !payroll.offCycle || payroll.offCycleReason === OffCycleReasonType.TransitionFromOldPaySchedule\n\n const canSkipPayroll =\n blockers.length === 0 &&\n isSkippablePayroll &&\n todayAtMidnight &&\n payPeriodStartDate &&\n todayAtMidnight >= payPeriodStartDate\n\n const canDeletePayroll =\n payroll.offCycle &&\n !!payroll.offCycleReason &&\n CANCELLABLE_OFF_CYCLE_REASONS.has(payroll.offCycleReason)\n\n return !!(canSkipPayroll || canDeletePayroll)\n}\n\ninterface PayrollListPresentationProps {\n onRunPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSubmitPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSkipPayroll: ({ payrollUuid }: Pick<Payroll, 'payrollUuid'>) => void\n onDeletePayroll: ({ payrollUuid }: Pick<Payroll, 'payrollUuid'>) => void\n onRunOffCyclePayroll: () => void\n payrolls: Payroll[]\n pagination?: PaginationControlProps\n paySchedules: PayScheduleShow[]\n showSkipSuccessAlert: boolean\n onDismissSkipSuccessAlert: () => void\n showDeleteSuccessAlert: boolean\n onDismissDeleteSuccessAlert: () => void\n skippingPayrollId: string | null\n deletingPayrollId: string | null\n blockers: ApiPayrollBlocker[]\n wireInRequests: WireInRequest[]\n dateRangeFilter: UseDateRangeFilterResult\n hasUnprocessedTransitions?: boolean\n}\n\n/** @internal */\nexport const PayrollListPresentation = ({\n onRunPayroll,\n onSubmitPayroll,\n onSkipPayroll,\n onDeletePayroll,\n onRunOffCyclePayroll,\n payrolls,\n pagination,\n paySchedules,\n showSkipSuccessAlert,\n onDismissSkipSuccessAlert,\n showDeleteSuccessAlert,\n onDismissDeleteSuccessAlert,\n skippingPayrollId,\n deletingPayrollId,\n blockers,\n wireInRequests,\n dateRangeFilter,\n hasUnprocessedTransitions = false,\n}: PayrollListPresentationProps) => {\n const { Box, BoxHeader, Button, ButtonIcon, Dialog, Heading, Text, Alert } = useComponentContext()\n useI18n('Payroll.PayrollList')\n const { t } = useTranslation('Payroll.PayrollList')\n const dateFormatter = useDateFormatter()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('large')\n\n const todayAtMidnight = useMemo(() => {\n const todayDateString = formatDateToStringDate(new Date())\n return todayDateString ? new Date(todayDateString) : null\n }, [])\n\n const anyPayrollHasKebabActions = useMemo(\n () => payrolls.some(payroll => hasKebabActions(payroll, blockers, todayAtMidnight)),\n [payrolls, blockers, todayAtMidnight],\n )\n\n const [skipPayrollDialogState, setSkipPayrollDialogState] = useState<{\n isOpen: boolean\n payrollId: string | null\n payPeriod: string | null\n }>({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n\n const handleOpenSkipDialog = (payrollId: string, payPeriod: string) => {\n setSkipPayrollDialogState({\n isOpen: true,\n payrollId,\n payPeriod,\n })\n }\n\n const handleCloseSkipDialog = () => {\n setSkipPayrollDialogState({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n }\n\n const handleConfirmSkipPayroll = () => {\n if (skipPayrollDialogState.payrollId) {\n onSkipPayroll({ payrollUuid: skipPayrollDialogState.payrollId })\n handleCloseSkipDialog()\n }\n }\n\n const [deletePayrollDialogState, setDeletePayrollDialogState] = useState<{\n isOpen: boolean\n payrollId: string | null\n payPeriod: string | null\n }>({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n\n const handleOpenDeleteDialog = (payrollId: string, payPeriod: string) => {\n setDeletePayrollDialogState({\n isOpen: true,\n payrollId,\n payPeriod,\n })\n }\n\n const handleCloseDeleteDialog = () => {\n setDeletePayrollDialogState({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n }\n\n const handleConfirmDeletePayroll = () => {\n if (deletePayrollDialogState.payrollId) {\n onDeletePayroll({ payrollUuid: deletePayrollDialogState.payrollId })\n handleCloseDeleteDialog()\n }\n }\n\n const formatPayPeriod = (startDate: string | undefined, endDate: string | undefined) => {\n const formattedStartDate = dateFormatter.formatShort(startDate)\n const formattedEndDate = dateFormatter.formatShortWithYear(endDate)\n\n return {\n startDate: formattedStartDate,\n endDate: formattedEndDate,\n fullPeriod: dateFormatter.formatPayPeriodRange(startDate, endDate, { useShortMonth: true }),\n }\n }\n\n const renderActionButton = (payroll: Payroll) => {\n const { payrollUuid, calculatedAt, processed, payPeriod } = payroll\n\n if (processed) {\n return null\n }\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n const isRegular = !payroll.offCycle\n const isDisabledByTransition = isRegular && hasUnprocessedTransitions\n\n return calculatedAt ? (\n <Button\n isLoading={isProcessingSkipPayroll}\n isDisabled={isDisabledByTransition}\n onClick={() => {\n onSubmitPayroll({ payrollUuid, payPeriod })\n }}\n title={t('submitPayrollCta')}\n variant=\"secondary\"\n >\n {t('submitPayrollCta')}\n </Button>\n ) : (\n <Button\n isLoading={isProcessingSkipPayroll}\n isDisabled={isDisabledByTransition}\n onClick={() => {\n onRunPayroll({ payrollUuid, payPeriod })\n }}\n title={t('runPayrollTitle')}\n variant=\"secondary\"\n >\n {t('runPayrollTitle')}\n </Button>\n )\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"stretch\">\n {showSkipSuccessAlert && (\n <div className={styles.alertContainer}>\n <Alert\n status=\"info\"\n label={t('skipSuccessAlert')}\n onDismiss={onDismissSkipSuccessAlert}\n />\n </div>\n )}\n {showDeleteSuccessAlert && (\n <div className={styles.alertContainer}>\n <Alert\n status=\"info\"\n label={t('deleteSuccessAlert')}\n onDismiss={onDismissDeleteSuccessAlert}\n />\n </div>\n )}\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n breakAt=\"large\"\n pagination={pagination}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData title={t('emptyState.default.title')} />\n )\n }\n data={payrolls}\n columns={[\n {\n render: ({ payPeriod }) => {\n const { startDate, endDate } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n return (\n <div className={styles.payPeriodCell}>\n {startDate} - {endDate}\n <Text variant=\"supporting\" size=\"sm\">\n {paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.name ||\n paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.customName}\n </Text>\n </div>\n )\n },\n title: t('tableHeaders.0'),\n },\n {\n render: payroll => getPayrollTypeLabel(payroll),\n title: t('tableHeaders.1'),\n },\n {\n render: ({ checkDate }) => dateFormatter.formatShortWithWeekdayAndYear(checkDate),\n title: t('tableHeaders.2'),\n },\n {\n title: t('tableHeaders.3'),\n render: ({ payrollDeadline }) =>\n dateFormatter.formatShortWithWeekdayAndYear(payrollDeadline),\n },\n {\n title: t('tableHeaders.4'),\n render: payroll => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === payroll.payrollUuid,\n )\n return <PayrollStatusBadges payroll={payroll} wireInRequest={wireInRequest} />\n },\n },\n ...(!isDesktop\n ? [\n {\n title: '',\n render: (payroll: Payroll) => {\n const button = renderActionButton(payroll)\n if (!button) return null\n return (\n <Flex flexDirection=\"column\" alignItems=\"stretch\" gap={12}>\n {button}\n </Flex>\n )\n },\n },\n ]\n : []),\n ]}\n label={t('payrollsListLabel')}\n itemMenu={payroll => {\n const { payrollUuid, processed, payPeriod } = payroll\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n const isProcessingDeletePayroll = deletingPayrollId === payrollUuid\n\n const button = isDesktop ? renderActionButton(payroll) : null\n\n if (processed) {\n return (\n <div className={styles.actionsContainer}>\n {anyPayrollHasKebabActions && (\n <ButtonIcon\n aria-label=\"\"\n aria-hidden={true}\n tabIndex={-1}\n isDisabled={true}\n className={styles.menuPlaceholder}\n />\n )}\n </div>\n )\n }\n\n const { fullPeriod: payPeriodString } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n const payPeriodStartDate = payPeriod?.startDate ? new Date(payPeriod.startDate) : null\n\n const isSkippablePayroll =\n !payroll.offCycle ||\n payroll.offCycleReason === OffCycleReasonType.TransitionFromOldPaySchedule\n\n const canSkipPayroll =\n blockers.length === 0 &&\n isSkippablePayroll &&\n todayAtMidnight &&\n payPeriodStartDate &&\n todayAtMidnight >= payPeriodStartDate\n\n const canDeletePayroll =\n payroll.offCycle &&\n !!payroll.offCycleReason &&\n CANCELLABLE_OFF_CYCLE_REASONS.has(payroll.offCycleReason)\n\n const menuItems = canSkipPayroll\n ? [\n {\n label: t('skipPayrollCta'),\n onClick: () => {\n handleOpenSkipDialog(payrollUuid!, payPeriodString)\n },\n },\n ]\n : canDeletePayroll\n ? [\n {\n label: t('deletePayrollCta'),\n onClick: () => {\n handleOpenDeleteDialog(payrollUuid!, payPeriodString)\n },\n },\n ]\n : null\n\n const hasMenuActions = menuItems !== null\n\n return (\n <div className={styles.actionsContainer}>\n {button}\n {hasMenuActions ? (\n <HamburgerMenu\n isLoading={canSkipPayroll ? isProcessingSkipPayroll : isProcessingDeletePayroll}\n menuLabel={t('payrollMenuLabel')}\n items={menuItems}\n />\n ) : (\n anyPayrollHasKebabActions && (\n <ButtonIcon\n aria-label=\"\"\n aria-hidden={true}\n tabIndex={-1}\n isDisabled={true}\n className={styles.menuPlaceholder}\n />\n )\n )}\n </div>\n )\n }}\n />\n <Dialog\n isOpen={skipPayrollDialogState.isOpen}\n onClose={handleCloseSkipDialog}\n onPrimaryActionClick={handleConfirmSkipPayroll}\n isDestructive={true}\n title={t('skipPayrollDialog.title', { payPeriod: skipPayrollDialogState.payPeriod })}\n primaryActionLabel={t('skipPayrollDialog.confirmCta')}\n closeActionLabel={t('skipPayrollDialog.cancelCta')}\n >\n {t('skipPayrollDialog.body')}\n </Dialog>\n <Dialog\n isOpen={deletePayrollDialogState.isOpen}\n onClose={handleCloseDeleteDialog}\n onPrimaryActionClick={handleConfirmDeletePayroll}\n isDestructive={true}\n title={t('deletePayrollDialog.title', {\n payPeriod: deletePayrollDialogState.payPeriod,\n })}\n primaryActionLabel={t('deletePayrollDialog.confirmCta')}\n closeActionLabel={t('deletePayrollDialog.cancelCta')}\n >\n {t('deletePayrollDialog.body')}\n </Dialog>\n <div className={styles.offCycleCta}>\n <Box\n header={\n <BoxHeader\n title={t('offCycleCta.title')}\n description={t('offCycleCta.description')}\n />\n }\n footer={\n <Button variant=\"secondary\" onClick={onRunOffCyclePayroll}>\n {t('offCycleCta.button')}\n </Button>\n }\n />\n </div>\n </Flex>\n </div>\n )\n}\n"],"names":["CANCELLABLE_OFF_CYCLE_REASONS","OffCycleReasonType","hasKebabActions","payroll","blockers","todayAtMidnight","payPeriodStartDate","isSkippablePayroll","canSkipPayroll","canDeletePayroll","PayrollListPresentation","onRunPayroll","onSubmitPayroll","onSkipPayroll","onDeletePayroll","onRunOffCyclePayroll","payrolls","pagination","paySchedules","showSkipSuccessAlert","onDismissSkipSuccessAlert","showDeleteSuccessAlert","onDismissDeleteSuccessAlert","skippingPayrollId","deletingPayrollId","wireInRequests","dateRangeFilter","hasUnprocessedTransitions","Box","BoxHeader","Button","ButtonIcon","Dialog","Heading","Text","Alert","useComponentContext","useI18n","useTranslation","dateFormatter","useDateFormatter","containerRef","useRef","isDesktop","useContainerBreakpoints","useMemo","todayDateString","formatDateToStringDate","anyPayrollHasKebabActions","skipPayrollDialogState","setSkipPayrollDialogState","useState","handleOpenSkipDialog","payrollId","payPeriod","handleCloseSkipDialog","handleConfirmSkipPayroll","deletePayrollDialogState","setDeletePayrollDialogState","handleOpenDeleteDialog","handleCloseDeleteDialog","handleConfirmDeletePayroll","formatPayPeriod","startDate","endDate","formattedStartDate","formattedEndDate","renderActionButton","payrollUuid","calculatedAt","processed","isProcessingSkipPayroll","isDisabledByTransition","jsx","styles","jsxs","Flex","DateRangeFilter","DataView","EmptyData","schedule","getPayrollTypeLabel","checkDate","payrollDeadline","wireInRequest","wire","PayrollStatusBadges","button","isProcessingDeletePayroll","payPeriodString","menuItems","hasMenuActions","HamburgerMenu"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollListPresentation.js","sources":["../../../../src/components/Payroll/PayrollList/PayrollListPresentation.tsx"],"sourcesContent":["import type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport { OffCycleReasonType } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { useState, useRef, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport { getPayrollTypeLabel } from '../helpers'\nimport styles from './PayrollListPresentation.module.scss'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { DataView, Flex, HamburgerMenu, DateRangeFilter, EmptyData } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport { useI18n } from '@/i18n'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\nconst CANCELLABLE_OFF_CYCLE_REASONS = new Set<string>([\n OffCycleReasonType.Bonus,\n OffCycleReasonType.Correction,\n OffCycleReasonType.DismissedEmployee,\n])\n\nfunction hasKebabActions(\n payroll: Payroll,\n blockers: ApiPayrollBlocker[],\n todayAtMidnight: Date | null,\n): boolean {\n if (payroll.processed) return false\n\n const payPeriodStartDate = payroll.payPeriod?.startDate\n ? new Date(payroll.payPeriod.startDate)\n : null\n\n const isSkippablePayroll =\n !payroll.offCycle || payroll.offCycleReason === OffCycleReasonType.TransitionFromOldPaySchedule\n\n const canSkipPayroll =\n blockers.length === 0 &&\n isSkippablePayroll &&\n todayAtMidnight &&\n payPeriodStartDate &&\n todayAtMidnight >= payPeriodStartDate\n\n const canDeletePayroll =\n payroll.offCycle &&\n !!payroll.offCycleReason &&\n CANCELLABLE_OFF_CYCLE_REASONS.has(payroll.offCycleReason)\n\n return !!(canSkipPayroll || canDeletePayroll)\n}\n\ninterface PayrollListPresentationProps {\n onRunPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSubmitPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSkipPayroll: ({ payrollUuid }: Pick<Payroll, 'payrollUuid'>) => void\n onDeletePayroll: ({ payrollUuid }: Pick<Payroll, 'payrollUuid'>) => void\n onRunOffCyclePayroll: () => void\n payrolls: Payroll[]\n pagination?: PaginationControlProps\n paySchedules: PayScheduleShow[]\n showSkipSuccessAlert: boolean\n onDismissSkipSuccessAlert: () => void\n showDeleteSuccessAlert: boolean\n onDismissDeleteSuccessAlert: () => void\n skippingPayrollId: string | null\n deletingPayrollId: string | null\n blockers: ApiPayrollBlocker[]\n wireInRequests: WireInRequest[]\n dateRangeFilter: UseDateRangeFilterResult\n hasUnprocessedTransitions?: boolean\n withOffcyclePayroll?: boolean\n}\n\n/** @internal */\nexport const PayrollListPresentation = ({\n onRunPayroll,\n onSubmitPayroll,\n onSkipPayroll,\n onDeletePayroll,\n onRunOffCyclePayroll,\n payrolls,\n pagination,\n paySchedules,\n showSkipSuccessAlert,\n onDismissSkipSuccessAlert,\n showDeleteSuccessAlert,\n onDismissDeleteSuccessAlert,\n skippingPayrollId,\n deletingPayrollId,\n blockers,\n wireInRequests,\n dateRangeFilter,\n hasUnprocessedTransitions = false,\n withOffcyclePayroll = true,\n}: PayrollListPresentationProps) => {\n const { Box, BoxHeader, Button, ButtonIcon, Dialog, Heading, Text, Alert } = useComponentContext()\n useI18n('Payroll.PayrollList')\n const { t } = useTranslation('Payroll.PayrollList')\n const dateFormatter = useDateFormatter()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('large')\n\n const todayAtMidnight = useMemo(() => {\n const todayDateString = formatDateToStringDate(new Date())\n return todayDateString ? new Date(todayDateString) : null\n }, [])\n\n const anyPayrollHasKebabActions = useMemo(\n () => payrolls.some(payroll => hasKebabActions(payroll, blockers, todayAtMidnight)),\n [payrolls, blockers, todayAtMidnight],\n )\n\n const [skipPayrollDialogState, setSkipPayrollDialogState] = useState<{\n isOpen: boolean\n payrollId: string | null\n payPeriod: string | null\n }>({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n\n const handleOpenSkipDialog = (payrollId: string, payPeriod: string) => {\n setSkipPayrollDialogState({\n isOpen: true,\n payrollId,\n payPeriod,\n })\n }\n\n const handleCloseSkipDialog = () => {\n setSkipPayrollDialogState({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n }\n\n const handleConfirmSkipPayroll = () => {\n if (skipPayrollDialogState.payrollId) {\n onSkipPayroll({ payrollUuid: skipPayrollDialogState.payrollId })\n handleCloseSkipDialog()\n }\n }\n\n const [deletePayrollDialogState, setDeletePayrollDialogState] = useState<{\n isOpen: boolean\n payrollId: string | null\n payPeriod: string | null\n }>({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n\n const handleOpenDeleteDialog = (payrollId: string, payPeriod: string) => {\n setDeletePayrollDialogState({\n isOpen: true,\n payrollId,\n payPeriod,\n })\n }\n\n const handleCloseDeleteDialog = () => {\n setDeletePayrollDialogState({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n }\n\n const handleConfirmDeletePayroll = () => {\n if (deletePayrollDialogState.payrollId) {\n onDeletePayroll({ payrollUuid: deletePayrollDialogState.payrollId })\n handleCloseDeleteDialog()\n }\n }\n\n const formatPayPeriod = (startDate: string | undefined, endDate: string | undefined) => {\n const formattedStartDate = dateFormatter.formatShort(startDate)\n const formattedEndDate = dateFormatter.formatShortWithYear(endDate)\n\n return {\n startDate: formattedStartDate,\n endDate: formattedEndDate,\n fullPeriod: dateFormatter.formatPayPeriodRange(startDate, endDate, { useShortMonth: true }),\n }\n }\n\n const renderActionButton = (payroll: Payroll) => {\n const { payrollUuid, calculatedAt, processed, payPeriod } = payroll\n\n if (processed) {\n return null\n }\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n const isRegular = !payroll.offCycle\n const isDisabledByTransition = isRegular && hasUnprocessedTransitions\n\n return calculatedAt ? (\n <Button\n isLoading={isProcessingSkipPayroll}\n isDisabled={isDisabledByTransition}\n onClick={() => {\n onSubmitPayroll({ payrollUuid, payPeriod })\n }}\n title={t('submitPayrollCta')}\n variant=\"secondary\"\n >\n {t('submitPayrollCta')}\n </Button>\n ) : (\n <Button\n isLoading={isProcessingSkipPayroll}\n isDisabled={isDisabledByTransition}\n onClick={() => {\n onRunPayroll({ payrollUuid, payPeriod })\n }}\n title={t('runPayrollTitle')}\n variant=\"secondary\"\n >\n {t('runPayrollTitle')}\n </Button>\n )\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"stretch\">\n {showSkipSuccessAlert && (\n <div className={styles.alertContainer}>\n <Alert\n status=\"info\"\n label={t('skipSuccessAlert')}\n onDismiss={onDismissSkipSuccessAlert}\n />\n </div>\n )}\n {showDeleteSuccessAlert && (\n <div className={styles.alertContainer}>\n <Alert\n status=\"info\"\n label={t('deleteSuccessAlert')}\n onDismiss={onDismissDeleteSuccessAlert}\n />\n </div>\n )}\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n breakAt=\"large\"\n pagination={pagination}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData title={t('emptyState.default.title')} />\n )\n }\n data={payrolls}\n columns={[\n {\n render: ({ payPeriod }) => {\n const { startDate, endDate } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n return (\n <div className={styles.payPeriodCell}>\n {startDate} - {endDate}\n <Text variant=\"supporting\" size=\"sm\">\n {paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.name ||\n paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.customName}\n </Text>\n </div>\n )\n },\n title: t('tableHeaders.0'),\n },\n {\n render: payroll => getPayrollTypeLabel(payroll),\n title: t('tableHeaders.1'),\n },\n {\n render: ({ checkDate }) => dateFormatter.formatShortWithWeekdayAndYear(checkDate),\n title: t('tableHeaders.2'),\n },\n {\n title: t('tableHeaders.3'),\n render: ({ payrollDeadline }) =>\n dateFormatter.formatShortWithWeekdayAndYear(payrollDeadline),\n },\n {\n title: t('tableHeaders.4'),\n render: payroll => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === payroll.payrollUuid,\n )\n return <PayrollStatusBadges payroll={payroll} wireInRequest={wireInRequest} />\n },\n },\n ...(!isDesktop\n ? [\n {\n title: '',\n render: (payroll: Payroll) => {\n const button = renderActionButton(payroll)\n if (!button) return null\n return (\n <Flex flexDirection=\"column\" alignItems=\"stretch\" gap={12}>\n {button}\n </Flex>\n )\n },\n },\n ]\n : []),\n ]}\n label={t('payrollsListLabel')}\n itemMenu={payroll => {\n const { payrollUuid, processed, payPeriod } = payroll\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n const isProcessingDeletePayroll = deletingPayrollId === payrollUuid\n\n const button = isDesktop ? renderActionButton(payroll) : null\n\n if (processed) {\n return (\n <div className={styles.actionsContainer}>\n {anyPayrollHasKebabActions && (\n <ButtonIcon\n aria-label=\"\"\n aria-hidden={true}\n tabIndex={-1}\n isDisabled={true}\n className={styles.menuPlaceholder}\n />\n )}\n </div>\n )\n }\n\n const { fullPeriod: payPeriodString } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n const payPeriodStartDate = payPeriod?.startDate ? new Date(payPeriod.startDate) : null\n\n const isSkippablePayroll =\n !payroll.offCycle ||\n payroll.offCycleReason === OffCycleReasonType.TransitionFromOldPaySchedule\n\n const canSkipPayroll =\n blockers.length === 0 &&\n isSkippablePayroll &&\n todayAtMidnight &&\n payPeriodStartDate &&\n todayAtMidnight >= payPeriodStartDate\n\n const canDeletePayroll =\n payroll.offCycle &&\n !!payroll.offCycleReason &&\n CANCELLABLE_OFF_CYCLE_REASONS.has(payroll.offCycleReason)\n\n const menuItems = canSkipPayroll\n ? [\n {\n label: t('skipPayrollCta'),\n onClick: () => {\n handleOpenSkipDialog(payrollUuid!, payPeriodString)\n },\n },\n ]\n : canDeletePayroll\n ? [\n {\n label: t('deletePayrollCta'),\n onClick: () => {\n handleOpenDeleteDialog(payrollUuid!, payPeriodString)\n },\n },\n ]\n : null\n\n const hasMenuActions = menuItems !== null\n\n return (\n <div className={styles.actionsContainer}>\n {button}\n {hasMenuActions ? (\n <HamburgerMenu\n isLoading={canSkipPayroll ? isProcessingSkipPayroll : isProcessingDeletePayroll}\n menuLabel={t('payrollMenuLabel')}\n items={menuItems}\n />\n ) : (\n anyPayrollHasKebabActions && (\n <ButtonIcon\n aria-label=\"\"\n aria-hidden={true}\n tabIndex={-1}\n isDisabled={true}\n className={styles.menuPlaceholder}\n />\n )\n )}\n </div>\n )\n }}\n />\n <Dialog\n isOpen={skipPayrollDialogState.isOpen}\n onClose={handleCloseSkipDialog}\n onPrimaryActionClick={handleConfirmSkipPayroll}\n isDestructive={true}\n title={t('skipPayrollDialog.title', { payPeriod: skipPayrollDialogState.payPeriod })}\n primaryActionLabel={t('skipPayrollDialog.confirmCta')}\n closeActionLabel={t('skipPayrollDialog.cancelCta')}\n >\n {t('skipPayrollDialog.body')}\n </Dialog>\n <Dialog\n isOpen={deletePayrollDialogState.isOpen}\n onClose={handleCloseDeleteDialog}\n onPrimaryActionClick={handleConfirmDeletePayroll}\n isDestructive={true}\n title={t('deletePayrollDialog.title', {\n payPeriod: deletePayrollDialogState.payPeriod,\n })}\n primaryActionLabel={t('deletePayrollDialog.confirmCta')}\n closeActionLabel={t('deletePayrollDialog.cancelCta')}\n >\n {t('deletePayrollDialog.body')}\n </Dialog>\n {withOffcyclePayroll && (\n <div className={styles.offCycleCta}>\n <Box\n header={\n <BoxHeader\n title={t('offCycleCta.title')}\n description={t('offCycleCta.description')}\n />\n }\n footer={\n <Button variant=\"secondary\" onClick={onRunOffCyclePayroll}>\n {t('offCycleCta.button')}\n </Button>\n }\n />\n </div>\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["CANCELLABLE_OFF_CYCLE_REASONS","OffCycleReasonType","hasKebabActions","payroll","blockers","todayAtMidnight","payPeriodStartDate","isSkippablePayroll","canSkipPayroll","canDeletePayroll","PayrollListPresentation","onRunPayroll","onSubmitPayroll","onSkipPayroll","onDeletePayroll","onRunOffCyclePayroll","payrolls","pagination","paySchedules","showSkipSuccessAlert","onDismissSkipSuccessAlert","showDeleteSuccessAlert","onDismissDeleteSuccessAlert","skippingPayrollId","deletingPayrollId","wireInRequests","dateRangeFilter","hasUnprocessedTransitions","withOffcyclePayroll","Box","BoxHeader","Button","ButtonIcon","Dialog","Heading","Text","Alert","useComponentContext","useI18n","useTranslation","dateFormatter","useDateFormatter","containerRef","useRef","isDesktop","useContainerBreakpoints","useMemo","todayDateString","formatDateToStringDate","anyPayrollHasKebabActions","skipPayrollDialogState","setSkipPayrollDialogState","useState","handleOpenSkipDialog","payrollId","payPeriod","handleCloseSkipDialog","handleConfirmSkipPayroll","deletePayrollDialogState","setDeletePayrollDialogState","handleOpenDeleteDialog","handleCloseDeleteDialog","handleConfirmDeletePayroll","formatPayPeriod","startDate","endDate","formattedStartDate","formattedEndDate","renderActionButton","payrollUuid","calculatedAt","processed","isProcessingSkipPayroll","isDisabledByTransition","jsx","styles","jsxs","Flex","DateRangeFilter","DataView","EmptyData","schedule","getPayrollTypeLabel","checkDate","payrollDeadline","wireInRequest","wire","PayrollStatusBadges","button","isProcessingDeletePayroll","payPeriodString","menuItems","hasMenuActions","HamburgerMenu"],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.Pa
17
17
  withReimbursements?: boolean;
18
18
  /** Custom component to replace the default wire details confirmation UI. */
19
19
  ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType;
20
+ /**
21
+ * Hides the edit and cancel actions, leaving submit and receipt/paystub actions available.
22
+ * Use for a deep link to a specific payroll where editing shouldn't be offered. Defaults to
23
+ * `false`.
24
+ */
25
+ readOnly?: boolean;
20
26
  }
21
27
  /**
22
28
  * Final review screen for a calculated payroll before submission, with submit, cancel,
@@ -28,7 +34,8 @@ export interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.Pa
28
34
  * uncalculated payroll throws. Unresolved submission blockers (e.g. fast-ACH threshold,
29
35
  * wire-in funding) are surfaced inline and the submit action stays disabled until each
30
36
  * blocker has a selected unblock option. While the payroll is processing, the component
31
- * polls until success or failure and emits the corresponding event.
37
+ * polls until success or failure and emits the corresponding event. Pass `readOnly` to hide
38
+ * the edit and cancel actions while keeping submit available.
32
39
  *
33
40
  * @events
34
41
  * | Event | Description | Data |
@@ -42,6 +49,13 @@ export interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.Pa
42
49
  * | `runPayroll/receipt/get` | User requested the payroll receipt | `{ payrollId }` |
43
50
  * | `runPayroll/pdfPaystub/viewed` | User opened an employee's paystub PDF | `{ employeeId }` |
44
51
  * | `payroll/wire/form/done` | Wire-in details were confirmed via the embedded wire form | Submit wire-in response |
52
+ * | `payroll/printChecks/start` | User opened the print-checks modal from the embedded print-checks banner | — |
53
+ * | `payroll/printChecks/generate/start` | User submitted the print-checks form | — |
54
+ * | `payroll/printChecks/generate/succeeded` | Printable checks finished generating | `{ documentUrl }` |
55
+ * | `payroll/printChecks/generate/failed` | The print-checks request was rejected or generation failed | `{ errorMessage }` |
56
+ * | `payroll/printChecks/retry` | User retried after a failed check generation | — |
57
+ * | `payroll/printChecks/cancel` | User cancelled the print-checks form | — |
58
+ * | `payroll/printChecks/close` | User closed the print-checks failure or summary screen | — |
45
59
  *
46
60
  * @param props - See {@link PayrollOverviewProps}.
47
61
  * @returns The payroll overview surface.