@gusto/embedded-react-sdk 0.46.2 → 0.46.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/components/Common/DataView/DataTable/DataTable.js +76 -72
  3. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  4. package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js +8 -0
  5. package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js.map +1 -0
  6. package/dist/components/Common/DataView/useDataView.d.ts +2 -0
  7. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  8. package/dist/components/Common/DocumentViewer/DocumentViewer.js +10 -10
  9. package/dist/components/Common/DocumentViewer/DocumentViewer.js.map +1 -1
  10. package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +9 -9
  11. package/dist/components/Common/PaginationControl/PaginationControl.js +11 -10
  12. package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
  13. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +1 -1
  14. package/dist/components/Common/UI/DescriptionList/DescriptionList.js +11 -10
  15. package/dist/components/Common/UI/DescriptionList/DescriptionList.js.map +1 -1
  16. package/dist/components/Common/UI/DescriptionList/DescriptionList.module.scss.js +4 -4
  17. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -1
  18. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  19. package/dist/components/Common/UI/NumberInput/NumberInput.js +51 -48
  20. package/dist/components/Common/UI/NumberInput/NumberInput.js.map +1 -1
  21. package/dist/components/Common/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  22. package/dist/components/Common/VisuallyHidden/VisuallyHidden.js.map +1 -1
  23. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
  24. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  25. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
  26. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  27. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
  28. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  29. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
  30. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  31. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  32. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  33. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  34. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
  35. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  36. package/dist/components/Company/Industry/Context.js +6 -7
  37. package/dist/components/Company/Industry/Context.js.map +1 -1
  38. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
  39. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  40. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
  41. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  42. package/dist/components/Company/OnboardingOverview/context.js +3 -4
  43. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  44. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  45. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
  46. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  47. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
  48. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  49. package/dist/components/Contractor/Address/useAddress.js +5 -6
  50. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  51. package/dist/components/Contractor/Profile/useContractorProfile.js +33 -34
  52. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  53. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js +14 -11
  54. package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js.map +1 -1
  55. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js +0 -2
  56. package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js.map +1 -1
  57. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +18 -18
  58. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
  59. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +36 -36
  60. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  61. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  62. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +140 -140
  63. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  64. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  65. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +6 -5
  66. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +162 -131
  67. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  68. package/dist/components/Employee/Dashboard/BasicDetailsView.js +74 -88
  69. package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
  70. package/dist/components/Employee/Dashboard/Dashboard.js +53 -51
  71. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  72. package/dist/components/Employee/Dashboard/DocumentsView.js +17 -10
  73. package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
  74. package/dist/components/Employee/Dashboard/JobAndPayView.js +383 -357
  75. package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
  76. package/dist/components/Employee/Dashboard/TaxesView.js +114 -101
  77. package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
  78. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +36 -36
  79. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -1
  80. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js +57 -57
  81. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js.map +1 -1
  82. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +14 -5
  83. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +55 -36
  84. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
  85. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  86. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +18 -18
  87. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
  88. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  89. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +3 -3
  90. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
  91. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  92. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  93. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  94. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  95. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +157 -147
  96. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  97. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +56 -55
  98. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  99. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +20 -20
  100. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
  101. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  102. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +1 -1
  103. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  104. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -1
  105. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  106. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  107. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +0 -1
  108. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js +11 -12
  109. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js.map +1 -1
  110. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.test.d.ts +1 -0
  111. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +6 -1
  112. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +95 -94
  113. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  114. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  115. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +6 -1
  116. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +87 -86
  117. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  118. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +18 -18
  119. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  120. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  121. package/dist/components/Employee/Taxes/useTaxes.js +3 -4
  122. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  123. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +5 -1
  124. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  125. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +61 -60
  126. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  127. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  128. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  129. package/dist/components/Payroll/usePreparedPayrollData.js +2 -3
  130. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  131. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +6 -7
  132. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  133. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  134. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +52 -68
  135. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  136. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +4 -4
  137. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +0 -11
  138. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +137 -163
  139. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  140. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +36 -35
  141. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  142. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +34 -34
  143. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  144. package/dist/helpers/breadcrumbHelpers.d.ts +1 -1
  145. package/dist/helpers/breadcrumbHelpers.js.map +1 -1
  146. package/dist/helpers/federalEin.d.ts +1 -0
  147. package/dist/helpers/federalEin.js.map +1 -1
  148. package/dist/helpers/mask.d.ts +8 -4
  149. package/dist/helpers/mask.js.map +1 -1
  150. package/dist/helpers/rem.d.ts +2 -1
  151. package/dist/helpers/rem.js.map +1 -1
  152. package/dist/hooks/useAsyncError.d.ts +1 -0
  153. package/dist/hooks/useAsyncError.js.map +1 -1
  154. package/dist/hooks/useForkRef/useForkRef.d.ts +1 -0
  155. package/dist/hooks/useForkRef/useForkRef.js.map +1 -1
  156. package/dist/i18n/I18n.d.ts +9 -1
  157. package/dist/i18n/I18n.js.map +1 -1
  158. package/dist/i18n/en/Company.TimeOff.EmployeeTable.json.js +14 -14
  159. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +12 -18
  160. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
  161. package/dist/i18n/en/Employee.Compensation.json.js +24 -24
  162. package/dist/i18n/en/Employee.Dashboard.json.js +22 -20
  163. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  164. package/dist/i18n/en/Employee.PaymentMethod.json.js +25 -25
  165. package/dist/i18n/en/Employee.StateTaxes.json.js +12 -10
  166. package/dist/i18n/en/Employee.StateTaxes.json.js.map +1 -1
  167. package/dist/style.css +1 -1
  168. package/dist/types/hooks.d.ts +1 -1
  169. package/dist/types/i18next.d.ts +4 -17
  170. package/dist/types/observability.d.ts +1 -1
  171. package/package.json +30 -27
  172. package/dist/components/Employee/Dashboard/CompensationCard.d.ts +0 -13
@@ -1,48 +1,48 @@
1
- import { jsx as o, jsxs as w } from "react/jsx-runtime";
1
+ import { jsx as o, jsxs as L } from "react/jsx-runtime";
2
2
  import { useMemo as P } from "react";
3
3
  import { useTranslation as O } from "react-i18next";
4
- import p from "./TimeOffPolicyDetail.module.scss.js";
5
- import { useComponentContext as M } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
- import { useI18n as b } from "../../../i18n/I18n.js";
7
- import { PolicyDetailLayout as A } from "../shared/PolicyDetailLayout/PolicyDetailLayout.js";
8
- const k = "details";
9
- function j({
4
+ import T from "./TimeOffPolicyDetail.module.scss.js";
5
+ import { useComponentContext as W } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { useI18n as p } from "../../../i18n/I18n.js";
7
+ import { PolicyDetailLayout as w } from "../shared/PolicyDetailLayout/PolicyDetailLayout.js";
8
+ const A = "details";
9
+ function U({
10
10
  title: a,
11
11
  subtitle: e,
12
12
  onBack: c,
13
13
  backLabel: r,
14
14
  actions: u,
15
15
  policyDetails: i,
16
- policySettings: s,
17
- onChangeSettings: m,
16
+ policySettings: m,
17
+ onChangeSettings: s,
18
18
  selectedTabId: d,
19
- onTabChange: x,
19
+ onTabChange: H,
20
20
  employees: n,
21
21
  onAddEmployee: l,
22
22
  removeDialog: f,
23
23
  successAlert: t,
24
- onDismissAlert: C
24
+ onDismissAlert: M
25
25
  }) {
26
- b("Company.TimeOff.TimeOffPolicyDetails");
27
- const { t: h } = O("Company.TimeOff.TimeOffPolicyDetails"), { Text: H } = M(), T = i.accrualMethod === "unlimited", v = P(
28
- () => T ? [] : [
26
+ p("Company.TimeOff.TimeOffPolicyDetails");
27
+ const { t: h } = O("Company.TimeOff.TimeOffPolicyDetails"), x = i.accrualMethod === "unlimited", b = P(
28
+ () => x ? [] : [
29
29
  {
30
30
  key: "balance",
31
31
  title: h("employeeTable.balance"),
32
- render: (W) => /* @__PURE__ */ o(H, { as: "span", children: W.balance ?? "-" })
32
+ render: (v) => v.balance ?? "-"
33
33
  }
34
34
  ],
35
- [h, T, H]
36
- ), L = /* @__PURE__ */ o(
37
- y,
35
+ [h, x]
36
+ ), C = /* @__PURE__ */ o(
37
+ k,
38
38
  {
39
39
  policyDetails: i,
40
- policySettings: s,
41
- onChangeSettings: m
40
+ policySettings: m,
41
+ onChangeSettings: s
42
42
  }
43
43
  );
44
44
  return /* @__PURE__ */ o(
45
- A,
45
+ w,
46
46
  {
47
47
  title: a,
48
48
  subtitle: e,
@@ -50,30 +50,30 @@ function j({
50
50
  backLabel: r,
51
51
  actions: u,
52
52
  firstTab: {
53
- id: k,
53
+ id: A,
54
54
  label: h("tabs.policyDetails"),
55
- content: L
55
+ content: C
56
56
  },
57
57
  selectedTabId: d,
58
- onTabChange: x,
58
+ onTabChange: H,
59
59
  employees: {
60
60
  ...n,
61
- additionalColumns: v
61
+ additionalColumns: b
62
62
  },
63
63
  onAddEmployee: l,
64
64
  removeDialog: f,
65
65
  successAlert: t,
66
- onDismissAlert: C
66
+ onDismissAlert: M
67
67
  }
68
68
  );
69
69
  }
70
- function y({
70
+ function k({
71
71
  policyDetails: a,
72
72
  policySettings: e,
73
73
  onChangeSettings: c
74
74
  }) {
75
- b("Company.TimeOff.TimeOffPolicyDetails");
76
- const { t: r } = O("Company.TimeOff.TimeOffPolicyDetails"), { Box: u, BoxHeader: i, DescriptionList: s, Button: m } = M(), d = a.accrualMethod === "unlimited", n = a.accrualMethod === "perHourWorked" || a.accrualMethod === "perHourWorkedNoOvertime" || a.accrualMethod === "perHourPaid" || a.accrualMethod === "perHourPaidNoOvertime" || a.accrualMethod === "perPayPeriod", l = P(() => {
75
+ p("Company.TimeOff.TimeOffPolicyDetails");
76
+ const { t: r } = O("Company.TimeOff.TimeOffPolicyDetails"), { Box: u, BoxHeader: i, DescriptionList: m, Button: s } = W(), d = a.accrualMethod === "unlimited", n = a.accrualMethod === "perHourWorked" || a.accrualMethod === "perHourWorkedNoOvertime" || a.accrualMethod === "perHourPaid" || a.accrualMethod === "perHourPaidNoOvertime" || a.accrualMethod === "perPayPeriod", l = P(() => {
77
77
  const t = [
78
78
  {
79
79
  term: r("accrualMethod.label"),
@@ -117,8 +117,8 @@ function y({
117
117
  description: e.paidOutOnTermination ? r("paidOutOnTermination.yes") : r("paidOutOnTermination.no")
118
118
  }), t;
119
119
  }, [e, r, n]);
120
- return /* @__PURE__ */ o("div", { className: p.cardsContainer, children: /* @__PURE__ */ w("div", { className: p.cards, children: [
121
- /* @__PURE__ */ o(u, { header: /* @__PURE__ */ o(i, { title: r("details") }), withPadding: !0, children: /* @__PURE__ */ o(s, { items: l, showSeparators: !1, layout: "stacked" }) }),
120
+ return /* @__PURE__ */ o("div", { className: T.cardsContainer, children: /* @__PURE__ */ L("div", { className: T.cards, children: [
121
+ /* @__PURE__ */ o(u, { header: /* @__PURE__ */ o(i, { title: r("details") }), withPadding: !0, children: /* @__PURE__ */ o(m, { items: l, showSeparators: !1, layout: "stacked" }) }),
122
122
  !d && e && /* @__PURE__ */ o(
123
123
  u,
124
124
  {
@@ -126,16 +126,16 @@ function y({
126
126
  i,
127
127
  {
128
128
  title: r("policySettingsTitle"),
129
- action: c && /* @__PURE__ */ o(m, { variant: "secondary", onClick: c, children: r("changeSettingsCta") })
129
+ action: c && /* @__PURE__ */ o(s, { variant: "secondary", onClick: c, children: r("changeSettingsCta") })
130
130
  }
131
131
  ),
132
132
  withPadding: !0,
133
- children: /* @__PURE__ */ o(s, { items: f, showSeparators: !1, layout: "stacked" })
133
+ children: /* @__PURE__ */ o(m, { items: f, showSeparators: !1, layout: "stacked" })
134
134
  }
135
135
  )
136
136
  ] }) });
137
137
  }
138
138
  export {
139
- j as TimeOffPolicyDetailPresentation
139
+ U as TimeOffPolicyDetailPresentation
140
140
  };
141
141
  //# sourceMappingURL=TimeOffPolicyDetailPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeOffPolicyDetailPresentation.js","sources":["../../../../src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { PolicyDetailLayout } from '../shared/PolicyDetailLayout'\nimport type {\n TimeOffPolicyDetailPresentationProps,\n TimeOffPolicyDetailEmployee,\n PolicyDetails,\n PolicySettingsDisplay,\n} from './TimeOffPolicyDetailTypes'\nimport styles from './TimeOffPolicyDetail.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nconst DETAILS_TAB_ID = 'details'\n\nexport function TimeOffPolicyDetailPresentation({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n policyDetails,\n policySettings,\n onChangeSettings,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: TimeOffPolicyDetailPresentationProps) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n const { Text } = useComponentContext()\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n\n const balanceColumn = useMemo(\n () =>\n isUnlimited\n ? []\n : [\n {\n key: 'balance' as keyof TimeOffPolicyDetailEmployee,\n title: t('employeeTable.balance'),\n render: (item: TimeOffPolicyDetailEmployee) => (\n <Text as=\"span\">{item.balance ?? '-'}</Text>\n ),\n },\n ],\n [t, isUnlimited, Text],\n )\n\n const detailsTabContent = (\n <DetailsTab\n policyDetails={policyDetails}\n policySettings={policySettings}\n onChangeSettings={onChangeSettings}\n />\n )\n\n return (\n <PolicyDetailLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n firstTab={{\n id: DETAILS_TAB_ID,\n label: t('tabs.policyDetails'),\n content: detailsTabContent,\n }}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n employees={{\n ...employees,\n additionalColumns: balanceColumn,\n }}\n onAddEmployee={onAddEmployee}\n removeDialog={removeDialog}\n successAlert={successAlert}\n onDismissAlert={onDismissAlert}\n />\n )\n}\n\nfunction DetailsTab({\n policyDetails,\n policySettings,\n onChangeSettings,\n}: {\n policyDetails: PolicyDetails\n policySettings?: PolicySettingsDisplay\n onChangeSettings?: () => void\n}) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n const { Box, BoxHeader, DescriptionList, Button } = useComponentContext()\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n const isHoursWorked =\n policyDetails.accrualMethod === 'perHourWorked' ||\n policyDetails.accrualMethod === 'perHourWorkedNoOvertime' ||\n policyDetails.accrualMethod === 'perHourPaid' ||\n policyDetails.accrualMethod === 'perHourPaidNoOvertime'\n const showAccrualMaxAndWaiting = isHoursWorked || policyDetails.accrualMethod === 'perPayPeriod'\n\n const detailItems = useMemo(() => {\n const items: { term: string; description: string }[] = [\n {\n term: t('accrualMethod.label'),\n description: t(`accrualMethod.${policyDetails.accrualMethod}`),\n },\n ]\n\n if (policyDetails.accrualMethod !== 'unlimited') {\n items.push({\n term: t('accrualRate.label'),\n description: t(`accrualRate.${policyDetails.accrualMethod}`, {\n accrualRate: policyDetails.accrualRate,\n accrualRateUnit: policyDetails.accrualRateUnit,\n }),\n })\n\n if (policyDetails.resetDate) {\n items.push({\n term: t('resetDate'),\n description: policyDetails.resetDate,\n })\n }\n }\n\n return items\n }, [policyDetails, t])\n\n const settingsItems = useMemo(() => {\n if (!policySettings) return []\n\n const items: { term: string; description: string }[] = []\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('maxAccrualHoursPerYear.label'),\n description:\n policySettings.maxAccrualHoursPerYear != null\n ? t('maxAccrualHoursPerYear.withMaximum', {\n count: policySettings.maxAccrualHoursPerYear,\n })\n : t('maxAccrualHoursPerYear.noMaximum'),\n })\n }\n\n items.push(\n {\n term: t('maxHours.label'),\n description:\n policySettings.maxHours != null\n ? t('maxHours.withMaximum', { count: policySettings.maxHours })\n : t('maxHours.noMaximum'),\n },\n {\n term: t('carryoverLimitHours.label'),\n description:\n policySettings.carryoverLimitHours != null\n ? t('carryoverLimitHours.withLimit', { count: policySettings.carryoverLimitHours })\n : t('carryoverLimitHours.noLimit'),\n },\n )\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('accrualWaitingPeriodDays.label'),\n description:\n policySettings.accrualWaitingPeriodDays != null\n ? t('accrualWaitingPeriodDays.withPeriod', {\n count: policySettings.accrualWaitingPeriodDays,\n })\n : t('accrualWaitingPeriodDays.noPeriod'),\n })\n }\n\n items.push({\n term: t('paidOutOnTermination.label'),\n description: policySettings.paidOutOnTermination\n ? t('paidOutOnTermination.yes')\n : t('paidOutOnTermination.no'),\n })\n\n return items\n }, [policySettings, t, showAccrualMaxAndWaiting])\n\n return (\n <div className={styles.cardsContainer}>\n <div className={styles.cards}>\n <Box header={<BoxHeader title={t('details')} />} withPadding>\n <DescriptionList items={detailItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n\n {!isUnlimited && policySettings && (\n <Box\n header={\n <BoxHeader\n title={t('policySettingsTitle')}\n action={\n onChangeSettings && (\n <Button variant=\"secondary\" onClick={onChangeSettings}>\n {t('changeSettingsCta')}\n </Button>\n )\n }\n />\n }\n withPadding\n >\n <DescriptionList items={settingsItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n )}\n </div>\n </div>\n )\n}\n"],"names":["DETAILS_TAB_ID","TimeOffPolicyDetailPresentation","title","subtitle","onBack","backLabel","actions","policyDetails","policySettings","onChangeSettings","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","Text","useComponentContext","isUnlimited","balanceColumn","useMemo","item","jsx","detailsTabContent","DetailsTab","PolicyDetailLayout","Box","BoxHeader","DescriptionList","Button","showAccrualMaxAndWaiting","detailItems","items","settingsItems","styles","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"TimeOffPolicyDetailPresentation.js","sources":["../../../../src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { PolicyDetailLayout } from '../shared/PolicyDetailLayout'\nimport type {\n TimeOffPolicyDetailPresentationProps,\n TimeOffPolicyDetailEmployee,\n PolicyDetails,\n PolicySettingsDisplay,\n} from './TimeOffPolicyDetailTypes'\nimport styles from './TimeOffPolicyDetail.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nconst DETAILS_TAB_ID = 'details'\n\nexport function TimeOffPolicyDetailPresentation({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n policyDetails,\n policySettings,\n onChangeSettings,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: TimeOffPolicyDetailPresentationProps) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n\n const balanceColumn = useMemo(\n () =>\n isUnlimited\n ? []\n : [\n {\n key: 'balance' as keyof TimeOffPolicyDetailEmployee,\n title: t('employeeTable.balance'),\n render: (item: TimeOffPolicyDetailEmployee) => item.balance ?? '-',\n },\n ],\n [t, isUnlimited],\n )\n\n const detailsTabContent = (\n <DetailsTab\n policyDetails={policyDetails}\n policySettings={policySettings}\n onChangeSettings={onChangeSettings}\n />\n )\n\n return (\n <PolicyDetailLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n firstTab={{\n id: DETAILS_TAB_ID,\n label: t('tabs.policyDetails'),\n content: detailsTabContent,\n }}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n employees={{\n ...employees,\n additionalColumns: balanceColumn,\n }}\n onAddEmployee={onAddEmployee}\n removeDialog={removeDialog}\n successAlert={successAlert}\n onDismissAlert={onDismissAlert}\n />\n )\n}\n\nfunction DetailsTab({\n policyDetails,\n policySettings,\n onChangeSettings,\n}: {\n policyDetails: PolicyDetails\n policySettings?: PolicySettingsDisplay\n onChangeSettings?: () => void\n}) {\n useI18n('Company.TimeOff.TimeOffPolicyDetails')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicyDetails')\n const { Box, BoxHeader, DescriptionList, Button } = useComponentContext()\n\n const isUnlimited = policyDetails.accrualMethod === 'unlimited'\n const isHoursWorked =\n policyDetails.accrualMethod === 'perHourWorked' ||\n policyDetails.accrualMethod === 'perHourWorkedNoOvertime' ||\n policyDetails.accrualMethod === 'perHourPaid' ||\n policyDetails.accrualMethod === 'perHourPaidNoOvertime'\n const showAccrualMaxAndWaiting = isHoursWorked || policyDetails.accrualMethod === 'perPayPeriod'\n\n const detailItems = useMemo(() => {\n const items: { term: string; description: string }[] = [\n {\n term: t('accrualMethod.label'),\n description: t(`accrualMethod.${policyDetails.accrualMethod}`),\n },\n ]\n\n if (policyDetails.accrualMethod !== 'unlimited') {\n items.push({\n term: t('accrualRate.label'),\n description: t(`accrualRate.${policyDetails.accrualMethod}`, {\n accrualRate: policyDetails.accrualRate,\n accrualRateUnit: policyDetails.accrualRateUnit,\n }),\n })\n\n if (policyDetails.resetDate) {\n items.push({\n term: t('resetDate'),\n description: policyDetails.resetDate,\n })\n }\n }\n\n return items\n }, [policyDetails, t])\n\n const settingsItems = useMemo(() => {\n if (!policySettings) return []\n\n const items: { term: string; description: string }[] = []\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('maxAccrualHoursPerYear.label'),\n description:\n policySettings.maxAccrualHoursPerYear != null\n ? t('maxAccrualHoursPerYear.withMaximum', {\n count: policySettings.maxAccrualHoursPerYear,\n })\n : t('maxAccrualHoursPerYear.noMaximum'),\n })\n }\n\n items.push(\n {\n term: t('maxHours.label'),\n description:\n policySettings.maxHours != null\n ? t('maxHours.withMaximum', { count: policySettings.maxHours })\n : t('maxHours.noMaximum'),\n },\n {\n term: t('carryoverLimitHours.label'),\n description:\n policySettings.carryoverLimitHours != null\n ? t('carryoverLimitHours.withLimit', { count: policySettings.carryoverLimitHours })\n : t('carryoverLimitHours.noLimit'),\n },\n )\n\n if (showAccrualMaxAndWaiting) {\n items.push({\n term: t('accrualWaitingPeriodDays.label'),\n description:\n policySettings.accrualWaitingPeriodDays != null\n ? t('accrualWaitingPeriodDays.withPeriod', {\n count: policySettings.accrualWaitingPeriodDays,\n })\n : t('accrualWaitingPeriodDays.noPeriod'),\n })\n }\n\n items.push({\n term: t('paidOutOnTermination.label'),\n description: policySettings.paidOutOnTermination\n ? t('paidOutOnTermination.yes')\n : t('paidOutOnTermination.no'),\n })\n\n return items\n }, [policySettings, t, showAccrualMaxAndWaiting])\n\n return (\n <div className={styles.cardsContainer}>\n <div className={styles.cards}>\n <Box header={<BoxHeader title={t('details')} />} withPadding>\n <DescriptionList items={detailItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n\n {!isUnlimited && policySettings && (\n <Box\n header={\n <BoxHeader\n title={t('policySettingsTitle')}\n action={\n onChangeSettings && (\n <Button variant=\"secondary\" onClick={onChangeSettings}>\n {t('changeSettingsCta')}\n </Button>\n )\n }\n />\n }\n withPadding\n >\n <DescriptionList items={settingsItems} showSeparators={false} layout=\"stacked\" />\n </Box>\n )}\n </div>\n </div>\n )\n}\n"],"names":["DETAILS_TAB_ID","TimeOffPolicyDetailPresentation","title","subtitle","onBack","backLabel","actions","policyDetails","policySettings","onChangeSettings","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","isUnlimited","balanceColumn","useMemo","item","detailsTabContent","jsx","DetailsTab","PolicyDetailLayout","Box","BoxHeader","DescriptionList","Button","useComponentContext","showAccrualMaxAndWaiting","detailItems","items","settingsItems","styles","jsxs"],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare const buildBreadcrumbs: (nodes: BreadcrumbNodes) => BreadcrumbTra
17
17
  /**
18
18
  * Resolves template variables in breadcrumb labels using values from a context object.
19
19
  *
20
- * Supports Handlebars-style template syntax ({{variableName}}) for dynamic breadcrumb labels.
20
+ * Supports Handlebars-style template syntax (`{{variableName}}`) for dynamic breadcrumb labels.
21
21
  * Variables enclosed in double braces are replaced with their corresponding values from the context.
22
22
  * Non-template strings are returned as-is.
23
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbHelpers.js","sources":["../../src/helpers/breadcrumbHelpers.ts"],"sourcesContent":["import type {\n BreadcrumbNode,\n BreadcrumbNodes,\n BreadcrumbTrail,\n FlowBreadcrumb,\n} from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport type { FlowHeaderConfig } from '@/components/Flow/useFlow'\n\ntype BreadcrumbsHeader = Extract<FlowHeaderConfig, { type: 'breadcrumbs' }>\n\ntype WithHeader = { header?: FlowHeaderConfig | null }\n\n/**\n * Returns the existing breadcrumbs header from a context, defaulting to a\n * blank breadcrumbs config when the header is missing or of a different\n * variant. Helpers below use this so callers don't need to manually narrow\n * the discriminated `header` union before mutating breadcrumb data.\n */\nconst getBreadcrumbsHeader = (header: FlowHeaderConfig | null | undefined): BreadcrumbsHeader => {\n if (header?.type === 'breadcrumbs') return header\n return { type: 'breadcrumbs' }\n}\n\n/**\n * Builds a complete breadcrumb trail map from a hierarchical node structure.\n *\n * Takes a tree structure of breadcrumb nodes and generates a map where each state\n * has its complete breadcrumb trail from root to that state. This is useful for\n * initializing breadcrumb navigation in state machines or multi-step flows.\n */\nexport const buildBreadcrumbs = (nodes: BreadcrumbNodes): BreadcrumbTrail => {\n const map: Record<string, FlowBreadcrumb[]> = {}\n\n for (const [state, node] of Object.entries(nodes)) {\n const trail: FlowBreadcrumb[] = []\n let current: BreadcrumbNode | null = node\n\n while (current) {\n trail.unshift(current.item)\n const parentKey: string | null = current.parent\n current = parentKey ? (nodes[parentKey] ?? null) : null\n }\n\n map[state] = trail\n }\n\n return map\n}\n\n/**\n * Resolves template variables in breadcrumb labels using values from a context object.\n *\n * Supports Handlebars-style template syntax ({{variableName}}) for dynamic breadcrumb labels.\n * Variables enclosed in double braces are replaced with their corresponding values from the context.\n * Non-template strings are returned as-is.\n */\nexport const resolveBreadcrumbVariables = (\n variables: Record<string, string> | undefined,\n context: Record<string, unknown>,\n): Record<string, unknown> => {\n if (!variables) {\n return {}\n }\n\n const resolved: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(variables)) {\n const match = value.match(/{{(.*?)}}/)\n if (match?.[1]) {\n const ctxKey = match[1].trim()\n resolved[key] = context[ctxKey] ?? ''\n } else {\n resolved[key] = value\n }\n }\n return resolved\n}\n\n/**\n * Merges `patch` fields into the existing breadcrumbs header on a context,\n * preserving the existing trails and CTA. If the context has no breadcrumbs\n * header, a fresh one is created. Useful when a transition needs to flip\n * breadcrumbs visibility (`currentBreadcrumbId`) without rebuilding any\n * trails.\n */\nexport const patchBreadcrumbsHeader = <T extends WithHeader>(\n context: T,\n patch: Partial<Omit<BreadcrumbsHeader, 'type'>>,\n): T & { header: BreadcrumbsHeader } => {\n const existing = getBreadcrumbsHeader(context.header)\n return { ...context, header: { ...existing, ...patch } }\n}\n\n/**\n * Removes a breadcrumb from all trails in the context's breadcrumbs header.\n * Use this in state machine reducers to hide a step entirely (e.g. after\n * payroll submission).\n */\nexport const hideBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.filter(b => b.id !== breadcrumbId),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Marks a breadcrumb as non-navigable across all trails in the context's\n * breadcrumbs header. Use this in state machine reducers to disable backward\n * navigation to a specific step.\n */\nexport const lockBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.map(b => (b.id === breadcrumbId ? { ...b, isNavigable: false } : b)),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Updates the breadcrumb trail for a specific state with resolved variables\n * and switches the active breadcrumb to that state.\n *\n * This function is typically used in state machine transitions to update\n * breadcrumb navigation when moving between states. It preserves all existing\n * breadcrumb trails for other states and only updates the trail for the\n * specified state by resolving any template variables for that state's\n * breadcrumb. The resulting context's header is always of type `'breadcrumbs'`.\n */\nexport const updateBreadcrumbs = <T extends WithHeader>(\n stateName: string,\n context: T,\n variables?: Record<string, string>,\n): T & { header: BreadcrumbsHeader } => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const trail = allBreadcrumbs[stateName] ?? []\n const resolvedTrail = trail.map(breadcrumb => ({\n ...breadcrumb,\n variables: resolveBreadcrumbVariables(variables, context as Record<string, unknown>),\n }))\n return {\n ...context,\n header: {\n ...breadcrumbsHeader,\n breadcrumbs: {\n ...allBreadcrumbs,\n [stateName]: resolvedTrail,\n },\n currentBreadcrumbId: stateName,\n },\n }\n}\n"],"names":["getBreadcrumbsHeader","header","buildBreadcrumbs","nodes","map","state","node","trail","current","parentKey","resolveBreadcrumbVariables","variables","context","resolved","key","value","match","ctxKey","patchBreadcrumbsHeader","patch","existing","hideBreadcrumb","breadcrumbId","breadcrumbsHeader","allBreadcrumbs","updatedBreadcrumbs","stateKey","b","updateBreadcrumbs","stateName","resolvedTrail","breadcrumb"],"mappings":"AAkBA,MAAMA,IAAuB,CAACC,MACxBA,GAAQ,SAAS,gBAAsBA,IACpC,EAAE,MAAM,cAAA,GAUJC,IAAmB,CAACC,MAA4C;AAC3E,QAAMC,IAAwC,CAAA;AAE9C,aAAW,CAACC,GAAOC,CAAI,KAAK,OAAO,QAAQH,CAAK,GAAG;AACjD,UAAMI,IAA0B,CAAA;AAChC,QAAIC,IAAiCF;AAErC,WAAOE,KAAS;AACd,MAAAD,EAAM,QAAQC,EAAQ,IAAI;AAC1B,YAAMC,IAA2BD,EAAQ;AACzC,MAAAA,IAAUC,IAAaN,EAAMM,CAAS,KAAK,OAAQ;AAAA,IACrD;AAEA,IAAAL,EAAIC,CAAK,IAAIE;AAAA,EACf;AAEA,SAAOH;AACT,GASaM,IAA6B,CACxCC,GACAC,MAC4B;AAC5B,MAAI,CAACD;AACH,WAAO,CAAA;AAGT,QAAME,IAAoC,CAAA;AAC1C,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAS,GAAG;AACpD,UAAMK,IAAQD,EAAM,MAAM,WAAW;AACrC,QAAIC,IAAQ,CAAC,GAAG;AACd,YAAMC,IAASD,EAAM,CAAC,EAAE,KAAA;AACxB,MAAAH,EAASC,CAAG,IAAIF,EAAQK,CAAM,KAAK;AAAA,IACrC;AACE,MAAAJ,EAASC,CAAG,IAAIC;AAAA,EAEpB;AACA,SAAOF;AACT,GASaK,IAAyB,CACpCN,GACAO,MACsC;AACtC,QAAMC,IAAWpB,EAAqBY,EAAQ,MAAM;AACpD,SAAO,EAAE,GAAGA,GAAS,QAAQ,EAAE,GAAGQ,GAAU,GAAGD,IAAM;AACvD,GAOaE,IAAiB,CAAuBC,GAAsBV,MAAkB;AAC3F,QAAMW,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAClDE,IAAqB,OAAO;AAAA,IAChC,OAAO,QAAQD,CAAc,EAAE,IAAI,CAAC,CAACE,GAAUnB,CAAK,MAAM;AAAA,MACxDmB;AAAA,MACAnB,EAAM,OAAO,CAAAoB,MAAKA,EAAE,OAAOL,CAAY;AAAA,IAAA,CACxC;AAAA,EAAA;AAEH,SAAO;AAAA,IACL,GAAGV;AAAA,IACH,QAAQ,EAAE,GAAGW,GAAmB,aAAaE,EAAA;AAAA,EAAmB;AAEpE,GAgCaG,IAAoB,CAC/BC,GACAjB,GACAD,MACsC;AACtC,QAAMY,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAElDO,KADQN,EAAeK,CAAS,KAAK,CAAA,GACf,IAAI,CAAAE,OAAe;AAAA,IAC7C,GAAGA;AAAA,IACH,WAAWrB,EAA2BC,GAAWC,CAAkC;AAAA,EAAA,EACnF;AACF,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,QAAQ;AAAA,MACN,GAAGW;AAAA,MACH,aAAa;AAAA,QACX,GAAGC;AAAA,QACH,CAACK,CAAS,GAAGC;AAAA,MAAA;AAAA,MAEf,qBAAqBD;AAAA,IAAA;AAAA,EACvB;AAEJ;"}
1
+ {"version":3,"file":"breadcrumbHelpers.js","sources":["../../src/helpers/breadcrumbHelpers.ts"],"sourcesContent":["import type {\n BreadcrumbNode,\n BreadcrumbNodes,\n BreadcrumbTrail,\n FlowBreadcrumb,\n} from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport type { FlowHeaderConfig } from '@/components/Flow/useFlow'\n\ntype BreadcrumbsHeader = Extract<FlowHeaderConfig, { type: 'breadcrumbs' }>\n\ntype WithHeader = { header?: FlowHeaderConfig | null }\n\n/**\n * Returns the existing breadcrumbs header from a context, defaulting to a\n * blank breadcrumbs config when the header is missing or of a different\n * variant. Helpers below use this so callers don't need to manually narrow\n * the discriminated `header` union before mutating breadcrumb data.\n */\nconst getBreadcrumbsHeader = (header: FlowHeaderConfig | null | undefined): BreadcrumbsHeader => {\n if (header?.type === 'breadcrumbs') return header\n return { type: 'breadcrumbs' }\n}\n\n/**\n * Builds a complete breadcrumb trail map from a hierarchical node structure.\n *\n * Takes a tree structure of breadcrumb nodes and generates a map where each state\n * has its complete breadcrumb trail from root to that state. This is useful for\n * initializing breadcrumb navigation in state machines or multi-step flows.\n */\nexport const buildBreadcrumbs = (nodes: BreadcrumbNodes): BreadcrumbTrail => {\n const map: Record<string, FlowBreadcrumb[]> = {}\n\n for (const [state, node] of Object.entries(nodes)) {\n const trail: FlowBreadcrumb[] = []\n let current: BreadcrumbNode | null = node\n\n while (current) {\n trail.unshift(current.item)\n const parentKey: string | null = current.parent\n current = parentKey ? (nodes[parentKey] ?? null) : null\n }\n\n map[state] = trail\n }\n\n return map\n}\n\n/**\n * Resolves template variables in breadcrumb labels using values from a context object.\n *\n * Supports Handlebars-style template syntax (`{{variableName}}`) for dynamic breadcrumb labels.\n * Variables enclosed in double braces are replaced with their corresponding values from the context.\n * Non-template strings are returned as-is.\n */\nexport const resolveBreadcrumbVariables = (\n variables: Record<string, string> | undefined,\n context: Record<string, unknown>,\n): Record<string, unknown> => {\n if (!variables) {\n return {}\n }\n\n const resolved: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(variables)) {\n const match = value.match(/{{(.*?)}}/)\n if (match?.[1]) {\n const ctxKey = match[1].trim()\n resolved[key] = context[ctxKey] ?? ''\n } else {\n resolved[key] = value\n }\n }\n return resolved\n}\n\n/**\n * Merges `patch` fields into the existing breadcrumbs header on a context,\n * preserving the existing trails and CTA. If the context has no breadcrumbs\n * header, a fresh one is created. Useful when a transition needs to flip\n * breadcrumbs visibility (`currentBreadcrumbId`) without rebuilding any\n * trails.\n */\nexport const patchBreadcrumbsHeader = <T extends WithHeader>(\n context: T,\n patch: Partial<Omit<BreadcrumbsHeader, 'type'>>,\n): T & { header: BreadcrumbsHeader } => {\n const existing = getBreadcrumbsHeader(context.header)\n return { ...context, header: { ...existing, ...patch } }\n}\n\n/**\n * Removes a breadcrumb from all trails in the context's breadcrumbs header.\n * Use this in state machine reducers to hide a step entirely (e.g. after\n * payroll submission).\n */\nexport const hideBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.filter(b => b.id !== breadcrumbId),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Marks a breadcrumb as non-navigable across all trails in the context's\n * breadcrumbs header. Use this in state machine reducers to disable backward\n * navigation to a specific step.\n */\nexport const lockBreadcrumb = <T extends WithHeader>(breadcrumbId: string, context: T): T => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const updatedBreadcrumbs = Object.fromEntries(\n Object.entries(allBreadcrumbs).map(([stateKey, trail]) => [\n stateKey,\n trail.map(b => (b.id === breadcrumbId ? { ...b, isNavigable: false } : b)),\n ]),\n )\n return {\n ...context,\n header: { ...breadcrumbsHeader, breadcrumbs: updatedBreadcrumbs },\n }\n}\n\n/**\n * Updates the breadcrumb trail for a specific state with resolved variables\n * and switches the active breadcrumb to that state.\n *\n * This function is typically used in state machine transitions to update\n * breadcrumb navigation when moving between states. It preserves all existing\n * breadcrumb trails for other states and only updates the trail for the\n * specified state by resolving any template variables for that state's\n * breadcrumb. The resulting context's header is always of type `'breadcrumbs'`.\n */\nexport const updateBreadcrumbs = <T extends WithHeader>(\n stateName: string,\n context: T,\n variables?: Record<string, string>,\n): T & { header: BreadcrumbsHeader } => {\n const breadcrumbsHeader = getBreadcrumbsHeader(context.header)\n const allBreadcrumbs = breadcrumbsHeader.breadcrumbs ?? {}\n const trail = allBreadcrumbs[stateName] ?? []\n const resolvedTrail = trail.map(breadcrumb => ({\n ...breadcrumb,\n variables: resolveBreadcrumbVariables(variables, context as Record<string, unknown>),\n }))\n return {\n ...context,\n header: {\n ...breadcrumbsHeader,\n breadcrumbs: {\n ...allBreadcrumbs,\n [stateName]: resolvedTrail,\n },\n currentBreadcrumbId: stateName,\n },\n }\n}\n"],"names":["getBreadcrumbsHeader","header","buildBreadcrumbs","nodes","map","state","node","trail","current","parentKey","resolveBreadcrumbVariables","variables","context","resolved","key","value","match","ctxKey","patchBreadcrumbsHeader","patch","existing","hideBreadcrumb","breadcrumbId","breadcrumbsHeader","allBreadcrumbs","updatedBreadcrumbs","stateKey","b","updateBreadcrumbs","stateName","resolvedTrail","breadcrumb"],"mappings":"AAkBA,MAAMA,IAAuB,CAACC,MACxBA,GAAQ,SAAS,gBAAsBA,IACpC,EAAE,MAAM,cAAA,GAUJC,IAAmB,CAACC,MAA4C;AAC3E,QAAMC,IAAwC,CAAA;AAE9C,aAAW,CAACC,GAAOC,CAAI,KAAK,OAAO,QAAQH,CAAK,GAAG;AACjD,UAAMI,IAA0B,CAAA;AAChC,QAAIC,IAAiCF;AAErC,WAAOE,KAAS;AACd,MAAAD,EAAM,QAAQC,EAAQ,IAAI;AAC1B,YAAMC,IAA2BD,EAAQ;AACzC,MAAAA,IAAUC,IAAaN,EAAMM,CAAS,KAAK,OAAQ;AAAA,IACrD;AAEA,IAAAL,EAAIC,CAAK,IAAIE;AAAA,EACf;AAEA,SAAOH;AACT,GASaM,IAA6B,CACxCC,GACAC,MAC4B;AAC5B,MAAI,CAACD;AACH,WAAO,CAAA;AAGT,QAAME,IAAoC,CAAA;AAC1C,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAS,GAAG;AACpD,UAAMK,IAAQD,EAAM,MAAM,WAAW;AACrC,QAAIC,IAAQ,CAAC,GAAG;AACd,YAAMC,IAASD,EAAM,CAAC,EAAE,KAAA;AACxB,MAAAH,EAASC,CAAG,IAAIF,EAAQK,CAAM,KAAK;AAAA,IACrC;AACE,MAAAJ,EAASC,CAAG,IAAIC;AAAA,EAEpB;AACA,SAAOF;AACT,GASaK,IAAyB,CACpCN,GACAO,MACsC;AACtC,QAAMC,IAAWpB,EAAqBY,EAAQ,MAAM;AACpD,SAAO,EAAE,GAAGA,GAAS,QAAQ,EAAE,GAAGQ,GAAU,GAAGD,IAAM;AACvD,GAOaE,IAAiB,CAAuBC,GAAsBV,MAAkB;AAC3F,QAAMW,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAClDE,IAAqB,OAAO;AAAA,IAChC,OAAO,QAAQD,CAAc,EAAE,IAAI,CAAC,CAACE,GAAUnB,CAAK,MAAM;AAAA,MACxDmB;AAAA,MACAnB,EAAM,OAAO,CAAAoB,MAAKA,EAAE,OAAOL,CAAY;AAAA,IAAA,CACxC;AAAA,EAAA;AAEH,SAAO;AAAA,IACL,GAAGV;AAAA,IACH,QAAQ,EAAE,GAAGW,GAAmB,aAAaE,EAAA;AAAA,EAAmB;AAEpE,GAgCaG,IAAoB,CAC/BC,GACAjB,GACAD,MACsC;AACtC,QAAMY,IAAoBvB,EAAqBY,EAAQ,MAAM,GACvDY,IAAiBD,EAAkB,eAAe,CAAA,GAElDO,KADQN,EAAeK,CAAS,KAAK,CAAA,GACf,IAAI,CAAAE,OAAe;AAAA,IAC7C,GAAGA;AAAA,IACH,WAAWrB,EAA2BC,GAAWC,CAAkC;AAAA,EAAA,EACnF;AACF,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,QAAQ;AAAA,MACN,GAAGW;AAAA,MACH,aAAa;AAAA,QACX,GAAGC;AAAA,QACH,CAACK,CAAS,GAAGC;AAAA,MAAA;AAAA,MAEf,qBAAqBD;AAAA,IAAA;AAAA,EACvB;AAEJ;"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Normalizes string input to a 9 digit EIN format with two leading digits, a dash, and 7 trailing digits removing any non-numeric characters.
3
+ *
3
4
  * @param value - Raw string value to be formatted as a federal EIN
4
5
  * @returns String in the federal EIN format with all invalid characters removed
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"federalEin.js","sources":["../../src/helpers/federalEin.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\n\n/**\n * Normalizes string input to a 9 digit EIN format with two leading digits, a dash, and 7 trailing digits removing any non-numeric characters.\n * @param value - Raw string value to be formatted as a federal EIN\n * @returns String in the federal EIN format with all invalid characters removed\n */\nexport const normalizeEin = (value: string) =>\n value\n .match(/\\d*/g)\n ?.join('')\n .match(/(\\d{0,2})(\\d{0,7})/)\n ?.slice(1)\n .filter(match => match !== '')\n .join('-')\n .substring(0, 10) || ''\n\nexport const createPlaceholderEin = (hasEin?: boolean, placeholderEin?: string) =>\n hasEin ? placeholderEin : ''\n\nexport const usePlaceholderEin = (hasEin?: boolean) => {\n const { t } = useTranslation('common')\n return createPlaceholderEin(hasEin, t('inputs.ein.placeholder'))\n}\n"],"names":["normalizeEin","value","match","createPlaceholderEin","hasEin","placeholderEin","usePlaceholderEin","t","useTranslation"],"mappings":";AAOO,MAAMA,IAAe,CAACC,MAC3BA,EACG,MAAM,MAAM,GACX,KAAK,EAAE,EACR,MAAM,oBAAoB,GACzB,MAAM,CAAC,EACR,OAAO,CAAAC,MAASA,MAAU,EAAE,EAC5B,KAAK,GAAG,EACR,UAAU,GAAG,EAAE,KAAK,IAEZC,IAAuB,CAACC,GAAkBC,MACrDD,IAASC,IAAiB,IAEfC,IAAoB,CAACF,MAAqB;AACrD,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,QAAQ;AACrC,SAAOL,EAAqBC,GAAQG,EAAE,wBAAwB,CAAC;AACjE;"}
1
+ {"version":3,"file":"federalEin.js","sources":["../../src/helpers/federalEin.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\n\n/**\n * Normalizes string input to a 9 digit EIN format with two leading digits, a dash, and 7 trailing digits removing any non-numeric characters.\n *\n * @param value - Raw string value to be formatted as a federal EIN\n * @returns String in the federal EIN format with all invalid characters removed\n */\nexport const normalizeEin = (value: string) =>\n value\n .match(/\\d*/g)\n ?.join('')\n .match(/(\\d{0,2})(\\d{0,7})/)\n ?.slice(1)\n .filter(match => match !== '')\n .join('-')\n .substring(0, 10) || ''\n\nexport const createPlaceholderEin = (hasEin?: boolean, placeholderEin?: string) =>\n hasEin ? placeholderEin : ''\n\nexport const usePlaceholderEin = (hasEin?: boolean) => {\n const { t } = useTranslation('common')\n return createPlaceholderEin(hasEin, t('inputs.ein.placeholder'))\n}\n"],"names":["normalizeEin","value","match","createPlaceholderEin","hasEin","placeholderEin","usePlaceholderEin","t","useTranslation"],"mappings":";AAQO,MAAMA,IAAe,CAACC,MAC3BA,EACG,MAAM,MAAM,GACX,KAAK,EAAE,EACR,MAAM,oBAAoB,GACzB,MAAM,CAAC,EACR,OAAO,CAAAC,MAASA,MAAU,EAAE,EAC5B,KAAK,GAAG,EACR,UAAU,GAAG,EAAE,KAAK,IAEZC,IAAuB,CAACC,GAAkBC,MACrDD,IAASC,IAAiB,IAEfC,IAAoB,CAACF,MAAqB;AACrD,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,QAAQ;AACrC,SAAOL,EAAqBC,GAAQG,EAAE,wBAAwB,CAAC;AACjE;"}
@@ -1,20 +1,24 @@
1
1
  import { Transform } from '../components/Common/Fields/hooks/useField';
2
2
  /**
3
3
  * Formats a string according to a specified mask pattern.
4
+ *
4
5
  * @param value - The input string to format
5
6
  * @param mask - The mask pattern where:
6
- * # represents a digit (\d)
7
- * @ represents a letter ([a-zA-Z])
8
- * ^ represents an uppercase letter ([A-Z])
9
- * % represents a digit or uppercase letter ([0-9A-Z])
7
+ * `#` represents a digit (`\d`)
8
+ * `@` represents a letter (`[a-zA-Z]`)
9
+ * `^` represents an uppercase letter (`[A-Z]`)
10
+ * `%` represents a digit or uppercase letter (`[0-9A-Z]`)
10
11
  * any other character represents the literal character
11
12
  * @returns The formatted string according to the mask
13
+ *
12
14
  * @example
15
+ * ```ts
13
16
  * formatWithMask('123456789', '###-##-####') // returns '123-45-6789'
14
17
  * formatWithMask('ABC123', '@@@-###') // returns 'ABC-123'
15
18
  * formatWithMask('123456', '(###) ###-####') // returns '(123) 456'
16
19
  * formatWithMask('ABC123', '^^^-###') // returns 'ABC-123'
17
20
  * formatWithMask('A1B2C3', '%%%-%%%') // returns 'A1B-2C3'
21
+ * ```
18
22
  */
19
23
  export declare const formatWithMask: (value: string, mask: string | null) => string;
20
24
  export declare const useMaskedTransform: (mask: string | null) => Transform<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"mask.js","sources":["../../src/helpers/mask.ts"],"sourcesContent":["import type { Transform } from '@/components/Common/Fields/hooks/useField'\n\n/**\n * Formats a string according to a specified mask pattern.\n * @param value - The input string to format\n * @param mask - The mask pattern where:\n * # represents a digit (\\d)\n * @ represents a letter ([a-zA-Z])\n * ^ represents an uppercase letter ([A-Z])\n * % represents a digit or uppercase letter ([0-9A-Z])\n * any other character represents the literal character\n * @returns The formatted string according to the mask\n * @example\n * formatWithMask('123456789', '###-##-####') // returns '123-45-6789'\n * formatWithMask('ABC123', '@@@-###') // returns 'ABC-123'\n * formatWithMask('123456', '(###) ###-####') // returns '(123) 456'\n * formatWithMask('ABC123', '^^^-###') // returns 'ABC-123'\n * formatWithMask('A1B2C3', '%%%-%%%') // returns 'A1B-2C3'\n */\nexport const formatWithMask = (value: string, mask: string | null): string => {\n if (!value || !mask) return value\n\n // Remove all non-alphanumeric characters from the input\n const sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, '')\n if (!sanitizedValue) return ''\n\n let result = ''\n let valueIndex = 0\n let maskIndex = 0\n\n while (maskIndex < mask.length) {\n const maskChar = mask.charAt(maskIndex)\n const valueChar = sanitizedValue.charAt(valueIndex)\n\n // If we've processed all input characters, stop\n if (valueIndex >= sanitizedValue.length) {\n break\n }\n\n switch (maskChar) {\n case '#':\n if (/\\d/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '@':\n if (/[a-zA-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '^':\n if (/[A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '%':\n if (/[0-9A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n default:\n // Always add literal characters from the mask\n result += maskChar\n // Increment valueIndex only if the current input character matches the literal mask character.\n if (maskChar === valueChar) {\n valueIndex++\n }\n }\n maskIndex++\n }\n\n return result.trim()\n}\n\nexport const useMaskedTransform = (mask: string | null): Transform<string> => {\n return (value: string) => formatWithMask(value, mask)\n}\n\nexport const commonMasks = {\n phoneMask: '(###) ###-####',\n}\n"],"names":["formatWithMask","value","mask","sanitizedValue","result","valueIndex","maskIndex","maskChar","valueChar","useMaskedTransform","commonMasks"],"mappings":"AAmBO,MAAMA,IAAiB,CAACC,GAAeC,MAAgC;AAC5E,MAAI,CAACD,KAAS,CAACC,EAAM,QAAOD;AAG5B,QAAME,IAAiBF,EAAM,QAAQ,iBAAiB,EAAE;AACxD,MAAI,CAACE,EAAgB,QAAO;AAE5B,MAAIC,IAAS,IACTC,IAAa,GACbC,IAAY;AAEhB,SAAOA,IAAYJ,EAAK,UAAQ;AAC9B,UAAMK,IAAWL,EAAK,OAAOI,CAAS,GAChCE,IAAYL,EAAe,OAAOE,CAAU;AAGlD,QAAIA,KAAcF,EAAe;AAC/B;AAGF,YAAQI,GAAA;AAAA,MACN,KAAK;AACH,QAAI,KAAK,KAAKC,CAAS,KACrBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,QAAQ,KAAKE,CAAS,KACxBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF;AAEE,QAAAF,KAAUG,GAENA,MAAaC,KACfH;AAAA,IACF;AAEJ,IAAAC;AAAA,EACF;AAEA,SAAOF,EAAO,KAAA;AAChB,GAEaK,IAAqB,CAACP,MAC1B,CAACD,MAAkBD,EAAeC,GAAOC,CAAI,GAGzCQ,IAAc;AAAA,EACzB,WAAW;AACb;"}
1
+ {"version":3,"file":"mask.js","sources":["../../src/helpers/mask.ts"],"sourcesContent":["import type { Transform } from '@/components/Common/Fields/hooks/useField'\n\n/**\n * Formats a string according to a specified mask pattern.\n *\n * @param value - The input string to format\n * @param mask - The mask pattern where:\n * `#` represents a digit (`\\d`)\n * `@` represents a letter (`[a-zA-Z]`)\n * `^` represents an uppercase letter (`[A-Z]`)\n * `%` represents a digit or uppercase letter (`[0-9A-Z]`)\n * any other character represents the literal character\n * @returns The formatted string according to the mask\n *\n * @example\n * ```ts\n * formatWithMask('123456789', '###-##-####') // returns '123-45-6789'\n * formatWithMask('ABC123', '@@@-###') // returns 'ABC-123'\n * formatWithMask('123456', '(###) ###-####') // returns '(123) 456'\n * formatWithMask('ABC123', '^^^-###') // returns 'ABC-123'\n * formatWithMask('A1B2C3', '%%%-%%%') // returns 'A1B-2C3'\n * ```\n */\nexport const formatWithMask = (value: string, mask: string | null): string => {\n if (!value || !mask) return value\n\n // Remove all non-alphanumeric characters from the input\n const sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, '')\n if (!sanitizedValue) return ''\n\n let result = ''\n let valueIndex = 0\n let maskIndex = 0\n\n while (maskIndex < mask.length) {\n const maskChar = mask.charAt(maskIndex)\n const valueChar = sanitizedValue.charAt(valueIndex)\n\n // If we've processed all input characters, stop\n if (valueIndex >= sanitizedValue.length) {\n break\n }\n\n switch (maskChar) {\n case '#':\n if (/\\d/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '@':\n if (/[a-zA-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '^':\n if (/[A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n case '%':\n if (/[0-9A-Z]/.test(valueChar)) {\n result += valueChar\n valueIndex++\n } else {\n valueIndex++\n maskIndex--\n }\n break\n default:\n // Always add literal characters from the mask\n result += maskChar\n // Increment valueIndex only if the current input character matches the literal mask character.\n if (maskChar === valueChar) {\n valueIndex++\n }\n }\n maskIndex++\n }\n\n return result.trim()\n}\n\nexport const useMaskedTransform = (mask: string | null): Transform<string> => {\n return (value: string) => formatWithMask(value, mask)\n}\n\nexport const commonMasks = {\n phoneMask: '(###) ###-####',\n}\n"],"names":["formatWithMask","value","mask","sanitizedValue","result","valueIndex","maskIndex","maskChar","valueChar","useMaskedTransform","commonMasks"],"mappings":"AAuBO,MAAMA,IAAiB,CAACC,GAAeC,MAAgC;AAC5E,MAAI,CAACD,KAAS,CAACC,EAAM,QAAOD;AAG5B,QAAME,IAAiBF,EAAM,QAAQ,iBAAiB,EAAE;AACxD,MAAI,CAACE,EAAgB,QAAO;AAE5B,MAAIC,IAAS,IACTC,IAAa,GACbC,IAAY;AAEhB,SAAOA,IAAYJ,EAAK,UAAQ;AAC9B,UAAMK,IAAWL,EAAK,OAAOI,CAAS,GAChCE,IAAYL,EAAe,OAAOE,CAAU;AAGlD,QAAIA,KAAcF,EAAe;AAC/B;AAGF,YAAQI,GAAA;AAAA,MACN,KAAK;AACH,QAAI,KAAK,KAAKC,CAAS,KACrBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,QAAQ,KAAKE,CAAS,KACxBJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF,KAAK;AACH,QAAI,WAAW,KAAKE,CAAS,KAC3BJ,KAAUI,GACVH,QAEAA,KACAC;AAEF;AAAA,MACF;AAEE,QAAAF,KAAUG,GAENA,MAAaC,KACfH;AAAA,IACF;AAEJ,IAAAC;AAAA,EACF;AAEA,SAAOF,EAAO,KAAA;AAChB,GAEaK,IAAqB,CAACP,MAC1B,CAACD,MAAkBD,EAAeC,GAAOC,CAAI,GAGzCQ,IAAc;AAAA,EACzB,WAAW;AACb;"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Detects font-size on the document root element with fallback to 16px which is the default browser setting.
3
3
  * The value is cached after the first call to avoid repeated expensive getComputedStyle() calls.
4
- * @param options.forceRefresh - Force a fresh detection instead of using the cached value
4
+ *
5
+ * @param options - Set `forceRefresh` to force a fresh detection instead of using the cached value
5
6
  * @returns The root font size in pixels as a string
6
7
  */
7
8
  export declare function getRootFontSize(options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"rem.js","sources":["../../src/helpers/rem.ts"],"sourcesContent":["let cachedRootFontSize: string | null = null\n\n/**\n * Detects font-size on the document root element with fallback to 16px which is the default browser setting.\n * The value is cached after the first call to avoid repeated expensive getComputedStyle() calls.\n * @param options.forceRefresh - Force a fresh detection instead of using the cached value\n * @returns The root font size in pixels as a string\n */\nexport function getRootFontSize(options?: { forceRefresh?: boolean }) {\n if (cachedRootFontSize && !options?.forceRefresh) {\n return cachedRootFontSize\n }\n\n const defaultFontSize = '16'\n\n if (typeof window === 'undefined') {\n cachedRootFontSize = defaultFontSize\n return defaultFontSize\n }\n\n const match = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('font-size')\n .match(/\\d+/)\n\n cachedRootFontSize = match ? match[0] : defaultFontSize\n return cachedRootFontSize\n}\n\nexport function toRem(pxValue: number) {\n return String(pxValue / Number(getRootFontSize())) + 'rem'\n}\n\nexport const remToPx = (rem: string | number) =>\n typeof rem === 'number'\n ? Number(getRootFontSize()) * rem\n : Number(getRootFontSize()) * Number(rem.replace('rem', ''))\n"],"names":["cachedRootFontSize","getRootFontSize","options","defaultFontSize","match","toRem","pxValue","remToPx","rem"],"mappings":"AAAA,IAAIA,IAAoC;AAQjC,SAASC,EAAgBC,GAAsC;AACpE,MAAIF;AACF,WAAOA;AAGT,QAAMG,IAAkB;AAExB,MAAI,OAAO,SAAW;AACpB,WAAAH,IAAqBG,GACdA;AAGT,QAAMC,IAAQ,OACX,iBAAiB,SAAS,eAAe,EACzC,iBAAiB,WAAW,EAC5B,MAAM,KAAK;AAEd,SAAAJ,IAAqBI,IAAQA,EAAM,CAAC,IAAID,GACjCH;AACT;AAEO,SAASK,EAAMC,GAAiB;AACrC,SAAO,OAAOA,IAAU,OAAOL,EAAA,CAAiB,CAAC,IAAI;AACvD;AAEO,MAAMM,IAAU,CAACC,MACtB,OAAOA,KAAQ,WACX,OAAOP,GAAiB,IAAIO,IAC5B,OAAOP,EAAA,CAAiB,IAAI,OAAOO,EAAI,QAAQ,OAAO,EAAE,CAAC;"}
1
+ {"version":3,"file":"rem.js","sources":["../../src/helpers/rem.ts"],"sourcesContent":["let cachedRootFontSize: string | null = null\n\n/**\n * Detects font-size on the document root element with fallback to 16px which is the default browser setting.\n * The value is cached after the first call to avoid repeated expensive getComputedStyle() calls.\n *\n * @param options - Set `forceRefresh` to force a fresh detection instead of using the cached value\n * @returns The root font size in pixels as a string\n */\nexport function getRootFontSize(options?: { forceRefresh?: boolean }) {\n if (cachedRootFontSize && !options?.forceRefresh) {\n return cachedRootFontSize\n }\n\n const defaultFontSize = '16'\n\n if (typeof window === 'undefined') {\n cachedRootFontSize = defaultFontSize\n return defaultFontSize\n }\n\n const match = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('font-size')\n .match(/\\d+/)\n\n cachedRootFontSize = match ? match[0] : defaultFontSize\n return cachedRootFontSize\n}\n\nexport function toRem(pxValue: number) {\n return String(pxValue / Number(getRootFontSize())) + 'rem'\n}\n\nexport const remToPx = (rem: string | number) =>\n typeof rem === 'number'\n ? Number(getRootFontSize()) * rem\n : Number(getRootFontSize()) * Number(rem.replace('rem', ''))\n"],"names":["cachedRootFontSize","getRootFontSize","options","defaultFontSize","match","toRem","pxValue","remToPx","rem"],"mappings":"AAAA,IAAIA,IAAoC;AASjC,SAASC,EAAgBC,GAAsC;AACpE,MAAIF;AACF,WAAOA;AAGT,QAAMG,IAAkB;AAExB,MAAI,OAAO,SAAW;AACpB,WAAAH,IAAqBG,GACdA;AAGT,QAAMC,IAAQ,OACX,iBAAiB,SAAS,eAAe,EACzC,iBAAiB,WAAW,EAC5B,MAAM,KAAK;AAEd,SAAAJ,IAAqBI,IAAQA,EAAM,CAAC,IAAID,GACjCH;AACT;AAEO,SAASK,EAAMC,GAAiB;AACrC,SAAO,OAAOA,IAAU,OAAOL,EAAA,CAAiB,CAAC,IAAI;AACvD;AAEO,MAAMM,IAAU,CAACC,MACtB,OAAOA,KAAQ,WACX,OAAOP,GAAiB,IAAIO,IAC5B,OAAOP,EAAA,CAAiB,IAAI,OAAOO,EAAI,QAAQ,OAAO,EAAE,CAAC;"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary
3
+ *
3
4
  * @returns Function
4
5
  */
5
6
  export declare const useAsyncError: () => (e: unknown) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useAsyncError.js","sources":["../../src/hooks/useAsyncError.tsx"],"sourcesContent":["import React from 'react'\n/**\n * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary\n * @returns Function\n */\nexport const useAsyncError = () => {\n const [_, setError] = React.useState()\n return React.useCallback(\n (e: unknown) => {\n const err = e instanceof Error ? e : new Error(typeof e === 'string' ? e : 'Unknown error')\n setError(() => {\n throw err\n })\n },\n [setError],\n )\n}\n"],"names":["useAsyncError","_","setError","React","e","err"],"mappings":";AAKO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAACC,GAAGC,CAAQ,IAAIC,EAAM,SAAA;AAC5B,SAAOA,EAAM;AAAA,IACX,CAACC,MAAe;AACd,YAAMC,IAAMD,aAAa,QAAQA,IAAI,IAAI,MAAM,OAAOA,KAAM,WAAWA,IAAI,eAAe;AAC1F,MAAAF,EAAS,MAAM;AACb,cAAMG;AAAA,MACR,CAAC;AAAA,IACH;AAAA,IACA,CAACH,CAAQ;AAAA,EAAA;AAEb;"}
1
+ {"version":3,"file":"useAsyncError.js","sources":["../../src/hooks/useAsyncError.tsx"],"sourcesContent":["import React from 'react'\n/**\n * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary\n *\n * @returns Function\n */\nexport const useAsyncError = () => {\n const [_, setError] = React.useState()\n return React.useCallback(\n (e: unknown) => {\n const err = e instanceof Error ? e : new Error(typeof e === 'string' ? e : 'Unknown error')\n setError(() => {\n throw err\n })\n },\n [setError],\n )\n}\n"],"names":["useAsyncError","_","setError","React","e","err"],"mappings":";AAMO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAACC,GAAGC,CAAQ,IAAIC,EAAM,SAAA;AAC5B,SAAOA,EAAM;AAAA,IACX,CAACC,MAAe;AACd,YAAMC,IAAMD,aAAa,QAAQA,IAAI,IAAI,MAAM,OAAOA,KAAM,WAAWA,IAAI,eAAe;AAC1F,MAAAF,EAAS,MAAM;AACb,cAAMG;AAAA,MACR,CAAC;AAAA,IACH;AAAA,IACA,CAACH,CAAQ;AAAA,EAAA;AAEb;"}
@@ -1,6 +1,7 @@
1
1
  import { Ref, RefCallback } from 'react';
2
2
  /**
3
3
  * Sets multiple refs with a single handler.
4
+ *
4
5
  * @param refs - The refs to set.
5
6
  * @returns A single ref handler that sets all the provided refs which can be passed to the `ref` prop of a component.
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useForkRef.js","sources":["../../../src/hooks/useForkRef/useForkRef.ts"],"sourcesContent":["import { type Ref, type RefCallback, type RefObject, useMemo } from 'react'\n\nconst setRef = <T>(\n ref: RefObject<T | null> | ((instance: T | null) => void) | null | undefined,\n value: T | null,\n) => {\n if (typeof ref === 'function') ref(value)\n else if (ref) ref.current = value\n}\n\n/**\n * Sets multiple refs with a single handler.\n * @param refs - The refs to set.\n * @returns A single ref handler that sets all the provided refs which can be passed to the `ref` prop of a component.\n */\nexport const useForkRef = <Instance>(\n ...refs: Array<Ref<Instance> | undefined>\n): RefCallback<Instance> | null => {\n return useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null\n }\n\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance)\n })\n }\n }, [refs])\n}\n"],"names":["setRef","ref","value","useForkRef","refs","useMemo","instance"],"mappings":";AAEA,MAAMA,IAAS,CACbC,GACAC,MACG;AACH,EAAI,OAAOD,KAAQ,aAAYA,EAAIC,CAAK,IAC/BD,QAAS,UAAUC;AAC9B,GAOaC,IAAa,IACrBC,MAEIC,EAAQ,MACTD,EAAK,MAAM,CAAAH,MAAOA,KAAO,IAAI,IACxB,OAGF,CAAAK,MAAY;AACjB,EAAAF,EAAK,QAAQ,CAAAH,MAAO;AAClB,IAAAD,EAAOC,GAAKK,CAAQ;AAAA,EACtB,CAAC;AACH,GACC,CAACF,CAAI,CAAC;"}
1
+ {"version":3,"file":"useForkRef.js","sources":["../../../src/hooks/useForkRef/useForkRef.ts"],"sourcesContent":["import { type Ref, type RefCallback, type RefObject, useMemo } from 'react'\n\nconst setRef = <T>(\n ref: RefObject<T | null> | ((instance: T | null) => void) | null | undefined,\n value: T | null,\n) => {\n if (typeof ref === 'function') ref(value)\n else if (ref) ref.current = value\n}\n\n/**\n * Sets multiple refs with a single handler.\n *\n * @param refs - The refs to set.\n * @returns A single ref handler that sets all the provided refs which can be passed to the `ref` prop of a component.\n */\nexport const useForkRef = <Instance>(\n ...refs: Array<Ref<Instance> | undefined>\n): RefCallback<Instance> | null => {\n return useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null\n }\n\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance)\n })\n }\n }, [refs])\n}\n"],"names":["setRef","ref","value","useForkRef","refs","useMemo","instance"],"mappings":";AAEA,MAAMA,IAAS,CACbC,GACAC,MACG;AACH,EAAI,OAAOD,KAAQ,aAAYA,EAAIC,CAAK,IAC/BD,QAAS,UAAUC;AAC9B,GAQaC,IAAa,IACrBC,MAEIC,EAAQ,MACTD,EAAK,MAAM,CAAAH,MAAOA,KAAO,IAAI,IACxB,OAGF,CAAAK,MAAY;AACjB,EAAAF,EAAK,QAAQ,CAAAH,MAAO;AAClB,IAAAD,EAAOC,GAAKK,CAAQ;AAAA,EACtB,CAAC;AACH,GACC,CAACF,CAAI,CAAC;"}
@@ -1,9 +1,17 @@
1
1
  import { CustomTypeOptions } from 'i18next';
2
2
  import { ResourceDictionary, Resources } from '../types/Helpers';
3
+ /** @internal */
3
4
  export declare const defaultNS = "common";
4
5
  /**
5
6
  * Hook that allows component to load custom dictionary
6
- * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers
7
+ *
8
+ * @param ns - Namespace - should match component name exactly - not exposed to consumers
9
+ * @internal
7
10
  */
8
11
  export declare const useI18n: (namespaces: keyof CustomTypeOptions["resources"] | Array<keyof CustomTypeOptions["resources"]> | null) => void;
12
+ /**
13
+ * Used by individual components to override their dictionaries with partner provided resources
14
+ *
15
+ * @internal
16
+ */
9
17
  export declare const useComponentDictionary: <K extends keyof Resources>(ns: keyof CustomTypeOptions["resources"], resource?: ResourceDictionary<K> | null) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["/// <reference types=\"vite/client\" />\nimport { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport const defaultNS = 'common'\n\nconst translationLoaders = import.meta.glob<Record<string, string>>('./*/*.json', {\n import: 'default',\n})\n\nfunction resolveTranslationLoader(lng: string | undefined, ns: string) {\n const language = lng ?? 'en'\n const primaryPath = `./${language}/${ns}.json`\n const load =\n translationLoaders[primaryPath as keyof typeof translationLoaders] ??\n translationLoaders[`./en/${ns}.json` as keyof typeof translationLoaders]\n return load\n}\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n * @param lng(string): resource language\n * @param ns(string): Namespace/name of the component/resource\n * @returns Promise<Translation resource>\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const load = resolveTranslationLoader(lng, ns)\n if (!load) {\n isError = true\n isLoading = false\n return\n }\n resource = await load()\n isLoading = false\n } catch {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers\n */\nexport const useI18n = (\n namespaces:\n | keyof CustomTypeOptions['resources']\n | Array<keyof CustomTypeOptions['resources']>\n | null,\n) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoApiProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!namespaces) return\n const nsMap = Array.isArray(namespaces) ? namespaces : [namespaces]\n for (const ns of nsMap) {\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(\n i18nInstance.resolvedLanguage ?? 'en',\n ns,\n resource,\n true,\n false,\n ) //Last argument is set to false to prevent override of keys provided by partners on GustoApiProvider level through dictionary prop\n }\n }\n}\n\n//Used by individual components to override their dictionaries with partner provided resources\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: keyof CustomTypeOptions['resources'],\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","translationLoaders","m","resolveTranslationLoader","lng","ns","primaryPath","resourceCache","LRUCache","loadResource","isLoading","isError","resource","promise","load","useI18n","namespaces","i18nInstance","useTranslation","nsMap","key","resourceGetter","useComponentDictionary","lang"],"mappings":"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"}
1
+ {"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["/// <reference types=\"vite/client\" />\nimport { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\n/** @internal */\nexport const defaultNS = 'common'\n\nconst translationLoaders = import.meta.glob<Record<string, string>>('./*/*.json', {\n import: 'default',\n})\n\nfunction resolveTranslationLoader(lng: string | undefined, ns: string) {\n const language = lng ?? 'en'\n const primaryPath = `./${language}/${ns}.json`\n const load =\n translationLoaders[primaryPath as keyof typeof translationLoaders] ??\n translationLoaders[`./en/${ns}.json` as keyof typeof translationLoaders]\n return load\n}\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n *\n * @param lng - resource language\n * @param ns - Namespace/name of the component/resource\n * @returns translation resource\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const load = resolveTranslationLoader(lng, ns)\n if (!load) {\n isError = true\n isLoading = false\n return\n }\n resource = await load()\n isLoading = false\n } catch {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n *\n * @param ns - Namespace - should match component name exactly - not exposed to consumers\n * @internal\n */\nexport const useI18n = (\n namespaces:\n | keyof CustomTypeOptions['resources']\n | Array<keyof CustomTypeOptions['resources']>\n | null,\n) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoApiProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!namespaces) return\n const nsMap = Array.isArray(namespaces) ? namespaces : [namespaces]\n for (const ns of nsMap) {\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(\n i18nInstance.resolvedLanguage ?? 'en',\n ns,\n resource,\n true,\n false,\n ) //Last argument is set to false to prevent override of keys provided by partners on GustoApiProvider level through dictionary prop\n }\n }\n}\n\n/**\n * Used by individual components to override their dictionaries with partner provided resources\n *\n * @internal\n */\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: keyof CustomTypeOptions['resources'],\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","translationLoaders","m","resolveTranslationLoader","lng","ns","primaryPath","resourceCache","LRUCache","loadResource","isLoading","isError","resource","promise","load","useI18n","namespaces","i18nInstance","useTranslation","nsMap","key","resourceGetter","useComponentDictionary","lang"],"mappings":"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"}
@@ -1,32 +1,32 @@
1
- const e = "Name", l = "Job title", s = "Department", c = "of {{numAll}} employees selected", o = "Select all employees", t = "Select all", a = "Clear selected employees", n = "Clear", r = "Search employees", m = "Search employees", p = "Employees", y = "No employees found", h = "Clear search", b = {
1
+ const e = "Name", l = "Job title", t = "Department", a = "of {{numAll}} employees selected", c = "Select all employees", o = "Select all", s = "Clear selected employees", n = "Clear", r = "Search by name or department", m = "Search by name or department", p = "Employees", y = "No employees found", b = "Clear search", d = {
2
2
  name: e,
3
3
  jobTitle: l,
4
- department: s,
5
- selected: c,
6
- selectAllEmployees: o,
7
- selectAll: t,
8
- clearAriaLabel: a,
4
+ department: t,
5
+ selected: a,
6
+ selectAllEmployees: c,
7
+ selectAll: o,
8
+ clearAriaLabel: s,
9
9
  clear: n,
10
10
  searchPlaceholder: r,
11
11
  searchLabel: m,
12
12
  tableLabel: p,
13
13
  noSearchResults: y,
14
- clearSearch: h
14
+ clearSearch: b
15
15
  };
16
16
  export {
17
17
  n as clear,
18
- a as clearAriaLabel,
19
- h as clearSearch,
20
- b as default,
21
- s as department,
18
+ s as clearAriaLabel,
19
+ b as clearSearch,
20
+ d as default,
21
+ t as department,
22
22
  l as jobTitle,
23
23
  e as name,
24
24
  y as noSearchResults,
25
25
  m as searchLabel,
26
26
  r as searchPlaceholder,
27
- t as selectAll,
28
- o as selectAllEmployees,
29
- c as selected,
27
+ o as selectAll,
28
+ c as selectAllEmployees,
29
+ a as selected,
30
30
  p as tableLabel
31
31
  };
32
32
  //# sourceMappingURL=Company.TimeOff.EmployeeTable.json.js.map
@@ -1,31 +1,25 @@
1
- const e = "Add employees to policy", t = "Select the employees you want to add to this policy.", o = "Select the employees you want to add to this holiday pay policy.", i = "Any employees currently assigned to another {{policyType}} policy will be moved to this policy.", l = "paid time off", c = "sick leave", n = "Department", a = "Starting balance (hrs)", s = "Back", p = "Continue", d = "All eligible employees have already been added to this policy.", y = { completePolicyFailed: "Unable to complete this policy. {{details}}" }, r = { title_one: "Add {{count}} employee to this policy?", title_other: "Add {{count}} employees to this policy?", description_one: "This employee will be added to the policy with the specified starting balance.", description_other: "These employees will be added to the policy with the specified starting balances.", confirmCta: "Add and save", cancelCta: "Cancel" }, h = {
1
+ const e = "Add employees to policy", t = "Select the employees you want to add to this policy.", o = "Select the employees you want to add to this holiday pay policy.", l = "Any employees currently assigned to another paid time off policy will be moved to this policy.", n = "Department", a = "Starting balance (hrs)", i = "Back", s = "Continue", c = "All eligible employees have already been added to this policy.", p = { completePolicyFailed: "Unable to complete this policy. {{details}}" }, y = {
2
2
  title: e,
3
3
  description: t,
4
4
  holidayDescription: o,
5
- reassignmentWarning: i,
6
- policyTypeLabel_vacation: l,
7
- policyTypeLabel_sick: c,
5
+ reassignmentWarning: l,
8
6
  departmentColumn: n,
9
7
  startingBalanceColumn: a,
10
- backCta: s,
11
- continueCta: p,
12
- emptyState: d,
13
- errors: y,
14
- addConfirmDialog: r
8
+ backCta: i,
9
+ continueCta: s,
10
+ emptyState: c,
11
+ errors: p
15
12
  };
16
13
  export {
17
- r as addConfirmDialog,
18
- s as backCta,
19
- p as continueCta,
20
- h as default,
14
+ i as backCta,
15
+ s as continueCta,
16
+ y as default,
21
17
  n as departmentColumn,
22
18
  t as description,
23
- d as emptyState,
24
- y as errors,
19
+ c as emptyState,
20
+ p as errors,
25
21
  o as holidayDescription,
26
- c as policyTypeLabel_sick,
27
- l as policyTypeLabel_vacation,
28
- i as reassignmentWarning,
22
+ l as reassignmentWarning,
29
23
  a as startingBalanceColumn,
30
24
  e as title
31
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Company.TimeOff.SelectEmployees.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Company.TimeOff.SelectEmployees.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}