@gusto/embedded-react-sdk 0.56.2 → 0.56.4
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.
- package/CHANGELOG.md +31 -0
- package/dist/components/Common/FieldCaption/FieldCaption.js +19 -22
- package/dist/components/Common/FieldCaption/FieldCaption.js.map +1 -1
- package/dist/components/Common/FieldCaption/FieldCaption.module.scss.js +6 -6
- package/dist/components/Common/PaginationControl/PaginationControl.js +66 -62
- package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Company/PaySchedule/management/PaySchedule.js +60 -0
- package/dist/components/Company/PaySchedule/management/PaySchedule.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentReviewStepPresentation.js +67 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentReviewStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +59 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +57 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +46 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +101 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +81 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/stripNullAssignmentPreviewFields.js +18 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/stripNullAssignmentPreviewFields.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +56 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +34 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js +77 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.module.scss.js +10 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.module.scss.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js +66 -0
- package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +75 -57
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/shared/requirementSetError.js +15 -0
- package/dist/components/Company/StateTaxes/shared/requirementSetError.js.map +1 -0
- package/dist/components/Company/exports/companyManagement.js +7 -0
- package/dist/components/Company/exports/companyManagement.js.map +1 -0
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
- package/dist/components/Flow/Flow.js +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +28 -28
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +51 -58
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +12 -7
- package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +87 -85
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +55 -54
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +66 -62
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +129 -125
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +30 -27
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js +41 -30
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +159 -152
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +61 -59
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +32 -31
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +16 -16
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +61 -61
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +192 -193
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/Transition/TransitionFlow.js +27 -22
- package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +55 -53
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js +44 -41
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
- package/dist/components/Payroll/helpers.js +72 -67
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +34 -25
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +23 -22
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/informationRequestEnumHook.js +30 -0
- package/dist/contexts/ApiProvider/informationRequestEnumHook.js.map +1 -0
- package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/helpers/formattedStrings.js +9 -8
- package/dist/helpers/formattedStrings.js.map +1 -1
- package/dist/i18n/I18n.js +2 -0
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +24 -0
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -0
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +18 -0
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -0
- package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
- package/dist/i18n/en/Payroll.GrossUpModal.json.js +12 -14
- package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
- package/dist/i18n/en/common.json.js +36 -38
- package/dist/i18n/en/common.json.js.map +1 -1
- package/dist/index.js +137 -135
- package/dist/index.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/shared/constants.js +39 -31
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Company/PaySchedule/management/PaySchedule.d.ts +24 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentReviewStepPresentation.d.ts +10 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.d.ts +11 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +9 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +35 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +29 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/index.d.ts +1 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.d.ts +7 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/stripNullAssignmentPreviewFields.d.ts +12 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +9 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleManagementComponents.d.ts +20 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleOverview.d.ts +11 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.d.ts +18 -0
- package/dist/src/components/Company/PaySchedule/management/index.d.ts +1 -0
- package/dist/src/components/Company/PaySchedule/management/payScheduleManagementStateMachine.d.ts +12 -0
- package/dist/src/components/Company/StateTaxes/shared/requirementSetError.d.ts +18 -0
- package/dist/src/components/Company/StateTaxes/shared/requirementSetError.test.d.ts +1 -0
- package/dist/src/components/Company/exports/companyManagement.d.ts +2 -0
- package/dist/src/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +12 -0
- package/dist/src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +6 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +2 -2
- package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +6 -1
- package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +7 -1
- package/dist/src/components/Payroll/helpers.d.ts +34 -0
- package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +6 -1
- package/dist/src/components/index.d.ts +12 -0
- package/dist/src/contexts/ApiProvider/informationRequestEnumHook.d.ts +14 -0
- package/dist/src/contexts/ApiProvider/informationRequestEnumHook.test.d.ts +1 -0
- package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
- package/dist/src/helpers/dateFormatting.d.ts +2 -2
- package/dist/src/helpers/formattedStrings.d.ts +15 -0
- package/dist/src/i18n/en/common.json.d.ts +0 -1
- package/dist/src/i18n/types.d.ts +96 -6
- package/dist/src/models/external.d.ts +12 -0
- package/dist/src/shared/constants.d.ts +16 -0
- package/dist/style.css +1 -1
- package/dist/types/sdkError.js +32 -21
- package/dist/types/sdkError.js.map +1 -1
- package/docs/guides/endpoint-inventory.json +59 -10
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.56.4](https://github.com/Gusto/embedded-react-sdk/compare/v0.56.3...v0.56.4) (2026-10-02)
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- Keep the required-field asterisk out of the field's accessible name, so screen readers no longer announce it as part of the label ([#2865](https://github.com/Gusto/embedded-react-sdk/issues/2865))
|
|
8
|
+
|
|
9
|
+
## [0.56.3](https://github.com/Gusto/embedded-react-sdk/compare/v0.56.2...v0.56.3) (2026-10-01)
|
|
10
|
+
|
|
11
|
+
### Features & Enhancements
|
|
12
|
+
|
|
13
|
+
- Mark required form fields with an asterisk (`*`) instead of appending an `(optional)` suffix to non-required fields. The asterisk is CSS-generated, so each field's accessible name is unchanged ([#2770](https://github.com/Gusto/embedded-react-sdk/issues/2770))
|
|
14
|
+
- Add the alpha `CompanyManagement.PaySchedule` component with `PayScheduleOverview`, surfacing a company's pay schedule name, frequency, and AutoPilot status. Gated behind the `managePaySchedules` unstable feature flag ([#2746](https://github.com/Gusto/embedded-react-sdk/issues/2746))
|
|
15
|
+
- Add the alpha `CompanyManagement.PayScheduleAssignment`, a standalone flow for assigning a single pay schedule (type selector, schedule picker with inline creation, and a review-and-submit step) that can be mounted directly or launched from `PayScheduleOverview` ([#2762](https://github.com/Gusto/embedded-react-sdk/issues/2762))
|
|
16
|
+
|
|
17
|
+
### Fixes
|
|
18
|
+
|
|
19
|
+
- Update the bundled `@gusto/embedded-api` client to stable `0.3.1` ([#2863](https://github.com/Gusto/embedded-react-sdk/issues/2863))
|
|
20
|
+
- Handle Gusto-created tax reconciliation payrolls, which have no pay period and previously crashed `PayrollOverview` and left blank dates in `PayrollHistory` ([#2859](https://github.com/Gusto/embedded-react-sdk/issues/2859))
|
|
21
|
+
- Prepare transition payrolls without sending an employee roster, which the API rejects for a transition payroll ([#2850](https://github.com/Gusto/embedded-react-sdk/issues/2850))
|
|
22
|
+
- Disable transition payroll actions while a payroll blocker exists ([#2848](https://github.com/Gusto/embedded-react-sdk/issues/2848))
|
|
23
|
+
- Strip leading zeros from payroll number inputs ([#2831](https://github.com/Gusto/embedded-react-sdk/issues/2831))
|
|
24
|
+
- Stop the RFI payroll-blocker screen from crashing on unauthorized or unknown data ([#2833](https://github.com/Gusto/embedded-react-sdk/issues/2833))
|
|
25
|
+
- Fix the Calculate button loading state in the gross-up modal ([#2718](https://github.com/Gusto/embedded-react-sdk/issues/2718))
|
|
26
|
+
- Hide pagination page-size options that would render identically to a smaller one ([#2856](https://github.com/Gusto/embedded-react-sdk/issues/2856))
|
|
27
|
+
- Show a friendly message for incomplete state tax requirement sets ([#2829](https://github.com/Gusto/embedded-react-sdk/issues/2829))
|
|
28
|
+
|
|
29
|
+
### Chores & Maintenance
|
|
30
|
+
|
|
31
|
+
- Bump dev dependencies (`typescript-eslint`, `dotenv`)
|
|
32
|
+
- Apply grouped Dependabot security updates ([#2837](https://github.com/Gusto/embedded-react-sdk/issues/2837), [#2838](https://github.com/Gusto/embedded-react-sdk/issues/2838))
|
|
33
|
+
|
|
3
34
|
## [0.56.2](https://github.com/Gusto/embedded-react-sdk/compare/v0.56.1...v0.56.2) (2026-09-25)
|
|
4
35
|
|
|
5
36
|
### Fixes
|
|
@@ -1,37 +1,34 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useTranslation as c } from "react-i18next";
|
|
1
|
+
import { jsx as e, jsxs as m } from "react/jsx-runtime";
|
|
3
2
|
import d from "classnames";
|
|
4
|
-
import
|
|
5
|
-
import { useComponentContext as
|
|
6
|
-
import { VisuallyHidden as
|
|
7
|
-
const
|
|
3
|
+
import i from "./FieldCaption.module.scss.js";
|
|
4
|
+
import { useComponentContext as p } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
5
|
+
import { VisuallyHidden as c } from "../VisuallyHidden/VisuallyHidden.js";
|
|
6
|
+
const C = ({
|
|
8
7
|
children: t,
|
|
9
8
|
as: o = "label",
|
|
10
|
-
htmlFor:
|
|
11
|
-
isRequired:
|
|
12
|
-
isVisuallyHidden:
|
|
13
|
-
className:
|
|
9
|
+
htmlFor: l,
|
|
10
|
+
isRequired: n = !1,
|
|
11
|
+
isVisuallyHidden: a = !1,
|
|
12
|
+
className: s
|
|
14
13
|
}) => {
|
|
15
|
-
const
|
|
14
|
+
const r = /* @__PURE__ */ m(
|
|
16
15
|
o,
|
|
17
16
|
{
|
|
18
|
-
className: d(
|
|
19
|
-
htmlFor: o === "label" ?
|
|
17
|
+
className: d(i.root, s),
|
|
18
|
+
htmlFor: o === "label" ? l : void 0,
|
|
19
|
+
"data-required": n || void 0,
|
|
20
20
|
children: [
|
|
21
21
|
t,
|
|
22
|
-
|
|
23
|
-
" ",
|
|
24
|
-
p("optionalLabel")
|
|
25
|
-
] })
|
|
22
|
+
n ? /* @__PURE__ */ e("span", { "aria-hidden": "true", className: i.requiredIndicator }) : null
|
|
26
23
|
]
|
|
27
24
|
}
|
|
28
25
|
);
|
|
29
|
-
return
|
|
30
|
-
},
|
|
31
|
-
const o =
|
|
32
|
-
return o.FieldCaption ? /* @__PURE__ */
|
|
26
|
+
return a ? /* @__PURE__ */ e(c, { children: r }) : r;
|
|
27
|
+
}, b = (t) => {
|
|
28
|
+
const o = p();
|
|
29
|
+
return o.FieldCaption ? /* @__PURE__ */ e(o.FieldCaption, { ...t }) : /* @__PURE__ */ e(C, { ...t });
|
|
33
30
|
};
|
|
34
31
|
export {
|
|
35
|
-
|
|
32
|
+
b as FieldCaption
|
|
36
33
|
};
|
|
37
34
|
//# sourceMappingURL=FieldCaption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldCaption.js","sources":["../../../../src/components/Common/FieldCaption/FieldCaption.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"FieldCaption.js","sources":["../../../../src/components/Common/FieldCaption/FieldCaption.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { VisuallyHidden } from '../VisuallyHidden'\nimport type { FieldCaptionProps } from './FieldCaptionTypes'\nimport styles from './FieldCaption.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nconst DefaultFieldCaption = ({\n children,\n as = 'label',\n htmlFor,\n isRequired = false,\n isVisuallyHidden = false,\n className,\n}: FieldCaptionProps) => {\n const Component = as\n\n const content = (\n <Component\n className={classNames(styles.root, className)}\n htmlFor={as === 'label' ? htmlFor : undefined}\n data-required={isRequired || undefined}\n >\n {children}\n {isRequired ? <span aria-hidden=\"true\" className={styles.requiredIndicator} /> : null}\n </Component>\n )\n\n return isVisuallyHidden ? <VisuallyHidden>{content}</VisuallyHidden> : content\n}\n\n/** @internal */\nexport const FieldCaption = (props: FieldCaptionProps) => {\n const Components = useComponentContext()\n\n return Components.FieldCaption ? (\n <Components.FieldCaption {...props} />\n ) : (\n <DefaultFieldCaption {...props} />\n )\n}\n"],"names":["DefaultFieldCaption","children","as","htmlFor","isRequired","isVisuallyHidden","className","content","jsxs","classNames","styles","jsx","VisuallyHidden","FieldCaption","props","Components","useComponentContext"],"mappings":";;;;;AAMA,MAAMA,IAAsB,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,IAAAC,IAAK;AAAA,EACL,SAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,kBAAAC,IAAmB;AAAA,EACnB,WAAAC;AACF,MAAyB;AAGvB,QAAMC,IACJ,gBAAAC;AAAA,IAHgBN;AAAA,IAGf;AAAA,MACC,WAAWO,EAAWC,EAAO,MAAMJ,CAAS;AAAA,MAC5C,SAASJ,MAAO,UAAUC,IAAU;AAAA,MACpC,iBAAeC,KAAc;AAAA,MAE5B,UAAA;AAAA,QAAAH;AAAA,QACAG,sBAAc,QAAA,EAAK,eAAY,QAAO,WAAWM,EAAO,mBAAmB,IAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIrF,SAAOL,IAAmB,gBAAAM,EAACC,GAAA,EAAgB,UAAAL,EAAA,CAAQ,IAAoBA;AACzE,GAGaM,IAAe,CAACC,MAA6B;AACxD,QAAMC,IAAaC,EAAA;AAEnB,SAAOD,EAAW,eAChB,gBAAAJ,EAACI,EAAW,cAAX,EAAyB,GAAGD,EAAA,CAAO,IAEpC,gBAAAH,EAACX,GAAA,EAAqB,GAAGc,EAAA,CAAO;AAEpC;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const
|
|
2
|
-
root:
|
|
3
|
-
|
|
1
|
+
const r = "_root_1jhri_2", o = "_requiredIndicator_1jhri_11", t = {
|
|
2
|
+
root: r,
|
|
3
|
+
requiredIndicator: o
|
|
4
4
|
};
|
|
5
5
|
export {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
t as default,
|
|
7
|
+
o as requiredIndicator,
|
|
8
|
+
r as root
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=FieldCaption.module.scss.js.map
|
|
@@ -1,90 +1,94 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { Flex as
|
|
4
|
-
import
|
|
5
|
-
import { useComponentContext as
|
|
6
|
-
import
|
|
1
|
+
import { jsx as i, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as v } from "react-i18next";
|
|
3
|
+
import { Flex as C } from "../Flex/Flex.js";
|
|
4
|
+
import d from "./PaginationControl.module.scss.js";
|
|
5
|
+
import { useComponentContext as g } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
+
import S from "../../../assets/icons/pagination_first.svg.js";
|
|
7
7
|
import I from "../../../assets/icons/pagination_previous.svg.js";
|
|
8
|
-
import
|
|
8
|
+
import P from "../../../assets/icons/pagination_next.svg.js";
|
|
9
9
|
import x from "../../../assets/icons/pagination_last.svg.js";
|
|
10
|
-
import { InlineSpinner as
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
import { InlineSpinner as N } from "../InlineSpinner/InlineSpinner.js";
|
|
11
|
+
const L = 5, c = [5, 10, 25, 50], B = (n) => n === void 0 ? !0 : n === 0 ? !1 : n > L, D = (n, o) => {
|
|
12
|
+
if (n === void 0) return c;
|
|
13
|
+
const e = c.find((t) => t >= n), r = new Set(
|
|
14
|
+
c.filter((t) => t < n)
|
|
15
|
+
);
|
|
16
|
+
return r.add(o), e !== void 0 && r.add(e), c.filter((t) => r.has(t));
|
|
17
|
+
}, E = ({
|
|
18
|
+
currentPage: n,
|
|
19
|
+
totalPages: o,
|
|
20
|
+
totalCount: e,
|
|
21
|
+
isFetching: r,
|
|
22
|
+
handleFirstPage: t,
|
|
23
|
+
handlePreviousPage: u,
|
|
24
|
+
handleNextPage: f,
|
|
25
|
+
handleLastPage: b,
|
|
26
|
+
handleItemsPerPageChange: h,
|
|
27
|
+
itemsPerPage: m = 5
|
|
22
28
|
}) => {
|
|
23
|
-
const { t:
|
|
24
|
-
return
|
|
25
|
-
/* @__PURE__ */
|
|
26
|
-
|
|
29
|
+
const { t: a } = v("common"), l = g();
|
|
30
|
+
return B(e) ? /* @__PURE__ */ i("section", { className: d.paginationControl, "data-testid": "pagination-control", children: /* @__PURE__ */ p(C, { justifyContent: "space-between", alignItems: "center", children: [
|
|
31
|
+
/* @__PURE__ */ i("div", { className: d.paginationControlCount, children: /* @__PURE__ */ i("section", { children: /* @__PURE__ */ i(
|
|
32
|
+
l.Select,
|
|
27
33
|
{
|
|
28
|
-
label:
|
|
34
|
+
label: a("labels.paginationControlCountLabel"),
|
|
29
35
|
placeholder: "",
|
|
30
36
|
shouldVisuallyHideLabel: !0,
|
|
31
|
-
value:
|
|
32
|
-
onChange: (
|
|
33
|
-
|
|
37
|
+
value: m.toString(),
|
|
38
|
+
onChange: (s) => {
|
|
39
|
+
h(Number(s));
|
|
34
40
|
},
|
|
35
|
-
options:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{ value: "50", label: "50" }
|
|
40
|
-
]
|
|
41
|
+
options: D(e, m).map((s) => ({
|
|
42
|
+
value: s.toString(),
|
|
43
|
+
label: s.toString()
|
|
44
|
+
}))
|
|
41
45
|
}
|
|
42
46
|
) }) }),
|
|
43
|
-
/* @__PURE__ */
|
|
44
|
-
|
|
45
|
-
/* @__PURE__ */
|
|
46
|
-
|
|
47
|
+
/* @__PURE__ */ p("div", { className: d.paginationControlButtons, children: [
|
|
48
|
+
r && /* @__PURE__ */ i(N, { ariaLabel: a("labels.paginationFetchingLabel") }),
|
|
49
|
+
/* @__PURE__ */ i(
|
|
50
|
+
l.ButtonIcon,
|
|
47
51
|
{
|
|
48
|
-
"aria-label":
|
|
49
|
-
isDisabled:
|
|
50
|
-
onClick:
|
|
51
|
-
children: /* @__PURE__ */
|
|
52
|
+
"aria-label": a("icons.paginationFirst"),
|
|
53
|
+
isDisabled: n === 1,
|
|
54
|
+
onClick: t,
|
|
55
|
+
children: /* @__PURE__ */ i(S, {})
|
|
52
56
|
}
|
|
53
57
|
),
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
|
|
58
|
+
/* @__PURE__ */ i(
|
|
59
|
+
l.ButtonIcon,
|
|
56
60
|
{
|
|
57
|
-
"aria-label":
|
|
61
|
+
"aria-label": a("icons.paginationPrev"),
|
|
58
62
|
"data-testid": "pagination-previous",
|
|
59
|
-
isDisabled:
|
|
60
|
-
onClick:
|
|
61
|
-
children: /* @__PURE__ */
|
|
63
|
+
isDisabled: n === 1,
|
|
64
|
+
onClick: u,
|
|
65
|
+
children: /* @__PURE__ */ i(I, {})
|
|
62
66
|
}
|
|
63
67
|
),
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
|
|
68
|
+
/* @__PURE__ */ i(
|
|
69
|
+
l.ButtonIcon,
|
|
66
70
|
{
|
|
67
|
-
"aria-label":
|
|
71
|
+
"aria-label": a("icons.paginationNext"),
|
|
68
72
|
"data-testid": "pagination-next",
|
|
69
|
-
isDisabled:
|
|
70
|
-
onClick:
|
|
71
|
-
children: /* @__PURE__ */
|
|
73
|
+
isDisabled: n === o,
|
|
74
|
+
onClick: f,
|
|
75
|
+
children: /* @__PURE__ */ i(P, {})
|
|
72
76
|
}
|
|
73
77
|
),
|
|
74
|
-
/* @__PURE__ */
|
|
75
|
-
|
|
78
|
+
/* @__PURE__ */ i(
|
|
79
|
+
l.ButtonIcon,
|
|
76
80
|
{
|
|
77
|
-
"aria-label":
|
|
78
|
-
isDisabled:
|
|
79
|
-
onClick:
|
|
80
|
-
children: /* @__PURE__ */
|
|
81
|
+
"aria-label": a("icons.paginationLast"),
|
|
82
|
+
isDisabled: n === o,
|
|
83
|
+
onClick: b,
|
|
84
|
+
children: /* @__PURE__ */ i(x, {})
|
|
81
85
|
}
|
|
82
86
|
)
|
|
83
87
|
] })
|
|
84
88
|
] }) }) : null;
|
|
85
|
-
}, G = (
|
|
86
|
-
const
|
|
87
|
-
return
|
|
89
|
+
}, G = (n) => {
|
|
90
|
+
const o = g();
|
|
91
|
+
return o.PaginationControl ? /* @__PURE__ */ i(o.PaginationControl, { ...n }) : /* @__PURE__ */ i(E, { ...n });
|
|
88
92
|
};
|
|
89
93
|
export {
|
|
90
94
|
G as PaginationControl
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationControl.js","sources":["../../../../src/components/Common/PaginationControl/PaginationControl.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { Flex } from '../Flex/Flex'\nimport { InlineSpinner } from '../InlineSpinner'\nimport style from './PaginationControl.module.scss'\nimport type { PaginationControlProps, PaginationItemsPerPage } from './PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport PaginationFirstIcon from '@/assets/icons/pagination_first.svg?react'\nimport PaginationPrevIcon from '@/assets/icons/pagination_previous.svg?react'\nimport PaginationNextIcon from '@/assets/icons/pagination_next.svg?react'\nimport PaginationLastIcon from '@/assets/icons/pagination_last.svg?react'\n\nconst MINIMUM_PAGE_SIZE = 5\n\nconst shouldShowPagination = (totalCount: number | undefined): boolean => {\n if (totalCount === undefined) return true\n if (totalCount === 0) return false\n return totalCount > MINIMUM_PAGE_SIZE\n}\n\nconst DefaultPaginationControl = ({\n currentPage,\n totalPages,\n totalCount,\n isFetching,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleItemsPerPageChange,\n itemsPerPage = 5,\n}: PaginationControlProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n\n if (!shouldShowPagination(totalCount)) {\n return null\n }\n\n return (\n <section className={style.paginationControl} data-testid=\"pagination-control\">\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <div className={style.paginationControlCount}>\n <section>\n <Components.Select\n label={t('labels.paginationControlCountLabel')}\n placeholder=\"\"\n shouldVisuallyHideLabel\n value={itemsPerPage.toString()}\n onChange={n => {\n handleItemsPerPageChange(Number(n) as PaginationItemsPerPage)\n }}\n options={
|
|
1
|
+
{"version":3,"file":"PaginationControl.js","sources":["../../../../src/components/Common/PaginationControl/PaginationControl.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { Flex } from '../Flex/Flex'\nimport { InlineSpinner } from '../InlineSpinner'\nimport style from './PaginationControl.module.scss'\nimport type { PaginationControlProps, PaginationItemsPerPage } from './PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport PaginationFirstIcon from '@/assets/icons/pagination_first.svg?react'\nimport PaginationPrevIcon from '@/assets/icons/pagination_previous.svg?react'\nimport PaginationNextIcon from '@/assets/icons/pagination_next.svg?react'\nimport PaginationLastIcon from '@/assets/icons/pagination_last.svg?react'\n\nconst MINIMUM_PAGE_SIZE = 5\n\nconst ITEMS_PER_PAGE_OPTIONS: PaginationItemsPerPage[] = [5, 10, 25, 50]\n\nconst shouldShowPagination = (totalCount: number | undefined): boolean => {\n if (totalCount === undefined) return true\n if (totalCount === 0) return false\n return totalCount > MINIMUM_PAGE_SIZE\n}\n\nconst getVisibleItemsPerPageOptions = (\n totalCount: number | undefined,\n itemsPerPage: PaginationItemsPerPage,\n): PaginationItemsPerPage[] => {\n if (totalCount === undefined) return ITEMS_PER_PAGE_OPTIONS\n\n const smallestOptionCoveringAll = ITEMS_PER_PAGE_OPTIONS.find(option => option >= totalCount)\n const visible = new Set<PaginationItemsPerPage>(\n ITEMS_PER_PAGE_OPTIONS.filter(option => option < totalCount),\n )\n visible.add(itemsPerPage)\n if (smallestOptionCoveringAll !== undefined) visible.add(smallestOptionCoveringAll)\n\n return ITEMS_PER_PAGE_OPTIONS.filter(option => visible.has(option))\n}\n\nconst DefaultPaginationControl = ({\n currentPage,\n totalPages,\n totalCount,\n isFetching,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleItemsPerPageChange,\n itemsPerPage = 5,\n}: PaginationControlProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n\n if (!shouldShowPagination(totalCount)) {\n return null\n }\n\n return (\n <section className={style.paginationControl} data-testid=\"pagination-control\">\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <div className={style.paginationControlCount}>\n <section>\n <Components.Select\n label={t('labels.paginationControlCountLabel')}\n placeholder=\"\"\n shouldVisuallyHideLabel\n value={itemsPerPage.toString()}\n onChange={n => {\n handleItemsPerPageChange(Number(n) as PaginationItemsPerPage)\n }}\n options={getVisibleItemsPerPageOptions(totalCount, itemsPerPage).map(option => ({\n value: option.toString(),\n label: option.toString(),\n }))}\n />\n </section>\n </div>\n <div className={style.paginationControlButtons}>\n {isFetching && <InlineSpinner ariaLabel={t('labels.paginationFetchingLabel')} />}\n <Components.ButtonIcon\n aria-label={t('icons.paginationFirst')}\n isDisabled={currentPage === 1}\n onClick={handleFirstPage}\n >\n <PaginationFirstIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationPrev')}\n data-testid=\"pagination-previous\"\n isDisabled={currentPage === 1}\n onClick={handlePreviousPage}\n >\n <PaginationPrevIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationNext')}\n data-testid=\"pagination-next\"\n isDisabled={currentPage === totalPages}\n onClick={handleNextPage}\n >\n <PaginationNextIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationLast')}\n isDisabled={currentPage === totalPages}\n onClick={handleLastPage}\n >\n <PaginationLastIcon />\n </Components.ButtonIcon>\n </div>\n </Flex>\n </section>\n )\n}\n\n/** @internal */\nexport const PaginationControl = (props: PaginationControlProps) => {\n const Components = useComponentContext()\n\n return Components.PaginationControl ? (\n <Components.PaginationControl {...props} />\n ) : (\n <DefaultPaginationControl {...props} />\n )\n}\n"],"names":["MINIMUM_PAGE_SIZE","ITEMS_PER_PAGE_OPTIONS","shouldShowPagination","totalCount","getVisibleItemsPerPageOptions","itemsPerPage","smallestOptionCoveringAll","option","visible","DefaultPaginationControl","currentPage","totalPages","isFetching","handleFirstPage","handlePreviousPage","handleNextPage","handleLastPage","handleItemsPerPageChange","t","useTranslation","Components","useComponentContext","jsx","style","jsxs","Flex","n","InlineSpinner","PaginationFirstIcon","PaginationPrevIcon","PaginationNextIcon","PaginationLastIcon","PaginationControl","props"],"mappings":";;;;;;;;;;AAWA,MAAMA,IAAoB,GAEpBC,IAAmD,CAAC,GAAG,IAAI,IAAI,EAAE,GAEjEC,IAAuB,CAACC,MACxBA,MAAe,SAAkB,KACjCA,MAAe,IAAU,KACtBA,IAAaH,GAGhBI,IAAgC,CACpCD,GACAE,MAC6B;AAC7B,MAAIF,MAAe,OAAW,QAAOF;AAErC,QAAMK,IAA4BL,EAAuB,KAAK,CAAAM,MAAUA,KAAUJ,CAAU,GACtFK,IAAU,IAAI;AAAA,IAClBP,EAAuB,OAAO,CAAAM,MAAUA,IAASJ,CAAU;AAAA,EAAA;AAE7D,SAAAK,EAAQ,IAAIH,CAAY,GACpBC,MAA8B,UAAWE,EAAQ,IAAIF,CAAyB,GAE3EL,EAAuB,OAAO,CAAAM,MAAUC,EAAQ,IAAID,CAAM,CAAC;AACpE,GAEME,IAA2B,CAAC;AAAA,EAChC,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAR;AAAA,EACA,YAAAS;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,cAAAZ,IAAe;AACjB,MAA8B;AAC5B,QAAM,EAAE,GAAAa,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAA;AAEnB,SAAKnB,EAAqBC,CAAU,IAKlC,gBAAAmB,EAAC,WAAA,EAAQ,WAAWC,EAAM,mBAAmB,eAAY,sBACvD,UAAA,gBAAAC,EAACC,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAC9C,UAAA;AAAA,IAAA,gBAAAH,EAAC,OAAA,EAAI,WAAWC,EAAM,wBACpB,4BAAC,WAAA,EACC,UAAA,gBAAAD;AAAA,MAACF,EAAW;AAAA,MAAX;AAAA,QACC,OAAOF,EAAE,oCAAoC;AAAA,QAC7C,aAAY;AAAA,QACZ,yBAAuB;AAAA,QACvB,OAAOb,EAAa,SAAA;AAAA,QACpB,UAAU,CAAAqB,MAAK;AACb,UAAAT,EAAyB,OAAOS,CAAC,CAA2B;AAAA,QAC9D;AAAA,QACA,SAAStB,EAA8BD,GAAYE,CAAY,EAAE,IAAI,CAAAE,OAAW;AAAA,UAC9E,OAAOA,EAAO,SAAA;AAAA,UACd,OAAOA,EAAO,SAAA;AAAA,QAAS,EACvB;AAAA,MAAA;AAAA,IAAA,GAEN,EAAA,CACF;AAAA,IACA,gBAAAiB,EAAC,OAAA,EAAI,WAAWD,EAAM,0BACnB,UAAA;AAAA,MAAAX,KAAc,gBAAAU,EAACK,GAAA,EAAc,WAAWT,EAAE,gCAAgC,GAAG;AAAA,MAC9E,gBAAAI;AAAA,QAACF,EAAW;AAAA,QAAX;AAAA,UACC,cAAYF,EAAE,uBAAuB;AAAA,UACrC,YAAYR,MAAgB;AAAA,UAC5B,SAASG;AAAA,UAET,4BAACe,GAAA,CAAA,CAAoB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEvB,gBAAAN;AAAA,QAACF,EAAW;AAAA,QAAX;AAAA,UACC,cAAYF,EAAE,sBAAsB;AAAA,UACpC,eAAY;AAAA,UACZ,YAAYR,MAAgB;AAAA,UAC5B,SAASI;AAAA,UAET,4BAACe,GAAA,CAAA,CAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtB,gBAAAP;AAAA,QAACF,EAAW;AAAA,QAAX;AAAA,UACC,cAAYF,EAAE,sBAAsB;AAAA,UACpC,eAAY;AAAA,UACZ,YAAYR,MAAgBC;AAAA,UAC5B,SAASI;AAAA,UAET,4BAACe,GAAA,CAAA,CAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtB,gBAAAR;AAAA,QAACF,EAAW;AAAA,QAAX;AAAA,UACC,cAAYF,EAAE,sBAAsB;AAAA,UACpC,YAAYR,MAAgBC;AAAA,UAC5B,SAASK;AAAA,UAET,4BAACe,GAAA,CAAA,CAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF,IAzDO;AA2DX,GAGaC,IAAoB,CAACC,MAAkC;AAClE,QAAMb,IAAaC,EAAA;AAEnB,SAAOD,EAAW,oBAChB,gBAAAE,EAACF,EAAW,mBAAX,EAA8B,GAAGa,EAAA,CAAO,IAEzC,gBAAAX,EAACb,GAAA,EAA0B,GAAGwB,EAAA,CAAO;AAEzC;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as l } from "react/jsx-runtime";
|
|
2
2
|
import h from "classnames";
|
|
3
|
-
import { Flex as u } from "../../Flex/Flex.js";
|
|
4
3
|
import { BreadcrumbsDefaults as C } from "./BreadcrumbsTypes.js";
|
|
5
4
|
import i from "./Breadcrumbs.module.scss.js";
|
|
6
5
|
import { applyMissingDefaults as x } from "../../../../helpers/applyMissingDefaults.js";
|
|
6
|
+
import { Flex as u } from "../../Flex/Flex.js";
|
|
7
7
|
function P(f) {
|
|
8
8
|
const p = x(f, C), {
|
|
9
9
|
className: s,
|
|
@@ -7,13 +7,13 @@ import { FileInputDefaults as K } from "./FileInputTypes.js";
|
|
|
7
7
|
import n from "./FileInput.module.scss.js";
|
|
8
8
|
import { applyMissingDefaults as L } from "../../../../helpers/applyMissingDefaults.js";
|
|
9
9
|
import { FieldLayout as O } from "../../FieldLayout/FieldLayout.js";
|
|
10
|
-
import { Flex as y } from "../../Flex/Flex.js";
|
|
11
10
|
import { ButtonIcon as R } from "../Button/ButtonIcon.js";
|
|
12
11
|
import W from "../../../../assets/icons/icon-trashcan.svg.js";
|
|
13
12
|
import Z from "../../../../assets/icons/icon-file-outline.svg.js";
|
|
14
13
|
import $ from "../../../../assets/icons/icon-file-pdf.svg.js";
|
|
15
14
|
import H from "../../../../assets/icons/icon-file-png.svg.js";
|
|
16
15
|
import V from "../../../../assets/icons/icon-file-jpg.svg.js";
|
|
16
|
+
import { Flex as y } from "../../Flex/Flex.js";
|
|
17
17
|
function Q(i) {
|
|
18
18
|
return i === "application/pdf" ? $ : i === "image/png" ? H : i === "image/jpeg" || i === "image/jpg" ? V : Z;
|
|
19
19
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import c from "classnames";
|
|
3
|
-
import
|
|
4
|
-
import p from "
|
|
3
|
+
import n from "./ProgressBar.module.scss.js";
|
|
4
|
+
import { Flex as p } from "../../Flex/Flex.js";
|
|
5
5
|
import { VisuallyHidden as d } from "../../VisuallyHidden/VisuallyHidden.js";
|
|
6
6
|
function y({
|
|
7
7
|
className: i,
|
|
@@ -13,9 +13,9 @@ function y({
|
|
|
13
13
|
const s = Math.max(1, Math.min(m, e)), l = {
|
|
14
14
|
"--g-progress-bar-width": `${s * 100 / e}%`
|
|
15
15
|
};
|
|
16
|
-
return /* @__PURE__ */ t(
|
|
16
|
+
return /* @__PURE__ */ t(p, { flexDirection: "column", children: [
|
|
17
17
|
o && /* @__PURE__ */ r(o, {}),
|
|
18
|
-
/* @__PURE__ */ r("div", { className: c(
|
|
18
|
+
/* @__PURE__ */ r("div", { className: c(n.root, i), style: l, children: /* @__PURE__ */ r(d, { children: /* @__PURE__ */ r("progress", { "aria-label": a, value: s, max: e }) }) })
|
|
19
19
|
] });
|
|
20
20
|
}
|
|
21
21
|
export {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { createMachine as p } from "robot3";
|
|
3
|
+
import { useState as h, useMemo as S } from "react";
|
|
4
|
+
import { usePaySchedulesGetAllSuspense as d } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
|
|
5
|
+
import { payScheduleManagementStateMachine as f } from "./payScheduleManagementStateMachine.js";
|
|
6
|
+
import { PayScheduleOverviewContextual as y, PayScheduleEditFormContextual as C } from "./PayScheduleManagementComponents.js";
|
|
7
|
+
import { BaseComponent as P } from "../../../Base/Base.js";
|
|
8
|
+
import { useBase as g } from "../../../Base/useBase.js";
|
|
9
|
+
import { useI18n as u, useComponentDictionary as v } from "../../../../i18n/I18n.js";
|
|
10
|
+
import { Flow as w } from "../../../Flow/Flow.js";
|
|
11
|
+
import { useUnstableFeature as M } from "../../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
|
|
12
|
+
const k = ({
|
|
13
|
+
companyId: e,
|
|
14
|
+
enableAutoPilot: t,
|
|
15
|
+
enableMultipleSchedules: o,
|
|
16
|
+
dictionary: a,
|
|
17
|
+
...r
|
|
18
|
+
}) => (M("managePaySchedules", { throwIfDisabled: !0 }), /* @__PURE__ */ m(P, { ...r, children: /* @__PURE__ */ m(
|
|
19
|
+
x,
|
|
20
|
+
{
|
|
21
|
+
companyId: e,
|
|
22
|
+
enableAutoPilot: t,
|
|
23
|
+
enableMultipleSchedules: o,
|
|
24
|
+
dictionary: a
|
|
25
|
+
}
|
|
26
|
+
) }));
|
|
27
|
+
function x({
|
|
28
|
+
companyId: e,
|
|
29
|
+
enableAutoPilot: t,
|
|
30
|
+
enableMultipleSchedules: o,
|
|
31
|
+
dictionary: a
|
|
32
|
+
}) {
|
|
33
|
+
u("Company.Management.PaySchedule"), v("Company.Management.PaySchedule", a), u("Company.PaySchedule");
|
|
34
|
+
const { onEvent: r } = g(), { data: c } = d({ companyId: e }), [{ initialState: i, initialComponent: s }] = h(() => {
|
|
35
|
+
const n = (c.payScheduleShowResponse?.length ?? 0) > 0;
|
|
36
|
+
return {
|
|
37
|
+
initialState: n ? "overview" : "createSchedule",
|
|
38
|
+
initialComponent: n ? y : C
|
|
39
|
+
};
|
|
40
|
+
}), l = S(
|
|
41
|
+
() => p(
|
|
42
|
+
i,
|
|
43
|
+
f,
|
|
44
|
+
(n) => ({
|
|
45
|
+
...n,
|
|
46
|
+
component: s,
|
|
47
|
+
companyId: e,
|
|
48
|
+
enableAutoPilot: t,
|
|
49
|
+
enableMultipleSchedules: o,
|
|
50
|
+
successAlert: null
|
|
51
|
+
})
|
|
52
|
+
),
|
|
53
|
+
[e, t, o, i, s]
|
|
54
|
+
);
|
|
55
|
+
return /* @__PURE__ */ m(w, { machine: l, onEvent: r });
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
k as PaySchedule
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=PaySchedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaySchedule.js","sources":["../../../../../src/components/Company/PaySchedule/management/PaySchedule.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMemo, useState } from 'react'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { payScheduleManagementStateMachine } from './payScheduleManagementStateMachine'\nimport type { PayScheduleManagementContextInterface } from './PayScheduleManagementComponents'\nimport {\n PayScheduleOverviewContextual,\n PayScheduleEditFormContextual,\n} from './PayScheduleManagementComponents'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { BaseComponent, useBase } from '@/components/Base'\nimport type { BaseComponentKeys } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { Flow } from '@/components/Flow/Flow'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\n\n/**\n * Props for {@link PaySchedule}.\n *\n * @alpha\n */\nexport interface PayScheduleProps extends BaseComponentInterface<'Company.Management.PaySchedule'> {\n /** Company whose pay schedule is managed. */\n companyId: string\n /** Shows the AutoPilot row and its Edit action. */\n enableAutoPilot?: boolean\n /** Shows the Manage action. */\n enableMultipleSchedules?: boolean\n}\n\n/**\n * Manages a company's pay schedule after onboarding.\n *\n * @remarks\n * Renders the overview when the company already has a pay schedule, or the create form\n * directly when it doesn't.\n *\n * @alpha\n */\nexport const PaySchedule = ({\n companyId,\n enableAutoPilot,\n enableMultipleSchedules,\n dictionary,\n ...props\n}: PayScheduleProps) => {\n useUnstableFeature('managePaySchedules', { throwIfDisabled: true })\n\n return (\n <BaseComponent {...props}>\n <Root\n companyId={companyId}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n dictionary={dictionary}\n />\n </BaseComponent>\n )\n}\n\nfunction Root({\n companyId,\n enableAutoPilot,\n enableMultipleSchedules,\n dictionary,\n}: Omit<PayScheduleProps, BaseComponentKeys>) {\n useI18n('Company.Management.PaySchedule')\n useComponentDictionary('Company.Management.PaySchedule', dictionary)\n // PayScheduleEditFormContextual reuses the onboarding PayScheduleForm, whose translations\n // live under its own namespace and are otherwise never loaded from this flow.\n useI18n('Company.PaySchedule')\n const { onEvent } = useBase()\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({ companyId })\n\n /**\n * Freeze the initial routing decision. Recomputing it after a later refetch (e.g. once the\n * first schedule is created) would re-seat the machine and orphan its interpreter.\n */\n const [{ initialState, initialComponent }] = useState<{\n initialState: keyof typeof payScheduleManagementStateMachine\n initialComponent: typeof PayScheduleOverviewContextual | typeof PayScheduleEditFormContextual\n }>(() => {\n const hasSchedules = (paySchedules.payScheduleShowResponse?.length ?? 0) > 0\n return {\n initialState: hasSchedules ? 'overview' : 'createSchedule',\n initialComponent: hasSchedules\n ? PayScheduleOverviewContextual\n : PayScheduleEditFormContextual,\n }\n })\n\n const machine = useMemo(\n () =>\n createMachine(\n initialState,\n payScheduleManagementStateMachine,\n (initialContext: PayScheduleManagementContextInterface) => ({\n ...initialContext,\n component: initialComponent,\n companyId,\n enableAutoPilot,\n enableMultipleSchedules,\n successAlert: null,\n }),\n ),\n [companyId, enableAutoPilot, enableMultipleSchedules, initialState, initialComponent],\n )\n\n return <Flow machine={machine} onEvent={onEvent} />\n}\n"],"names":["PaySchedule","companyId","enableAutoPilot","enableMultipleSchedules","dictionary","props","useUnstableFeature","jsx","BaseComponent","Root","useI18n","useComponentDictionary","onEvent","useBase","paySchedules","usePaySchedulesGetAllSuspense","initialState","initialComponent","useState","hasSchedules","PayScheduleOverviewContextual","PayScheduleEditFormContextual","machine","useMemo","createMachine","payScheduleManagementStateMachine","initialContext","Flow"],"mappings":";;;;;;;;;;;AAwCO,MAAMA,IAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,OACEC,EAAmB,sBAAsB,EAAE,iBAAiB,GAAA,CAAM,GAGhE,gBAAAC,EAACC,GAAA,EAAe,GAAGH,GACjB,UAAA,gBAAAE;AAAA,EAACE;AAAA,EAAA;AAAA,IACC,WAAAR;AAAA,IACA,iBAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,YAAAC;AAAA,EAAA;AAAA,GAEJ;AAIJ,SAASK,EAAK;AAAA,EACZ,WAAAR;AAAA,EACA,iBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,YAAAC;AACF,GAA8C;AAC5C,EAAAM,EAAQ,gCAAgC,GACxCC,EAAuB,kCAAkCP,CAAU,GAGnEM,EAAQ,qBAAqB;AAC7B,QAAM,EAAE,SAAAE,EAAA,IAAYC,EAAA,GACd,EAAE,MAAMC,EAAA,IAAiBC,EAA8B,EAAE,WAAAd,GAAW,GAMpE,CAAC,EAAE,cAAAe,GAAc,kBAAAC,GAAkB,IAAIC,EAG1C,MAAM;AACP,UAAMC,KAAgBL,EAAa,yBAAyB,UAAU,KAAK;AAC3E,WAAO;AAAA,MACL,cAAcK,IAAe,aAAa;AAAA,MAC1C,kBAAkBA,IACdC,IACAC;AAAA,IAAA;AAAA,EAER,CAAC,GAEKC,IAAUC;AAAA,IACd,MACEC;AAAA,MACER;AAAA,MACAS;AAAA,MACA,CAACC,OAA2D;AAAA,QAC1D,GAAGA;AAAA,QACH,WAAWT;AAAA,QACX,WAAAhB;AAAA,QACA,iBAAAC;AAAA,QACA,yBAAAC;AAAA,QACA,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,IAEJ,CAACF,GAAWC,GAAiBC,GAAyBa,GAAcC,CAAgB;AAAA,EAAA;AAGtF,SAAO,gBAAAV,EAACoB,GAAA,EAAK,SAAAL,GAAkB,SAAAV,EAAA,CAAkB;AACnD;"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsxs as s, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as l } from "react-i18next";
|
|
3
|
+
import { Flex as d } from "../../../../Common/Flex/Flex.js";
|
|
4
|
+
import { ActionsLayout as m } from "../../../../Common/ActionsLayout/ActionsLayout.js";
|
|
5
|
+
import { useComponentContext as p } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
+
import { useDateFormatter as y } from "../../../../../hooks/useDateFormatter.js";
|
|
7
|
+
import { useDataView as P } from "../../../../Common/DataView/useDataView.js";
|
|
8
|
+
import { DataView as c } from "../../../../Common/DataView/DataView.js";
|
|
9
|
+
function f({
|
|
10
|
+
employeeChanges: r
|
|
11
|
+
}) {
|
|
12
|
+
const { t } = l("Company.Management.PayScheduleAssignment"), a = y(), o = P({
|
|
13
|
+
data: r,
|
|
14
|
+
columns: [
|
|
15
|
+
{
|
|
16
|
+
title: t("reviewStep.nameLabel"),
|
|
17
|
+
key: "firstName",
|
|
18
|
+
render: (e) => [e.firstName, e.lastName].filter(Boolean).join(" ")
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
title: t("reviewStep.payFrequencyLabel"),
|
|
22
|
+
key: "payFrequency",
|
|
23
|
+
render: (e) => e.payFrequency
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: t("reviewStep.firstPayPeriodLabel"),
|
|
27
|
+
key: "firstPayPeriod",
|
|
28
|
+
render: (e) => e.firstPayPeriod ? a.formatPayPeriodRange(
|
|
29
|
+
e.firstPayPeriod.startDate,
|
|
30
|
+
e.firstPayPeriod.endDate
|
|
31
|
+
) : null
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: t("reviewStep.transitionPayPeriodLabel"),
|
|
35
|
+
key: "transitionPayPeriod",
|
|
36
|
+
render: (e) => e.transitionPayPeriod ? a.formatPayPeriodRange(
|
|
37
|
+
e.transitionPayPeriod.startDate,
|
|
38
|
+
e.transitionPayPeriod.endDate
|
|
39
|
+
) : t("reviewStep.noTransitionNeeded")
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
});
|
|
43
|
+
return /* @__PURE__ */ i(c, { label: t("reviewStep.employeeChangesHeading"), ...o });
|
|
44
|
+
}
|
|
45
|
+
function b({
|
|
46
|
+
employeeChanges: r,
|
|
47
|
+
isSubmitting: t,
|
|
48
|
+
onBack: a,
|
|
49
|
+
onSubmit: o
|
|
50
|
+
}) {
|
|
51
|
+
const { t: e } = l("Company.Management.PayScheduleAssignment"), n = p();
|
|
52
|
+
return /* @__PURE__ */ s(d, { flexDirection: "column", gap: 32, children: [
|
|
53
|
+
/* @__PURE__ */ i(n.Heading, { as: "h2", children: r.length === 0 ? e("reviewStep.noChangesHeading") : e("reviewStep.heading") }),
|
|
54
|
+
r.length === 0 ? /* @__PURE__ */ i(n.Text, { variant: "supporting", children: e("reviewStep.noChangesDescription") }) : /* @__PURE__ */ s(d, { flexDirection: "column", gap: 16, children: [
|
|
55
|
+
/* @__PURE__ */ i(n.Text, { weight: "semibold", children: e("reviewStep.employeeChangesHeading") }),
|
|
56
|
+
/* @__PURE__ */ i(f, { employeeChanges: r })
|
|
57
|
+
] }),
|
|
58
|
+
/* @__PURE__ */ s(m, { children: [
|
|
59
|
+
/* @__PURE__ */ i(n.Button, { variant: "secondary", onClick: a, isDisabled: t, children: e("backCta") }),
|
|
60
|
+
/* @__PURE__ */ i(n.Button, { variant: "primary", onClick: o, isLoading: t, children: e("submitCta") })
|
|
61
|
+
] })
|
|
62
|
+
] });
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
b as AssignmentReviewStepPresentation
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=AssignmentReviewStepPresentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssignmentReviewStepPresentation.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentReviewStepPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { PayScheduleAssignmentEmployeeChange } from '@gusto/embedded-api/models/components/payscheduleassignmentemployeechange'\nimport { Flex, ActionsLayout, DataView, useDataView } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/** @internal */\nexport interface AssignmentReviewStepPresentationProps {\n employeeChanges: PayScheduleAssignmentEmployeeChange[]\n isSubmitting: boolean\n onBack: () => void\n onSubmit: () => void\n}\n\nfunction EmployeeChangesTable({\n employeeChanges,\n}: {\n employeeChanges: PayScheduleAssignmentEmployeeChange[]\n}) {\n const { t } = useTranslation('Company.Management.PayScheduleAssignment')\n const dateFormatter = useDateFormatter()\n\n const dataViewProps = useDataView({\n data: employeeChanges,\n columns: [\n {\n title: t('reviewStep.nameLabel'),\n key: 'firstName',\n render: change => [change.firstName, change.lastName].filter(Boolean).join(' '),\n },\n {\n title: t('reviewStep.payFrequencyLabel'),\n key: 'payFrequency',\n render: change => change.payFrequency,\n },\n {\n title: t('reviewStep.firstPayPeriodLabel'),\n key: 'firstPayPeriod',\n render: change =>\n change.firstPayPeriod\n ? dateFormatter.formatPayPeriodRange(\n change.firstPayPeriod.startDate,\n change.firstPayPeriod.endDate,\n )\n : null,\n },\n {\n title: t('reviewStep.transitionPayPeriodLabel'),\n key: 'transitionPayPeriod',\n render: change =>\n change.transitionPayPeriod\n ? dateFormatter.formatPayPeriodRange(\n change.transitionPayPeriod.startDate,\n change.transitionPayPeriod.endDate,\n )\n : t('reviewStep.noTransitionNeeded'),\n },\n ],\n })\n\n return <DataView label={t('reviewStep.employeeChangesHeading')} {...dataViewProps} />\n}\n\n/** @internal */\nexport function AssignmentReviewStepPresentation({\n employeeChanges,\n isSubmitting,\n onBack,\n onSubmit,\n}: AssignmentReviewStepPresentationProps) {\n const { t } = useTranslation('Company.Management.PayScheduleAssignment')\n const Components = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Components.Heading as=\"h2\">\n {employeeChanges.length === 0 ? t('reviewStep.noChangesHeading') : t('reviewStep.heading')}\n </Components.Heading>\n {employeeChanges.length === 0 ? (\n <Components.Text variant=\"supporting\">\n {t('reviewStep.noChangesDescription')}\n </Components.Text>\n ) : (\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Text weight=\"semibold\">\n {t('reviewStep.employeeChangesHeading')}\n </Components.Text>\n <EmployeeChangesTable employeeChanges={employeeChanges} />\n </Flex>\n )}\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={onBack} isDisabled={isSubmitting}>\n {t('backCta')}\n </Components.Button>\n <Components.Button variant=\"primary\" onClick={onSubmit} isLoading={isSubmitting}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n )\n}\n"],"names":["EmployeeChangesTable","employeeChanges","useTranslation","dateFormatter","useDateFormatter","dataViewProps","useDataView","change","DataView","AssignmentReviewStepPresentation","isSubmitting","onBack","onSubmit","t","Components","useComponentContext","jsxs","Flex","jsx","ActionsLayout"],"mappings":";;;;;;;;AAcA,SAASA,EAAqB;AAAA,EAC5B,iBAAAC;AACF,GAEG;AACD,QAAM,EAAE,EAAA,IAAMC,EAAe,0CAA0C,GACjEC,IAAgBC,EAAA,GAEhBC,IAAgBC,EAAY;AAAA,IAChC,MAAML;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,OAAO,EAAE,sBAAsB;AAAA,QAC/B,KAAK;AAAA,QACL,QAAQ,CAAAM,MAAU,CAACA,EAAO,WAAWA,EAAO,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAAA;AAAA,MAEhF;AAAA,QACE,OAAO,EAAE,8BAA8B;AAAA,QACvC,KAAK;AAAA,QACL,QAAQ,OAAUA,EAAO;AAAA,MAAA;AAAA,MAE3B;AAAA,QACE,OAAO,EAAE,gCAAgC;AAAA,QACzC,KAAK;AAAA,QACL,QAAQ,CAAAA,MACNA,EAAO,iBACHJ,EAAc;AAAA,UACZI,EAAO,eAAe;AAAA,UACtBA,EAAO,eAAe;AAAA,QAAA,IAExB;AAAA,MAAA;AAAA,MAER;AAAA,QACE,OAAO,EAAE,qCAAqC;AAAA,QAC9C,KAAK;AAAA,QACL,QAAQ,CAAAA,MACNA,EAAO,sBACHJ,EAAc;AAAA,UACZI,EAAO,oBAAoB;AAAA,UAC3BA,EAAO,oBAAoB;AAAA,QAAA,IAE7B,EAAE,+BAA+B;AAAA,MAAA;AAAA,IACzC;AAAA,EACF,CACD;AAED,2BAAQC,GAAA,EAAS,OAAO,EAAE,mCAAmC,GAAI,GAAGH,GAAe;AACrF;AAGO,SAASI,EAAiC;AAAA,EAC/C,iBAAAR;AAAA,EACA,cAAAS;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,GAA0C;AACxC,QAAM,EAAE,GAAAC,EAAA,IAAMX,EAAe,0CAA0C,GACjEY,IAAaC,EAAA;AAEnB,SACE,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAC,EAACJ,EAAW,SAAX,EAAmB,IAAG,MACpB,UAAAb,EAAgB,WAAW,IAAIY,EAAE,6BAA6B,IAAIA,EAAE,oBAAoB,GAC3F;AAAA,IACCZ,EAAgB,WAAW,sBACzBa,EAAW,MAAX,EAAgB,SAAQ,cACtB,UAAAD,EAAE,iCAAiC,GACtC,IAEA,gBAAAG,EAACC,KAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,MAAA,gBAAAC,EAACJ,EAAW,MAAX,EAAgB,QAAO,YACrB,UAAAD,EAAE,mCAAmC,GACxC;AAAA,MACA,gBAAAK,EAAClB,KAAqB,iBAAAC,EAAA,CAAkC;AAAA,IAAA,GAC1D;AAAA,sBAEDkB,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAD,EAACJ,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASH,GAAQ,YAAYD,GACjE,UAAAG,EAAE,SAAS,EAAA,CACd;AAAA,MACA,gBAAAK,EAACJ,EAAW,QAAX,EAAkB,SAAQ,WAAU,SAASF,GAAU,WAAWF,GAChE,UAAAG,EAAE,WAAW,EAAA,CAChB;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { z as l } from "zod";
|
|
3
|
+
import { useForm as h, FormProvider as f } from "react-hook-form";
|
|
4
|
+
import { zodResolver as S } from "@hookform/resolvers/zod";
|
|
5
|
+
import { useTranslation as y } from "react-i18next";
|
|
6
|
+
import { Flex as d } from "../../../../Common/Flex/Flex.js";
|
|
7
|
+
import { ActionsLayout as b } from "../../../../Common/ActionsLayout/ActionsLayout.js";
|
|
8
|
+
import { Form as g } from "../../../../Common/Form/Form.js";
|
|
9
|
+
import { useComponentContext as v } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
10
|
+
import { SelectField as C } from "../../../../Common/Fields/SelectField/SelectField.js";
|
|
11
|
+
const P = l.object({
|
|
12
|
+
defaultPayScheduleUuid: l.string().min(1)
|
|
13
|
+
});
|
|
14
|
+
function x(t) {
|
|
15
|
+
return [t.customName, t.frequency].filter(Boolean).join(" — ");
|
|
16
|
+
}
|
|
17
|
+
function q({
|
|
18
|
+
schedules: t,
|
|
19
|
+
defaultPayScheduleUuid: c,
|
|
20
|
+
onBack: u,
|
|
21
|
+
onAddPaySchedule: m,
|
|
22
|
+
onContinue: s
|
|
23
|
+
}) {
|
|
24
|
+
const { t: o } = y("Company.Management.PayScheduleAssignment"), n = v(), a = h({
|
|
25
|
+
resolver: S(P),
|
|
26
|
+
defaultValues: { defaultPayScheduleUuid: c ?? t[0]?.uuid ?? "" }
|
|
27
|
+
}), p = a.handleSubmit(({ defaultPayScheduleUuid: i }) => {
|
|
28
|
+
s(i);
|
|
29
|
+
});
|
|
30
|
+
return /* @__PURE__ */ e(f, { ...a, children: /* @__PURE__ */ e(g, { onSubmit: () => {
|
|
31
|
+
p();
|
|
32
|
+
}, children: /* @__PURE__ */ r(d, { flexDirection: "column", gap: 32, children: [
|
|
33
|
+
/* @__PURE__ */ e(n.Heading, { as: "h2", children: o("scheduleStep.heading") }),
|
|
34
|
+
/* @__PURE__ */ r(d, { flexDirection: "column", gap: 12, children: [
|
|
35
|
+
/* @__PURE__ */ e(
|
|
36
|
+
C,
|
|
37
|
+
{
|
|
38
|
+
name: "defaultPayScheduleUuid",
|
|
39
|
+
label: o("scheduleStep.payScheduleLabel"),
|
|
40
|
+
description: o("scheduleStep.payScheduleDescription"),
|
|
41
|
+
placeholder: "",
|
|
42
|
+
options: t.map((i) => ({
|
|
43
|
+
value: i.uuid,
|
|
44
|
+
label: x(i)
|
|
45
|
+
}))
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(n.Button, { variant: "secondary", onClick: m, children: o("scheduleStep.addPayScheduleCta") }) })
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ r(b, { children: [
|
|
51
|
+
/* @__PURE__ */ e(n.Button, { variant: "secondary", onClick: u, children: o("backCta") }),
|
|
52
|
+
/* @__PURE__ */ e(n.Button, { variant: "primary", type: "submit", isDisabled: t.length === 0, children: o("continueCta") })
|
|
53
|
+
] })
|
|
54
|
+
] }) }) });
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
q as AssignmentScheduleStepPresentation
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=AssignmentScheduleStepPresentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssignmentScheduleStepPresentation.js","sources":["../../../../../../src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { useForm, FormProvider } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTranslation } from 'react-i18next'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { Flex, SelectField, ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport interface AssignmentScheduleStepPresentationProps {\n schedules: PayScheduleShow[]\n defaultPayScheduleUuid?: string\n onBack: () => void\n onAddPaySchedule: () => void\n onContinue: (defaultPayScheduleUuid: string) => void\n}\n\nconst ScheduleStepSchema = z.object({\n defaultPayScheduleUuid: z.string().min(1),\n})\n\ntype ScheduleStepInputs = z.infer<typeof ScheduleStepSchema>\n\nfunction scheduleLabel(schedule: PayScheduleShow): string {\n return [schedule.customName, schedule.frequency].filter(Boolean).join(' — ')\n}\n\n/** @internal */\nexport function AssignmentScheduleStepPresentation({\n schedules,\n defaultPayScheduleUuid,\n onBack,\n onAddPaySchedule,\n onContinue,\n}: AssignmentScheduleStepPresentationProps) {\n const { t } = useTranslation('Company.Management.PayScheduleAssignment')\n const Components = useComponentContext()\n\n const formMethods = useForm<ScheduleStepInputs>({\n resolver: zodResolver(ScheduleStepSchema),\n defaultValues: { defaultPayScheduleUuid: defaultPayScheduleUuid ?? schedules[0]?.uuid ?? '' },\n })\n\n const handleSubmit = formMethods.handleSubmit(({ defaultPayScheduleUuid: uuid }) => {\n onContinue(uuid)\n })\n\n return (\n <FormProvider {...formMethods}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\" gap={32}>\n <Components.Heading as=\"h2\">{t('scheduleStep.heading')}</Components.Heading>\n <Flex flexDirection=\"column\" gap={12}>\n <SelectField\n name=\"defaultPayScheduleUuid\"\n label={t('scheduleStep.payScheduleLabel')}\n description={t('scheduleStep.payScheduleDescription')}\n placeholder=\"\"\n options={schedules.map(schedule => ({\n value: schedule.uuid,\n label: scheduleLabel(schedule),\n }))}\n />\n <div>\n <Components.Button variant=\"secondary\" onClick={onAddPaySchedule}>\n {t('scheduleStep.addPayScheduleCta')}\n </Components.Button>\n </div>\n </Flex>\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={onBack}>\n {t('backCta')}\n </Components.Button>\n <Components.Button variant=\"primary\" type=\"submit\" isDisabled={schedules.length === 0}>\n {t('continueCta')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n </Form>\n </FormProvider>\n )\n}\n"],"names":["ScheduleStepSchema","z","scheduleLabel","schedule","AssignmentScheduleStepPresentation","schedules","defaultPayScheduleUuid","onBack","onAddPaySchedule","onContinue","t","useTranslation","Components","useComponentContext","formMethods","useForm","zodResolver","handleSubmit","uuid","FormProvider","jsx","Form","jsxs","Flex","SelectField","ActionsLayout"],"mappings":";;;;;;;;;;AAkBA,MAAMA,IAAqBC,EAAE,OAAO;AAAA,EAClC,wBAAwBA,EAAE,OAAA,EAAS,IAAI,CAAC;AAC1C,CAAC;AAID,SAASC,EAAcC,GAAmC;AACxD,SAAO,CAACA,EAAS,YAAYA,EAAS,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK;AAC7E;AAGO,SAASC,EAAmC;AAAA,EACjD,WAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAC;AACF,GAA4C;AAC1C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,0CAA0C,GACjEC,IAAaC,EAAA,GAEbC,IAAcC,EAA4B;AAAA,IAC9C,UAAUC,EAAYhB,CAAkB;AAAA,IACxC,eAAe,EAAE,wBAAwBM,KAA0BD,EAAU,CAAC,GAAG,QAAQ,GAAA;AAAA,EAAG,CAC7F,GAEKY,IAAeH,EAAY,aAAa,CAAC,EAAE,wBAAwBI,QAAW;AAClF,IAAAT,EAAWS,CAAI;AAAA,EACjB,CAAC;AAED,2BACGC,GAAA,EAAc,GAAGL,GAChB,UAAA,gBAAAM,EAACC,KAAK,UAAU,MAAA;AAAM,IAAKJ;KACzB,UAAA,gBAAAK,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAH,EAACR,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAF,EAAE,sBAAsB,GAAE;AAAA,IACvD,gBAAAY,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAOd,EAAE,+BAA+B;AAAA,UACxC,aAAaA,EAAE,qCAAqC;AAAA,UACpD,aAAY;AAAA,UACZ,SAASL,EAAU,IAAI,CAAAF,OAAa;AAAA,YAClC,OAAOA,EAAS;AAAA,YAChB,OAAOD,EAAcC,CAAQ;AAAA,UAAA,EAC7B;AAAA,QAAA;AAAA,MAAA;AAAA,MAEJ,gBAAAiB,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACR,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASJ,GAC7C,UAAAE,EAAE,gCAAgC,GACrC,EAAA,CACF;AAAA,IAAA,GACF;AAAA,sBACCe,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAL,EAACR,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASL,GAC7C,UAAAG,EAAE,SAAS,EAAA,CACd;AAAA,MACA,gBAAAU,EAACR,EAAW,QAAX,EAAkB,SAAQ,WAAU,MAAK,UAAS,YAAYP,EAAU,WAAW,GACjF,UAAAK,EAAE,aAAa,EAAA,CAClB;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;"}
|