@gusto/embedded-react-sdk 0.55.0 → 0.55.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/components/Common/TaxInputs/TaxInputs.js +65 -64
  3. package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
  4. package/dist/components/Common/UI/Select/Select.module.scss.js +5 -5
  5. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.d.ts +4 -2
  6. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +148 -117
  7. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
  8. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +56 -55
  9. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  10. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.d.ts +1 -1
  11. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.js +15 -12
  12. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.js.map +1 -1
  13. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlow.d.ts +69 -0
  14. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlow.js +48 -0
  15. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlow.js.map +1 -0
  16. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlowComponents.d.ts +20 -0
  17. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlowComponents.js +25 -0
  18. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlowComponents.js.map +1 -0
  19. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/historicalPaymentMachine.d.ts +20 -0
  20. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/historicalPaymentMachine.js +24 -0
  21. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/historicalPaymentMachine.js.map +1 -0
  22. package/dist/components/Contractor/Payments/HistoricalPaymentFlow/index.d.ts +2 -0
  23. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +16 -15
  24. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
  25. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +2 -0
  26. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +36 -23
  27. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  28. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.d.ts +10 -8
  29. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +46 -25
  30. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  31. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +53 -52
  32. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  33. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +37 -47
  34. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  35. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +47 -44
  36. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  37. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +2 -1
  38. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +65 -53
  39. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  40. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.module.scss.js +6 -4
  41. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.module.scss.js.map +1 -1
  42. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.d.ts +1 -1
  43. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.js +22 -19
  44. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.js.map +1 -1
  45. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.d.ts +2 -8
  46. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.js +43 -42
  47. package/dist/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.js.map +1 -1
  48. package/dist/components/Contractor/Payments/shared/paymentAmounts.d.ts +32 -0
  49. package/dist/components/Contractor/Payments/shared/paymentAmounts.js +11 -0
  50. package/dist/components/Contractor/Payments/shared/paymentAmounts.js.map +1 -0
  51. package/dist/components/Contractor/Payments/shared/paymentAmounts.test.d.ts +1 -0
  52. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +13 -4
  53. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +43 -38
  54. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -1
  55. package/dist/components/Contractor/exports/contractorManagement.d.ts +1 -0
  56. package/dist/components/Contractor/exports/contractorManagement.js +34 -32
  57. package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
  58. package/dist/components/Contractor/shared/SelectContractors/SelectContractors.d.ts +6 -1
  59. package/dist/components/Contractor/shared/SelectContractors/SelectContractors.js +13 -12
  60. package/dist/components/Contractor/shared/SelectContractors/SelectContractors.js.map +1 -1
  61. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.d.ts +5 -1
  62. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +34 -32
  63. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -1
  64. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +7 -0
  65. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +191 -153
  66. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  67. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -0
  68. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +87 -81
  69. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  70. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +1 -0
  71. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  72. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +73 -48
  73. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  74. package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -1
  75. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js +22 -20
  76. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  77. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +3 -0
  78. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +22 -20
  79. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  80. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +2 -0
  81. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +34 -26
  82. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  83. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +4 -0
  84. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +51 -43
  85. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  86. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +2 -0
  87. package/dist/components/Payroll/PayrollList/PayrollList.js +48 -47
  88. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  89. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -1
  90. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +44 -43
  91. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  92. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +7 -0
  93. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +115 -112
  94. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  95. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
  96. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +94 -103
  97. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  98. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +22 -16
  99. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  100. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +58 -49
  101. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  102. package/dist/components/Payroll/PrintChecks/PrintChecks.d.ts +21 -0
  103. package/dist/components/Payroll/PrintChecks/PrintChecks.js +68 -0
  104. package/dist/components/Payroll/PrintChecks/PrintChecks.js.map +1 -0
  105. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.d.ts +9 -0
  106. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js +34 -0
  107. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js.map +1 -0
  108. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/index.d.ts +1 -0
  109. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.d.ts +48 -0
  110. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.js +26 -0
  111. package/dist/components/Payroll/PrintChecks/PrintChecksComponents.js.map +1 -0
  112. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.d.ts +14 -0
  113. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +47 -0
  114. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -0
  115. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/index.d.ts +1 -0
  116. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.d.ts +16 -0
  117. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +144 -0
  118. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -0
  119. package/dist/components/Payroll/PrintChecks/PrintChecksForm/index.d.ts +1 -0
  120. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.d.ts +14 -0
  121. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js +39 -0
  122. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js.map +1 -0
  123. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/index.d.ts +1 -0
  124. package/dist/components/Payroll/PrintChecks/index.d.ts +2 -0
  125. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.d.ts +33 -0
  126. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.js +93 -0
  127. package/dist/components/Payroll/PrintChecks/printChecksStateMachine.js.map +1 -0
  128. package/dist/components/Payroll/PrintChecks/types.d.ts +14 -0
  129. package/dist/components/Payroll/index.d.ts +2 -0
  130. package/dist/components/Payroll/index.js +26 -24
  131. package/dist/components/Payroll/index.js.map +1 -1
  132. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -0
  133. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +36 -34
  134. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  135. package/dist/contexts/UnstableFeaturesProvider/UnstableFeaturesProvider.d.ts +22 -0
  136. package/dist/contexts/UnstableFeaturesProvider/UnstableFeaturesProvider.js +14 -0
  137. package/dist/contexts/UnstableFeaturesProvider/UnstableFeaturesProvider.js.map +1 -0
  138. package/dist/contexts/UnstableFeaturesProvider/WithUnstableFeature.d.ts +19 -0
  139. package/dist/contexts/UnstableFeaturesProvider/WithUnstableFeature.js +8 -0
  140. package/dist/contexts/UnstableFeaturesProvider/WithUnstableFeature.js.map +1 -0
  141. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +41 -0
  142. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js +14 -0
  143. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -0
  144. package/dist/contexts/index.d.ts +1 -0
  145. package/dist/i18n/I18n.js +4 -0
  146. package/dist/i18n/I18n.js.map +1 -1
  147. package/dist/i18n/en/Contractor.Payments.CreateHistoricalPayment.json.js +34 -32
  148. package/dist/i18n/en/Contractor.Payments.CreateHistoricalPayment.json.js.map +1 -1
  149. package/dist/i18n/en/Contractor.Payments.PaymentsList.json.js +20 -18
  150. package/dist/i18n/en/Contractor.Payments.PaymentsList.json.js.map +1 -1
  151. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +9 -9
  152. package/dist/i18n/en/Payroll.PayrollOverview.json.js +38 -38
  153. package/dist/i18n/en/Payroll.PayrollReceipts.json.js +2 -2
  154. package/dist/i18n/en/Payroll.PrintChecksBanner.json.js +14 -0
  155. package/dist/i18n/en/Payroll.PrintChecksBanner.json.js.map +1 -0
  156. package/dist/i18n/en/Payroll.PrintChecksFailure.json.js +12 -0
  157. package/dist/i18n/en/Payroll.PrintChecksFailure.json.js.map +1 -0
  158. package/dist/i18n/en/Payroll.PrintChecksForm.json.js +28 -0
  159. package/dist/i18n/en/Payroll.PrintChecksForm.json.js.map +1 -0
  160. package/dist/i18n/en/Payroll.PrintChecksSummary.json.js +14 -0
  161. package/dist/i18n/en/Payroll.PrintChecksSummary.json.js.map +1 -0
  162. package/dist/i18n/en/common.json.d.ts +0 -21
  163. package/dist/i18n/types.d.ts +75 -9
  164. package/dist/models/external.d.ts +3 -0
  165. package/dist/partner-hook-utils/form/buildFormSchema.js +60 -54
  166. package/dist/partner-hook-utils/form/buildFormSchema.js.map +1 -1
  167. package/dist/shared/constants.d.ts +30 -0
  168. package/dist/shared/constants.js +62 -50
  169. package/dist/shared/constants.js.map +1 -1
  170. package/dist/style.css +1 -1
  171. package/dist/test-utils/renderWithProviders.d.ts +4 -1
  172. package/dist/test-utils/tableQueries.d.ts +9 -0
  173. package/docs/guides/endpoint-inventory.json +33 -0
  174. package/package.json +18 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.55.2](https://github.com/Gusto/embedded-react-sdk/compare/v0.55.1...v0.55.2) (2026-08-21)
4
+
5
+ ### Features & Enhancements
6
+
7
+ - Add `PrintChecks` component for generating and printing payroll checks, embedded in `PayrollOverview` with a banner prompt and full form/summary/failure screens ([#2584](https://github.com/Gusto/embedded-react-sdk/issues/2584), [#2585](https://github.com/Gusto/embedded-react-sdk/issues/2585), [#2586](https://github.com/Gusto/embedded-react-sdk/issues/2586), [#2587](https://github.com/Gusto/embedded-react-sdk/issues/2587), [#2588](https://github.com/Gusto/embedded-react-sdk/issues/2588))
8
+ - Add `withOffcyclePayroll` prop to control off-cycle payroll CTA visibility in `PayrollLanding` ([#2612](https://github.com/Gusto/embedded-react-sdk/issues/2612))
9
+ - Make license text in payroll receipts a clickable link ([#2606](https://github.com/Gusto/embedded-react-sdk/issues/2606))
10
+
11
+ ### Fixes
12
+
13
+ - Fix form validation incorrectly running base validators on dynamically excluded fields ([#2602](https://github.com/Gusto/embedded-react-sdk/issues/2602))
14
+ - Show an already-processed banner and cancel-only overview in `PayrollConfiguration` when the payroll has already been processed ([#2605](https://github.com/Gusto/embedded-react-sdk/issues/2605))
15
+ - Sort payroll employee lists alphabetically by last name ([#2607](https://github.com/Gusto/embedded-react-sdk/issues/2607))
16
+
17
+ ### Chores & Maintenance
18
+
19
+ - Bump dev dependencies (`@hookform/resolvers`)
20
+
21
+ ## [0.55.1](https://github.com/Gusto/embedded-react-sdk/compare/v0.55.0...v0.55.1) (2026-08-20)
22
+
23
+ ### Features & Enhancements
24
+
25
+ - Add an opt-in `unstableFeatures` prop to `GustoProvider` for enabling alpha SDK functionality ahead of general availability ([#2583](https://github.com/Gusto/embedded-react-sdk/issues/2583))
26
+ - Add alpha support for recording historical contractor payments in `PaymentsFlow`, available via `unstableFeatures={{ historicalPayments: true }}` ([#2589](https://github.com/Gusto/embedded-react-sdk/issues/2589), [#2552](https://github.com/Gusto/embedded-react-sdk/issues/2552))
27
+
28
+ ### Fixes
29
+
30
+ - Fix `AccountNumber` input to render the `metadata.prefix` value as an input adornment ([#2569](https://github.com/Gusto/embedded-react-sdk/issues/2569))
31
+ - Fix incorrect contractor payment totals ([#2596](https://github.com/Gusto/embedded-react-sdk/issues/2596))
32
+ - Fix select item selected-state styling to use the correct theme token ([#2582](https://github.com/Gusto/embedded-react-sdk/issues/2582))
33
+ - Remove duplicate `compensationRateFormats` translation key ([#2571](https://github.com/Gusto/embedded-react-sdk/issues/2571))
34
+
35
+ ### Chores & Maintenance
36
+
37
+ - Bump dev dependencies (`@axe-core/playwright`, `@commitlint/cli`, `@commitlint/config-conventional`, `@hookform/resolvers`, `@storybook/*`, `@testing-library/user-event`, `@typescript-eslint/*`, `eslint-plugin-storybook`, `globals`, `mermaid`, `react-error-boundary`, `sass-embedded`, `tsx`, `typescript-eslint`)
38
+
3
39
  ## [0.55.0](https://github.com/Gusto/embedded-react-sdk/compare/v0.54.1...v0.55.0) (2026-08-13)
4
40
 
5
41
  ### Features & Enhancements
@@ -1,9 +1,9 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import R from "dompurify";
2
+ import D from "dompurify";
3
3
  import { useTranslation as v } from "react-i18next";
4
- import { SelectField as D } from "../Fields/SelectField/SelectField.js";
5
- import { TextInputField as h } from "../Fields/TextInputField/TextInputField.js";
6
- import { NumberInputField as x } from "../Fields/NumberInputField/NumberInputField.js";
4
+ import { SelectField as x } from "../Fields/SelectField/SelectField.js";
5
+ import { TextInputField as R } from "../Fields/TextInputField/TextInputField.js";
6
+ import { NumberInputField as h } from "../Fields/NumberInputField/NumberInputField.js";
7
7
  import { RadioGroupField as _ } from "../Fields/RadioGroupField/RadioGroupField.js";
8
8
  import { DatePickerField as T } from "../Fields/DatePickerField/DatePickerField.js";
9
9
  import { PercentageField as w } from "../Fields/PercentageField/PercentageField.js";
@@ -13,45 +13,45 @@ import { useMaskedTransform as g } from "../../../helpers/mask.js";
13
13
  import { formatPercentLabel as F } from "../../../helpers/percentageConversion.js";
14
14
  const E = { ALLOWED_TAGS: ["a", "b", "strong"], ALLOWED_ATTR: ["target", "href"] };
15
15
  function K({
16
- questionType: e,
17
- ...a
16
+ questionType: a,
17
+ ...e
18
18
  }) {
19
- switch (e.toLowerCase()) {
19
+ switch (a.toLowerCase()) {
20
20
  case "date":
21
- return /* @__PURE__ */ t(N, { ...a });
21
+ return /* @__PURE__ */ t(S, { ...e });
22
22
  case "radio":
23
- return /* @__PURE__ */ t(P, { ...a });
23
+ return /* @__PURE__ */ t(P, { ...e });
24
24
  case "text":
25
25
  case "account_number":
26
- return /* @__PURE__ */ t(k, { ...a });
26
+ return /* @__PURE__ */ t(k, { ...e });
27
27
  case "select":
28
- return /* @__PURE__ */ t(L, { ...a });
28
+ return /* @__PURE__ */ t(L, { ...e });
29
29
  case "number":
30
- return /* @__PURE__ */ t(p, { ...a });
30
+ return /* @__PURE__ */ t(p, { ...e });
31
31
  case "workers_compensation_rate":
32
- return /* @__PURE__ */ t(p, { ...a, isPercent: a.requirement?.metadata?.rateType === "percent" });
32
+ return /* @__PURE__ */ t(p, { ...e, isPercent: e.requirement?.metadata?.rateType === "percent" });
33
33
  case "percent":
34
34
  case "tax_rate":
35
- return /* @__PURE__ */ t(S, { ...a });
35
+ return /* @__PURE__ */ t(N, { ...e });
36
36
  case "currency":
37
- return /* @__PURE__ */ t(p, { ...a, isCurrency: !0 });
37
+ return /* @__PURE__ */ t(p, { ...e, isCurrency: !0 });
38
38
  default:
39
- return /* @__PURE__ */ t(k, { ...a });
39
+ return /* @__PURE__ */ t(k, { ...e });
40
40
  }
41
41
  }
42
- function L({ question: e, requirement: a, isDisabled: s = !1 }) {
43
- const { t: n } = v("common"), { key: o, label: i, description: l } = e || a, u = e ? e.answers[0]?.value : a.value, c = e ? e.inputQuestionFormat : a.metadata;
42
+ function L({ question: a, requirement: e, isDisabled: s = !1 }) {
43
+ const { t: n } = v("common"), { key: l, label: i, description: o } = a || e, u = a ? a.answers[0]?.value : e.value, c = a ? a.inputQuestionFormat : e.metadata;
44
44
  if (!c?.options) throw new Error("Select input must have options");
45
- return o ? /* @__PURE__ */ t(
46
- D,
45
+ return l ? /* @__PURE__ */ t(
46
+ x,
47
47
  {
48
48
  isRequired: !0,
49
- name: o,
49
+ name: l,
50
50
  defaultValue: u,
51
51
  label: i,
52
- description: l,
52
+ description: o,
53
53
  placeholder: n("selectPlaceholder"),
54
- isDisabled: o.includes("fileNewHireReport") ? u !== void 0 : s,
54
+ isDisabled: l.includes("fileNewHireReport") ? u !== void 0 : s,
55
55
  options: c.options.map((r, d) => ({
56
56
  value: r.value,
57
57
  label: r.label
@@ -60,70 +60,71 @@ function L({ question: e, requirement: a, isDisabled: s = !1 }) {
60
60
  ) : null;
61
61
  }
62
62
  function k({
63
- question: e,
64
- requirement: a,
63
+ question: a,
64
+ requirement: e,
65
65
  isDisabled: s = !1,
66
66
  type: n = "text",
67
- isPercent: o = !1
67
+ isPercent: l = !1
68
68
  }) {
69
- const { key: i, label: l, description: u } = e || a, c = e ? e.answers[0]?.value : a.value, r = a?.metadata?.mask ?? null, d = g(r);
69
+ const { key: i, label: o, description: u } = a || e, c = a ? a.answers[0]?.value : e.value, r = e?.metadata?.mask ?? null, d = e?.metadata?.prefix ?? void 0, m = g(r);
70
70
  return i ? /* @__PURE__ */ t(
71
- h,
71
+ R,
72
72
  {
73
73
  isRequired: !0,
74
74
  name: i,
75
- label: l,
75
+ label: o,
76
76
  defaultValue: c,
77
77
  description: u,
78
78
  isDisabled: s,
79
- transform: r ? d : void 0,
79
+ transform: r ? m : void 0,
80
80
  placeholder: r || void 0,
81
81
  type: n,
82
- adornmentEnd: o ? "%" : void 0
82
+ adornmentStart: d,
83
+ adornmentEnd: l ? "%" : void 0
83
84
  }
84
85
  ) : null;
85
86
  }
86
87
  function p({
87
- question: e,
88
- requirement: a,
88
+ question: a,
89
+ requirement: e,
89
90
  isCurrency: s,
90
91
  isPercent: n,
91
- isDisabled: o = !1
92
+ isDisabled: l = !1
92
93
  }) {
93
- const { t: i } = v("common"), { key: l, label: u, description: c } = e || a, r = e ? e.answers[0]?.value : a.value;
94
- if (!l) return null;
95
- const d = a?.metadata?.type === "workers_compensation_rate" && a.metadata.riskClassCode !== void 0 ? `${a.metadata.riskClassCode}: ${a.metadata.riskClassDescription}` : null, m = a?.metadata?.rateType === "currency_per_hour" ? i("inputs.workersCompensationRatePerHourAdornment") : void 0;
94
+ const { t: i } = v("common"), { key: o, label: u, description: c } = a || e, r = a ? a.answers[0]?.value : e.value;
95
+ if (!o) return null;
96
+ const d = e?.metadata?.type === "workers_compensation_rate" && e.metadata.riskClassCode !== void 0 ? `${e.metadata.riskClassCode}: ${e.metadata.riskClassDescription}` : null, m = e?.metadata?.rateType === "currency_per_hour" ? i("inputs.workersCompensationRatePerHourAdornment") : void 0;
96
97
  return /* @__PURE__ */ t(
97
- x,
98
+ h,
98
99
  {
99
100
  isRequired: !0,
100
- name: l,
101
+ name: o,
101
102
  label: u,
102
103
  description: c ?? d,
103
104
  defaultValue: r != null ? Number(r) : void 0,
104
105
  format: s ? "currency" : n ? "percent" : "decimal",
105
- isDisabled: o,
106
+ isDisabled: l,
106
107
  maximumFractionDigits: n ? 4 : void 0,
107
108
  adornmentEnd: m
108
109
  }
109
110
  );
110
111
  }
111
- function P({ question: e, requirement: a, isDisabled: s = !1 }) {
112
- const { key: n, label: o, description: i } = e || a, l = e ? e.answers[0]?.value : a.value, { Text: u } = C(), c = e ? e.inputQuestionFormat : a.metadata;
113
- if (!c?.options) throw new Error(`RadioInput must have options:${JSON.stringify(e)}`);
112
+ function P({ question: a, requirement: e, isDisabled: s = !1 }) {
113
+ const { key: n, label: l, description: i } = a || e, o = a ? a.answers[0]?.value : e.value, { Text: u } = C(), c = a ? a.inputQuestionFormat : e.metadata;
114
+ if (!c?.options) throw new Error(`RadioInput must have options:${JSON.stringify(a)}`);
114
115
  return n ? /* @__PURE__ */ t(
115
116
  _,
116
117
  {
117
118
  isRequired: !0,
118
119
  name: n,
119
- isDisabled: n.includes("fileNewHireReport") ? l !== void 0 : s,
120
+ isDisabled: n.includes("fileNewHireReport") ? o !== void 0 : s,
120
121
  description: i && /* @__PURE__ */ t(u, { as: "span", children: /* @__PURE__ */ t(
121
122
  "span",
122
123
  {
123
- dangerouslySetInnerHTML: { __html: R.sanitize(i, E) }
124
+ dangerouslySetInnerHTML: { __html: D.sanitize(i, E) }
124
125
  }
125
126
  ) }),
126
- label: o,
127
+ label: l,
127
128
  options: c.options.map((r) => ({
128
129
  value: r.value,
129
130
  label: r.label
@@ -131,38 +132,38 @@ function P({ question: e, requirement: a, isDisabled: s = !1 }) {
131
132
  }
132
133
  ) : null;
133
134
  }
134
- function N({
135
- question: e,
136
- requirement: a,
135
+ function S({
136
+ question: a,
137
+ requirement: e,
137
138
  isDisabled: s = !1
138
139
  }) {
139
- const { key: n, label: o, description: i } = e || a, l = e ? e.answers[0]?.value : a.value;
140
- if (typeof l != "string" && typeof l < "u")
140
+ const { key: n, label: l, description: i } = a || e, o = a ? a.answers[0]?.value : e.value;
141
+ if (typeof o != "string" && typeof o < "u")
141
142
  throw new Error("Expecting value to be string for DateInput");
142
143
  return n ? /* @__PURE__ */ t(
143
144
  T,
144
145
  {
145
146
  isRequired: !0,
146
147
  name: n,
147
- defaultValue: l ? new Date(l) : null,
148
- label: o,
148
+ defaultValue: o ? new Date(o) : null,
149
+ label: l,
149
150
  description: i,
150
151
  isDisabled: s
151
152
  }
152
153
  ) : null;
153
154
  }
154
- function S({ requirement: e, question: a, ...s }) {
155
- const { locale: n } = I(), { t: o } = v("common");
156
- if (e) {
157
- const { key: r, metadata: d, label: m, description: b } = e, { validation: f } = d || {};
155
+ function N({ requirement: a, question: e, ...s }) {
156
+ const { locale: n } = I(), { t: l } = v("common");
157
+ if (a) {
158
+ const { key: r, metadata: d, label: m, description: b } = a, { validation: f } = d || {};
158
159
  return f?.type === "one_of" ? /* @__PURE__ */ t(
159
- D,
160
+ x,
160
161
  {
161
162
  isRequired: !0,
162
163
  name: r || "",
163
164
  label: m || "",
164
165
  description: b,
165
- placeholder: o("selectPlaceholder"),
166
+ placeholder: l("selectPlaceholder"),
166
167
  options: f.rates?.map((y) => ({
167
168
  value: y,
168
169
  label: F(y, n)
@@ -175,20 +176,20 @@ function S({ requirement: e, question: a, ...s }) {
175
176
  name: r || "",
176
177
  label: m || "",
177
178
  description: b,
178
- decimalValue: e.value,
179
+ decimalValue: a.value,
179
180
  decimalMin: f?.min,
180
181
  decimalMax: f?.max,
181
182
  isDisabled: s.isDisabled
182
183
  }
183
184
  );
184
185
  }
185
- const { key: i, label: l, description: u, answers: c } = a;
186
+ const { key: i, label: o, description: u, answers: c } = e;
186
187
  return /* @__PURE__ */ t(
187
188
  w,
188
189
  {
189
190
  isRequired: !0,
190
191
  name: i || "",
191
- label: l || "",
192
+ label: o || "",
192
193
  description: u,
193
194
  decimalValue: c[0]?.value,
194
195
  isDisabled: s.isDisabled
@@ -196,12 +197,12 @@ function S({ requirement: e, question: a, ...s }) {
196
197
  );
197
198
  }
198
199
  export {
199
- N as DateField,
200
+ S as DateField,
200
201
  p as NumberInput,
201
202
  K as QuestionInput,
202
203
  P as RadioInput,
203
204
  L as SelectInput,
204
- S as TaxRateInput,
205
+ N as TaxRateInput,
205
206
  k as TextInput
206
207
  };
207
208
  //# sourceMappingURL=TaxInputs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaxInputs.js","sources":["../../../../src/components/Common/TaxInputs/TaxInputs.tsx"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport type { EmployeeStateTaxQuestion } from '@gusto/embedded-api/models/components/employeestatetaxquestion'\nimport { type TaxRequirement } from '@gusto/embedded-api/models/components/taxrequirement'\nimport { useTranslation } from 'react-i18next'\nimport { SelectField } from '../Fields/SelectField/SelectField'\nimport { TextInputField } from '../Fields/TextInputField/TextInputField'\nimport { NumberInputField } from '../Fields/NumberInputField/NumberInputField'\nimport { RadioGroupField } from '../Fields/RadioGroupField/RadioGroupField'\nimport { DatePickerField } from '../Fields/DatePickerField/DatePickerField'\nimport { PercentageField } from '../Fields/PercentageField/PercentageField'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useLocale } from '@/contexts/LocaleProvider'\nimport { useMaskedTransform } from '@/helpers/mask'\nimport { formatPercentLabel } from '@/helpers/percentageConversion'\n\nconst dompurifyConfig = { ALLOWED_TAGS: ['a', 'b', 'strong'], ALLOWED_ATTR: ['target', 'href'] }\n\ninterface EmpQ {\n question: NonNullable<EmployeeStateTaxQuestion>\n requirement?: never\n isDisabled?: boolean\n}\ninterface CompR {\n requirement: TaxRequirement\n question?: never\n isDisabled?: boolean\n}\n\ntype NumberFieldProps = { isCurrency?: boolean; isPercent?: boolean }\n\ntype TextInputProps = { type?: string; isPercent?: boolean }\n\n/** @internal */\nexport function QuestionInput({\n questionType,\n ...props\n}: (EmpQ | CompR) & {\n questionType: string\n}) {\n switch (questionType.toLowerCase()) {\n case 'date':\n return <DateField {...props} />\n case 'radio':\n return <RadioInput {...props} />\n case 'text':\n case 'account_number': //TODO: temporary - need special handling for account numbers\n return <TextInput {...props} />\n case 'select':\n return <SelectInput {...props} />\n case 'number':\n return <NumberInput {...props} />\n case 'workers_compensation_rate':\n return (\n <NumberInput {...props} isPercent={props.requirement?.metadata?.rateType === 'percent'} />\n )\n case 'percent':\n case 'tax_rate':\n return <TaxRateInput {...props} />\n case 'currency':\n return <NumberInput {...props} isCurrency />\n default:\n return <TextInput {...props} />\n // return null\n }\n}\n\n/** @internal */\nexport function SelectInput({ question, requirement, isDisabled = false }: EmpQ | CompR) {\n const { t } = useTranslation('common')\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n\n const meta = question ? question.inputQuestionFormat : requirement.metadata\n if (!meta?.options) throw new Error('Select input must have options')\n\n if (!key) return null\n\n return (\n <SelectField\n isRequired\n name={key}\n defaultValue={value}\n label={label as string}\n description={description}\n placeholder={t('selectPlaceholder')}\n isDisabled={\n key.includes('fileNewHireReport') ? (value === undefined ? false : true) : isDisabled\n }\n options={meta.options.map((item, _) => ({\n value: item.value,\n label: item.label,\n }))}\n />\n )\n}\n\n/** @internal */\nexport function TextInput({\n question,\n requirement,\n isDisabled = false,\n type = 'text',\n isPercent = false,\n}: (EmpQ | CompR) & TextInputProps) {\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n const mask = requirement?.metadata?.mask ?? null\n const transform = useMaskedTransform(mask)\n\n if (!key) return null\n return (\n <TextInputField\n isRequired\n name={key}\n label={label}\n // @ts-expect-error HACK value is insufficiently narrowed here\n defaultValue={value}\n description={description}\n isDisabled={isDisabled}\n transform={mask ? transform : undefined}\n placeholder={mask ? mask : undefined}\n type={type}\n adornmentEnd={isPercent ? '%' : undefined}\n />\n )\n}\n\n/** @internal */\nexport function NumberInput({\n question,\n requirement,\n isCurrency,\n isPercent,\n isDisabled = false,\n}: (EmpQ | CompR) & NumberFieldProps) {\n const { t } = useTranslation('common')\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n\n if (!key) return null\n\n const wcDescription =\n requirement?.metadata?.type === 'workers_compensation_rate' &&\n requirement.metadata.riskClassCode !== undefined\n ? `${requirement.metadata.riskClassCode}: ${requirement.metadata.riskClassDescription}`\n : null\n const adornmentEnd =\n requirement?.metadata?.rateType === 'currency_per_hour'\n ? t('inputs.workersCompensationRatePerHourAdornment')\n : undefined\n\n return (\n <NumberInputField\n isRequired\n name={key}\n label={label}\n description={description ?? wcDescription}\n defaultValue={value !== undefined && value !== null ? Number(value) : undefined}\n format={isCurrency ? 'currency' : isPercent ? 'percent' : 'decimal'}\n isDisabled={isDisabled}\n maximumFractionDigits={isPercent ? 4 : undefined}\n adornmentEnd={adornmentEnd}\n />\n )\n}\n\n/** @internal */\nexport function RadioInput({ question, requirement, isDisabled = false }: EmpQ | CompR) {\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n const { Text } = useComponentContext()\n\n const meta = question ? question.inputQuestionFormat : requirement.metadata\n if (!meta?.options) throw new Error(`RadioInput must have options:${JSON.stringify(question)}`)\n\n if (!key) return null\n\n return (\n <RadioGroupField\n isRequired\n name={key}\n //File new hire report setting cannot be changed after it has been configured.\n isDisabled={\n key.includes('fileNewHireReport') ? (value === undefined ? false : true) : isDisabled\n }\n description={\n description && (\n <Text as=\"span\">\n <span\n dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(description, dompurifyConfig) }}\n />\n </Text>\n )\n }\n label={label as string}\n options={meta.options.map(item => ({\n value: item.value,\n label: item.label,\n }))}\n />\n )\n}\n//TODO: This type is untested as of yet\n/** @internal */\nexport function DateField({\n question,\n requirement,\n isDisabled = false,\n}: (EmpQ | CompR) & NumberFieldProps) {\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n if (typeof value !== 'string' && typeof value !== 'undefined')\n throw new Error('Expecting value to be string for DateInput')\n\n if (!key) return null\n\n return (\n <DatePickerField\n isRequired\n name={key}\n defaultValue={value ? new Date(value) : null}\n label={label as string}\n description={description}\n isDisabled={isDisabled}\n />\n )\n}\n\n/** @internal */\nexport function TaxRateInput({ requirement, question, ...props }: EmpQ | CompR) {\n const { locale } = useLocale()\n const { t } = useTranslation('common')\n\n if (requirement) {\n const { key, metadata, label, description } = requirement\n const { validation } = metadata || {}\n\n if (validation?.type === 'one_of') {\n return (\n <SelectField\n isRequired\n name={key || ''}\n label={label || ''}\n description={description}\n placeholder={t('selectPlaceholder')}\n options={\n validation.rates?.map(rate => ({\n value: rate,\n label: formatPercentLabel(rate, locale),\n })) || []\n }\n />\n )\n }\n\n return (\n <PercentageField\n isRequired\n name={key || ''}\n label={label || ''}\n description={description}\n decimalValue={requirement.value}\n decimalMin={validation?.min}\n decimalMax={validation?.max}\n isDisabled={props.isDisabled}\n />\n )\n }\n\n const { key, label, description, answers } = question\n return (\n <PercentageField\n isRequired\n name={key || ''}\n label={label || ''}\n description={description}\n decimalValue={answers[0]?.value}\n isDisabled={props.isDisabled}\n />\n )\n}\n"],"names":["dompurifyConfig","QuestionInput","questionType","props","jsx","DateField","RadioInput","TextInput","SelectInput","NumberInput","TaxRateInput","question","requirement","isDisabled","t","useTranslation","key","label","description","value","meta","SelectField","item","_","type","isPercent","mask","transform","useMaskedTransform","TextInputField","isCurrency","wcDescription","adornmentEnd","NumberInputField","Text","useComponentContext","RadioGroupField","DOMPurify","DatePickerField","locale","useLocale","metadata","validation","rate","formatPercentLabel","PercentageField","answers"],"mappings":"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"}
1
+ {"version":3,"file":"TaxInputs.js","sources":["../../../../src/components/Common/TaxInputs/TaxInputs.tsx"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport type { EmployeeStateTaxQuestion } from '@gusto/embedded-api/models/components/employeestatetaxquestion'\nimport { type TaxRequirement } from '@gusto/embedded-api/models/components/taxrequirement'\nimport { useTranslation } from 'react-i18next'\nimport { SelectField } from '../Fields/SelectField/SelectField'\nimport { TextInputField } from '../Fields/TextInputField/TextInputField'\nimport { NumberInputField } from '../Fields/NumberInputField/NumberInputField'\nimport { RadioGroupField } from '../Fields/RadioGroupField/RadioGroupField'\nimport { DatePickerField } from '../Fields/DatePickerField/DatePickerField'\nimport { PercentageField } from '../Fields/PercentageField/PercentageField'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useLocale } from '@/contexts/LocaleProvider'\nimport { useMaskedTransform } from '@/helpers/mask'\nimport { formatPercentLabel } from '@/helpers/percentageConversion'\n\nconst dompurifyConfig = { ALLOWED_TAGS: ['a', 'b', 'strong'], ALLOWED_ATTR: ['target', 'href'] }\n\ninterface EmpQ {\n question: NonNullable<EmployeeStateTaxQuestion>\n requirement?: never\n isDisabled?: boolean\n}\ninterface CompR {\n requirement: TaxRequirement\n question?: never\n isDisabled?: boolean\n}\n\ntype NumberFieldProps = { isCurrency?: boolean; isPercent?: boolean }\n\ntype TextInputProps = { type?: string; isPercent?: boolean }\n\n/** @internal */\nexport function QuestionInput({\n questionType,\n ...props\n}: (EmpQ | CompR) & {\n questionType: string\n}) {\n switch (questionType.toLowerCase()) {\n case 'date':\n return <DateField {...props} />\n case 'radio':\n return <RadioInput {...props} />\n case 'text':\n case 'account_number':\n return <TextInput {...props} />\n case 'select':\n return <SelectInput {...props} />\n case 'number':\n return <NumberInput {...props} />\n case 'workers_compensation_rate':\n return (\n <NumberInput {...props} isPercent={props.requirement?.metadata?.rateType === 'percent'} />\n )\n case 'percent':\n case 'tax_rate':\n return <TaxRateInput {...props} />\n case 'currency':\n return <NumberInput {...props} isCurrency />\n default:\n return <TextInput {...props} />\n // return null\n }\n}\n\n/** @internal */\nexport function SelectInput({ question, requirement, isDisabled = false }: EmpQ | CompR) {\n const { t } = useTranslation('common')\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n\n const meta = question ? question.inputQuestionFormat : requirement.metadata\n if (!meta?.options) throw new Error('Select input must have options')\n\n if (!key) return null\n\n return (\n <SelectField\n isRequired\n name={key}\n defaultValue={value}\n label={label as string}\n description={description}\n placeholder={t('selectPlaceholder')}\n isDisabled={\n key.includes('fileNewHireReport') ? (value === undefined ? false : true) : isDisabled\n }\n options={meta.options.map((item, _) => ({\n value: item.value,\n label: item.label,\n }))}\n />\n )\n}\n\n/** @internal */\nexport function TextInput({\n question,\n requirement,\n isDisabled = false,\n type = 'text',\n isPercent = false,\n}: (EmpQ | CompR) & TextInputProps) {\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n const mask = requirement?.metadata?.mask ?? null\n const prefix = requirement?.metadata?.prefix ?? undefined\n const transform = useMaskedTransform(mask)\n\n if (!key) return null\n return (\n <TextInputField\n isRequired\n name={key}\n label={label}\n // @ts-expect-error HACK value is insufficiently narrowed here\n defaultValue={value}\n description={description}\n isDisabled={isDisabled}\n transform={mask ? transform : undefined}\n placeholder={mask ? mask : undefined}\n type={type}\n adornmentStart={prefix}\n adornmentEnd={isPercent ? '%' : undefined}\n />\n )\n}\n\n/** @internal */\nexport function NumberInput({\n question,\n requirement,\n isCurrency,\n isPercent,\n isDisabled = false,\n}: (EmpQ | CompR) & NumberFieldProps) {\n const { t } = useTranslation('common')\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n\n if (!key) return null\n\n const wcDescription =\n requirement?.metadata?.type === 'workers_compensation_rate' &&\n requirement.metadata.riskClassCode !== undefined\n ? `${requirement.metadata.riskClassCode}: ${requirement.metadata.riskClassDescription}`\n : null\n const adornmentEnd =\n requirement?.metadata?.rateType === 'currency_per_hour'\n ? t('inputs.workersCompensationRatePerHourAdornment')\n : undefined\n\n return (\n <NumberInputField\n isRequired\n name={key}\n label={label}\n description={description ?? wcDescription}\n defaultValue={value !== undefined && value !== null ? Number(value) : undefined}\n format={isCurrency ? 'currency' : isPercent ? 'percent' : 'decimal'}\n isDisabled={isDisabled}\n maximumFractionDigits={isPercent ? 4 : undefined}\n adornmentEnd={adornmentEnd}\n />\n )\n}\n\n/** @internal */\nexport function RadioInput({ question, requirement, isDisabled = false }: EmpQ | CompR) {\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n const { Text } = useComponentContext()\n\n const meta = question ? question.inputQuestionFormat : requirement.metadata\n if (!meta?.options) throw new Error(`RadioInput must have options:${JSON.stringify(question)}`)\n\n if (!key) return null\n\n return (\n <RadioGroupField\n isRequired\n name={key}\n //File new hire report setting cannot be changed after it has been configured.\n isDisabled={\n key.includes('fileNewHireReport') ? (value === undefined ? false : true) : isDisabled\n }\n description={\n description && (\n <Text as=\"span\">\n <span\n dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(description, dompurifyConfig) }}\n />\n </Text>\n )\n }\n label={label as string}\n options={meta.options.map(item => ({\n value: item.value,\n label: item.label,\n }))}\n />\n )\n}\n//TODO: This type is untested as of yet\n/** @internal */\nexport function DateField({\n question,\n requirement,\n isDisabled = false,\n}: (EmpQ | CompR) & NumberFieldProps) {\n const { key, label, description } = question ? question : requirement\n const value = question ? question.answers[0]?.value : requirement.value\n if (typeof value !== 'string' && typeof value !== 'undefined')\n throw new Error('Expecting value to be string for DateInput')\n\n if (!key) return null\n\n return (\n <DatePickerField\n isRequired\n name={key}\n defaultValue={value ? new Date(value) : null}\n label={label as string}\n description={description}\n isDisabled={isDisabled}\n />\n )\n}\n\n/** @internal */\nexport function TaxRateInput({ requirement, question, ...props }: EmpQ | CompR) {\n const { locale } = useLocale()\n const { t } = useTranslation('common')\n\n if (requirement) {\n const { key, metadata, label, description } = requirement\n const { validation } = metadata || {}\n\n if (validation?.type === 'one_of') {\n return (\n <SelectField\n isRequired\n name={key || ''}\n label={label || ''}\n description={description}\n placeholder={t('selectPlaceholder')}\n options={\n validation.rates?.map(rate => ({\n value: rate,\n label: formatPercentLabel(rate, locale),\n })) || []\n }\n />\n )\n }\n\n return (\n <PercentageField\n isRequired\n name={key || ''}\n label={label || ''}\n description={description}\n decimalValue={requirement.value}\n decimalMin={validation?.min}\n decimalMax={validation?.max}\n isDisabled={props.isDisabled}\n />\n )\n }\n\n const { key, label, description, answers } = question\n return (\n <PercentageField\n isRequired\n name={key || ''}\n label={label || ''}\n description={description}\n decimalValue={answers[0]?.value}\n isDisabled={props.isDisabled}\n />\n )\n}\n"],"names":["dompurifyConfig","QuestionInput","questionType","props","jsx","DateField","RadioInput","TextInput","SelectInput","NumberInput","TaxRateInput","question","requirement","isDisabled","t","useTranslation","key","label","description","value","meta","SelectField","item","_","type","isPercent","mask","prefix","transform","useMaskedTransform","TextInputField","isCurrency","wcDescription","adornmentEnd","NumberInputField","Text","useComponentContext","RadioGroupField","DOMPurify","DatePickerField","locale","useLocale","metadata","validation","rate","formatPercentLabel","PercentageField","answers"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- const o = "_root_1s9ch_1", s = "_icons_1s9ch_17", c = "_popover_1s9ch_68", t = {
1
+ const o = "_root_1elr3_1", r = "_icons_1elr3_17", s = "_popover_1elr3_68", t = {
2
2
  root: o,
3
- icons: s,
4
- popover: c
3
+ icons: r,
4
+ popover: s
5
5
  };
6
6
  export {
7
7
  t as default,
8
- s as icons,
9
- c as popover,
8
+ r as icons,
9
+ s as popover,
10
10
  o as root
11
11
  };
12
12
  //# sourceMappingURL=Select.module.scss.js.map
@@ -19,10 +19,12 @@ export interface CreateHistoricalPaymentProps extends BaseComponentInterface<'Co
19
19
  * Continue on the contractor-selection step is disabled until the paid date is valid and at least
20
20
  * one contractor is selected. Continue on the amounts step is disabled until at least one selected
21
21
  * contractor has a payment total greater than zero, and swaps the amounts grid for an in-place
22
- * review (mirroring `CreatePayment`'s preview step); Edit returns to the grid without losing
22
+ * review (mirroring `CreatePayment`'s preview step); Back returns to the grid without losing
23
23
  * entered amounts, and Submit creates the contractor payment group. Once creation succeeds, the
24
- * Edit and Submit buttons are replaced with a success message, since the creation token has been
24
+ * Back and Submit buttons are replaced with a success message, since the creation token has been
25
25
  * consumed and the host is expected to navigate away (e.g. to `HistoricalPaymentSummary`).
26
+ * The amounts step also has its own Back button, returning to contractor selection without losing
27
+ * the selected paid date, contractors, or any amounts already entered.
26
28
  *
27
29
  * @events
28
30
  * | Event | Description | Data |