@gusto/embedded-react-sdk 0.57.0 → 0.57.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 (165) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.js +44 -42
  3. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  4. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +17 -15
  5. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
  6. package/dist/components/Common/UI/Input/Input.js +35 -32
  7. package/dist/components/Common/UI/Input/Input.js.map +1 -1
  8. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -5
  9. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  10. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -5
  11. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  12. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -7
  13. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  14. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -5
  15. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  16. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -5
  17. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  18. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +9 -10
  19. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  20. package/dist/components/Company/Industry/Context.js +7 -8
  21. package/dist/components/Company/Industry/Context.js.map +1 -1
  22. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -5
  23. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  24. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -5
  25. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  26. package/dist/components/Company/OnboardingOverview/context.js +4 -5
  27. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  28. package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
  29. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  30. package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
  31. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +80 -68
  32. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  33. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
  34. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
  35. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +96 -69
  36. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  37. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -5
  38. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  39. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -5
  40. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  41. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +4 -5
  42. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  43. package/dist/components/Company/StateTaxes/shared/requirementSetError.js +27 -10
  44. package/dist/components/Company/StateTaxes/shared/requirementSetError.js.map +1 -1
  45. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js +77 -0
  46. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js.map +1 -0
  47. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js +94 -0
  48. package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js.map +1 -0
  49. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js +26 -0
  50. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js.map +1 -0
  51. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js +25 -0
  52. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js.map +1 -0
  53. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js +33 -0
  54. package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js.map +1 -0
  55. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js +55 -0
  56. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js.map +1 -0
  57. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js +153 -0
  58. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js.map +1 -0
  59. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js +14 -0
  60. package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js.map +1 -0
  61. package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js +16 -0
  62. package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js.map +1 -0
  63. package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js +34 -0
  64. package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js.map +1 -0
  65. package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js +30 -0
  66. package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js.map +1 -0
  67. package/dist/components/Company/exports/companyManagement.js +10 -4
  68. package/dist/components/Company/exports/companyManagement.js.map +1 -1
  69. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +4 -5
  70. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  71. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +24 -23
  72. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
  73. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js +42 -34
  74. package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js.map +1 -1
  75. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +3 -2
  76. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  77. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
  78. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  79. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  80. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +60 -52
  81. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  82. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +74 -88
  83. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  84. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  85. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +23 -18
  86. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  87. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +204 -179
  88. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  89. package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js +8 -0
  90. package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js.map +1 -0
  91. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
  92. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  93. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +4 -4
  94. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  95. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +50 -41
  96. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
  97. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
  98. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  99. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
  100. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
  101. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +164 -154
  102. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
  103. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +9 -5
  104. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -1
  105. package/dist/components/Payroll/helpers.js +103 -92
  106. package/dist/components/Payroll/helpers.js.map +1 -1
  107. package/dist/components/Payroll/usePreparedPayrollData.js +3 -4
  108. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  109. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
  110. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  111. package/dist/contexts/ApiProvider/ApiProvider.js +19 -18
  112. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  113. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +36 -0
  114. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -0
  115. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  116. package/dist/helpers/dateFormatting.js +47 -40
  117. package/dist/helpers/dateFormatting.js.map +1 -1
  118. package/dist/i18n/I18n.js +2 -0
  119. package/dist/i18n/I18n.js.map +1 -1
  120. package/dist/i18n/en/Company.Management.PaySchedule.json.js +20 -18
  121. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  122. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +6 -4
  123. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  124. package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js +26 -0
  125. package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js.map +1 -0
  126. package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js +48 -0
  127. package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js.map +1 -0
  128. package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
  129. package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
  130. package/dist/i18n/en/Payroll.PayrollOverview.json.js +42 -36
  131. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  132. package/dist/package.json.js +1 -1
  133. package/dist/shared/constants.js +62 -56
  134. package/dist/shared/constants.js.map +1 -1
  135. package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
  136. package/dist/src/components/Company/StateTaxes/shared/requirementSetError.d.ts +18 -5
  137. package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.d.ts +31 -0
  138. package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.d.ts +19 -0
  139. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.d.ts +42 -0
  140. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.d.ts +20 -0
  141. package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.d.ts +10 -0
  142. package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.d.ts +28 -0
  143. package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.d.ts +33 -0
  144. package/dist/src/components/Company/TaxPayments/index.d.ts +6 -0
  145. package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.d.ts +29 -0
  146. package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.test.d.ts +1 -0
  147. package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.d.ts +62 -0
  148. package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.test.d.ts +1 -0
  149. package/dist/src/components/Company/TaxPayments/shared/useAllTaxPayments.d.ts +30 -0
  150. package/dist/src/components/Company/exports/companyManagement.d.ts +2 -0
  151. package/dist/src/components/Payroll/PayrollConfiguration/__fixtures__/payrollConfigurationMocks.d.ts +6 -1
  152. package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -0
  153. package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +1 -0
  154. package/dist/src/components/Payroll/PayrollOverview/PayrollOverview.d.ts +9 -3
  155. package/dist/src/components/Payroll/helpers.d.ts +34 -18
  156. package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.d.ts +14 -0
  157. package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.test.d.ts +1 -0
  158. package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
  159. package/dist/src/helpers/dateFormatting.d.ts +13 -0
  160. package/dist/src/i18n/types.d.ts +168 -4
  161. package/dist/src/models/external.d.ts +2 -0
  162. package/dist/src/shared/constants.d.ts +18 -0
  163. package/dist/style.css +1 -1
  164. package/docs/guides/endpoint-inventory.json +33 -0
  165. package/package.json +30 -27
@@ -1,16 +1,15 @@
1
1
  import { jsx as c } from "react/jsx-runtime";
2
- import { useState as F, useCallback as y, useMemo as J, useEffect as Z } from "react";
2
+ import { useState as F, useCallback as f, useMemo as J, useEffect as Z } from "react";
3
3
  import { useForm as Q, FormProvider as X } from "react-hook-form";
4
4
  import { zodResolver as $ } from "@hookform/resolvers/zod";
5
- import { z as l } from "zod";
5
+ import { z as s } from "zod";
6
6
  import { useTranslation as W } from "react-i18next";
7
7
  import { usePayrollsCreateOffCycleMutation as ee } from "@gusto/embedded-api/react-query/payrollsCreateOffCycle";
8
8
  import { usePayrollsGetBlockersSuspense as oe } from "@gusto/embedded-api/react-query/payrollsGetBlockers";
9
9
  import { WithholdingPayPeriod as te, OffCycleReason as A } from "@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls";
10
- import { RFCDate as E } from "@gusto/embedded-api/types/rfcdate";
11
10
  import { useEmployeesListSuspense as ne } from "@gusto/embedded-api/react-query/employeesList";
12
- import { createOffCyclePayPeriodDateFormSchema as se } from "../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.js";
13
- import { useOffCyclePayPeriodDateValidation as le } from "../OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js";
11
+ import { createOffCyclePayPeriodDateFormSchema as le } from "../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.js";
12
+ import { useOffCyclePayPeriodDateValidation as se } from "../OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js";
14
13
  import { OffCycleCreationPresentation as ie } from "./OffCycleCreationPresentation.js";
15
14
  import { useCompanyPaymentSpeed as re } from "../../../hooks/useCompanyPaymentSpeed.js";
16
15
  import { BaseComponent as ae } from "../../Base/Base.js";
@@ -19,28 +18,29 @@ import { useComponentDictionary as me, useI18n as a } from "../../../i18n/I18n.j
19
18
  import { componentEvents as T } from "../../../shared/constants.js";
20
19
  import { SDKInternalError as de } from "../../../types/sdkError.js";
21
20
  import { Form as ue } from "../../Common/Form/Form.js";
22
- import { OFF_CYCLE_REASON_DEFAULTS as f } from "../OffCycleReasonSelection/types.js";
23
- const ye = {
21
+ import { toRFCDate as E } from "../../../helpers/dateFormatting.js";
22
+ import { OFF_CYCLE_REASON_DEFAULTS as y } from "../OffCycleReasonSelection/types.js";
23
+ const fe = {
24
24
  bonus: A.Bonus,
25
25
  correction: A.Correction
26
26
  };
27
27
  function Ne(m) {
28
- return /* @__PURE__ */ c(ae, { ...m, children: /* @__PURE__ */ c(fe, { ...m }) });
28
+ return /* @__PURE__ */ c(ae, { ...m, children: /* @__PURE__ */ c(ye, { ...m }) });
29
29
  }
30
- function fe({ dictionary: m, companyId: d, payrollType: h = "bonus", className: U }) {
30
+ function ye({ dictionary: m, companyId: d, payrollType: p = "bonus", className: U }) {
31
31
  me("Payroll.OffCycleCreation", m), a("Payroll.OffCycleCreation"), a("Payroll.OffCycleReasonSelection"), a("Payroll.OffCyclePayPeriodDateForm"), a("Payroll.OffCycleDeductionsSetting"), a("Payroll.EmployeeSelection");
32
- const { t: v } = W("Payroll.OffCyclePayPeriodDateForm"), { t: O } = W("Payroll.OffCycleCreation"), { onEvent: p, baseSubmitHandler: L } = ce(), { paymentSpeedDays: k } = re(d), { minCheckDate: R, maxDate: _, minPayPeriodDate: B, today: w } = le(k), { mutateAsync: N, isPending: M } = ee(), [C, S] = F({
32
+ const { t: v } = W("Payroll.OffCyclePayPeriodDateForm"), { t: O } = W("Payroll.OffCycleCreation"), { onEvent: h, baseSubmitHandler: L } = ce(), { paymentSpeedDays: k } = re(d), { minCheckDate: R, maxDate: _, minPayPeriodDate: B, today: S } = se(k), { mutateAsync: N, isPending: M } = ee(), [C, b] = F({
33
33
  withholdingPayPeriod: te.EveryOtherWeek,
34
- withholdingRate: f[h].withholdingType
35
- }), [V, D] = F(!1), j = y(() => {
36
- D(!0);
37
- }, []), I = y((e) => {
38
- S(e), D(!1);
39
- }, []), Y = y(() => {
40
- D(!1);
41
- }, []), q = y(() => {
42
- p(T.OFF_CYCLE_BLOCKERS_VIEW_ALL);
43
- }, [p]), { data: b } = ne({
34
+ withholdingRate: y[p].withholdingType
35
+ }), [V, g] = F(!1), j = f(() => {
36
+ g(!0);
37
+ }, []), I = f((e) => {
38
+ b(e), g(!1);
39
+ }, []), Y = f(() => {
40
+ g(!1);
41
+ }, []), q = f(() => {
42
+ h(T.OFF_CYCLE_BLOCKERS_VIEW_ALL);
43
+ }, [h]), { data: w } = ne({
44
44
  companyId: d,
45
45
  onboardedActive: !0
46
46
  }), { data: z } = oe({
@@ -48,85 +48,87 @@ function fe({ dictionary: m, companyId: d, payrollType: h = "bonus", className:
48
48
  }), K = (z.payrollBlockers ?? []).map((e) => ({
49
49
  key: e.key,
50
50
  message: e.message
51
- })), x = J(() => [...b.showEmployees ?? []].sort((o, t) => {
51
+ })), x = J(() => [...w.showEmployees ?? []].sort((o, t) => {
52
52
  const n = o.lastName.localeCompare(t.lastName);
53
53
  return n !== 0 ? n : o.firstName.localeCompare(t.firstName);
54
54
  }).map((o) => {
55
- const t = [o.firstName, o.lastName].filter(Boolean).join(" "), n = o.jobs?.find((r) => r.primary) ?? o.jobs?.[0];
55
+ const t = [o.firstName, o.lastName].filter(Boolean).join(" "), n = o.jobs?.find((i) => i.primary) ?? o.jobs?.[0];
56
56
  return {
57
57
  label: t,
58
58
  value: o.uuid,
59
59
  description: n?.title || void 0
60
60
  };
61
- }), [b]), G = (e, o) => (
61
+ }), [w]), G = (e, o) => (
62
62
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
63
  v(e, o)
64
- ), i = Q({
64
+ ), r = Q({
65
65
  resolver: (e, o, t) => {
66
- const n = e.isCheckOnly, r = se(
66
+ const n = e.isCheckOnly, i = le(
67
67
  G,
68
- n ? w : R,
68
+ n ? S : R,
69
69
  k
70
- ), P = l.object({
71
- reason: l.enum(["bonus", "correction"]),
72
- skipRegularDeductions: l.boolean(),
73
- includeAllEmployees: l.boolean(),
74
- selectedEmployeeUuids: l.array(l.string())
75
- }).and(r).superRefine((s, u) => {
76
- !s.includeAllEmployees && s.selectedEmployeeUuids.length === 0 && u.addIssue({
77
- code: l.ZodIssueCode.custom,
70
+ ), D = s.object({
71
+ reason: s.enum(["bonus", "correction"]),
72
+ skipRegularDeductions: s.boolean(),
73
+ includeAllEmployees: s.boolean(),
74
+ selectedEmployeeUuids: s.array(s.string())
75
+ }).and(i).superRefine((l, u) => {
76
+ !l.includeAllEmployees && l.selectedEmployeeUuids.length === 0 && u.addIssue({
77
+ code: s.ZodIssueCode.custom,
78
78
  path: ["selectedEmployeeUuids"],
79
79
  message: O("errors.noEmployeesSelected")
80
80
  });
81
81
  });
82
- return $(P)(e, o, t);
82
+ return $(D)(e, o, t);
83
83
  },
84
84
  defaultValues: {
85
- reason: h,
85
+ reason: p,
86
86
  isCheckOnly: !1,
87
87
  startDate: null,
88
88
  endDate: null,
89
89
  checkDate: null,
90
- skipRegularDeductions: f[h].skipDeductions,
90
+ skipRegularDeductions: y[p].skipDeductions,
91
91
  includeAllEmployees: !1,
92
92
  selectedEmployeeUuids: []
93
93
  }
94
- }), g = i.watch("reason");
94
+ }), P = r.watch("reason");
95
95
  Z(() => {
96
- i.setValue(
96
+ r.setValue(
97
97
  "skipRegularDeductions",
98
- f[g].skipDeductions
99
- ), S((e) => ({
98
+ y[P].skipDeductions
99
+ ), b((e) => ({
100
100
  ...e,
101
- withholdingRate: f[g].withholdingType
101
+ withholdingRate: y[P].withholdingType
102
102
  }));
103
- }, [g, i]);
103
+ }, [P, r]);
104
104
  const H = async (e) => {
105
- const o = e.reason, t = e.checkDate, n = e.startDate, r = e.endDate, P = e.includeAllEmployees ? x.map((s) => s.value) : e.selectedEmployeeUuids.length > 0 ? e.selectedEmployeeUuids : void 0;
105
+ const { reason: o, checkDate: t, startDate: n, endDate: i } = e;
106
+ if (!t || !n || !i) return;
107
+ const D = e.includeAllEmployees ? x.map((l) => l.value) : e.selectedEmployeeUuids.length > 0 ? e.selectedEmployeeUuids : void 0;
106
108
  await L(e, async () => {
107
- const s = await N({
109
+ const l = await N({
108
110
  request: {
109
111
  companyId: d,
110
112
  requestBody: {
111
113
  offCycle: !0,
112
- offCycleReason: ye[o],
113
- startDate: new E(n),
114
- endDate: new E(r),
115
- checkDate: new E(t),
114
+ offCycleReason: fe[o],
115
+ startDate: E(n),
116
+ endDate: E(i),
117
+ checkDate: E(t),
116
118
  skipRegularDeductions: e.skipRegularDeductions,
117
119
  isCheckOnlyPayroll: e.isCheckOnly,
118
- employeeUuids: P,
120
+ employeeUuids: D,
119
121
  withholdingPayPeriod: C.withholdingPayPeriod,
120
122
  fixedWithholdingRate: C.withholdingRate === "supplemental"
121
123
  }
122
124
  }
123
- }), u = s.payrollUnprocessed?.payrollUuid ?? s.payrollUnprocessed?.uuid;
125
+ }), u = l.payrollUnprocessed?.payrollUuid ?? l.payrollUnprocessed?.uuid;
124
126
  if (!u)
125
127
  throw new de(O("errors.missingPayrollId"));
126
- p(T.OFF_CYCLE_CREATED, { payrollUuid: u });
128
+ h(T.OFF_CYCLE_CREATED, { payrollUuid: u });
127
129
  });
128
130
  };
129
- return /* @__PURE__ */ c(X, { ...i, children: /* @__PURE__ */ c(ue, { onSubmit: i.handleSubmit(H), children: /* @__PURE__ */ c(
131
+ return /* @__PURE__ */ c(X, { ...r, children: /* @__PURE__ */ c(ue, { onSubmit: r.handleSubmit(H), children: /* @__PURE__ */ c(
130
132
  ie,
131
133
  {
132
134
  employees: x,
@@ -134,7 +136,7 @@ function fe({ dictionary: m, companyId: d, payrollType: h = "bonus", className:
134
136
  onViewBlockersClick: q,
135
137
  isPending: M,
136
138
  minCheckDate: R,
137
- minCheckOnlyDate: w,
139
+ minCheckOnlyDate: S,
138
140
  maxDate: _,
139
141
  minPayPeriodDate: B,
140
142
  taxWithholdingConfig: C,
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleCreation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreation.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type Resolver } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api/react-query/payrollsCreateOffCycle'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport {\n OffCycleReason as ApiOffCycleReason,\n WithholdingPayPeriod,\n} from '@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { OFF_CYCLE_REASON_DEFAULTS, type OffCycleReason } from '../OffCycleReasonSelection'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { createOffCyclePayPeriodDateFormSchema } from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes'\nimport { useOffCyclePayPeriodDateValidation } from '../OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { OffCycleCreationFormData, OffCycleCreationProps } from './OffCycleCreationTypes'\nimport { OffCycleCreationPresentation } from './OffCycleCreationPresentation'\nimport { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { Form } from '@/components/Common/Form'\nimport type { MultiSelectComboBoxOption } from '@/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes'\n\nconst LOCAL_TO_API_REASON: Record<OffCycleReason, ApiOffCycleReason> = {\n bonus: ApiOffCycleReason.Bonus,\n correction: ApiOffCycleReason.Correction,\n}\n\n/**\n * Creation form for off-cycle (bonus or correction) payrolls.\n *\n * Walks the user through configuring pay period dates, selecting a reason, choosing\n * employees, and setting deduction and tax withholding preferences, then submits the\n * resulting payroll for execution.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `offCycle/created` | The off-cycle payroll has been created | `{ payrollUuid: string }` |\n * | `offCycle/blockers/viewAll` | The user chose to view the company's payroll blockers from the blocker alert | none |\n *\n * Changing the reason updates the deduction and withholding defaults — `'bonus'` skips\n * regular deductions and uses the supplemental withholding rate; `'correction'` includes\n * regular deductions and uses the regular rate.\n *\n * @param props - {@link OffCycleCreationProps} plus base component props.\n * @returns The off-cycle payroll creation form.\n * @public\n */\nexport function OffCycleCreation(props: OffCycleCreationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, companyId, payrollType = 'bonus', className }: OffCycleCreationProps) {\n useComponentDictionary('Payroll.OffCycleCreation', dictionary)\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleReasonSelection')\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n const { t: tCreation } = useTranslation('Payroll.OffCycleCreation')\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { paymentSpeedDays } = useCompanyPaymentSpeed(companyId)\n\n const { minCheckDate, maxDate, minPayPeriodDate, today } =\n useOffCyclePayPeriodDateValidation(paymentSpeedDays)\n const { mutateAsync: createOffCyclePayroll, isPending } = usePayrollsCreateOffCycleMutation()\n\n const [taxWithholdingConfig, setTaxWithholdingConfig] = useState<OffCycleTaxWithholdingConfig>({\n withholdingPayPeriod: WithholdingPayPeriod.EveryOtherWeek,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[payrollType].withholdingType,\n })\n const [isTaxWithholdingModalOpen, setIsTaxWithholdingModalOpen] = useState(false)\n\n const handleTaxWithholdingEditClick = useCallback(() => {\n setIsTaxWithholdingModalOpen(true)\n }, [])\n\n const handleTaxWithholdingModalDone = useCallback((config: OffCycleTaxWithholdingConfig) => {\n setTaxWithholdingConfig(config)\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const handleTaxWithholdingModalCancel = useCallback(() => {\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const handleViewBlockers = useCallback(() => {\n onEvent(componentEvents.OFF_CYCLE_BLOCKERS_VIEW_ALL)\n }, [onEvent])\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n onboardedActive: true,\n })\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const blockers: ApiPayrollBlocker[] = (blockersData.payrollBlockers ?? []).map(blocker => ({\n key: blocker.key,\n message: blocker.message,\n }))\n\n const employees: MultiSelectComboBoxOption[] = useMemo(() => {\n const employeeList = employeesData.showEmployees ?? []\n return [...employeeList]\n .sort((a, b) => {\n const lastNameComparison = a.lastName.localeCompare(b.lastName)\n if (lastNameComparison !== 0) return lastNameComparison\n return a.firstName.localeCompare(b.firstName)\n })\n .map(employee => {\n const fullName = [employee.firstName, employee.lastName].filter(Boolean).join(' ')\n const primaryJob = employee.jobs?.find(job => job.primary) ?? employee.jobs?.[0]\n return {\n label: fullName,\n value: employee.uuid,\n description: primaryJob?.title || undefined,\n }\n })\n }, [employeesData])\n\n const translateValidation = (key: string, options?: Record<string, unknown>): string =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t(key as any, options as any) as string\n\n const dynamicResolver: Resolver<OffCycleCreationFormData> = (values, context, options) => {\n const isCheckOnly = values.isCheckOnly\n\n const dateSchema = createOffCyclePayPeriodDateFormSchema(\n translateValidation,\n isCheckOnly ? today : minCheckDate,\n paymentSpeedDays,\n )\n const schema = z\n .object({\n reason: z.enum(['bonus', 'correction']),\n skipRegularDeductions: z.boolean(),\n includeAllEmployees: z.boolean(),\n selectedEmployeeUuids: z.array(z.string()),\n })\n .and(dateSchema)\n .superRefine((data, ctx) => {\n if (!data.includeAllEmployees && data.selectedEmployeeUuids.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['selectedEmployeeUuids'],\n message: tCreation('errors.noEmployeesSelected'),\n })\n }\n })\n\n return zodResolver(schema)(values, context, options)\n }\n\n const methods = useForm<OffCycleCreationFormData>({\n resolver: dynamicResolver,\n defaultValues: {\n reason: payrollType,\n isCheckOnly: false,\n startDate: null,\n endDate: null,\n checkDate: null,\n skipRegularDeductions: OFF_CYCLE_REASON_DEFAULTS[payrollType].skipDeductions,\n includeAllEmployees: false,\n selectedEmployeeUuids: [],\n },\n })\n\n const watchedReason = methods.watch('reason')\n\n useEffect(() => {\n methods.setValue(\n 'skipRegularDeductions',\n OFF_CYCLE_REASON_DEFAULTS[watchedReason].skipDeductions,\n )\n setTaxWithholdingConfig(prev => ({\n ...prev,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[watchedReason].withholdingType,\n }))\n }, [watchedReason, methods])\n\n const onSubmit = async (data: OffCycleCreationFormData) => {\n const reason = data.reason\n const checkDate = data.checkDate!\n const startDate = data.startDate!\n const endDate = data.endDate!\n const employeeUuids = data.includeAllEmployees\n ? employees.map(e => e.value)\n : data.selectedEmployeeUuids.length > 0\n ? data.selectedEmployeeUuids\n : undefined\n\n await baseSubmitHandler(data, async () => {\n const response = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: LOCAL_TO_API_REASON[reason],\n startDate: new RFCDate(startDate),\n endDate: new RFCDate(endDate),\n checkDate: new RFCDate(checkDate),\n skipRegularDeductions: data.skipRegularDeductions,\n isCheckOnlyPayroll: data.isCheckOnly,\n employeeUuids,\n withholdingPayPeriod: taxWithholdingConfig.withholdingPayPeriod,\n fixedWithholdingRate: taxWithholdingConfig.withholdingRate === 'supplemental',\n },\n },\n })\n\n const payrollUuid =\n response.payrollUnprocessed?.payrollUuid ?? response.payrollUnprocessed?.uuid\n\n if (!payrollUuid) {\n throw new SDKInternalError(tCreation('errors.missingPayrollId'))\n }\n\n onEvent(componentEvents.OFF_CYCLE_CREATED, { payrollUuid })\n })\n }\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)}>\n <OffCycleCreationPresentation\n employees={employees}\n blockers={blockers}\n onViewBlockersClick={handleViewBlockers}\n isPending={isPending}\n minCheckDate={minCheckDate}\n minCheckOnlyDate={today}\n maxDate={maxDate}\n minPayPeriodDate={minPayPeriodDate}\n taxWithholdingConfig={taxWithholdingConfig}\n isTaxWithholdingModalOpen={isTaxWithholdingModalOpen}\n onTaxWithholdingEditClick={handleTaxWithholdingEditClick}\n onTaxWithholdingModalDone={handleTaxWithholdingModalDone}\n onTaxWithholdingModalCancel={handleTaxWithholdingModalCancel}\n className={className}\n />\n </Form>\n </FormProvider>\n )\n}\n"],"names":["LOCAL_TO_API_REASON","ApiOffCycleReason","OffCycleCreation","props","jsx","BaseComponent","Root","dictionary","companyId","payrollType","className","useComponentDictionary","useI18n","t","useTranslation","tCreation","onEvent","baseSubmitHandler","useBase","paymentSpeedDays","useCompanyPaymentSpeed","minCheckDate","maxDate","minPayPeriodDate","today","useOffCyclePayPeriodDateValidation","createOffCyclePayroll","isPending","usePayrollsCreateOffCycleMutation","taxWithholdingConfig","setTaxWithholdingConfig","useState","WithholdingPayPeriod","OFF_CYCLE_REASON_DEFAULTS","isTaxWithholdingModalOpen","setIsTaxWithholdingModalOpen","handleTaxWithholdingEditClick","useCallback","handleTaxWithholdingModalDone","config","handleTaxWithholdingModalCancel","handleViewBlockers","componentEvents","employeesData","useEmployeesListSuspense","blockersData","usePayrollsGetBlockersSuspense","blockers","blocker","employees","useMemo","a","b","lastNameComparison","employee","fullName","primaryJob","job","translateValidation","key","options","methods","useForm","values","context","isCheckOnly","dateSchema","createOffCyclePayPeriodDateFormSchema","schema","z","data","ctx","zodResolver","watchedReason","useEffect","prev","onSubmit","reason","checkDate","startDate","endDate","employeeUuids","e","response","RFCDate","payrollUuid","SDKInternalError","FormProvider","Form","OffCycleCreationPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"OffCycleCreation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreation.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type Resolver } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api/react-query/payrollsCreateOffCycle'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport {\n OffCycleReason as ApiOffCycleReason,\n WithholdingPayPeriod,\n} from '@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { OFF_CYCLE_REASON_DEFAULTS, type OffCycleReason } from '../OffCycleReasonSelection'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { createOffCyclePayPeriodDateFormSchema } from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes'\nimport { useOffCyclePayPeriodDateValidation } from '../OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { OffCycleCreationFormData, OffCycleCreationProps } from './OffCycleCreationTypes'\nimport { OffCycleCreationPresentation } from './OffCycleCreationPresentation'\nimport { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { Form } from '@/components/Common/Form'\nimport { toRFCDate } from '@/helpers/dateFormatting'\nimport type { MultiSelectComboBoxOption } from '@/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes'\n\nconst LOCAL_TO_API_REASON: Record<OffCycleReason, ApiOffCycleReason> = {\n bonus: ApiOffCycleReason.Bonus,\n correction: ApiOffCycleReason.Correction,\n}\n\n/**\n * Creation form for off-cycle (bonus or correction) payrolls.\n *\n * Walks the user through configuring pay period dates, selecting a reason, choosing\n * employees, and setting deduction and tax withholding preferences, then submits the\n * resulting payroll for execution.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `offCycle/created` | The off-cycle payroll has been created | `{ payrollUuid: string }` |\n * | `offCycle/blockers/viewAll` | The user chose to view the company's payroll blockers from the blocker alert | none |\n *\n * Changing the reason updates the deduction and withholding defaults — `'bonus'` skips\n * regular deductions and uses the supplemental withholding rate; `'correction'` includes\n * regular deductions and uses the regular rate.\n *\n * @param props - {@link OffCycleCreationProps} plus base component props.\n * @returns The off-cycle payroll creation form.\n * @public\n */\nexport function OffCycleCreation(props: OffCycleCreationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, companyId, payrollType = 'bonus', className }: OffCycleCreationProps) {\n useComponentDictionary('Payroll.OffCycleCreation', dictionary)\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleReasonSelection')\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n const { t: tCreation } = useTranslation('Payroll.OffCycleCreation')\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { paymentSpeedDays } = useCompanyPaymentSpeed(companyId)\n\n const { minCheckDate, maxDate, minPayPeriodDate, today } =\n useOffCyclePayPeriodDateValidation(paymentSpeedDays)\n const { mutateAsync: createOffCyclePayroll, isPending } = usePayrollsCreateOffCycleMutation()\n\n const [taxWithholdingConfig, setTaxWithholdingConfig] = useState<OffCycleTaxWithholdingConfig>({\n withholdingPayPeriod: WithholdingPayPeriod.EveryOtherWeek,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[payrollType].withholdingType,\n })\n const [isTaxWithholdingModalOpen, setIsTaxWithholdingModalOpen] = useState(false)\n\n const handleTaxWithholdingEditClick = useCallback(() => {\n setIsTaxWithholdingModalOpen(true)\n }, [])\n\n const handleTaxWithholdingModalDone = useCallback((config: OffCycleTaxWithholdingConfig) => {\n setTaxWithholdingConfig(config)\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const handleTaxWithholdingModalCancel = useCallback(() => {\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const handleViewBlockers = useCallback(() => {\n onEvent(componentEvents.OFF_CYCLE_BLOCKERS_VIEW_ALL)\n }, [onEvent])\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n onboardedActive: true,\n })\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const blockers: ApiPayrollBlocker[] = (blockersData.payrollBlockers ?? []).map(blocker => ({\n key: blocker.key,\n message: blocker.message,\n }))\n\n const employees: MultiSelectComboBoxOption[] = useMemo(() => {\n const employeeList = employeesData.showEmployees ?? []\n return [...employeeList]\n .sort((a, b) => {\n const lastNameComparison = a.lastName.localeCompare(b.lastName)\n if (lastNameComparison !== 0) return lastNameComparison\n return a.firstName.localeCompare(b.firstName)\n })\n .map(employee => {\n const fullName = [employee.firstName, employee.lastName].filter(Boolean).join(' ')\n const primaryJob = employee.jobs?.find(job => job.primary) ?? employee.jobs?.[0]\n return {\n label: fullName,\n value: employee.uuid,\n description: primaryJob?.title || undefined,\n }\n })\n }, [employeesData])\n\n const translateValidation = (key: string, options?: Record<string, unknown>): string =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t(key as any, options as any) as string\n\n const dynamicResolver: Resolver<OffCycleCreationFormData> = (values, context, options) => {\n const isCheckOnly = values.isCheckOnly\n\n const dateSchema = createOffCyclePayPeriodDateFormSchema(\n translateValidation,\n isCheckOnly ? today : minCheckDate,\n paymentSpeedDays,\n )\n const schema = z\n .object({\n reason: z.enum(['bonus', 'correction']),\n skipRegularDeductions: z.boolean(),\n includeAllEmployees: z.boolean(),\n selectedEmployeeUuids: z.array(z.string()),\n })\n .and(dateSchema)\n .superRefine((data, ctx) => {\n if (!data.includeAllEmployees && data.selectedEmployeeUuids.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['selectedEmployeeUuids'],\n message: tCreation('errors.noEmployeesSelected'),\n })\n }\n })\n\n return zodResolver(schema)(values, context, options)\n }\n\n const methods = useForm<OffCycleCreationFormData>({\n resolver: dynamicResolver,\n defaultValues: {\n reason: payrollType,\n isCheckOnly: false,\n startDate: null,\n endDate: null,\n checkDate: null,\n skipRegularDeductions: OFF_CYCLE_REASON_DEFAULTS[payrollType].skipDeductions,\n includeAllEmployees: false,\n selectedEmployeeUuids: [],\n },\n })\n\n const watchedReason = methods.watch('reason')\n\n useEffect(() => {\n methods.setValue(\n 'skipRegularDeductions',\n OFF_CYCLE_REASON_DEFAULTS[watchedReason].skipDeductions,\n )\n setTaxWithholdingConfig(prev => ({\n ...prev,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[watchedReason].withholdingType,\n }))\n }, [watchedReason, methods])\n\n const onSubmit = async (data: OffCycleCreationFormData) => {\n const { reason, checkDate, startDate, endDate } = data\n if (!checkDate || !startDate || !endDate) return\n const employeeUuids = data.includeAllEmployees\n ? employees.map(e => e.value)\n : data.selectedEmployeeUuids.length > 0\n ? data.selectedEmployeeUuids\n : undefined\n\n await baseSubmitHandler(data, async () => {\n const response = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: LOCAL_TO_API_REASON[reason],\n startDate: toRFCDate(startDate),\n endDate: toRFCDate(endDate),\n checkDate: toRFCDate(checkDate),\n skipRegularDeductions: data.skipRegularDeductions,\n isCheckOnlyPayroll: data.isCheckOnly,\n employeeUuids,\n withholdingPayPeriod: taxWithholdingConfig.withholdingPayPeriod,\n fixedWithholdingRate: taxWithholdingConfig.withholdingRate === 'supplemental',\n },\n },\n })\n\n const payrollUuid =\n response.payrollUnprocessed?.payrollUuid ?? response.payrollUnprocessed?.uuid\n\n if (!payrollUuid) {\n throw new SDKInternalError(tCreation('errors.missingPayrollId'))\n }\n\n onEvent(componentEvents.OFF_CYCLE_CREATED, { payrollUuid })\n })\n }\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)}>\n <OffCycleCreationPresentation\n employees={employees}\n blockers={blockers}\n onViewBlockersClick={handleViewBlockers}\n isPending={isPending}\n minCheckDate={minCheckDate}\n minCheckOnlyDate={today}\n maxDate={maxDate}\n minPayPeriodDate={minPayPeriodDate}\n taxWithholdingConfig={taxWithholdingConfig}\n isTaxWithholdingModalOpen={isTaxWithholdingModalOpen}\n onTaxWithholdingEditClick={handleTaxWithholdingEditClick}\n onTaxWithholdingModalDone={handleTaxWithholdingModalDone}\n onTaxWithholdingModalCancel={handleTaxWithholdingModalCancel}\n className={className}\n />\n </Form>\n </FormProvider>\n )\n}\n"],"names":["LOCAL_TO_API_REASON","ApiOffCycleReason","OffCycleCreation","props","jsx","BaseComponent","Root","dictionary","companyId","payrollType","className","useComponentDictionary","useI18n","t","useTranslation","tCreation","onEvent","baseSubmitHandler","useBase","paymentSpeedDays","useCompanyPaymentSpeed","minCheckDate","maxDate","minPayPeriodDate","today","useOffCyclePayPeriodDateValidation","createOffCyclePayroll","isPending","usePayrollsCreateOffCycleMutation","taxWithholdingConfig","setTaxWithholdingConfig","useState","WithholdingPayPeriod","OFF_CYCLE_REASON_DEFAULTS","isTaxWithholdingModalOpen","setIsTaxWithholdingModalOpen","handleTaxWithholdingEditClick","useCallback","handleTaxWithholdingModalDone","config","handleTaxWithholdingModalCancel","handleViewBlockers","componentEvents","employeesData","useEmployeesListSuspense","blockersData","usePayrollsGetBlockersSuspense","blockers","blocker","employees","useMemo","a","b","lastNameComparison","employee","fullName","primaryJob","job","translateValidation","key","options","methods","useForm","values","context","isCheckOnly","dateSchema","createOffCyclePayPeriodDateFormSchema","schema","z","data","ctx","zodResolver","watchedReason","useEffect","prev","onSubmit","reason","checkDate","startDate","endDate","employeeUuids","e","response","toRFCDate","payrollUuid","SDKInternalError","FormProvider","Form","OffCycleCreationPresentation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollFlow.js","sources":["../../../../src/components/Payroll/PayrollFlow/PayrollFlow.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMemo } from 'react'\nimport { payrollFlowBreadcrumbsNodes, payrollFlowMachine } from './payrollStateMachine'\nimport type { PayrollFlowProps } from './PayrollFlowComponents'\nimport {\n SaveAndExitCta,\n PayrollLandingContextual,\n type PayrollFlowContextInterface,\n} from './PayrollFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport { buildBreadcrumbs } from '@/helpers/breadcrumbHelpers'\n\n/**\n * Hub for running and managing all payrolls across a company's pay schedules.\n *\n * @remarks\n * Renders the payroll landing page and orchestrates the full run-payroll experience: selecting a payroll, configuring earnings and reimbursements, reviewing totals, submitting, and viewing receipts. Off-cycle, transition, and edit-employee steps are reachable from the same flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/selected` | A payroll is selected to run | `{ payrollId: string }` |\n * | `payroll/review` | A calculated payroll is opened for review | `{ payrollId: string }` |\n * | `runPayroll/calculated` | Payroll calculations complete | — |\n * | `runPayroll/edit` | The user returns to configuration to make changes | — |\n * | `runPayroll/employee/edit` | An employee row is opened for editing | `{ payrollId: string, employeeId: string, firstName: string, lastName: string }` |\n * | `runPayroll/employee/saved` | Employee payroll changes are saved | `{ payrollPrepared: object, employee: object }` |\n * | `runPayroll/employee/cancelled` | Employee editing is cancelled | — |\n * | `runPayroll/submitted` | Payroll is successfully submitted | Response from the submit payroll endpoint |\n * | `runPayroll/processed` | Payroll processing completes | — |\n * | `runPayroll/processingFailed` | Payroll processing fails | Error details |\n * | `runPayroll/cancelled` | A submitted payroll is cancelled | `{ payrollId: string, result: object }` |\n * | `runPayroll/summary/viewed` | The summary screen is opened | `{ payrollId: string }` |\n * | `runPayroll/receipt/viewed` | The receipt screen is opened | `{ payrollId: string }` |\n * | `runPayroll/offCycle/start` | The user starts an off-cycle payroll | — |\n * | `transition/runPayroll` | The user starts a pending transition payroll | — |\n * | `payroll/saveAndExit` | The user clicks Save and Exit | — |\n *\n * @components\n * - {@link PayrollLanding}\n * - {@link PayrollExecutionFlow}\n * - {@link OffCycleFlow}\n * - {@link TransitionFlow}\n * - {@link PayrollBlockerList}\n * - {@link PayrollOverview}\n * - {@link PayrollReceipts}\n *\n * @param props - {@link PayrollFlowProps} with the company, optional reimbursements toggle, optional wire-details override, and event handler.\n * @returns The composed payroll flow.\n * @public\n *\n * @example\n * ```tsx title=\"App.tsx\"\n * import { Payroll } from '@gusto/embedded-react-sdk'\n *\n * function RunPayrollPage() {\n * return <Payroll.PayrollFlow companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\" onEvent={() => {}} />\n * }\n * ```\n */\nexport const PayrollFlow = ({\n companyId,\n onEvent,\n withReimbursements = true,\n withOffcyclePayroll = true,\n ConfirmWireDetailsComponent,\n}: PayrollFlowProps) => {\n const payrollFlow = useMemo(\n () =>\n createMachine(\n 'landing',\n payrollFlowMachine,\n (initialContext: PayrollFlowContextInterface) => ({\n ...initialContext,\n component: PayrollLandingContextual,\n companyId,\n header: {\n type: 'breadcrumbs' as const,\n breadcrumbs: buildBreadcrumbs(payrollFlowBreadcrumbsNodes),\n cta: SaveAndExitCta,\n },\n withReimbursements,\n withOffcyclePayroll,\n ConfirmWireDetailsComponent,\n }),\n ),\n [companyId, withReimbursements, withOffcyclePayroll, ConfirmWireDetailsComponent],\n )\n\n return <Flow machine={payrollFlow} onEvent={onEvent} />\n}\n"],"names":["PayrollFlow","companyId","onEvent","withReimbursements","withOffcyclePayroll","ConfirmWireDetailsComponent","payrollFlow","useMemo","createMachine","payrollFlowMachine","initialContext","PayrollLandingContextual","buildBreadcrumbs","payrollFlowBreadcrumbsNodes","SaveAndExitCta","jsx","Flow"],"mappings":";;;;;;;AA4DO,MAAMA,IAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,6BAAAC;AACF,MAAwB;AACtB,QAAMC,IAAcC;AAAA,IAClB,MACEC;AAAA,MACE;AAAA,MACAC;AAAA,MACA,CAACC,OAAiD;AAAA,QAChD,GAAGA;AAAA,QACH,WAAWC;AAAA,QACX,WAAAV;AAAA,QACA,QAAQ;AAAA,UACN,MAAM;AAAA,UACN,aAAaW,EAAiBC,CAA2B;AAAA,UACzD,KAAKC;AAAA,QAAA;AAAA,QAEP,oBAAAX;AAAA,QACA,qBAAAC;AAAA,QACA,6BAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ,CAACJ,GAAWE,GAAoBC,GAAqBC,CAA2B;AAAA,EAAA;AAGlF,SAAO,gBAAAU,EAACC,GAAA,EAAK,SAASV,GAAa,SAAAJ,EAAA,CAAkB;AACvD;"}
1
+ {"version":3,"file":"PayrollFlow.js","sources":["../../../../src/components/Payroll/PayrollFlow/PayrollFlow.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMemo } from 'react'\nimport { payrollFlowBreadcrumbsNodes, payrollFlowMachine } from './payrollStateMachine'\nimport type { PayrollFlowProps } from './PayrollFlowComponents'\nimport {\n SaveAndExitCta,\n PayrollLandingContextual,\n type PayrollFlowContextInterface,\n} from './PayrollFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport { buildBreadcrumbs } from '@/helpers/breadcrumbHelpers'\n\n/**\n * Hub for running and managing all payrolls across a company's pay schedules.\n *\n * @remarks\n * Renders the payroll landing page and orchestrates the full run-payroll experience: selecting a payroll, configuring earnings and reimbursements, reviewing totals, submitting, and viewing receipts. Off-cycle, transition, and edit-employee steps are reachable from the same flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/selected` | A payroll is selected to run | `{ payrollId: string }` |\n * | `payroll/review` | A calculated payroll is opened for review | `{ payrollId: string }` |\n * | `runPayroll/calculated` | Payroll calculations complete | — |\n * | `runPayroll/edit` | The user returns to configuration to make changes | — |\n * | `runPayroll/employee/edit` | An employee row is opened for editing | `{ payrollId: string, employeeId: string, firstName: string, lastName: string }` |\n * | `runPayroll/employee/saved` | Employee payroll changes are saved | `{ payrollPrepared: object, employee: object }` |\n * | `runPayroll/employee/cancelled` | Employee editing is cancelled | — |\n * | `runPayroll/submitted` | Payroll is successfully submitted | Response from the submit payroll endpoint |\n * | `runPayroll/processed` | Payroll processing completes | — |\n * | `runPayroll/processingFailed` | Payroll processing fails | Error details |\n * | `runPayroll/cancelled` | A submitted payroll is cancelled | `{ payrollId: string, result: object }` |\n * | `runPayroll/notCalculated/backToList` | User returns to the payroll list from a payroll that is no longer calculated | — |\n * | `runPayroll/summary/viewed` | The summary screen is opened | `{ payrollId: string }` |\n * | `runPayroll/receipt/viewed` | The receipt screen is opened | `{ payrollId: string }` |\n * | `runPayroll/offCycle/start` | The user starts an off-cycle payroll | — |\n * | `transition/runPayroll` | The user starts a pending transition payroll | — |\n * | `payroll/saveAndExit` | The user clicks Save and Exit | — |\n *\n * @components\n * - {@link PayrollLanding}\n * - {@link PayrollExecutionFlow}\n * - {@link OffCycleFlow}\n * - {@link TransitionFlow}\n * - {@link PayrollBlockerList}\n * - {@link PayrollOverview}\n * - {@link PayrollReceipts}\n *\n * @param props - {@link PayrollFlowProps} with the company, optional reimbursements toggle, optional wire-details override, and event handler.\n * @returns The composed payroll flow.\n * @public\n *\n * @example\n * ```tsx title=\"App.tsx\"\n * import { Payroll } from '@gusto/embedded-react-sdk'\n *\n * function RunPayrollPage() {\n * return <Payroll.PayrollFlow companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\" onEvent={() => {}} />\n * }\n * ```\n */\nexport const PayrollFlow = ({\n companyId,\n onEvent,\n withReimbursements = true,\n withOffcyclePayroll = true,\n ConfirmWireDetailsComponent,\n}: PayrollFlowProps) => {\n const payrollFlow = useMemo(\n () =>\n createMachine(\n 'landing',\n payrollFlowMachine,\n (initialContext: PayrollFlowContextInterface) => ({\n ...initialContext,\n component: PayrollLandingContextual,\n companyId,\n header: {\n type: 'breadcrumbs' as const,\n breadcrumbs: buildBreadcrumbs(payrollFlowBreadcrumbsNodes),\n cta: SaveAndExitCta,\n },\n withReimbursements,\n withOffcyclePayroll,\n ConfirmWireDetailsComponent,\n }),\n ),\n [companyId, withReimbursements, withOffcyclePayroll, ConfirmWireDetailsComponent],\n )\n\n return <Flow machine={payrollFlow} onEvent={onEvent} />\n}\n"],"names":["PayrollFlow","companyId","onEvent","withReimbursements","withOffcyclePayroll","ConfirmWireDetailsComponent","payrollFlow","useMemo","createMachine","payrollFlowMachine","initialContext","PayrollLandingContextual","buildBreadcrumbs","payrollFlowBreadcrumbsNodes","SaveAndExitCta","jsx","Flow"],"mappings":";;;;;;;AA6DO,MAAMA,IAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,6BAAAC;AACF,MAAwB;AACtB,QAAMC,IAAcC;AAAA,IAClB,MACEC;AAAA,MACE;AAAA,MACAC;AAAA,MACA,CAACC,OAAiD;AAAA,QAChD,GAAGA;AAAA,QACH,WAAWC;AAAA,QACX,WAAAV;AAAA,QACA,QAAQ;AAAA,UACN,MAAM;AAAA,UACN,aAAaW,EAAiBC,CAA2B;AAAA,UACzD,KAAKC;AAAA,QAAA;AAAA,QAEP,oBAAAX;AAAA,QACA,qBAAAC;AAAA,QACA,6BAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ,CAACJ,GAAWE,GAAoBC,GAAqBC,CAA2B;AAAA,EAAA;AAGlF,SAAO,gBAAAU,EAACC,GAAA,EAAK,SAASV,GAAa,SAAAJ,EAAA,CAAkB;AACvD;"}
@@ -1,12 +1,12 @@
1
- import { state as r, transition as t, reduce as o, guard as v } from "robot3";
2
- import { PayrollReceiptsContextual as L, PayrollBlockerContextual as R, PayrollLandingContextual as b, PayrollOverviewContextual as C } from "./PayrollFlowComponents.js";
3
- import { PayrollExecutionFlowContextual as g } from "./PayrollExecutionFlowContextual.js";
4
- import { TransitionFlowContextual as _ } from "./TransitionFlowContextual.js";
1
+ import { state as n, transition as t, reduce as o, guard as v } from "robot3";
2
+ import { PayrollReceiptsContextual as C, PayrollBlockerContextual as R, PayrollLandingContextual as b, PayrollOverviewContextual as g } from "./PayrollFlowComponents.js";
3
+ import { PayrollExecutionFlowContextual as _ } from "./PayrollExecutionFlowContextual.js";
4
+ import { TransitionFlowContextual as A } from "./TransitionFlowContextual.js";
5
5
  import { OffCycleFlowContextual as E } from "./OffCycleFlowContextual.js";
6
6
  import { componentEvents as l } from "../../../shared/constants.js";
7
- import { updateBreadcrumbs as m, patchBreadcrumbsHeader as c } from "../../../helpers/breadcrumbHelpers.js";
8
- import { createBreadcrumbNavigateTransition as f } from "../../Common/FlowBreadcrumbs/breadcrumbTransitionHelpers.js";
9
- const I = {
7
+ import { updateBreadcrumbs as P, patchBreadcrumbsHeader as s } from "../../../helpers/breadcrumbHelpers.js";
8
+ import { createBreadcrumbNavigateTransition as O } from "../../Common/FlowBreadcrumbs/breadcrumbTransitionHelpers.js";
9
+ const B = {
10
10
  landing: {
11
11
  parent: null,
12
12
  item: {
@@ -14,7 +14,7 @@ const I = {
14
14
  label: "breadcrumbs.landing",
15
15
  namespace: "Payroll.PayrollLanding",
16
16
  onNavigate: ((e) => ({
17
- ...c(e, { currentBreadcrumbId: void 0 }),
17
+ ...s(e, { currentBreadcrumbId: void 0 }),
18
18
  component: b,
19
19
  alerts: void 0,
20
20
  payrollUuid: void 0,
@@ -46,10 +46,10 @@ const I = {
46
46
  namespace: "Payroll.PayrollLanding"
47
47
  }
48
48
  }
49
- }, s = f();
50
- function y(e) {
49
+ }, p = O();
50
+ function u(e) {
51
51
  return {
52
- ...c(e, { currentBreadcrumbId: void 0 }),
52
+ ...s(e, { currentBreadcrumbId: void 0 }),
53
53
  component: b,
54
54
  alerts: void 0,
55
55
  payrollUuid: void 0,
@@ -57,46 +57,50 @@ function y(e) {
57
57
  executionInitialState: void 0
58
58
  };
59
59
  }
60
- function P(e, a, i) {
60
+ function L(e, a, i) {
61
61
  return {
62
62
  ...e,
63
- component: g,
63
+ component: _,
64
64
  alerts: void 0,
65
65
  payrollUuid: a.payload.payrollUuid,
66
66
  showPayrollCancelledAlert: !1,
67
67
  executionInitialState: i
68
68
  };
69
69
  }
70
- const u = t(
70
+ const m = t(
71
71
  l.BREADCRUMB_NAVIGATE,
72
72
  "landing",
73
73
  v(
74
74
  (e, a) => a.payload.key === "landing"
75
75
  ),
76
- o(y)
77
- ), n = t(
76
+ o(u)
77
+ ), r = t(
78
78
  l.PAYROLL_EXIT_FLOW,
79
79
  "landing",
80
- o(y)
80
+ o(u)
81
81
  ), d = t(
82
+ l.RUN_PAYROLL_NOT_CALCULATED_BACK_TO_LIST,
83
+ "landing",
84
+ o(u)
85
+ ), c = t(
82
86
  l.RUN_PAYROLL_CANCELLED,
83
87
  "landing",
84
88
  o((e) => ({
85
- ...y(e),
89
+ ...u(e),
86
90
  showPayrollCancelledAlert: !0
87
91
  }))
88
- ), p = t(
92
+ ), y = t(
89
93
  l.RUN_PAYROLL_PROCESSED,
90
94
  "submittedOverview",
91
95
  o(
92
96
  (e, a) => {
93
97
  const i = a.payload.payPeriod ?? e.payPeriod;
94
98
  return {
95
- ...m("submittedOverview", e, {
99
+ ...P("submittedOverview", e, {
96
100
  startDate: i?.startDate ?? "",
97
101
  endDate: i?.endDate ?? ""
98
102
  }),
99
- component: C,
103
+ component: g,
100
104
  alerts: void 0,
101
105
  payrollUuid: a.payload.payrollUuid ?? e.payrollUuid,
102
106
  payPeriod: i,
@@ -108,27 +112,27 @@ const u = t(
108
112
  };
109
113
  }
110
114
  )
111
- ), B = {
112
- landing: r(
115
+ ), S = {
116
+ landing: n(
113
117
  t(
114
118
  l.RUN_PAYROLL_SELECTED,
115
119
  "execution",
116
120
  o(
117
- (e, a) => P(e, a, "configuration")
121
+ (e, a) => L(e, a, "configuration")
118
122
  )
119
123
  ),
120
124
  t(
121
125
  l.REVIEW_PAYROLL,
122
126
  "execution",
123
127
  o(
124
- (e, a) => P(e, a, "overview")
128
+ (e, a) => L(e, a, "overview")
125
129
  )
126
130
  ),
127
131
  t(
128
132
  l.RUN_PAYROLL_BLOCKERS_VIEW_ALL,
129
133
  "blockers",
130
134
  o((e) => ({
131
- ...m("blockers", e),
135
+ ...P("blockers", e),
132
136
  component: R,
133
137
  alerts: void 0,
134
138
  showPayrollCancelledAlert: !1,
@@ -151,8 +155,8 @@ const u = t(
151
155
  "transition",
152
156
  o(
153
157
  (e, a) => ({
154
- ...c(e, { currentBreadcrumbId: void 0 }),
155
- component: _,
158
+ ...s(e, { currentBreadcrumbId: void 0 }),
159
+ component: A,
156
160
  alerts: void 0,
157
161
  transitionStartDate: a.payload.startDate,
158
162
  transitionEndDate: a.payload.endDate,
@@ -165,31 +169,32 @@ const u = t(
165
169
  l.RUN_OFF_CYCLE_PAYROLL,
166
170
  "offCycle",
167
171
  o((e) => ({
168
- ...c(e, { currentBreadcrumbId: void 0 }),
172
+ ...s(e, { currentBreadcrumbId: void 0 }),
169
173
  component: E,
170
174
  alerts: void 0,
171
175
  showPayrollCancelledAlert: !1
172
176
  }))
173
177
  )
174
178
  ),
175
- execution: r(
176
- u,
177
- n,
179
+ execution: n(
180
+ m,
181
+ r,
182
+ c,
178
183
  d,
179
- p
184
+ y
180
185
  ),
181
- blockers: r(s("landing"), n),
182
- submittedOverview: r(
183
- s("landing"),
186
+ blockers: n(p("landing"), r),
187
+ submittedOverview: n(
188
+ p("landing"),
184
189
  t(
185
190
  l.RUN_PAYROLL_RECEIPT_GET,
186
191
  "submittedReceipts",
187
192
  o((e) => ({
188
- ...m("submittedReceipts", e, {
193
+ ...P("submittedReceipts", e, {
189
194
  startDate: e.payPeriod?.startDate ?? "",
190
195
  endDate: e.payPeriod?.endDate ?? ""
191
196
  }),
192
- component: L,
197
+ component: C,
193
198
  alerts: void 0,
194
199
  ctaConfig: {
195
200
  labelKey: "exitFlowCta",
@@ -197,28 +202,31 @@ const u = t(
197
202
  }
198
203
  }))
199
204
  ),
205
+ c,
200
206
  d,
201
- n
207
+ r
202
208
  ),
203
- submittedReceipts: r(
204
- s("landing"),
205
- n
209
+ submittedReceipts: n(
210
+ p("landing"),
211
+ r
206
212
  ),
207
- transition: r(
208
- u,
209
- n,
213
+ transition: n(
214
+ m,
215
+ r,
216
+ c,
210
217
  d,
211
- p
218
+ y
212
219
  ),
213
- offCycle: r(
214
- u,
215
- n,
220
+ offCycle: n(
221
+ m,
222
+ r,
223
+ c,
216
224
  d,
217
- p
225
+ y
218
226
  )
219
227
  };
220
228
  export {
221
- I as payrollFlowBreadcrumbsNodes,
222
- B as payrollFlowMachine
229
+ B as payrollFlowBreadcrumbsNodes,
230
+ S as payrollFlowMachine
223
231
  };
224
232
  //# sourceMappingURL=payrollStateMachine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payrollStateMachine.js","sources":["../../../../src/components/Payroll/PayrollFlow/payrollStateMachine.ts"],"sourcesContent":["import { state, transition, reduce, guard } from 'robot3'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api/models/components/payrollpayperiodtype'\nimport type { PayrollExecutionInitialState } from '../PayrollExecutionFlow'\nimport {\n PayrollLandingContextual,\n PayrollBlockerContextual,\n PayrollOverviewContextual,\n PayrollReceiptsContextual,\n type PayrollFlowContextInterface,\n} from './PayrollFlowComponents'\nimport { PayrollExecutionFlowContextual } from './PayrollExecutionFlowContextual'\nimport { TransitionFlowContextual } from './TransitionFlowContextual'\nimport { OffCycleFlowContextual } from './OffCycleFlowContextual'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport { patchBreadcrumbsHeader, updateBreadcrumbs } from '@/helpers/breadcrumbHelpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { createBreadcrumbNavigateTransition } from '@/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers'\n\ntype PayrollFlowEventPayloads = {\n [componentEvents.RUN_PAYROLL_SELECTED]: {\n payrollUuid: string\n }\n [componentEvents.REVIEW_PAYROLL]: {\n payrollUuid: string\n }\n [componentEvents.RUN_PAYROLL_PROCESSED]: {\n payPeriod?: PayrollPayPeriodType\n payrollUuid?: string\n }\n [componentEvents.RUN_TRANSITION_PAYROLL]: {\n startDate: string\n endDate: string\n payScheduleUuid: string\n }\n}\n\n/** @internal */\nexport const payrollFlowBreadcrumbsNodes: BreadcrumbNodes = {\n landing: {\n parent: null,\n item: {\n id: 'landing',\n label: 'breadcrumbs.landing',\n namespace: 'Payroll.PayrollLanding',\n onNavigate: ((ctx: PayrollFlowContextInterface) => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PayrollLandingContextual,\n alerts: undefined,\n payrollUuid: undefined,\n executionInitialState: undefined,\n })) as (context: unknown) => unknown,\n },\n },\n blockers: {\n parent: 'landing',\n item: {\n id: 'blockers',\n label: 'breadcrumbLabel',\n namespace: 'Payroll.PayrollBlocker',\n },\n },\n submittedOverview: {\n parent: 'landing',\n item: {\n id: 'submittedOverview',\n label: 'breadcrumbs.overview',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n submittedReceipts: {\n parent: 'landing',\n item: {\n id: 'submittedReceipts',\n label: 'breadcrumbs.receipt',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n}\n\nconst breadcrumbNavigateTransition =\n createBreadcrumbNavigateTransition<PayrollFlowContextInterface>()\n\nfunction toLandingReducer(ctx: PayrollFlowContextInterface): PayrollFlowContextInterface {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PayrollLandingContextual,\n alerts: undefined,\n payrollUuid: undefined,\n payPeriod: undefined,\n executionInitialState: undefined,\n }\n}\n\nfunction toExecutionReducer(\n ctx: PayrollFlowContextInterface,\n ev: { payload: { payrollUuid: string } },\n executionInitialState: PayrollExecutionInitialState,\n): PayrollFlowContextInterface {\n return {\n ...ctx,\n component: PayrollExecutionFlowContextual,\n alerts: undefined,\n payrollUuid: ev.payload.payrollUuid,\n showPayrollCancelledAlert: false,\n executionInitialState,\n }\n}\n\nconst landingBreadcrumbNavigateTransition = transition(\n componentEvents.BREADCRUMB_NAVIGATE,\n 'landing',\n guard(\n (_ctx: PayrollFlowContextInterface, ev: { payload: { key: string } }) =>\n ev.payload.key === 'landing',\n ),\n reduce(toLandingReducer),\n)\n\nconst exitFlowTransition = transition(\n componentEvents.PAYROLL_EXIT_FLOW,\n 'landing',\n reduce(toLandingReducer),\n)\n\nconst cancelledToLandingTransition = transition(\n componentEvents.RUN_PAYROLL_CANCELLED,\n 'landing',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...toLandingReducer(ctx),\n showPayrollCancelledAlert: true,\n })),\n)\n\nconst processedToSubmittedOverviewTransition = transition(\n componentEvents.RUN_PAYROLL_PROCESSED,\n 'submittedOverview',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<PayrollFlowEventPayloads, typeof componentEvents.RUN_PAYROLL_PROCESSED>,\n ): PayrollFlowContextInterface => {\n const payPeriod = ev.payload.payPeriod ?? ctx.payPeriod\n return {\n ...updateBreadcrumbs('submittedOverview', ctx, {\n startDate: payPeriod?.startDate ?? '',\n endDate: payPeriod?.endDate ?? '',\n }),\n component: PayrollOverviewContextual,\n alerts: undefined,\n payrollUuid: ev.payload.payrollUuid ?? ctx.payrollUuid,\n payPeriod,\n executionInitialState: undefined,\n ctaConfig: {\n labelKey: 'exitFlowCta',\n namespace: 'Payroll.PayrollOverview',\n },\n }\n },\n ),\n)\n\n/** @internal */\nexport const payrollFlowMachine = {\n landing: state<MachineTransition>(\n transition(\n componentEvents.RUN_PAYROLL_SELECTED,\n 'execution',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<\n PayrollFlowEventPayloads,\n typeof componentEvents.RUN_PAYROLL_SELECTED\n >,\n ) => toExecutionReducer(ctx, ev, 'configuration'),\n ),\n ),\n transition(\n componentEvents.REVIEW_PAYROLL,\n 'execution',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<PayrollFlowEventPayloads, typeof componentEvents.REVIEW_PAYROLL>,\n ) => toExecutionReducer(ctx, ev, 'overview'),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_BLOCKERS_VIEW_ALL,\n 'blockers',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...updateBreadcrumbs('blockers', ctx),\n component: PayrollBlockerContextual,\n alerts: undefined,\n showPayrollCancelledAlert: false,\n ctaConfig: {\n labelKey: 'exitFlowCta',\n namespace: 'Payroll.PayrollBlocker',\n },\n })),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED_ALERT_DISMISSED,\n 'landing',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...ctx,\n showPayrollCancelledAlert: false,\n })),\n ),\n transition(\n componentEvents.RUN_TRANSITION_PAYROLL,\n 'transition',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<\n PayrollFlowEventPayloads,\n typeof componentEvents.RUN_TRANSITION_PAYROLL\n >,\n ): PayrollFlowContextInterface => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: TransitionFlowContextual,\n alerts: undefined,\n transitionStartDate: ev.payload.startDate,\n transitionEndDate: ev.payload.endDate,\n transitionPayScheduleUuid: ev.payload.payScheduleUuid,\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_OFF_CYCLE_PAYROLL,\n 'offCycle',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: OffCycleFlowContextual,\n alerts: undefined,\n showPayrollCancelledAlert: false,\n })),\n ),\n ),\n execution: state<MachineTransition>(\n landingBreadcrumbNavigateTransition,\n exitFlowTransition,\n cancelledToLandingTransition,\n processedToSubmittedOverviewTransition,\n ),\n blockers: state<MachineTransition>(breadcrumbNavigateTransition('landing'), exitFlowTransition),\n submittedOverview: state<MachineTransition>(\n breadcrumbNavigateTransition('landing'),\n transition(\n componentEvents.RUN_PAYROLL_RECEIPT_GET,\n 'submittedReceipts',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...updateBreadcrumbs('submittedReceipts', ctx, {\n startDate: ctx.payPeriod?.startDate ?? '',\n endDate: ctx.payPeriod?.endDate ?? '',\n }),\n component: PayrollReceiptsContextual,\n alerts: undefined,\n ctaConfig: {\n labelKey: 'exitFlowCta',\n namespace: 'Payroll.PayrollReceipts',\n },\n })),\n ),\n cancelledToLandingTransition,\n exitFlowTransition,\n ),\n submittedReceipts: state<MachineTransition>(\n breadcrumbNavigateTransition('landing'),\n exitFlowTransition,\n ),\n transition: state<MachineTransition>(\n landingBreadcrumbNavigateTransition,\n exitFlowTransition,\n cancelledToLandingTransition,\n processedToSubmittedOverviewTransition,\n ),\n offCycle: state<MachineTransition>(\n landingBreadcrumbNavigateTransition,\n exitFlowTransition,\n cancelledToLandingTransition,\n processedToSubmittedOverviewTransition,\n ),\n}\n"],"names":["payrollFlowBreadcrumbsNodes","ctx","patchBreadcrumbsHeader","PayrollLandingContextual","breadcrumbNavigateTransition","createBreadcrumbNavigateTransition","toLandingReducer","toExecutionReducer","ev","executionInitialState","PayrollExecutionFlowContextual","landingBreadcrumbNavigateTransition","transition","componentEvents","guard","_ctx","reduce","exitFlowTransition","cancelledToLandingTransition","processedToSubmittedOverviewTransition","payPeriod","updateBreadcrumbs","PayrollOverviewContextual","payrollFlowMachine","state","PayrollBlockerContextual","TransitionFlowContextual","OffCycleFlowContextual","PayrollReceiptsContextual"],"mappings":"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"}
1
+ {"version":3,"file":"payrollStateMachine.js","sources":["../../../../src/components/Payroll/PayrollFlow/payrollStateMachine.ts"],"sourcesContent":["import { state, transition, reduce, guard } from 'robot3'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api/models/components/payrollpayperiodtype'\nimport type { PayrollExecutionInitialState } from '../PayrollExecutionFlow'\nimport {\n PayrollLandingContextual,\n PayrollBlockerContextual,\n PayrollOverviewContextual,\n PayrollReceiptsContextual,\n type PayrollFlowContextInterface,\n} from './PayrollFlowComponents'\nimport { PayrollExecutionFlowContextual } from './PayrollExecutionFlowContextual'\nimport { TransitionFlowContextual } from './TransitionFlowContextual'\nimport { OffCycleFlowContextual } from './OffCycleFlowContextual'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport { patchBreadcrumbsHeader, updateBreadcrumbs } from '@/helpers/breadcrumbHelpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { createBreadcrumbNavigateTransition } from '@/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers'\n\ntype PayrollFlowEventPayloads = {\n [componentEvents.RUN_PAYROLL_SELECTED]: {\n payrollUuid: string\n }\n [componentEvents.REVIEW_PAYROLL]: {\n payrollUuid: string\n }\n [componentEvents.RUN_PAYROLL_PROCESSED]: {\n payPeriod?: PayrollPayPeriodType\n payrollUuid?: string\n }\n [componentEvents.RUN_TRANSITION_PAYROLL]: {\n startDate: string\n endDate: string\n payScheduleUuid: string\n }\n}\n\n/** @internal */\nexport const payrollFlowBreadcrumbsNodes: BreadcrumbNodes = {\n landing: {\n parent: null,\n item: {\n id: 'landing',\n label: 'breadcrumbs.landing',\n namespace: 'Payroll.PayrollLanding',\n onNavigate: ((ctx: PayrollFlowContextInterface) => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PayrollLandingContextual,\n alerts: undefined,\n payrollUuid: undefined,\n executionInitialState: undefined,\n })) as (context: unknown) => unknown,\n },\n },\n blockers: {\n parent: 'landing',\n item: {\n id: 'blockers',\n label: 'breadcrumbLabel',\n namespace: 'Payroll.PayrollBlocker',\n },\n },\n submittedOverview: {\n parent: 'landing',\n item: {\n id: 'submittedOverview',\n label: 'breadcrumbs.overview',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n submittedReceipts: {\n parent: 'landing',\n item: {\n id: 'submittedReceipts',\n label: 'breadcrumbs.receipt',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n}\n\nconst breadcrumbNavigateTransition =\n createBreadcrumbNavigateTransition<PayrollFlowContextInterface>()\n\nfunction toLandingReducer(ctx: PayrollFlowContextInterface): PayrollFlowContextInterface {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PayrollLandingContextual,\n alerts: undefined,\n payrollUuid: undefined,\n payPeriod: undefined,\n executionInitialState: undefined,\n }\n}\n\nfunction toExecutionReducer(\n ctx: PayrollFlowContextInterface,\n ev: { payload: { payrollUuid: string } },\n executionInitialState: PayrollExecutionInitialState,\n): PayrollFlowContextInterface {\n return {\n ...ctx,\n component: PayrollExecutionFlowContextual,\n alerts: undefined,\n payrollUuid: ev.payload.payrollUuid,\n showPayrollCancelledAlert: false,\n executionInitialState,\n }\n}\n\nconst landingBreadcrumbNavigateTransition = transition(\n componentEvents.BREADCRUMB_NAVIGATE,\n 'landing',\n guard(\n (_ctx: PayrollFlowContextInterface, ev: { payload: { key: string } }) =>\n ev.payload.key === 'landing',\n ),\n reduce(toLandingReducer),\n)\n\nconst exitFlowTransition = transition(\n componentEvents.PAYROLL_EXIT_FLOW,\n 'landing',\n reduce(toLandingReducer),\n)\n\nconst notCalculatedToLandingTransition = transition(\n componentEvents.RUN_PAYROLL_NOT_CALCULATED_BACK_TO_LIST,\n 'landing',\n reduce(toLandingReducer),\n)\n\nconst cancelledToLandingTransition = transition(\n componentEvents.RUN_PAYROLL_CANCELLED,\n 'landing',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...toLandingReducer(ctx),\n showPayrollCancelledAlert: true,\n })),\n)\n\nconst processedToSubmittedOverviewTransition = transition(\n componentEvents.RUN_PAYROLL_PROCESSED,\n 'submittedOverview',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<PayrollFlowEventPayloads, typeof componentEvents.RUN_PAYROLL_PROCESSED>,\n ): PayrollFlowContextInterface => {\n const payPeriod = ev.payload.payPeriod ?? ctx.payPeriod\n return {\n ...updateBreadcrumbs('submittedOverview', ctx, {\n startDate: payPeriod?.startDate ?? '',\n endDate: payPeriod?.endDate ?? '',\n }),\n component: PayrollOverviewContextual,\n alerts: undefined,\n payrollUuid: ev.payload.payrollUuid ?? ctx.payrollUuid,\n payPeriod,\n executionInitialState: undefined,\n ctaConfig: {\n labelKey: 'exitFlowCta',\n namespace: 'Payroll.PayrollOverview',\n },\n }\n },\n ),\n)\n\n/** @internal */\nexport const payrollFlowMachine = {\n landing: state<MachineTransition>(\n transition(\n componentEvents.RUN_PAYROLL_SELECTED,\n 'execution',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<\n PayrollFlowEventPayloads,\n typeof componentEvents.RUN_PAYROLL_SELECTED\n >,\n ) => toExecutionReducer(ctx, ev, 'configuration'),\n ),\n ),\n transition(\n componentEvents.REVIEW_PAYROLL,\n 'execution',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<PayrollFlowEventPayloads, typeof componentEvents.REVIEW_PAYROLL>,\n ) => toExecutionReducer(ctx, ev, 'overview'),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_BLOCKERS_VIEW_ALL,\n 'blockers',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...updateBreadcrumbs('blockers', ctx),\n component: PayrollBlockerContextual,\n alerts: undefined,\n showPayrollCancelledAlert: false,\n ctaConfig: {\n labelKey: 'exitFlowCta',\n namespace: 'Payroll.PayrollBlocker',\n },\n })),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED_ALERT_DISMISSED,\n 'landing',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...ctx,\n showPayrollCancelledAlert: false,\n })),\n ),\n transition(\n componentEvents.RUN_TRANSITION_PAYROLL,\n 'transition',\n reduce(\n (\n ctx: PayrollFlowContextInterface,\n ev: MachineEventType<\n PayrollFlowEventPayloads,\n typeof componentEvents.RUN_TRANSITION_PAYROLL\n >,\n ): PayrollFlowContextInterface => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: TransitionFlowContextual,\n alerts: undefined,\n transitionStartDate: ev.payload.startDate,\n transitionEndDate: ev.payload.endDate,\n transitionPayScheduleUuid: ev.payload.payScheduleUuid,\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_OFF_CYCLE_PAYROLL,\n 'offCycle',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: OffCycleFlowContextual,\n alerts: undefined,\n showPayrollCancelledAlert: false,\n })),\n ),\n ),\n execution: state<MachineTransition>(\n landingBreadcrumbNavigateTransition,\n exitFlowTransition,\n cancelledToLandingTransition,\n notCalculatedToLandingTransition,\n processedToSubmittedOverviewTransition,\n ),\n blockers: state<MachineTransition>(breadcrumbNavigateTransition('landing'), exitFlowTransition),\n submittedOverview: state<MachineTransition>(\n breadcrumbNavigateTransition('landing'),\n transition(\n componentEvents.RUN_PAYROLL_RECEIPT_GET,\n 'submittedReceipts',\n reduce((ctx: PayrollFlowContextInterface): PayrollFlowContextInterface => ({\n ...updateBreadcrumbs('submittedReceipts', ctx, {\n startDate: ctx.payPeriod?.startDate ?? '',\n endDate: ctx.payPeriod?.endDate ?? '',\n }),\n component: PayrollReceiptsContextual,\n alerts: undefined,\n ctaConfig: {\n labelKey: 'exitFlowCta',\n namespace: 'Payroll.PayrollReceipts',\n },\n })),\n ),\n cancelledToLandingTransition,\n notCalculatedToLandingTransition,\n exitFlowTransition,\n ),\n submittedReceipts: state<MachineTransition>(\n breadcrumbNavigateTransition('landing'),\n exitFlowTransition,\n ),\n transition: state<MachineTransition>(\n landingBreadcrumbNavigateTransition,\n exitFlowTransition,\n cancelledToLandingTransition,\n notCalculatedToLandingTransition,\n processedToSubmittedOverviewTransition,\n ),\n offCycle: state<MachineTransition>(\n landingBreadcrumbNavigateTransition,\n exitFlowTransition,\n cancelledToLandingTransition,\n notCalculatedToLandingTransition,\n processedToSubmittedOverviewTransition,\n ),\n}\n"],"names":["payrollFlowBreadcrumbsNodes","ctx","patchBreadcrumbsHeader","PayrollLandingContextual","breadcrumbNavigateTransition","createBreadcrumbNavigateTransition","toLandingReducer","toExecutionReducer","ev","executionInitialState","PayrollExecutionFlowContextual","landingBreadcrumbNavigateTransition","transition","componentEvents","guard","_ctx","reduce","exitFlowTransition","notCalculatedToLandingTransition","cancelledToLandingTransition","processedToSubmittedOverviewTransition","payPeriod","updateBreadcrumbs","PayrollOverviewContextual","payrollFlowMachine","state","PayrollBlockerContextual","TransitionFlowContextual","OffCycleFlowContextual","PayrollReceiptsContextual"],"mappings":"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"}