@gusto/embedded-react-sdk 0.54.0 → 0.54.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/components/Common/Loading/Loading.d.ts +6 -1
  3. package/dist/components/Common/Loading/Loading.js +13 -12
  4. package/dist/components/Common/Loading/Loading.js.map +1 -1
  5. package/dist/components/Common/Loading/Loading.module.scss.js +1 -1
  6. package/dist/components/Common/PayrollLoading/PayrollLoading.js +1 -1
  7. package/dist/components/Common/PayrollLoading/PayrollLoading.js.map +1 -1
  8. package/dist/components/Common/UI/Alert/Alert.js +8 -8
  9. package/dist/components/Common/UI/Alert/Alert.js.map +1 -1
  10. package/dist/components/Common/UI/Alert/Alert.module.scss.js +18 -16
  11. package/dist/components/Common/UI/Alert/Alert.module.scss.js.map +1 -1
  12. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  13. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  14. package/dist/components/Common/UI/Menu/Menu.js +19 -18
  15. package/dist/components/Common/UI/Menu/Menu.js.map +1 -1
  16. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  17. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -5
  18. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  19. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -5
  20. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  21. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -7
  22. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  23. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -5
  24. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  25. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -5
  26. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  27. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  28. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -10
  29. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  30. package/dist/components/Company/Industry/Context.js +6 -8
  31. package/dist/components/Company/Industry/Context.js.map +1 -1
  32. package/dist/components/Company/Industry/Industry.js +2 -2
  33. package/dist/components/Company/Industry/Industry.js.map +1 -1
  34. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -5
  35. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  36. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -5
  37. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  38. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +20 -19
  39. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  40. package/dist/components/Company/OnboardingOverview/context.js +3 -5
  41. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  42. package/dist/components/Company/PaySchedule/PaySchedule.js +20 -19
  43. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  44. package/dist/components/Company/PaySchedule/PayScheduleForm.js +29 -28
  45. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  46. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +1 -1
  47. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  48. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js.map +1 -1
  49. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js +24 -21
  50. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
  51. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +11 -11
  52. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  53. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -5
  54. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  55. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -5
  56. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  57. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +14 -13
  58. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -1
  59. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -5
  60. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  61. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +22 -21
  62. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
  63. package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/fields.js +8 -8
  64. package/dist/components/Contractor/Landing/Landing.js +30 -29
  65. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  66. package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js +18 -17
  67. package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js.map +1 -1
  68. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/fields.js +1 -1
  69. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.d.ts +41 -0
  70. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +175 -0
  71. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -0
  72. package/dist/components/Contractor/Payments/CreateHistoricalPayment/index.d.ts +1 -0
  73. package/dist/components/Contractor/Payments/CreateHistoricalPayment/useFormDictionary.d.ts +18 -0
  74. package/dist/components/Contractor/Payments/{HistoricalPaymentAmounts → CreateHistoricalPayment}/useFormDictionary.js +37 -7
  75. package/dist/components/Contractor/Payments/CreateHistoricalPayment/useFormDictionary.js.map +1 -0
  76. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.d.ts +30 -0
  77. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +56 -0
  78. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -0
  79. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/index.d.ts +1 -0
  80. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/useFormDictionary.d.ts +9 -0
  81. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/useFormDictionary.js +33 -0
  82. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/useFormDictionary.js.map +1 -0
  83. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +46 -131
  84. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  85. package/dist/components/Contractor/Payments/PaymentSummary/useFormDictionary.d.ts +9 -0
  86. package/dist/components/Contractor/Payments/PaymentSummary/useFormDictionary.js +36 -0
  87. package/dist/components/Contractor/Payments/PaymentSummary/useFormDictionary.js.map +1 -0
  88. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.d.ts +83 -0
  89. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.js +124 -0
  90. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.js.map +1 -0
  91. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/index.d.ts +1 -0
  92. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.js +16 -16
  93. package/dist/components/Contractor/exports/contractorManagement.d.ts +2 -2
  94. package/dist/components/Contractor/exports/contractorManagement.js +20 -20
  95. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  96. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  97. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  98. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  99. package/dist/components/Employee/Documents/management/DocumentManager.js +2 -1
  100. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  101. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -5
  102. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  103. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  104. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  105. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  106. package/dist/components/Employee/Landing/Landing.js +31 -30
  107. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  108. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +59 -58
  109. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  110. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
  111. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
  112. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  113. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  114. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  115. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  116. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  117. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  118. package/dist/components/Flow/Flow.js +27 -20
  119. package/dist/components/Flow/Flow.js.map +1 -1
  120. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +44 -44
  121. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  122. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +108 -108
  123. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  124. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +1 -1
  125. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  126. package/dist/components/Payroll/usePreparedPayrollData.js +8 -10
  127. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  128. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +23 -23
  129. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  130. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.d.ts +4 -11
  131. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js +8 -8
  132. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js.map +1 -1
  133. package/dist/i18n/I18n.js +7 -7
  134. package/dist/i18n/I18n.js.map +1 -1
  135. package/dist/i18n/en/Company.PaySchedule.json.js +5 -5
  136. package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
  137. package/dist/i18n/en/Company.TimeOff.EmployeeTable.json.js +20 -18
  138. package/dist/i18n/en/Company.TimeOff.EmployeeTable.json.js.map +1 -1
  139. package/dist/i18n/en/Contractor.ManagementContractorList.json.js +46 -44
  140. package/dist/i18n/en/Contractor.ManagementContractorList.json.js.map +1 -1
  141. package/dist/i18n/en/Contractor.Payments.CreateHistoricalPayment.json.js +36 -0
  142. package/dist/i18n/en/Contractor.Payments.CreateHistoricalPayment.json.js.map +1 -0
  143. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentSummary.json.js +48 -0
  144. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentSummary.json.js.map +1 -0
  145. package/dist/i18n/en/Contractor.Payments.PaymentSummary.json.js +7 -7
  146. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +29 -27
  147. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js.map +1 -1
  148. package/dist/i18n/types.d.ts +219 -105
  149. package/dist/shared/constants.d.ts +12 -4
  150. package/dist/shared/constants.js +23 -19
  151. package/dist/shared/constants.js.map +1 -1
  152. package/dist/style.css +1 -1
  153. package/docs/guides/endpoint-inventory.json +30 -1
  154. package/package.json +17 -16
  155. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.d.ts +0 -33
  156. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.js +0 -62
  157. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.js.map +0 -1
  158. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/index.d.ts +0 -1
  159. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.d.ts +0 -9
  160. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.js.map +0 -1
  161. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.d.ts +0 -27
  162. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.js +0 -56
  163. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.js.map +0 -1
  164. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/index.d.ts +0 -1
  165. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentAmounts.json.js +0 -36
  166. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentAmounts.json.js.map +0 -1
  167. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentContractors.json.js +0 -18
  168. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentContractors.json.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { jsx as r, jsxs as o, Fragment as O } from "react/jsx-runtime";
2
2
  import { useRef as V } from "react";
3
3
  import { useTranslation as _, Trans as z } from "react-i18next";
4
- import { useFormatEmployeePayRate as K, getRegularHours as W, getOvertimeHours as X, formatHoursDisplay as H, getTotalPtoHours as q, getAdditionalEarnings as J, getReimbursements as Q, calculateGrossPay as Y } from "../helpers.js";
5
- import { PayrollCategory as M } from "../payrollTypes.js";
4
+ import { useFormatEmployeePayRate as K, getRegularHours as W, getOvertimeHours as X, formatHoursDisplay as w, getTotalPtoHours as q, getAdditionalEarnings as J, getReimbursements as Q, calculateGrossPay as Y } from "../helpers.js";
5
+ import { PayrollCategory as E } from "../payrollTypes.js";
6
6
  import { PayrollBlockerAlerts as Z } from "../PayrollBlocker/components/PayrollBlockerAlerts.js";
7
7
  import $ from "./PayrollConfigurationPresentation.module.scss.js";
8
8
  import { useI18n as ee } from "../../../i18n/I18n.js";
@@ -19,48 +19,48 @@ import { useDateFormatter as me } from "../../../hooks/useDateFormatter.js";
19
19
  import ce from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
20
20
  import { PayrollLoading as ue } from "../../Common/PayrollLoading/PayrollLoading.js";
21
21
  import { DataView as de } from "../../Common/DataView/DataView.js";
22
- const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate, i.endDate) : { startDate: "", endDate: "" }, Ge = ({
23
- employeeCompensations: i,
22
+ const pe = (l, p) => l?.startDate && l.endDate ? p.formatPayPeriod(l.startDate, l.endDate) : { startDate: "", endDate: "" }, Ge = ({
23
+ employeeCompensations: l,
24
24
  employeeDetails: p,
25
25
  payPeriod: f,
26
- paySchedule: w,
27
- onEdit: E,
26
+ paySchedule: H,
27
+ onEdit: M,
28
28
  onToggleExclude: R,
29
29
  onCalculatePayroll: D,
30
- onViewBlockers: N,
31
- payrollCategory: g = M.Regular,
30
+ onViewBlockers: F,
31
+ payrollCategory: g = E.Regular,
32
32
  alerts: C,
33
33
  payrollAlert: m,
34
34
  isPending: y,
35
- isCalculating: l,
35
+ isCalculating: a,
36
36
  payrollBlockers: P = [],
37
- pagination: U,
38
- withReimbursements: F = !0,
39
- isCalculateDisabled: x = !1,
37
+ pagination: N,
38
+ withReimbursements: U = !0,
39
+ isCalculateDisabled: k = !1,
40
40
  grossUpEnabled: B = !1,
41
41
  onGrossUpSelect: j
42
42
  }) => {
43
- const { Button: k, Heading: T, Text: d, Badge: G, Alert: I } = ne();
43
+ const { Button: x, Heading: T, Text: d, Badge: G, Alert: I } = ne();
44
44
  ee("Payroll.PayrollConfiguration");
45
- const { t } = _("Payroll.PayrollConfiguration"), S = me(), L = K(), v = V(null), a = ce({ ref: v }).includes("small"), c = new Map(p.map((e) => [e.uuid, e])), A = (e) => {
45
+ const { t } = _("Payroll.PayrollConfiguration"), S = me(), A = K(), v = V(null), s = ce({ ref: v }).includes("small"), c = new Map(p.map((e) => [e.uuid, e])), L = (e) => {
46
46
  const n = c.get(e);
47
- return n ? se({ first_name: n.firstName, last_name: n.lastName }) : null;
47
+ return (n ? se({ first_name: n.firstName, last_name: n.lastName }) : "") || t("unknownEmployeeFallback");
48
48
  };
49
49
  return /* @__PURE__ */ r("div", { ref: v, className: $.container, children: /* @__PURE__ */ o(u, { flexDirection: "column", gap: 32, children: [
50
50
  /* @__PURE__ */ o(
51
51
  u,
52
52
  {
53
- flexDirection: a ? "row" : "column",
54
- justifyContent: a ? "space-between" : "normal",
55
- alignItems: a ? "center" : "stretch",
56
- gap: a ? 0 : 16,
53
+ flexDirection: s ? "row" : "column",
54
+ justifyContent: s ? "space-between" : "normal",
55
+ alignItems: s ? "center" : "stretch",
56
+ gap: s ? 0 : 16,
57
57
  children: [
58
58
  /* @__PURE__ */ o(h, { children: [
59
59
  /* @__PURE__ */ r(T, { as: "h1", children: t("pageTitle") }),
60
60
  f && /* @__PURE__ */ r(d, { variant: "supporting", children: /* @__PURE__ */ r(
61
61
  z,
62
62
  {
63
- i18nKey: g === M.Dismissal ? "descriptionDismissal" : "description",
63
+ i18nKey: g === E.Dismissal ? "descriptionDismissal" : "description",
64
64
  t,
65
65
  components: { dateWrapper: /* @__PURE__ */ r(d, { weight: "bold", as: "span" }) },
66
66
  values: {
@@ -70,21 +70,21 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
70
70
  }
71
71
  ) })
72
72
  ] }),
73
- /* @__PURE__ */ r(h, { flexGrow: 0, children: a ? /* @__PURE__ */ r(
74
- k,
73
+ /* @__PURE__ */ r(h, { flexGrow: 0, children: s ? /* @__PURE__ */ r(
74
+ x,
75
75
  {
76
76
  title: t("calculatePayrollTitle"),
77
77
  onClick: D,
78
- isDisabled: x || y || l,
79
- children: t(l ? "calculatingPayroll" : "calculatePayroll")
78
+ isDisabled: k || y || a,
79
+ children: t(a ? "calculatingPayroll" : "calculatePayroll")
80
80
  }
81
81
  ) : /* @__PURE__ */ r(u, { flexDirection: "column", justifyContent: "normal", alignItems: "stretch", gap: 12, children: /* @__PURE__ */ r(
82
- k,
82
+ x,
83
83
  {
84
84
  title: t("calculatePayrollTitle"),
85
85
  onClick: D,
86
- isDisabled: x || y || l,
87
- children: t(l ? "calculatingPayroll" : "calculatePayroll")
86
+ isDisabled: k || y || a,
87
+ children: t(a ? "calculatingPayroll" : "calculatePayroll")
88
88
  }
89
89
  ) }) })
90
90
  ]
@@ -97,20 +97,20 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
97
97
  y ? /* @__PURE__ */ r(
98
98
  ue,
99
99
  {
100
- title: t(l ? "calculatingTitle" : "loadingTitle"),
101
- description: t(l ? "calculatingDescription" : "loadingDescription")
100
+ title: t(a ? "calculatingTitle" : "loadingTitle"),
101
+ description: t(a ? "calculatingDescription" : "loadingDescription")
102
102
  }
103
103
  ) : /* @__PURE__ */ o(O, { children: [
104
104
  P.length > 0 && /* @__PURE__ */ r(
105
105
  Z,
106
106
  {
107
107
  blockers: P,
108
- onViewBlockersClick: N
108
+ onViewBlockersClick: F
109
109
  }
110
110
  ),
111
111
  /* @__PURE__ */ o(u, { flexDirection: "column", gap: 20, children: [
112
112
  /* @__PURE__ */ o(h, { children: [
113
- /* @__PURE__ */ r(T, { as: "h3", children: t("hoursAndEarningsTitle") }),
113
+ /* @__PURE__ */ r(T, { as: "h2", styledAs: "h3", children: t("hoursAndEarningsTitle") }),
114
114
  /* @__PURE__ */ r(d, { variant: "supporting", children: t("hoursAndEarningsDescription") })
115
115
  ] }),
116
116
  /* @__PURE__ */ r(
@@ -121,10 +121,10 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
121
121
  {
122
122
  title: t("tableColumns.employees"),
123
123
  render: (e) => {
124
- const n = c.get(e.employeeUuid || ""), s = L(n);
124
+ const n = c.get(e.employeeUuid || ""), i = A(n);
125
125
  return /* @__PURE__ */ o(u, { flexDirection: "column", gap: 0, children: [
126
- A(e.employeeUuid || ""),
127
- s && /* @__PURE__ */ r(d, { size: "xs", variant: "supporting", children: s }),
126
+ L(e.employeeUuid || ""),
127
+ i && /* @__PURE__ */ r(d, { size: "xs", variant: "supporting", children: i }),
128
128
  e.excluded && /* @__PURE__ */ r(G, { status: "warning", children: t("skippedBadge") })
129
129
  ] });
130
130
  }
@@ -132,15 +132,15 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
132
132
  {
133
133
  title: t("tableColumns.hours"),
134
134
  render: (e) => {
135
- const n = W(e), s = X(e);
136
- return H(n + s);
135
+ const n = W(e), i = X(e);
136
+ return w(n + i);
137
137
  }
138
138
  },
139
139
  {
140
140
  title: t("tableColumns.timeOff"),
141
141
  render: (e) => {
142
142
  const n = q(e);
143
- return H(n);
143
+ return w(n);
144
144
  }
145
145
  },
146
146
  {
@@ -150,7 +150,7 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
150
150
  return b(n);
151
151
  }
152
152
  },
153
- ...F ? [
153
+ ...U ? [
154
154
  {
155
155
  title: t("tableColumns.reimbursements"),
156
156
  render: (e) => {
@@ -162,18 +162,18 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
162
162
  {
163
163
  title: t("tableColumns.totalPay"),
164
164
  render: (e) => {
165
- const n = c.get(e.employeeUuid || ""), s = n ? Y(
165
+ const n = c.get(e.employeeUuid || ""), i = n ? Y(
166
166
  e,
167
167
  n,
168
168
  f?.startDate,
169
- w,
169
+ H,
170
170
  g
171
171
  ) : 0;
172
- return b(s);
172
+ return b(i);
173
173
  }
174
174
  }
175
175
  ],
176
- data: i,
176
+ data: l,
177
177
  itemMenu: (e) => /* @__PURE__ */ r(
178
178
  re,
179
179
  {
@@ -183,7 +183,7 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
183
183
  icon: /* @__PURE__ */ r(oe, { "aria-hidden": !0 }),
184
184
  onClick: () => {
185
185
  const n = c.get(e.employeeUuid || "");
186
- n && E(n);
186
+ n && M(n);
187
187
  }
188
188
  },
189
189
  {
@@ -206,7 +206,7 @@ const pe = (i, p) => i?.startDate && i.endDate ? p.formatPayPeriod(i.startDate,
206
206
  triggerLabel: t("editMenu.edit")
207
207
  }
208
208
  ),
209
- pagination: U
209
+ pagination: N
210
210
  }
211
211
  )
212
212
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollConfigurationPresentation.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useRef } from 'react'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api/models/components/payrollpayperiodtype'\nimport type { PayScheduleShow as PayScheduleObject } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { Trans, useTranslation } from 'react-i18next'\nimport {\n useFormatEmployeePayRate,\n getRegularHours,\n getOvertimeHours,\n getTotalPtoHours,\n getAdditionalEarnings,\n getReimbursements,\n formatHoursDisplay,\n calculateGrossPay,\n} from '../helpers'\nimport { PayrollCategory } from '../payrollTypes'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollBlockerAlerts } from '../PayrollBlocker/components/PayrollBlockerAlerts'\nimport styles from './PayrollConfigurationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { DataView, Flex, FlexItem, Grid, PayrollLoading } from '@/components/Common'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport XCircle from '@/assets/icons/x-circle.svg?react'\nimport PlusCircle from '@/assets/icons/plus-circle.svg?react'\nimport CoinsHandSvg from '@/assets/icons/coins-hand.svg?react'\nimport { firstLastName, formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\ninterface PayrollConfigurationPresentationProps {\n employeeCompensations: PayrollEmployeeCompensationsType[]\n employeeDetails: Employee[]\n payPeriod?: PayrollPayPeriodType\n paySchedule?: PayScheduleObject\n onCalculatePayroll: () => void\n onEdit: (employee: Employee) => void\n onToggleExclude: (employeeCompensation: PayrollEmployeeCompensationsType) => void\n onViewBlockers: () => void\n payrollCategory?: PayrollCategory\n alerts?: ReactNode\n payrollAlert?: {\n label: string\n content?: ReactNode\n variant: 'info' | 'warning'\n }\n isPending?: boolean\n isCalculating?: boolean\n payrollBlockers?: ApiPayrollBlocker[]\n pagination?: PaginationControlProps\n withReimbursements?: boolean\n isCalculateDisabled?: boolean\n grossUpEnabled?: boolean\n onGrossUpSelect?: (employeeUuid: string) => void\n}\n\nconst getPayrollConfigurationTitle = (\n payPeriod: PayrollPayPeriodType | undefined,\n dateFormatter: ReturnType<typeof useDateFormatter>,\n) => {\n if (payPeriod?.startDate && payPeriod.endDate) {\n return dateFormatter.formatPayPeriod(payPeriod.startDate, payPeriod.endDate)\n }\n return { startDate: '', endDate: '' }\n}\n\n/** @internal */\nexport const PayrollConfigurationPresentation = ({\n employeeCompensations,\n employeeDetails,\n payPeriod,\n paySchedule,\n onEdit,\n onToggleExclude,\n onCalculatePayroll,\n onViewBlockers,\n payrollCategory = PayrollCategory.Regular,\n alerts,\n payrollAlert,\n isPending,\n isCalculating,\n payrollBlockers = [],\n pagination,\n withReimbursements = true,\n isCalculateDisabled = false,\n grossUpEnabled = false,\n onGrossUpSelect,\n}: PayrollConfigurationPresentationProps) => {\n const { Button, Heading, Text, Badge, Alert } = useComponentContext()\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const dateFormatter = useDateFormatter()\n const formatEmployeePayRate = useFormatEmployeePayRate()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('small')\n\n const employeeMap = new Map(employeeDetails.map(employee => [employee.uuid, employee]))\n\n const getEmployeeName = (employeeUuid: string) => {\n const employee = employeeMap.get(employeeUuid)\n return employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : null\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex\n flexDirection={isDesktop ? 'row' : 'column'}\n justifyContent={isDesktop ? 'space-between' : 'normal'}\n alignItems={isDesktop ? 'center' : 'stretch'}\n gap={isDesktop ? 0 : 16}\n >\n <FlexItem>\n <Heading as=\"h1\">{t('pageTitle')}</Heading>\n {payPeriod && (\n <Text variant=\"supporting\">\n <Trans\n i18nKey={\n payrollCategory === PayrollCategory.Dismissal\n ? 'descriptionDismissal'\n : 'description'\n }\n t={t}\n components={{ dateWrapper: <Text weight=\"bold\" as=\"span\" /> }}\n values={{\n ...getPayrollConfigurationTitle(payPeriod, dateFormatter),\n payrollType: payrollCategory,\n }}\n />\n </Text>\n )}\n </FlexItem>\n <FlexItem flexGrow={isDesktop ? 0 : 0}>\n {isDesktop ? (\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n ) : (\n <Flex flexDirection=\"column\" justifyContent=\"normal\" alignItems=\"stretch\" gap={12}>\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n </Flex>\n )}\n </FlexItem>\n </Flex>\n\n {(alerts || payrollAlert) && (\n <Grid gap={16} gridTemplateColumns=\"1fr\">\n {payrollAlert && (\n <Alert label={payrollAlert.label} status={payrollAlert.variant}>\n {payrollAlert.content}\n </Alert>\n )}\n {alerts}\n </Grid>\n )}\n\n {isPending ? (\n <PayrollLoading\n title={isCalculating ? t('calculatingTitle') : t('loadingTitle')}\n description={isCalculating ? t('calculatingDescription') : t('loadingDescription')}\n />\n ) : (\n <>\n {payrollBlockers.length > 0 && (\n <PayrollBlockerAlerts\n blockers={payrollBlockers}\n onViewBlockersClick={onViewBlockers}\n />\n )}\n <Flex flexDirection=\"column\" gap={20}>\n <FlexItem>\n <Heading as=\"h3\">{t('hoursAndEarningsTitle')}</Heading>\n <Text variant=\"supporting\">{t('hoursAndEarningsDescription')}</Text>\n </FlexItem>\n\n <DataView\n label={t('employeeCompensationsTitle')}\n columns={[\n {\n title: t('tableColumns.employees'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const payRateDisplay = formatEmployeePayRate(employee)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n {getEmployeeName(item.employeeUuid || '')}\n {payRateDisplay && (\n <Text size=\"xs\" variant=\"supporting\">\n {payRateDisplay}\n </Text>\n )}\n {item.excluded && <Badge status=\"warning\">{t('skippedBadge')}</Badge>}\n </Flex>\n )\n },\n },\n {\n title: t('tableColumns.hours'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const hours = getRegularHours(item)\n const overtimeHours = getOvertimeHours(item)\n return formatHoursDisplay(hours + overtimeHours)\n },\n },\n {\n title: t('tableColumns.timeOff'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const ptoHours = getTotalPtoHours(item)\n return formatHoursDisplay(ptoHours)\n },\n },\n {\n title: t('tableColumns.additionalEarnings'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const earnings = getAdditionalEarnings(item)\n return formatNumberAsCurrency(earnings)\n },\n },\n ...(withReimbursements\n ? [\n {\n title: t('tableColumns.reimbursements'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const reimbursements = getReimbursements(item)\n return formatNumberAsCurrency(reimbursements)\n },\n },\n ]\n : []),\n {\n title: t('tableColumns.totalPay'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const calculatedGrossPay = employee\n ? calculateGrossPay(\n item,\n employee,\n payPeriod?.startDate,\n paySchedule,\n payrollCategory,\n )\n : 0\n return formatNumberAsCurrency(calculatedGrossPay)\n },\n },\n ]}\n data={employeeCompensations}\n itemMenu={(item: PayrollEmployeeCompensationsType) => (\n <HamburgerMenu\n items={[\n {\n label: t('editMenu.edit'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onEdit(employee)\n }\n },\n },\n {\n label: t(item.excluded ? 'editMenu.unskip' : 'editMenu.skip'),\n icon: item.excluded ? <PlusCircle aria-hidden /> : <XCircle aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onToggleExclude(item)\n }\n },\n },\n ...(grossUpEnabled\n ? [\n {\n label: t('editMenu.setNetEarnings'),\n icon: <CoinsHandSvg aria-hidden />,\n onClick: () => {\n if (item.employeeUuid) {\n onGrossUpSelect?.(item.employeeUuid)\n }\n },\n },\n ]\n : []),\n ]}\n triggerLabel={t('editMenu.edit')}\n />\n )}\n pagination={pagination}\n />\n </Flex>\n </>\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["getPayrollConfigurationTitle","payPeriod","dateFormatter","PayrollConfigurationPresentation","employeeCompensations","employeeDetails","paySchedule","onEdit","onToggleExclude","onCalculatePayroll","onViewBlockers","payrollCategory","PayrollCategory","alerts","payrollAlert","isPending","isCalculating","payrollBlockers","pagination","withReimbursements","isCalculateDisabled","grossUpEnabled","onGrossUpSelect","Button","Heading","Text","Badge","Alert","useComponentContext","useI18n","useTranslation","useDateFormatter","formatEmployeePayRate","useFormatEmployeePayRate","containerRef","useRef","isDesktop","useContainerBreakpoints","employeeMap","employee","getEmployeeName","employeeUuid","firstLastName","jsx","styles","jsxs","Flex","FlexItem","Trans","Grid","PayrollLoading","Fragment","PayrollBlockerAlerts","DataView","item","payRateDisplay","hours","getRegularHours","overtimeHours","getOvertimeHours","formatHoursDisplay","ptoHours","getTotalPtoHours","earnings","getAdditionalEarnings","formatNumberAsCurrency","reimbursements","getReimbursements","calculatedGrossPay","calculateGrossPay","HamburgerMenu","PencilSvg","PlusCircle","XCircle","CoinsHandSvg"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4DA,MAAMA,KAA+B,CACnCC,GACAC,MAEID,GAAW,aAAaA,EAAU,UAC7BC,EAAc,gBAAgBD,EAAU,WAAWA,EAAU,OAAO,IAEtE,EAAE,WAAW,IAAI,SAAS,GAAA,GAItBE,KAAmC,CAAC;AAAA,EAC/C,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,WAAAJ;AAAA,EACA,aAAAK;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC,IAAkBC,EAAgB;AAAA,EAClC,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC,IAAkB,CAAA;AAAA,EAClB,YAAAC;AAAA,EACA,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC,IAAiB;AAAA,EACjB,iBAAAC;AACF,MAA6C;AAC3C,QAAM,EAAE,QAAAC,GAAQ,SAAAC,GAAS,MAAAC,GAAM,OAAAC,GAAO,OAAAC,EAAA,IAAUC,GAAA;AAChD,EAAAC,GAAQ,8BAA8B;AACtC,QAAM,EAAE,EAAA,IAAMC,EAAe,8BAA8B,GACrD5B,IAAgB6B,GAAA,GAChBC,IAAwBC,EAAA,GACxBC,IAAeC,EAAuB,IAAI,GAE1CC,IADcC,GAAwB,EAAE,KAAKH,GAAc,EACnC,SAAS,OAAO,GAExCI,IAAc,IAAI,IAAIjC,EAAgB,IAAI,CAAAkC,MAAY,CAACA,EAAS,MAAMA,CAAQ,CAAC,CAAC,GAEhFC,IAAkB,CAACC,MAAyB;AAChD,UAAMF,IAAWD,EAAY,IAAIG,CAAY;AAC7C,WAAOF,IACHG,GAAc,EAAE,YAAYH,EAAS,WAAW,WAAWA,EAAS,SAAA,CAAU,IAC9E;AAAA,EACN;AAEA,SACE,gBAAAI,EAAC,OAAA,EAAI,KAAKT,GAAc,WAAWU,EAAO,WACxC,UAAA,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,eAAeV,IAAY,QAAQ;AAAA,QACnC,gBAAgBA,IAAY,kBAAkB;AAAA,QAC9C,YAAYA,IAAY,WAAW;AAAA,QACnC,KAAKA,IAAY,IAAI;AAAA,QAErB,UAAA;AAAA,UAAA,gBAAAS,EAACE,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAJ,EAACnB,GAAA,EAAQ,IAAG,MAAM,UAAA,EAAE,WAAW,GAAE;AAAA,YAChCvB,KACC,gBAAA0C,EAAClB,GAAA,EAAK,SAAQ,cACZ,UAAA,gBAAAkB;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,SACErC,MAAoBC,EAAgB,YAChC,yBACA;AAAA,gBAEN;AAAA,gBACA,YAAY,EAAE,aAAa,gBAAA+B,EAAClB,KAAK,QAAO,QAAO,IAAG,OAAA,CAAO,EAAA;AAAA,gBACzD,QAAQ;AAAA,kBACN,GAAGzB,GAA6BC,GAAWC,CAAa;AAAA,kBACxD,aAAaS;AAAA,gBAAA;AAAA,cACf;AAAA,YAAA,EACF,CACF;AAAA,UAAA,GAEJ;AAAA,4BACCoC,GAAA,EAAS,UAAsB,GAC7B,UAAAX,IACC,gBAAAO;AAAA,YAACpB;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,uBAAuB;AAAA,cAChC,SAASd;AAAA,cACT,YAAYW,KAAuBL,KAAaC;AAAA,cAE/C,UAAgB,EAAhBA,IAAkB,uBAA0B,kBAAN;AAAA,YAAwB;AAAA,UAAA,IAGjE,gBAAA2B,EAACG,GAAA,EAAK,eAAc,UAAS,gBAAe,UAAS,YAAW,WAAU,KAAK,IAC7E,UAAA,gBAAAH;AAAA,YAACpB;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,uBAAuB;AAAA,cAChC,SAASd;AAAA,cACT,YAAYW,KAAuBL,KAAaC;AAAA,cAE/C,UAAgB,EAAhBA,IAAkB,uBAA0B,kBAAN;AAAA,YAAwB;AAAA,UAAA,GAEnE,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,KAGAH,KAAUC,MACV,gBAAA+B,EAACI,MAAK,KAAK,IAAI,qBAAoB,OAChC,UAAA;AAAA,MAAAnC,KACC,gBAAA6B,EAAChB,KAAM,OAAOb,EAAa,OAAO,QAAQA,EAAa,SACpD,UAAAA,EAAa,QAAA,CAChB;AAAA,MAEDD;AAAA,IAAA,GACH;AAAA,IAGDE,IACC,gBAAA4B;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,OAAuB,EAAhBlC,IAAkB,qBAAwB,cAAN;AAAA,QAC3C,aAA6B,EAAhBA,IAAkB,2BAA8B,oBAAN;AAAA,MAA0B;AAAA,IAAA,IAGnF,gBAAA6B,EAAAM,GAAA,EACG,UAAA;AAAA,MAAAlC,EAAgB,SAAS,KACxB,gBAAA0B;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,UAAUnC;AAAA,UACV,qBAAqBP;AAAA,QAAA;AAAA,MAAA;AAAA,MAGzB,gBAAAmC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,QAAA,gBAAAD,EAACE,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAJ,EAACnB,GAAA,EAAQ,IAAG,MAAM,UAAA,EAAE,uBAAuB,GAAE;AAAA,4BAC5CC,GAAA,EAAK,SAAQ,cAAc,UAAA,EAAE,6BAA6B,EAAA,CAAE;AAAA,QAAA,GAC/D;AAAA,QAEA,gBAAAkB;AAAA,UAACU;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,4BAA4B;AAAA,YACrC,SAAS;AAAA,cACP;AAAA,gBACE,OAAO,EAAE,wBAAwB;AAAA,gBACjC,QAAQ,CAACC,MAA2C;AAClD,wBAAMf,IAAWD,EAAY,IAAIgB,EAAK,gBAAgB,EAAE,GAClDC,IAAiBvB,EAAsBO,CAAQ;AACrD,yBACE,gBAAAM,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAC/B,UAAA;AAAA,oBAAAN,EAAgBc,EAAK,gBAAgB,EAAE;AAAA,oBACvCC,KACC,gBAAAZ,EAAClB,GAAA,EAAK,MAAK,MAAK,SAAQ,cACrB,UAAA8B,GACH;AAAA,oBAEDD,EAAK,YAAY,gBAAAX,EAACjB,GAAA,EAAM,QAAO,WAAW,UAAA,EAAE,cAAc,EAAA,CAAE;AAAA,kBAAA,GAC/D;AAAA,gBAEJ;AAAA,cAAA;AAAA,cAEF;AAAA,gBACE,OAAO,EAAE,oBAAoB;AAAA,gBAC7B,QAAQ,CAAC4B,MAA2C;AAClD,wBAAME,IAAQC,EAAgBH,CAAI,GAC5BI,IAAgBC,EAAiBL,CAAI;AAC3C,yBAAOM,EAAmBJ,IAAQE,CAAa;AAAA,gBACjD;AAAA,cAAA;AAAA,cAEF;AAAA,gBACE,OAAO,EAAE,sBAAsB;AAAA,gBAC/B,QAAQ,CAACJ,MAA2C;AAClD,wBAAMO,IAAWC,EAAiBR,CAAI;AACtC,yBAAOM,EAAmBC,CAAQ;AAAA,gBACpC;AAAA,cAAA;AAAA,cAEF;AAAA,gBACE,OAAO,EAAE,iCAAiC;AAAA,gBAC1C,QAAQ,CAACP,MAA2C;AAClD,wBAAMS,IAAWC,EAAsBV,CAAI;AAC3C,yBAAOW,EAAuBF,CAAQ;AAAA,gBACxC;AAAA,cAAA;AAAA,cAEF,GAAI5C,IACA;AAAA,gBACE;AAAA,kBACE,OAAO,EAAE,6BAA6B;AAAA,kBACtC,QAAQ,CAACmC,MAA2C;AAClD,0BAAMY,IAAiBC,EAAkBb,CAAI;AAC7C,2BAAOW,EAAuBC,CAAc;AAAA,kBAC9C;AAAA,gBAAA;AAAA,cACF,IAEF,CAAA;AAAA,cACJ;AAAA,gBACE,OAAO,EAAE,uBAAuB;AAAA,gBAChC,QAAQ,CAACZ,MAA2C;AAClD,wBAAMf,IAAWD,EAAY,IAAIgB,EAAK,gBAAgB,EAAE,GAClDc,IAAqB7B,IACvB8B;AAAA,oBACEf;AAAA,oBACAf;AAAA,oBACAtC,GAAW;AAAA,oBACXK;AAAA,oBACAK;AAAA,kBAAA,IAEF;AACJ,yBAAOsD,EAAuBG,CAAkB;AAAA,gBAClD;AAAA,cAAA;AAAA,YACF;AAAA,YAEF,MAAMhE;AAAA,YACN,UAAU,CAACkD,MACT,gBAAAX;AAAA,cAAC2B;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL;AAAA,oBACE,OAAO,EAAE,eAAe;AAAA,oBACxB,MAAM,gBAAA3B,EAAC4B,IAAA,EAAU,eAAW,GAAA,CAAC;AAAA,oBAC7B,SAAS,MAAM;AACb,4BAAMhC,IAAWD,EAAY,IAAIgB,EAAK,gBAAgB,EAAE;AACxD,sBAAIf,KACFhC,EAAOgC,CAAQ;AAAA,oBAEnB;AAAA,kBAAA;AAAA,kBAEF;AAAA,oBACE,OAAO,EAAEe,EAAK,WAAW,oBAAoB,eAAe;AAAA,oBAC5D,MAAMA,EAAK,WAAW,gBAAAX,EAAC6B,IAAA,EAAW,eAAW,GAAA,CAAC,IAAK,gBAAA7B,EAAC8B,IAAA,EAAQ,eAAW,GAAA,CAAC;AAAA,oBACxE,SAAS,MAAM;AAEb,sBADiBnC,EAAY,IAAIgB,EAAK,gBAAgB,EAAE,KAEtD9C,EAAgB8C,CAAI;AAAA,oBAExB;AAAA,kBAAA;AAAA,kBAEF,GAAIjC,IACA;AAAA,oBACE;AAAA,sBACE,OAAO,EAAE,yBAAyB;AAAA,sBAClC,MAAM,gBAAAsB,EAAC+B,IAAA,EAAa,eAAW,GAAA,CAAC;AAAA,sBAChC,SAAS,MAAM;AACb,wBAAIpB,EAAK,gBACPhC,IAAkBgC,EAAK,YAAY;AAAA,sBAEvC;AAAA,oBAAA;AAAA,kBACF,IAEF,CAAA;AAAA,gBAAC;AAAA,gBAEP,cAAc,EAAE,eAAe;AAAA,cAAA;AAAA,YAAA;AAAA,YAGnC,YAAApC;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"PayrollConfigurationPresentation.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useRef } from 'react'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api/models/components/payrollpayperiodtype'\nimport type { PayScheduleShow as PayScheduleObject } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { Trans, useTranslation } from 'react-i18next'\nimport {\n useFormatEmployeePayRate,\n getRegularHours,\n getOvertimeHours,\n getTotalPtoHours,\n getAdditionalEarnings,\n getReimbursements,\n formatHoursDisplay,\n calculateGrossPay,\n} from '../helpers'\nimport { PayrollCategory } from '../payrollTypes'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollBlockerAlerts } from '../PayrollBlocker/components/PayrollBlockerAlerts'\nimport styles from './PayrollConfigurationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { DataView, Flex, FlexItem, Grid, PayrollLoading } from '@/components/Common'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport XCircle from '@/assets/icons/x-circle.svg?react'\nimport PlusCircle from '@/assets/icons/plus-circle.svg?react'\nimport CoinsHandSvg from '@/assets/icons/coins-hand.svg?react'\nimport { firstLastName, formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\ninterface PayrollConfigurationPresentationProps {\n employeeCompensations: PayrollEmployeeCompensationsType[]\n employeeDetails: Employee[]\n payPeriod?: PayrollPayPeriodType\n paySchedule?: PayScheduleObject\n onCalculatePayroll: () => void\n onEdit: (employee: Employee) => void\n onToggleExclude: (employeeCompensation: PayrollEmployeeCompensationsType) => void\n onViewBlockers: () => void\n payrollCategory?: PayrollCategory\n alerts?: ReactNode\n payrollAlert?: {\n label: string\n content?: ReactNode\n variant: 'info' | 'warning'\n }\n isPending?: boolean\n isCalculating?: boolean\n payrollBlockers?: ApiPayrollBlocker[]\n pagination?: PaginationControlProps\n withReimbursements?: boolean\n isCalculateDisabled?: boolean\n grossUpEnabled?: boolean\n onGrossUpSelect?: (employeeUuid: string) => void\n}\n\nconst getPayrollConfigurationTitle = (\n payPeriod: PayrollPayPeriodType | undefined,\n dateFormatter: ReturnType<typeof useDateFormatter>,\n) => {\n if (payPeriod?.startDate && payPeriod.endDate) {\n return dateFormatter.formatPayPeriod(payPeriod.startDate, payPeriod.endDate)\n }\n return { startDate: '', endDate: '' }\n}\n\n/** @internal */\nexport const PayrollConfigurationPresentation = ({\n employeeCompensations,\n employeeDetails,\n payPeriod,\n paySchedule,\n onEdit,\n onToggleExclude,\n onCalculatePayroll,\n onViewBlockers,\n payrollCategory = PayrollCategory.Regular,\n alerts,\n payrollAlert,\n isPending,\n isCalculating,\n payrollBlockers = [],\n pagination,\n withReimbursements = true,\n isCalculateDisabled = false,\n grossUpEnabled = false,\n onGrossUpSelect,\n}: PayrollConfigurationPresentationProps) => {\n const { Button, Heading, Text, Badge, Alert } = useComponentContext()\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const dateFormatter = useDateFormatter()\n const formatEmployeePayRate = useFormatEmployeePayRate()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('small')\n\n const employeeMap = new Map(employeeDetails.map(employee => [employee.uuid, employee]))\n\n const getEmployeeName = (employeeUuid: string) => {\n const employee = employeeMap.get(employeeUuid)\n const name = employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : ''\n return name || t('unknownEmployeeFallback')\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex\n flexDirection={isDesktop ? 'row' : 'column'}\n justifyContent={isDesktop ? 'space-between' : 'normal'}\n alignItems={isDesktop ? 'center' : 'stretch'}\n gap={isDesktop ? 0 : 16}\n >\n <FlexItem>\n <Heading as=\"h1\">{t('pageTitle')}</Heading>\n {payPeriod && (\n <Text variant=\"supporting\">\n <Trans\n i18nKey={\n payrollCategory === PayrollCategory.Dismissal\n ? 'descriptionDismissal'\n : 'description'\n }\n t={t}\n components={{ dateWrapper: <Text weight=\"bold\" as=\"span\" /> }}\n values={{\n ...getPayrollConfigurationTitle(payPeriod, dateFormatter),\n payrollType: payrollCategory,\n }}\n />\n </Text>\n )}\n </FlexItem>\n <FlexItem flexGrow={isDesktop ? 0 : 0}>\n {isDesktop ? (\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n ) : (\n <Flex flexDirection=\"column\" justifyContent=\"normal\" alignItems=\"stretch\" gap={12}>\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n </Flex>\n )}\n </FlexItem>\n </Flex>\n\n {(alerts || payrollAlert) && (\n <Grid gap={16} gridTemplateColumns=\"1fr\">\n {payrollAlert && (\n <Alert label={payrollAlert.label} status={payrollAlert.variant}>\n {payrollAlert.content}\n </Alert>\n )}\n {alerts}\n </Grid>\n )}\n\n {isPending ? (\n <PayrollLoading\n title={isCalculating ? t('calculatingTitle') : t('loadingTitle')}\n description={isCalculating ? t('calculatingDescription') : t('loadingDescription')}\n />\n ) : (\n <>\n {payrollBlockers.length > 0 && (\n <PayrollBlockerAlerts\n blockers={payrollBlockers}\n onViewBlockersClick={onViewBlockers}\n />\n )}\n <Flex flexDirection=\"column\" gap={20}>\n <FlexItem>\n <Heading as=\"h2\" styledAs=\"h3\">\n {t('hoursAndEarningsTitle')}\n </Heading>\n <Text variant=\"supporting\">{t('hoursAndEarningsDescription')}</Text>\n </FlexItem>\n\n <DataView\n label={t('employeeCompensationsTitle')}\n columns={[\n {\n title: t('tableColumns.employees'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const payRateDisplay = formatEmployeePayRate(employee)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n {getEmployeeName(item.employeeUuid || '')}\n {payRateDisplay && (\n <Text size=\"xs\" variant=\"supporting\">\n {payRateDisplay}\n </Text>\n )}\n {item.excluded && <Badge status=\"warning\">{t('skippedBadge')}</Badge>}\n </Flex>\n )\n },\n },\n {\n title: t('tableColumns.hours'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const hours = getRegularHours(item)\n const overtimeHours = getOvertimeHours(item)\n return formatHoursDisplay(hours + overtimeHours)\n },\n },\n {\n title: t('tableColumns.timeOff'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const ptoHours = getTotalPtoHours(item)\n return formatHoursDisplay(ptoHours)\n },\n },\n {\n title: t('tableColumns.additionalEarnings'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const earnings = getAdditionalEarnings(item)\n return formatNumberAsCurrency(earnings)\n },\n },\n ...(withReimbursements\n ? [\n {\n title: t('tableColumns.reimbursements'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const reimbursements = getReimbursements(item)\n return formatNumberAsCurrency(reimbursements)\n },\n },\n ]\n : []),\n {\n title: t('tableColumns.totalPay'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const calculatedGrossPay = employee\n ? calculateGrossPay(\n item,\n employee,\n payPeriod?.startDate,\n paySchedule,\n payrollCategory,\n )\n : 0\n return formatNumberAsCurrency(calculatedGrossPay)\n },\n },\n ]}\n data={employeeCompensations}\n itemMenu={(item: PayrollEmployeeCompensationsType) => (\n <HamburgerMenu\n items={[\n {\n label: t('editMenu.edit'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onEdit(employee)\n }\n },\n },\n {\n label: t(item.excluded ? 'editMenu.unskip' : 'editMenu.skip'),\n icon: item.excluded ? <PlusCircle aria-hidden /> : <XCircle aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onToggleExclude(item)\n }\n },\n },\n ...(grossUpEnabled\n ? [\n {\n label: t('editMenu.setNetEarnings'),\n icon: <CoinsHandSvg aria-hidden />,\n onClick: () => {\n if (item.employeeUuid) {\n onGrossUpSelect?.(item.employeeUuid)\n }\n },\n },\n ]\n : []),\n ]}\n triggerLabel={t('editMenu.edit')}\n />\n )}\n pagination={pagination}\n />\n </Flex>\n </>\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["getPayrollConfigurationTitle","payPeriod","dateFormatter","PayrollConfigurationPresentation","employeeCompensations","employeeDetails","paySchedule","onEdit","onToggleExclude","onCalculatePayroll","onViewBlockers","payrollCategory","PayrollCategory","alerts","payrollAlert","isPending","isCalculating","payrollBlockers","pagination","withReimbursements","isCalculateDisabled","grossUpEnabled","onGrossUpSelect","Button","Heading","Text","Badge","Alert","useComponentContext","useI18n","useTranslation","useDateFormatter","formatEmployeePayRate","useFormatEmployeePayRate","containerRef","useRef","isDesktop","useContainerBreakpoints","employeeMap","employee","getEmployeeName","employeeUuid","firstLastName","jsx","styles","jsxs","Flex","FlexItem","Trans","Grid","PayrollLoading","Fragment","PayrollBlockerAlerts","DataView","item","payRateDisplay","hours","getRegularHours","overtimeHours","getOvertimeHours","formatHoursDisplay","ptoHours","getTotalPtoHours","earnings","getAdditionalEarnings","formatNumberAsCurrency","reimbursements","getReimbursements","calculatedGrossPay","calculateGrossPay","HamburgerMenu","PencilSvg","PlusCircle","XCircle","CoinsHandSvg"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4DA,MAAMA,KAA+B,CACnCC,GACAC,MAEID,GAAW,aAAaA,EAAU,UAC7BC,EAAc,gBAAgBD,EAAU,WAAWA,EAAU,OAAO,IAEtE,EAAE,WAAW,IAAI,SAAS,GAAA,GAItBE,KAAmC,CAAC;AAAA,EAC/C,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,WAAAJ;AAAA,EACA,aAAAK;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC,IAAkBC,EAAgB;AAAA,EAClC,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC,IAAkB,CAAA;AAAA,EAClB,YAAAC;AAAA,EACA,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC,IAAiB;AAAA,EACjB,iBAAAC;AACF,MAA6C;AAC3C,QAAM,EAAE,QAAAC,GAAQ,SAAAC,GAAS,MAAAC,GAAM,OAAAC,GAAO,OAAAC,EAAA,IAAUC,GAAA;AAChD,EAAAC,GAAQ,8BAA8B;AACtC,QAAM,EAAE,EAAA,IAAMC,EAAe,8BAA8B,GACrD5B,IAAgB6B,GAAA,GAChBC,IAAwBC,EAAA,GACxBC,IAAeC,EAAuB,IAAI,GAE1CC,IADcC,GAAwB,EAAE,KAAKH,GAAc,EACnC,SAAS,OAAO,GAExCI,IAAc,IAAI,IAAIjC,EAAgB,IAAI,CAAAkC,MAAY,CAACA,EAAS,MAAMA,CAAQ,CAAC,CAAC,GAEhFC,IAAkB,CAACC,MAAyB;AAChD,UAAMF,IAAWD,EAAY,IAAIG,CAAY;AAI7C,YAHaF,IACTG,GAAc,EAAE,YAAYH,EAAS,WAAW,WAAWA,EAAS,SAAA,CAAU,IAC9E,OACW,EAAE,yBAAyB;AAAA,EAC5C;AAEA,SACE,gBAAAI,EAAC,OAAA,EAAI,KAAKT,GAAc,WAAWU,EAAO,WACxC,UAAA,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,eAAeV,IAAY,QAAQ;AAAA,QACnC,gBAAgBA,IAAY,kBAAkB;AAAA,QAC9C,YAAYA,IAAY,WAAW;AAAA,QACnC,KAAKA,IAAY,IAAI;AAAA,QAErB,UAAA;AAAA,UAAA,gBAAAS,EAACE,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAJ,EAACnB,GAAA,EAAQ,IAAG,MAAM,UAAA,EAAE,WAAW,GAAE;AAAA,YAChCvB,KACC,gBAAA0C,EAAClB,GAAA,EAAK,SAAQ,cACZ,UAAA,gBAAAkB;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,SACErC,MAAoBC,EAAgB,YAChC,yBACA;AAAA,gBAEN;AAAA,gBACA,YAAY,EAAE,aAAa,gBAAA+B,EAAClB,KAAK,QAAO,QAAO,IAAG,OAAA,CAAO,EAAA;AAAA,gBACzD,QAAQ;AAAA,kBACN,GAAGzB,GAA6BC,GAAWC,CAAa;AAAA,kBACxD,aAAaS;AAAA,gBAAA;AAAA,cACf;AAAA,YAAA,EACF,CACF;AAAA,UAAA,GAEJ;AAAA,4BACCoC,GAAA,EAAS,UAAsB,GAC7B,UAAAX,IACC,gBAAAO;AAAA,YAACpB;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,uBAAuB;AAAA,cAChC,SAASd;AAAA,cACT,YAAYW,KAAuBL,KAAaC;AAAA,cAE/C,UAAgB,EAAhBA,IAAkB,uBAA0B,kBAAN;AAAA,YAAwB;AAAA,UAAA,IAGjE,gBAAA2B,EAACG,GAAA,EAAK,eAAc,UAAS,gBAAe,UAAS,YAAW,WAAU,KAAK,IAC7E,UAAA,gBAAAH;AAAA,YAACpB;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,uBAAuB;AAAA,cAChC,SAASd;AAAA,cACT,YAAYW,KAAuBL,KAAaC;AAAA,cAE/C,UAAgB,EAAhBA,IAAkB,uBAA0B,kBAAN;AAAA,YAAwB;AAAA,UAAA,GAEnE,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,KAGAH,KAAUC,MACV,gBAAA+B,EAACI,MAAK,KAAK,IAAI,qBAAoB,OAChC,UAAA;AAAA,MAAAnC,KACC,gBAAA6B,EAAChB,KAAM,OAAOb,EAAa,OAAO,QAAQA,EAAa,SACpD,UAAAA,EAAa,QAAA,CAChB;AAAA,MAEDD;AAAA,IAAA,GACH;AAAA,IAGDE,IACC,gBAAA4B;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,OAAuB,EAAhBlC,IAAkB,qBAAwB,cAAN;AAAA,QAC3C,aAA6B,EAAhBA,IAAkB,2BAA8B,oBAAN;AAAA,MAA0B;AAAA,IAAA,IAGnF,gBAAA6B,EAAAM,GAAA,EACG,UAAA;AAAA,MAAAlC,EAAgB,SAAS,KACxB,gBAAA0B;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,UAAUnC;AAAA,UACV,qBAAqBP;AAAA,QAAA;AAAA,MAAA;AAAA,MAGzB,gBAAAmC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,QAAA,gBAAAD,EAACE,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAJ,EAACnB,KAAQ,IAAG,MAAK,UAAS,MACvB,UAAA,EAAE,uBAAuB,GAC5B;AAAA,4BACCC,GAAA,EAAK,SAAQ,cAAc,UAAA,EAAE,6BAA6B,EAAA,CAAE;AAAA,QAAA,GAC/D;AAAA,QAEA,gBAAAkB;AAAA,UAACU;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,4BAA4B;AAAA,YACrC,SAAS;AAAA,cACP;AAAA,gBACE,OAAO,EAAE,wBAAwB;AAAA,gBACjC,QAAQ,CAACC,MAA2C;AAClD,wBAAMf,IAAWD,EAAY,IAAIgB,EAAK,gBAAgB,EAAE,GAClDC,IAAiBvB,EAAsBO,CAAQ;AACrD,yBACE,gBAAAM,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAC/B,UAAA;AAAA,oBAAAN,EAAgBc,EAAK,gBAAgB,EAAE;AAAA,oBACvCC,KACC,gBAAAZ,EAAClB,GAAA,EAAK,MAAK,MAAK,SAAQ,cACrB,UAAA8B,GACH;AAAA,oBAEDD,EAAK,YAAY,gBAAAX,EAACjB,GAAA,EAAM,QAAO,WAAW,UAAA,EAAE,cAAc,EAAA,CAAE;AAAA,kBAAA,GAC/D;AAAA,gBAEJ;AAAA,cAAA;AAAA,cAEF;AAAA,gBACE,OAAO,EAAE,oBAAoB;AAAA,gBAC7B,QAAQ,CAAC4B,MAA2C;AAClD,wBAAME,IAAQC,EAAgBH,CAAI,GAC5BI,IAAgBC,EAAiBL,CAAI;AAC3C,yBAAOM,EAAmBJ,IAAQE,CAAa;AAAA,gBACjD;AAAA,cAAA;AAAA,cAEF;AAAA,gBACE,OAAO,EAAE,sBAAsB;AAAA,gBAC/B,QAAQ,CAACJ,MAA2C;AAClD,wBAAMO,IAAWC,EAAiBR,CAAI;AACtC,yBAAOM,EAAmBC,CAAQ;AAAA,gBACpC;AAAA,cAAA;AAAA,cAEF;AAAA,gBACE,OAAO,EAAE,iCAAiC;AAAA,gBAC1C,QAAQ,CAACP,MAA2C;AAClD,wBAAMS,IAAWC,EAAsBV,CAAI;AAC3C,yBAAOW,EAAuBF,CAAQ;AAAA,gBACxC;AAAA,cAAA;AAAA,cAEF,GAAI5C,IACA;AAAA,gBACE;AAAA,kBACE,OAAO,EAAE,6BAA6B;AAAA,kBACtC,QAAQ,CAACmC,MAA2C;AAClD,0BAAMY,IAAiBC,EAAkBb,CAAI;AAC7C,2BAAOW,EAAuBC,CAAc;AAAA,kBAC9C;AAAA,gBAAA;AAAA,cACF,IAEF,CAAA;AAAA,cACJ;AAAA,gBACE,OAAO,EAAE,uBAAuB;AAAA,gBAChC,QAAQ,CAACZ,MAA2C;AAClD,wBAAMf,IAAWD,EAAY,IAAIgB,EAAK,gBAAgB,EAAE,GAClDc,IAAqB7B,IACvB8B;AAAA,oBACEf;AAAA,oBACAf;AAAA,oBACAtC,GAAW;AAAA,oBACXK;AAAA,oBACAK;AAAA,kBAAA,IAEF;AACJ,yBAAOsD,EAAuBG,CAAkB;AAAA,gBAClD;AAAA,cAAA;AAAA,YACF;AAAA,YAEF,MAAMhE;AAAA,YACN,UAAU,CAACkD,MACT,gBAAAX;AAAA,cAAC2B;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL;AAAA,oBACE,OAAO,EAAE,eAAe;AAAA,oBACxB,MAAM,gBAAA3B,EAAC4B,IAAA,EAAU,eAAW,GAAA,CAAC;AAAA,oBAC7B,SAAS,MAAM;AACb,4BAAMhC,IAAWD,EAAY,IAAIgB,EAAK,gBAAgB,EAAE;AACxD,sBAAIf,KACFhC,EAAOgC,CAAQ;AAAA,oBAEnB;AAAA,kBAAA;AAAA,kBAEF;AAAA,oBACE,OAAO,EAAEe,EAAK,WAAW,oBAAoB,eAAe;AAAA,oBAC5D,MAAMA,EAAK,WAAW,gBAAAX,EAAC6B,IAAA,EAAW,eAAW,GAAA,CAAC,IAAK,gBAAA7B,EAAC8B,IAAA,EAAQ,eAAW,GAAA,CAAC;AAAA,oBACxE,SAAS,MAAM;AAEb,sBADiBnC,EAAY,IAAIgB,EAAK,gBAAgB,EAAE,KAEtD9C,EAAgB8C,CAAI;AAAA,oBAExB;AAAA,kBAAA;AAAA,kBAEF,GAAIjC,IACA;AAAA,oBACE;AAAA,sBACE,OAAO,EAAE,yBAAyB;AAAA,sBAClC,MAAM,gBAAAsB,EAAC+B,IAAA,EAAa,eAAW,GAAA,CAAC;AAAA,sBAChC,SAAS,MAAM;AACb,wBAAIpB,EAAK,gBACPhC,IAAkBgC,EAAK,YAAY;AAAA,sBAEvC;AAAA,oBAAA;AAAA,kBACF,IAEF,CAAA;AAAA,gBAAC;AAAA,gBAEP,cAAc,EAAE,eAAe;AAAA,cAAA;AAAA,YAAA;AAAA,YAGnC,YAAApC;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF;AAEJ;"}