@gusto/embedded-react-sdk 0.37.0-rc.1 → 0.37.0
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 +44 -8
- package/README.md +6 -0
- package/dist/UNSTABLE_Hooks.d.ts +1 -1
- package/dist/UNSTABLE_Hooks.js +50 -6
- package/dist/UNSTABLE_Hooks.js.map +1 -1
- package/dist/components/Base/Base.d.ts +2 -1
- package/dist/components/Base/Base.js +78 -77
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Common/Fields/CheckboxField/CheckboxField.d.ts +2 -0
- package/dist/components/Common/Fields/CheckboxField/CheckboxField.js +17 -16
- package/dist/components/Common/Fields/CheckboxField/CheckboxField.js.map +1 -1
- package/dist/components/Common/Fields/DatePickerField/DatePickerField.d.ts +5 -3
- package/dist/components/Common/Fields/DatePickerField/DatePickerField.js +46 -36
- package/dist/components/Common/Fields/DatePickerField/DatePickerField.js.map +1 -1
- package/dist/components/Common/Fields/NumberInputField/NumberInputField.d.ts +2 -0
- package/dist/components/Common/Fields/NumberInputField/NumberInputField.js +21 -20
- package/dist/components/Common/Fields/NumberInputField/NumberInputField.js.map +1 -1
- package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.d.ts +3 -1
- package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js +20 -19
- package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js.map +1 -1
- package/dist/components/Common/Fields/SelectField/SelectField.d.ts +3 -1
- package/dist/components/Common/Fields/SelectField/SelectField.js +19 -18
- package/dist/components/Common/Fields/SelectField/SelectField.js.map +1 -1
- package/dist/components/Common/Fields/SwitchField/SwitchField.d.ts +2 -0
- package/dist/components/Common/Fields/SwitchField/SwitchField.js +19 -18
- package/dist/components/Common/Fields/SwitchField/SwitchField.js.map +1 -1
- package/dist/components/Common/Fields/TextInputField/TextInputField.d.ts +2 -0
- package/dist/components/Common/Fields/TextInputField/TextInputField.js +10 -9
- package/dist/components/Common/Fields/TextInputField/TextInputField.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +5 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +9 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +4 -5
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +9 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +11 -8
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +9 -6
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +9 -6
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +9 -6
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +15 -12
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +12 -9
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +9 -6
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +9 -6
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +9 -6
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Edit.js +9 -10
- package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.js +11 -8
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +9 -6
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +9 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +6 -7
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +11 -8
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +2 -3
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Profile/useContractorProfile.js +21 -16
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +14 -11
- package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +13 -10
- package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +6 -3
- package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
- package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +2 -3
- package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +9 -6
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +9 -6
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +9 -6
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +9 -6
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +11 -8
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/HomeAddress.d.ts +3 -3
- package/dist/components/Employee/Profile/HomeAddress.js +44 -43
- package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +14 -15
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
- package/dist/components/Employee/Profile/useProfile.js +9 -6
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/StateTaxes/useStateTaxes.js +9 -6
- package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
- package/dist/components/Employee/Taxes/useTaxes.js +9 -6
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +16 -13
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +2 -3
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +185 -177
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +2 -3
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +7 -5
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/UNSTABLE_Hooks/collectErrors.d.ts +6 -0
- package/dist/components/UNSTABLE_Hooks/collectErrors.js +9 -0
- package/dist/components/UNSTABLE_Hooks/collectErrors.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.d.ts +1 -1
- package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.js +3 -3
- package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.js.map +1 -1
- package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.d.ts +2 -2
- package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js +13 -0
- package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.d.ts +11 -6
- package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.js +24 -0
- package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.d.ts +26 -0
- package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.js +24 -0
- package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.d.ts +53 -0
- package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.js +34 -0
- package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.test.d.ts +1 -0
- package/dist/components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js +14 -0
- package/dist/components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.d.ts +9 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js +34 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.d.ts +9 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js +29 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.d.ts +12 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js +40 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.d.ts +10 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js +40 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.d.ts +10 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.js +40 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.d.ts +9 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.js +34 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.d.ts +11 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.js +38 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/fields/index.d.ts +15 -0
- package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.d.ts +2 -0
- package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.js +8 -0
- package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.d.ts +18 -0
- package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.js +10 -0
- package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.test.d.ts +1 -0
- package/dist/components/UNSTABLE_Hooks/form/index.d.ts +6 -1
- package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.d.ts +6 -0
- package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.js +14 -0
- package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/form/types.d.ts +12 -0
- package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.d.ts +2 -1
- package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.js +10 -8
- package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.js.map +1 -1
- package/dist/components/UNSTABLE_Hooks/form/useFieldsMetadata.d.ts +2 -2
- package/dist/components/UNSTABLE_Hooks/form/useFieldsMetadata.js.map +1 -1
- package/dist/components/UNSTABLE_Hooks/form/withOptions.js +7 -0
- package/dist/components/UNSTABLE_Hooks/form/withOptions.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.d.ts +5 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js +151 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.d.ts +97 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js +121 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.d.ts +34 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.js +50 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/index.d.ts +5 -1
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.d.ts +97 -9
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js +255 -3
- package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.d.ts +5 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js +114 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +39 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js +45 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.d.ts +23 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.js +46 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/index.d.ts +7 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +77 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js +153 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.d.ts +5 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js +71 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.d.ts +10 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.js +14 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/index.d.ts +7 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.d.ts +68 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js +129 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.d.ts +25 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js +24 -0
- package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/index.d.ts +8 -4
- package/dist/components/UNSTABLE_Hooks/types.d.ts +9 -6
- package/dist/components/UNSTABLE_Hooks/useErrorHandling.d.ts +9 -0
- package/dist/components/UNSTABLE_Hooks/useErrorHandling.js +12 -0
- package/dist/components/UNSTABLE_Hooks/useErrorHandling.js.map +1 -0
- package/dist/components/UNSTABLE_Hooks/useErrorHandling.test.d.ts +1 -0
- package/dist/helpers/requiredIf.d.ts +13 -0
- package/dist/helpers/requiredIf.js +8 -0
- package/dist/helpers/requiredIf.js.map +1 -0
- package/dist/i18n/I18n.js +5 -5
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/UNSTABLE.CompensationForm.json.js +58 -0
- package/dist/i18n/en/UNSTABLE.CompensationForm.json.js.map +1 -0
- package/dist/i18n/en/UNSTABLE.EmployeeDetailsForm.json.js +34 -0
- package/dist/i18n/en/UNSTABLE.EmployeeDetailsForm.json.js.map +1 -0
- package/dist/i18n/en/UNSTABLE.WorkAddressForm.json.js +24 -0
- package/dist/i18n/en/UNSTABLE.WorkAddressForm.json.js.map +1 -0
- package/dist/models/WA_RISK_CODES.d.ts +5 -2866
- package/dist/models/WA_RISK_CODES.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +117 -1
- package/dist/types/sdkError.d.ts +7 -1
- package/dist/types/sdkError.js.map +1 -1
- package/docs/reference/endpoint-inventory.json +92 -0
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -4,23 +4,59 @@
|
|
|
4
4
|
|
|
5
5
|
### Features & Enhancements
|
|
6
6
|
|
|
7
|
-
- Add
|
|
8
|
-
- Add
|
|
7
|
+
- Add core terminations functionality with DismissalFlow, DismissalPayPeriodSelection, and unused time off payout UI
|
|
8
|
+
- Add transition payroll support with TransitionCreation component, state machine, and landing page alert
|
|
9
|
+
- Embed DismissalFlow within TerminationFlow and add dismissal/transition states to payroll flows
|
|
10
|
+
- Show off-cycle payrolls in history tab and add off-cycle flow support with section dividers
|
|
9
11
|
- Introduce unified SDKError type and ObservabilityError extension
|
|
10
|
-
-
|
|
12
|
+
- Implement UNSTABLE_Hooks directory with uniform hook return types and form infrastructure
|
|
13
|
+
- Add useEmployeeDetailsForm hook with configurable required fields and NAME_REGEX validation
|
|
14
|
+
- Add useWorkAddressForm hook with prebuilt component
|
|
15
|
+
- Implement CompensationForm with useCompensationForm hook, including start date field and composeFormSchema alignment
|
|
16
|
+
- Add composeSubmitHandler for coordinated multi-form validation and cross-form focus management
|
|
17
|
+
- Add error code infrastructure, HookField reference components, and errorHandling pattern with retryQueries
|
|
18
|
+
- Add getFormSubmissionValues to form hooks
|
|
19
|
+
- Allow requiredFields to accept flat array or per-mode object
|
|
20
|
+
- Align hooks with stable component parity: optional employeeId with submit-time resolution, SwitchField FieldComponent support, requiredIf null coercion fix
|
|
21
|
+
- Add partner-facing hooks documentation
|
|
11
22
|
|
|
12
23
|
### Fixes
|
|
13
24
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- Fix hourly inputs visibility and payroll cache invalidation
|
|
25
|
+
- Hide courtesy withholding checkbox from employee view
|
|
26
|
+
- Strip finalPayoutUnusedHoursInput from PTO on non-dismissal payrolls
|
|
17
27
|
- Include off-cycle and external payrolls in list and history views
|
|
28
|
+
- Only show hourly inputs for primary jobs with hourly compensations
|
|
29
|
+
- Fix off-cycle, dismissal, and transition payroll bugs
|
|
30
|
+
- Invalidate payroll-prepare cache after editing employee hours
|
|
31
|
+
- Improve PayrollConfiguration calculate/polling flow
|
|
32
|
+
- Mark dismissal pay period select as required
|
|
33
|
+
- Default employee selection to select-employees mode
|
|
34
|
+
- Convert throw sites in new components to SDKInternalError
|
|
18
35
|
|
|
19
36
|
### Chores & Maintenance
|
|
20
37
|
|
|
21
|
-
-
|
|
38
|
+
- Refactor Base infrastructure for hooks compatibility
|
|
39
|
+
- Payroll test infrastructure and label cleanup
|
|
40
|
+
- Add E2E tests for DismissalFlow and transition payroll
|
|
41
|
+
- Add Storybook stories for offcycle components
|
|
42
|
+
- Add workflow_dispatch trigger and CI badge to README
|
|
43
|
+
- Disable e2e tests in GitHub Actions
|
|
22
44
|
- Fix minimatch ReDoS vulnerability (CVE-2026-27903)
|
|
23
|
-
-
|
|
45
|
+
- Upgrade react-robot from 1.2.0 to 1.2.1
|
|
46
|
+
- Bump react-hook-form from 7.71.2 to 7.72.0
|
|
47
|
+
- Bump react-i18next from 16.5.8 to 16.6.6
|
|
48
|
+
- Bump i18next from 25.8.18 to 25.10.4
|
|
49
|
+
- Bump @storybook/react-vite from 10.2.19 to 10.3.1
|
|
50
|
+
- Bump @storybook/addon-docs from 10.2.19 to 10.3.3
|
|
51
|
+
- Bump @storybook/addon-a11y from 10.2.19 to 10.3.3
|
|
52
|
+
- Bump @storybook/addon-onboarding from 10.2.19 to 10.3.3
|
|
53
|
+
- Bump storybook from 10.3.0 to 10.3.1
|
|
54
|
+
- Bump eslint-plugin-storybook from 10.2.19 to 10.3.3
|
|
55
|
+
- Bump @storybook/test-runner from 0.24.2 to 0.24.3
|
|
56
|
+
- Bump @vitest/coverage-v8 from 4.1.0 to 4.1.1
|
|
57
|
+
- Bump vite-plugin-stylelint from 6.0.4 to 6.1.0
|
|
58
|
+
- Bump msw from 2.12.12 to 2.12.14
|
|
59
|
+
- Bump flatted from 3.3.3 to 3.4.2
|
|
24
60
|
|
|
25
61
|
## 0.36.0
|
|
26
62
|
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 🦎 Gusto Embedded React SDK
|
|
2
2
|
|
|
3
|
+
[](https://github.com/Gusto/embedded-react-sdk/actions/workflows/ci.yaml)
|
|
4
|
+
|
|
3
5
|
To install:
|
|
4
6
|
|
|
5
7
|
```
|
|
@@ -46,3 +48,7 @@ Live documentation is available at: https://docs.gusto.com/embedded-payroll/docs
|
|
|
46
48
|
- [Employee Onboarding](docs/workflows-overview/employee-onboarding/employee-onboarding.md)
|
|
47
49
|
- [Employee Self-Onboarding](docs/workflows-overview/employee-onboarding/employee-self-onboarding.md)
|
|
48
50
|
- [Run Payroll](docs/workflows-overview/run-payroll.md)
|
|
51
|
+
- [Hooks (Experimental)](docs/hooks/hooks.md)
|
|
52
|
+
- [useEmployeeDetailsForm](docs/hooks/useEmployeeDetailsForm.md)
|
|
53
|
+
- [useCompensationForm](docs/hooks/useCompensationForm.md)
|
|
54
|
+
- [useWorkAddressForm](docs/hooks/useWorkAddressForm.md)
|
package/dist/UNSTABLE_Hooks.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { useCompensationForm, type UseCompensationFormProps, type UseCompensationFormResult, type UseCompensationFormReady, type HookLoadingResult, type
|
|
1
|
+
export { useCompensationForm, CompensationForm, CompensationErrorCodes, type CompensationFormProps, type CompensationSubmitCallbacks, type CompensationSubmitOptions, type CompensationRequiredFields, type UseCompensationFormProps, type UseCompensationFormResult, type UseCompensationFormReady, type CompensationFieldsMetadata, type CompensationFormFields, type CompensationErrorCode, type CompensationField, type CompensationFormData, type CompensationFormOutputs, type RequiredValidation, type RateValidation, type StartDateFieldProps, type JobTitleFieldProps, type FlsaStatusFieldProps, type RateFieldProps, type PaymentUnitFieldProps, type AdjustForMinimumWageFieldProps, type MinimumWageIdFieldProps, type TwoPercentShareholderFieldProps, type StateWcCoveredFieldProps, type StateWcClassCodeFieldProps, SDKFormProvider, FormFieldsMetadataProvider, composeSubmitHandler, useFieldsMetadata, useFieldErrorMessage, withOptions, deriveFieldsMetadata, collectErrors, TextInputHookField, SelectHookField, CheckboxHookField, NumberInputHookField, DatePickerHookField, RadioGroupHookField, useErrorHandling, type HookFormInternals, type HookLoadingResult, type HookSubmitResult, type HookErrorHandling, type BaseHookReady, type BaseFormHookReady, type FieldMetadata, type FieldMetadataWithOptions, type FieldsMetadata, type FormFieldsMetadataContextValue, type ValidationMessages, type BaseFieldProps, type TextInputHookFieldProps, type SelectHookFieldProps, type CheckboxHookFieldProps, type NumberInputHookFieldProps, type DatePickerHookFieldProps, type RadioGroupHookFieldProps, type TextInputProps, type SelectProps, type SelectOption, type CheckboxProps, type NumberInputProps, type DatePickerProps, type RadioGroupProps, type RadioGroupOption, SwitchHookField, type SwitchHookFieldProps, type SwitchProps, useEmployeeDetailsForm, EmployeeDetailsForm, EmployeeDetailsErrorCodes, type EmployeeDetailsFormProps, type EmployeeDetailsSubmitCallbacks, type EmployeeDetailsRequiredFields, type UseEmployeeDetailsFormProps, type UseEmployeeDetailsFormResult, type UseEmployeeDetailsFormReady, type EmployeeDetailsFieldsMetadata, type EmployeeDetailsFormFields, type EmployeeDetailsErrorCode, type EmployeeDetailsFormData, type EmployeeDetailsFormOutputs, type EmployeeDetailsField, type EmployeeDetailsRequiredValidation, type NameValidation, type EmailValidation, type SsnValidation, type FirstNameFieldProps, type MiddleInitialFieldProps, type LastNameFieldProps, type EmailFieldProps, type DateOfBirthFieldProps, type SsnFieldProps, type SelfOnboardingFieldProps, useWorkAddressForm, WorkAddressForm, WorkAddressErrorCodes, type WorkAddressFormProps, type WorkAddressSubmitCallbacks, type WorkAddressSubmitOptions, type WorkAddressRequiredFields, type UseWorkAddressFormProps, type UseWorkAddressFormResult, type UseWorkAddressFormReady, type WorkAddressFieldsMetadata, type WorkAddressFormFields, type WorkAddressErrorCode, type WorkAddressFormData, type WorkAddressFormOutputs, type WorkAddressField, type WorkAddressRequiredValidation, type LocationFieldProps, type EffectiveDateFieldProps, } from './components/UNSTABLE_Hooks';
|
package/dist/UNSTABLE_Hooks.js
CHANGED
|
@@ -1,9 +1,53 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useErrorHandling as e } from "./components/UNSTABLE_Hooks/useErrorHandling.js";
|
|
2
|
+
import { collectErrors as m } from "./components/UNSTABLE_Hooks/collectErrors.js";
|
|
3
|
+
import { CheckboxHookField as d } from "./components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js";
|
|
4
|
+
import { CompensationErrorCodes as i } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js";
|
|
5
|
+
import { CompensationForm as f } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js";
|
|
6
|
+
import { DatePickerHookField as a } from "./components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js";
|
|
7
|
+
import { EmployeeDetailsErrorCodes as k } from "./components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js";
|
|
8
|
+
import { EmployeeDetailsForm as u } from "./components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js";
|
|
9
|
+
import { FormFieldsMetadataProvider as H } from "./components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js";
|
|
10
|
+
import { NumberInputHookField as C } from "./components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js";
|
|
11
|
+
import { RadioGroupHookField as M } from "./components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js";
|
|
12
|
+
import { SDKFormProvider as b } from "./components/UNSTABLE_Hooks/form/SDKFormProvider.js";
|
|
13
|
+
import { SelectHookField as v } from "./components/UNSTABLE_Hooks/form/fields/SelectHookField.js";
|
|
14
|
+
import { SwitchHookField as A } from "./components/UNSTABLE_Hooks/form/fields/SwitchHookField.js";
|
|
15
|
+
import { TextInputHookField as W } from "./components/UNSTABLE_Hooks/form/fields/TextInputHookField.js";
|
|
16
|
+
import { WorkAddressErrorCodes as w } from "./components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js";
|
|
17
|
+
import { WorkAddressForm as G } from "./components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js";
|
|
18
|
+
import { composeSubmitHandler as N } from "./components/UNSTABLE_Hooks/form/composeSubmitHandler.js";
|
|
19
|
+
import { deriveFieldsMetadata as R } from "./components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js";
|
|
20
|
+
import { useCompensationForm as j } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js";
|
|
21
|
+
import { useEmployeeDetailsForm as z } from "./components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js";
|
|
22
|
+
import { useFieldErrorMessage as J } from "./components/UNSTABLE_Hooks/form/useFieldErrorMessage.js";
|
|
23
|
+
import { useFieldsMetadata as Q } from "./components/UNSTABLE_Hooks/form/useFieldsMetadata.js";
|
|
24
|
+
import { useWorkAddressForm as V } from "./components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js";
|
|
25
|
+
import { withOptions as Y } from "./components/UNSTABLE_Hooks/form/withOptions.js";
|
|
4
26
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
27
|
+
d as CheckboxHookField,
|
|
28
|
+
i as CompensationErrorCodes,
|
|
29
|
+
f as CompensationForm,
|
|
30
|
+
a as DatePickerHookField,
|
|
31
|
+
k as EmployeeDetailsErrorCodes,
|
|
32
|
+
u as EmployeeDetailsForm,
|
|
33
|
+
H as FormFieldsMetadataProvider,
|
|
34
|
+
C as NumberInputHookField,
|
|
35
|
+
M as RadioGroupHookField,
|
|
36
|
+
b as SDKFormProvider,
|
|
37
|
+
v as SelectHookField,
|
|
38
|
+
A as SwitchHookField,
|
|
39
|
+
W as TextInputHookField,
|
|
40
|
+
w as WorkAddressErrorCodes,
|
|
41
|
+
G as WorkAddressForm,
|
|
42
|
+
m as collectErrors,
|
|
43
|
+
N as composeSubmitHandler,
|
|
44
|
+
R as deriveFieldsMetadata,
|
|
45
|
+
j as useCompensationForm,
|
|
46
|
+
z as useEmployeeDetailsForm,
|
|
47
|
+
e as useErrorHandling,
|
|
48
|
+
J as useFieldErrorMessage,
|
|
49
|
+
Q as useFieldsMetadata,
|
|
50
|
+
V as useWorkAddressForm,
|
|
51
|
+
Y as withOptions
|
|
8
52
|
};
|
|
9
53
|
//# sourceMappingURL=UNSTABLE_Hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNSTABLE_Hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UNSTABLE_Hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -30,6 +30,7 @@ export interface BaseBoundariesProps {
|
|
|
30
30
|
children?: ReactNode;
|
|
31
31
|
FallbackComponent?: (props: FallbackProps) => JSX.Element;
|
|
32
32
|
onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void;
|
|
33
|
+
componentName?: string;
|
|
33
34
|
}
|
|
34
|
-
export declare const BaseBoundaries: ({ children, FallbackComponent, onErrorBoundaryError, }: BaseBoundariesProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare const BaseBoundaries: ({ children, FallbackComponent, onErrorBoundaryError, componentName, }: BaseBoundariesProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
36
|
export {};
|
|
@@ -1,111 +1,99 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { Suspense as
|
|
1
|
+
import { jsx as e, jsxs as m } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense as k, useRef as c, useEffect as u } from "react";
|
|
3
3
|
import { ErrorBoundary as B } from "react-error-boundary";
|
|
4
|
-
import { useTranslation as
|
|
5
|
-
import { QueryErrorResetBoundary as
|
|
6
|
-
import { FadeIn as
|
|
7
|
-
import { BaseContext as
|
|
4
|
+
import { useTranslation as p } from "react-i18next";
|
|
5
|
+
import { QueryErrorResetBoundary as S } from "@tanstack/react-query";
|
|
6
|
+
import { FadeIn as I } from "../Common/FadeIn/FadeIn.js";
|
|
7
|
+
import { BaseContext as R } from "./useBase.js";
|
|
8
8
|
import { useBaseSubmit as x } from "./useBaseSubmit.js";
|
|
9
|
-
import { componentEvents as
|
|
9
|
+
import { componentEvents as D } from "../../shared/constants.js";
|
|
10
10
|
import "classnames";
|
|
11
|
-
import { InternalError as
|
|
12
|
-
import { useComponentContext as
|
|
13
|
-
import { useLoadingIndicator as
|
|
14
|
-
import { useObservability as
|
|
15
|
-
import { normalizeToSDKError as
|
|
16
|
-
const
|
|
11
|
+
import { InternalError as f } from "../Common/InternalError/InternalError.js";
|
|
12
|
+
import { useComponentContext as g } from "../../contexts/ComponentAdapter/useComponentContext.js";
|
|
13
|
+
import { useLoadingIndicator as d } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
14
|
+
import { useObservability as E } from "../../contexts/ObservabilityProvider/useObservability.js";
|
|
15
|
+
import { normalizeToSDKError as F } from "../../types/sdkError.js";
|
|
16
|
+
const N = ({
|
|
17
17
|
children: r,
|
|
18
|
-
FallbackComponent: t =
|
|
18
|
+
FallbackComponent: t = f,
|
|
19
19
|
LoaderComponent: s,
|
|
20
20
|
onEvent: o,
|
|
21
|
-
componentName:
|
|
21
|
+
componentName: n
|
|
22
22
|
}) => {
|
|
23
|
-
const { error: i, baseSubmitHandler: a, setError:
|
|
24
|
-
o(
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
...
|
|
23
|
+
const { error: i, baseSubmitHandler: a, setError: h } = x(n), { observability: y } = E(), { LoadingIndicator: L } = d(), b = s ?? L, w = (l, C) => {
|
|
24
|
+
o(D.ERROR, l);
|
|
25
|
+
const v = F(l);
|
|
26
|
+
y?.onError?.({
|
|
27
|
+
...v,
|
|
28
28
|
timestamp: Date.now(),
|
|
29
|
-
componentName:
|
|
29
|
+
componentName: n,
|
|
30
30
|
componentStack: C.componentStack ?? void 0
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
|
-
return /* @__PURE__ */
|
|
34
|
-
|
|
33
|
+
return /* @__PURE__ */ e(
|
|
34
|
+
R.Provider,
|
|
35
35
|
{
|
|
36
36
|
value: {
|
|
37
37
|
error: i,
|
|
38
|
-
setError:
|
|
38
|
+
setError: h,
|
|
39
39
|
onEvent: o,
|
|
40
40
|
baseSubmitHandler: a,
|
|
41
|
-
LoadingIndicator:
|
|
42
|
-
componentName:
|
|
41
|
+
LoadingIndicator: b,
|
|
42
|
+
componentName: n
|
|
43
43
|
},
|
|
44
|
-
children: /* @__PURE__ */
|
|
45
|
-
|
|
44
|
+
children: /* @__PURE__ */ e(
|
|
45
|
+
_,
|
|
46
46
|
{
|
|
47
47
|
FallbackComponent: t,
|
|
48
|
-
onErrorBoundaryError:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{
|
|
52
|
-
fallback: /* @__PURE__ */ n(
|
|
53
|
-
M,
|
|
54
|
-
{
|
|
55
|
-
LoaderComponent: l,
|
|
56
|
-
observability: d,
|
|
57
|
-
componentName: e
|
|
58
|
-
}
|
|
59
|
-
),
|
|
60
|
-
children: /* @__PURE__ */ n(j, { error: i, children: r })
|
|
61
|
-
}
|
|
62
|
-
)
|
|
48
|
+
onErrorBoundaryError: w,
|
|
49
|
+
componentName: n,
|
|
50
|
+
children: /* @__PURE__ */ e(j, { error: i, children: r })
|
|
63
51
|
}
|
|
64
52
|
)
|
|
65
53
|
}
|
|
66
54
|
);
|
|
67
55
|
};
|
|
68
|
-
function
|
|
69
|
-
const t =
|
|
56
|
+
function T({ error: r }) {
|
|
57
|
+
const t = g(), { t: s } = p(), o = r.fieldErrors.length > 0;
|
|
70
58
|
return /* @__PURE__ */ m(t.Alert, { label: s("status.errorEncountered"), status: "error", children: [
|
|
71
|
-
o && /* @__PURE__ */
|
|
59
|
+
o && /* @__PURE__ */ e(
|
|
72
60
|
t.UnorderedList,
|
|
73
61
|
{
|
|
74
|
-
items: r.fieldErrors.filter((
|
|
62
|
+
items: r.fieldErrors.filter((n) => n.message).map((n) => /* @__PURE__ */ e("span", { children: n.message }, n.field))
|
|
75
63
|
}
|
|
76
64
|
),
|
|
77
|
-
!o && r.category === "validation_error" && /* @__PURE__ */
|
|
78
|
-
!o && r.category !== "validation_error" && /* @__PURE__ */
|
|
65
|
+
!o && r.category === "validation_error" && /* @__PURE__ */ e(t.Text, { as: "pre", children: r.raw && typeof r.raw == "object" && "pretty" in r.raw && typeof r.raw.pretty == "function" ? r.raw.pretty() : r.message }),
|
|
66
|
+
!o && r.category !== "validation_error" && /* @__PURE__ */ e(t.Text, { children: r.message || s("errors.unknownError") })
|
|
79
67
|
] });
|
|
80
68
|
}
|
|
81
|
-
function
|
|
82
|
-
const t =
|
|
83
|
-
return /* @__PURE__ */
|
|
69
|
+
function A({ errors: r }) {
|
|
70
|
+
const t = g(), { t: s } = p();
|
|
71
|
+
return /* @__PURE__ */ e(t.Alert, { label: s("status.multipleErrorsEncountered"), status: "error", children: /* @__PURE__ */ e(
|
|
84
72
|
t.UnorderedList,
|
|
85
73
|
{
|
|
86
|
-
items: r.filter((o) => o.message || o.fieldErrors.length > 0).map((o,
|
|
74
|
+
items: r.filter((o) => o.message || o.fieldErrors.length > 0).map((o, n) => {
|
|
87
75
|
const i = o.fieldErrors.filter((a) => a.message);
|
|
88
|
-
return i.length === 0 ? /* @__PURE__ */
|
|
76
|
+
return i.length === 0 ? /* @__PURE__ */ e("span", { children: o.message || s("errors.unknownError") }, n) : /* @__PURE__ */ m("span", { children: [
|
|
89
77
|
o.message || s("errors.unknownError"),
|
|
90
|
-
/* @__PURE__ */
|
|
78
|
+
/* @__PURE__ */ e(
|
|
91
79
|
t.UnorderedList,
|
|
92
80
|
{
|
|
93
|
-
items: i.map((a) => /* @__PURE__ */
|
|
81
|
+
items: i.map((a) => /* @__PURE__ */ e("span", { children: a.message }, a.field))
|
|
94
82
|
}
|
|
95
83
|
)
|
|
96
|
-
] },
|
|
84
|
+
] }, n);
|
|
97
85
|
})
|
|
98
86
|
}
|
|
99
87
|
) });
|
|
100
88
|
}
|
|
101
89
|
const j = ({ children: r, error: t, isLoading: s }) => {
|
|
102
|
-
const { LoadingIndicator: o } =
|
|
90
|
+
const { LoadingIndicator: o } = d(), n = Array.isArray(t) ? t : t ? [t] : [], i = n.length > 0;
|
|
103
91
|
if (s && !i)
|
|
104
|
-
return /* @__PURE__ */
|
|
105
|
-
const [a] =
|
|
106
|
-
return /* @__PURE__ */ m(
|
|
107
|
-
|
|
108
|
-
|
|
92
|
+
return /* @__PURE__ */ e(o, {});
|
|
93
|
+
const [a] = n;
|
|
94
|
+
return /* @__PURE__ */ m(I, { children: [
|
|
95
|
+
n.length > 1 && /* @__PURE__ */ e(A, { errors: n }),
|
|
96
|
+
n.length === 1 && a && /* @__PURE__ */ e(T, { error: a }),
|
|
109
97
|
r
|
|
110
98
|
] });
|
|
111
99
|
}, M = ({
|
|
@@ -113,35 +101,48 @@ const j = ({ children: r, error: t, isLoading: s }) => {
|
|
|
113
101
|
observability: t,
|
|
114
102
|
componentName: s
|
|
115
103
|
}) => {
|
|
116
|
-
const o = c(Date.now()),
|
|
117
|
-
return
|
|
118
|
-
|
|
119
|
-
}, [t, s]),
|
|
104
|
+
const o = c(Date.now()), n = c(t), i = c(s);
|
|
105
|
+
return u(() => {
|
|
106
|
+
n.current = t, i.current = s;
|
|
107
|
+
}, [t, s]), u(() => () => {
|
|
120
108
|
const a = Date.now() - o.current;
|
|
121
|
-
|
|
109
|
+
n.current?.onMetric?.({
|
|
122
110
|
name: "sdk.component.loading_duration",
|
|
123
111
|
value: a,
|
|
124
112
|
unit: "ms",
|
|
125
113
|
tags: i.current ? { component: i.current } : void 0,
|
|
126
114
|
timestamp: Date.now()
|
|
127
115
|
});
|
|
128
|
-
}, []), /* @__PURE__ */
|
|
129
|
-
}
|
|
116
|
+
}, []), /* @__PURE__ */ e(r, {});
|
|
117
|
+
};
|
|
118
|
+
function U({ componentName: r }) {
|
|
119
|
+
const { LoadingIndicator: t } = d(), { observability: s } = E();
|
|
120
|
+
return /* @__PURE__ */ e(
|
|
121
|
+
M,
|
|
122
|
+
{
|
|
123
|
+
LoaderComponent: t,
|
|
124
|
+
observability: s,
|
|
125
|
+
componentName: r
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
const _ = ({
|
|
130
130
|
children: r,
|
|
131
|
-
FallbackComponent: t =
|
|
132
|
-
onErrorBoundaryError: s
|
|
133
|
-
|
|
131
|
+
FallbackComponent: t = f,
|
|
132
|
+
onErrorBoundaryError: s,
|
|
133
|
+
componentName: o
|
|
134
|
+
}) => /* @__PURE__ */ e(S, { children: ({ reset: n }) => /* @__PURE__ */ e(
|
|
134
135
|
B,
|
|
135
136
|
{
|
|
136
137
|
FallbackComponent: t,
|
|
137
|
-
onReset:
|
|
138
|
+
onReset: n,
|
|
138
139
|
onError: s,
|
|
139
|
-
children: r
|
|
140
|
+
children: /* @__PURE__ */ e(k, { fallback: /* @__PURE__ */ e(U, { componentName: o }), children: r })
|
|
140
141
|
}
|
|
141
142
|
) });
|
|
142
143
|
export {
|
|
143
|
-
|
|
144
|
-
|
|
144
|
+
_ as BaseBoundaries,
|
|
145
|
+
N as BaseComponent,
|
|
145
146
|
j as BaseLayout
|
|
146
147
|
};
|
|
147
148
|
//# sourceMappingURL=Base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onEvent: OnEventType<EventType, unknown>\n}\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <LoaderWithMetrics\n LoaderComponent={LoaderComponent}\n observability={observability}\n componentName={componentName}\n />\n }\n >\n <BaseLayout error={error}>{children}</BaseLayout>\n </Suspense>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\nexport const BaseLayout = ({ children, error, isLoading }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n {children}\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","Suspense","LoaderWithMetrics","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","QueryErrorResetBoundary","resetQueries","ErrorBoundary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onEvent: OnEventType<EventType, unknown>\n}\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n >\n <BaseLayout error={error}>{children}</BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\nexport const BaseLayout = ({ children, error, isLoading }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nfunction SuspenseFallback({ componentName }: { componentName?: string }) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={LoadingIndicator}\n observability={observability}\n componentName={componentName}\n />\n )\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n componentName,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<SuspenseFallback componentName={componentName} />}>\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","SuspenseFallback","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { ComponentType } from 'react';
|
|
1
2
|
import { UseFieldProps } from '../hooks/useField';
|
|
2
3
|
import { CheckboxProps } from '../../UI/Checkbox/CheckboxTypes';
|
|
3
4
|
export interface CheckboxFieldProps extends Omit<CheckboxProps, 'name' | 'value' | 'isInvalid'>, UseFieldProps<boolean> {
|
|
5
|
+
FieldComponent?: ComponentType<CheckboxProps>;
|
|
4
6
|
}
|
|
5
7
|
export declare const CheckboxField: React.FC<CheckboxFieldProps>;
|
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useField as
|
|
3
|
-
import { useComponentContext as
|
|
4
|
-
const
|
|
1
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
2
|
+
import { useField as b } from "../hooks/useField.js";
|
|
3
|
+
import { useComponentContext as h } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
4
|
+
const P = ({
|
|
5
5
|
rules: o,
|
|
6
6
|
defaultValue: e,
|
|
7
7
|
name: t,
|
|
8
|
-
errorMessage:
|
|
9
|
-
isRequired:
|
|
8
|
+
errorMessage: n,
|
|
9
|
+
isRequired: r,
|
|
10
10
|
onChange: m,
|
|
11
11
|
transform: s,
|
|
12
12
|
description: p,
|
|
13
|
-
onBlur:
|
|
14
|
-
inputRef:
|
|
13
|
+
onBlur: c,
|
|
14
|
+
inputRef: i,
|
|
15
|
+
FieldComponent: C,
|
|
15
16
|
...x
|
|
16
17
|
}) => {
|
|
17
|
-
const
|
|
18
|
+
const d = h(), f = b({
|
|
18
19
|
name: t,
|
|
19
20
|
rules: o,
|
|
20
21
|
defaultValue: e,
|
|
21
|
-
errorMessage:
|
|
22
|
-
isRequired:
|
|
22
|
+
errorMessage: n,
|
|
23
|
+
isRequired: r,
|
|
23
24
|
onChange: m,
|
|
24
25
|
transform: s,
|
|
25
26
|
description: p,
|
|
26
|
-
onBlur:
|
|
27
|
-
inputRef:
|
|
28
|
-
});
|
|
29
|
-
return /* @__PURE__ */
|
|
27
|
+
onBlur: c,
|
|
28
|
+
inputRef: i
|
|
29
|
+
}), l = C ?? d.Checkbox;
|
|
30
|
+
return /* @__PURE__ */ u(l, { ...x, ...f });
|
|
30
31
|
};
|
|
31
32
|
export {
|
|
32
|
-
|
|
33
|
+
P as CheckboxField
|
|
33
34
|
};
|
|
34
35
|
//# sourceMappingURL=CheckboxField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxField.js","sources":["../../../../../src/components/Common/Fields/CheckboxField/CheckboxField.tsx"],"sourcesContent":["import { useField, type UseFieldProps } from '@/components/Common/Fields/hooks/useField'\nimport type { CheckboxProps } from '@/components/Common/UI/Checkbox/CheckboxTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport interface CheckboxFieldProps\n extends Omit<CheckboxProps, 'name' | 'value' | 'isInvalid'>, UseFieldProps<boolean> {}\n\nexport const CheckboxField: React.FC<CheckboxFieldProps> = ({\n rules,\n defaultValue,\n name,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n ...checkboxProps\n}: CheckboxFieldProps) => {\n const Components = useComponentContext()\n const fieldProps = useField({\n name,\n rules,\n defaultValue,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n })\n\n
|
|
1
|
+
{"version":3,"file":"CheckboxField.js","sources":["../../../../../src/components/Common/Fields/CheckboxField/CheckboxField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useField, type UseFieldProps } from '@/components/Common/Fields/hooks/useField'\nimport type { CheckboxProps } from '@/components/Common/UI/Checkbox/CheckboxTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport interface CheckboxFieldProps\n extends Omit<CheckboxProps, 'name' | 'value' | 'isInvalid'>, UseFieldProps<boolean> {\n FieldComponent?: ComponentType<CheckboxProps>\n}\n\nexport const CheckboxField: React.FC<CheckboxFieldProps> = ({\n rules,\n defaultValue,\n name,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n FieldComponent,\n ...checkboxProps\n}: CheckboxFieldProps) => {\n const Components = useComponentContext()\n const fieldProps = useField({\n name,\n rules,\n defaultValue,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n })\n\n const RenderComponent = FieldComponent ?? Components.Checkbox\n return <RenderComponent {...checkboxProps} {...fieldProps} />\n}\n"],"names":["CheckboxField","rules","defaultValue","name","errorMessage","isRequired","onChange","transform","description","onBlur","inputRef","FieldComponent","checkboxProps","Components","useComponentContext","fieldProps","useField","RenderComponent","jsx"],"mappings":";;;AAUO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,GAAGC;AACL,MAA0B;AACxB,QAAMC,IAAaC,EAAA,GACbC,IAAaC,EAAS;AAAA,IAC1B,MAAAb;AAAA,IACA,OAAAF;AAAA,IACA,cAAAC;AAAA,IACA,cAAAE;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,CACD,GAEKO,IAAkBN,KAAkBE,EAAW;AACrD,SAAO,gBAAAK,EAACD,GAAA,EAAiB,GAAGL,GAAgB,GAAGG,EAAA,CAAY;AAC7D;"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
2
|
import { UseFieldProps } from '../hooks/useField';
|
|
3
3
|
import { DatePickerProps } from '../../UI/DatePicker/DatePickerTypes';
|
|
4
|
-
|
|
4
|
+
type DateFieldValue = string | Date | null;
|
|
5
|
+
export interface DatePickerFieldProps<TValue extends DateFieldValue = Date | null> extends Omit<DatePickerProps, 'name' | 'onChange' | 'isInvalid'>, UseFieldProps<TValue> {
|
|
6
|
+
FieldComponent?: ComponentType<DatePickerProps>;
|
|
5
7
|
}
|
|
6
|
-
export declare const DatePickerField:
|
|
8
|
+
export declare const DatePickerField: <TValue extends DateFieldValue = Date | null>({ rules, defaultValue, name, errorMessage, isRequired, onChange, transform, description, onBlur, inputRef, FieldComponent, ...datePickerProps }: DatePickerFieldProps<TValue>) => import("react/jsx-runtime").JSX.Element;
|
|
7
9
|
export {};
|