tp-react-elements-dev 1.12.24 → 1.12.25
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/README.md +196 -167
- package/dist/assets/icons/flaticon_hvc.css +71 -70
- package/dist/assets/icons/flaticon_hvc.scss +126 -124
- package/dist/auth/authContext.d.ts +19 -0
- package/dist/auth/authContext.esm.js +26 -0
- package/dist/components/Button/Button.d.ts +7 -0
- package/dist/components/Button/Button.esm.js +15 -0
- package/dist/components/Button/index.d.ts +1 -0
- package/dist/components/Button/index.esm.js +1 -0
- package/dist/components/CheckBox/index.d.ts +1 -0
- package/dist/components/CheckBox/index.esm.js +1 -0
- package/dist/components/CheckBoxGroup/index.d.ts +1 -0
- package/dist/components/CheckBoxGroup/index.esm.js +1 -0
- package/dist/components/DatePicker/index.d.ts +4 -0
- package/dist/components/DatePicker/index.esm.js +4 -0
- package/dist/components/Delete/index.d.ts +1 -0
- package/dist/components/Delete/index.esm.js +1 -0
- package/dist/components/DeleteComponent/DeleteField.d.ts +0 -1
- package/dist/components/DeleteComponent/{DeleteField.js → DeleteField.esm.js} +6 -6
- package/dist/components/DeleteComponent/index.d.ts +1 -0
- package/dist/components/DeleteComponent/index.esm.js +1 -0
- package/dist/components/Feedback/index.d.ts +5 -0
- package/dist/components/Feedback/index.esm.js +7 -0
- package/dist/components/FileUpload/index.d.ts +2 -0
- package/dist/components/FileUpload/index.esm.js +2 -0
- package/dist/components/Form/Form.styles.d.ts +8 -26
- package/dist/components/Form/Form.styles.esm.js +111 -0
- package/dist/components/Form/FormActiveSwitch.d.ts +1 -2
- package/dist/components/Form/FormActiveSwitch.esm.js +11 -0
- package/dist/components/Form/FormConstants.d.ts +2 -3
- package/dist/components/Form/{FormConstants.js → FormConstants.esm.js} +89 -103
- package/dist/components/Form/FormContainer.d.ts +2 -3
- package/dist/components/Form/FormContainer.esm.js +3 -0
- package/dist/components/Form/FormRender.d.ts +11 -4
- package/dist/components/Form/FormRender.esm.js +130 -0
- package/dist/components/Form/FormRenderConstants.d.ts +0 -1
- package/dist/components/Form/FormRenderWrapper.d.ts +37 -5
- package/dist/components/Form/FormRenderWrapper.esm.js +33 -0
- package/dist/components/Form/index.d.ts +6 -0
- package/dist/components/Form/index.esm.js +5 -0
- package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.d.ts +1 -2
- package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.esm.js +72 -0
- package/dist/components/FormComponents/DatePicker/MonthPicker.d.ts +0 -1
- package/dist/components/FormComponents/DatePicker/{MonthPicker.js → MonthPicker.esm.js} +3 -3
- package/dist/components/FormComponents/DatePicker/Monthpickerrender.d.ts +1 -2
- package/dist/components/FormComponents/DatePicker/Monthpickerrender.esm.js +70 -0
- package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.d.ts +1 -2
- package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.esm.js +71 -0
- package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.d.ts +1 -2
- package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.esm.js +85 -0
- package/dist/components/FormComponents/FormBottomField/FormBottomField.d.ts +15 -2
- package/dist/components/FormComponents/FormBottomField/FormBottomField.esm.js +22 -0
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.d.ts +20 -2
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.esm.js +32 -0
- package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.d.ts +20 -2
- package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.esm.js +42 -0
- package/dist/components/FormComponents/FormErrorField/FormErrorField.d.ts +14 -2
- package/dist/components/FormComponents/FormErrorField/FormErrorField.esm.js +21 -0
- package/dist/components/FormComponents/FormNumberField/FormNumberField.d.ts +40 -3
- package/dist/components/FormComponents/FormNumberField/FormNumberField.esm.js +102 -0
- package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.d.ts +1 -2
- package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.esm.js +50 -0
- package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.d.ts +21 -3
- package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.esm.js +44 -0
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.d.ts +20 -2
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.esm.js +65 -0
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.styles.d.ts +1 -4
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.styles.esm.js +35 -0
- package/dist/components/FormComponents/FormTextField/FormTextField.d.ts +39 -3
- package/dist/components/FormComponents/FormTextField/FormTextField.esm.js +111 -0
- package/dist/components/FormComponents/FormTextField/FormTextField.styles.d.ts +10 -4
- package/dist/components/FormComponents/FormTextField/FormTextField.styles.esm.js +27 -0
- package/dist/components/FormComponents/HelperText/HelperText.d.ts +14 -2
- package/dist/components/FormComponents/HelperText/HelperText.esm.js +23 -0
- package/dist/components/FormComponents/PasswordField/PasswordField.d.ts +21 -3
- package/dist/components/FormComponents/PasswordField/PasswordField.esm.js +91 -0
- package/dist/components/FormComponents/RichTextEditor/RichTextEditor.d.ts +1 -2
- package/dist/components/FormComponents/RichTextEditor/{RichTextEditor.js → RichTextEditor.esm.js} +50 -31
- package/dist/components/FormComponents/RichTextEditor/RichTextEditorWrapper.d.ts +1 -2
- package/dist/components/FormComponents/RichTextEditor/{RichTextEditorWrapper.js → RichTextEditorWrapper.esm.js} +4 -3
- package/dist/components/FormComponents/RichTextEditor/jodit.index.d.ts +5 -10
- package/dist/components/FormComponents/RichTextEditor/jodit.index.esm.js +23 -0
- package/dist/components/FormComponents/Select/MultiSelect.d.ts +0 -1
- package/dist/components/FormComponents/Select/MultiSelectv1.d.ts +1 -2
- package/dist/components/FormComponents/Select/{MultiSelectv1.js → MultiSelectv1.esm.js} +54 -61
- package/dist/components/FormComponents/Select/SingleSelect.d.ts +2 -3
- package/dist/components/FormComponents/Select/SingleSelect.esm.js +61 -0
- package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.d.ts +1 -2
- package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.esm.js +32 -0
- package/dist/components/FormComponents/Select/SingleSelectSearchApi.d.ts +2 -3
- package/dist/components/FormComponents/Select/{SingleSelectSearchApi.js → SingleSelectSearchApi.esm.js} +2 -6
- package/dist/components/FormComponents/TimePicker/TimePicker.d.ts +1 -2
- package/dist/components/FormComponents/TimePicker/TimePicker.esm.js +70 -0
- package/dist/components/FormComponents/YearPickerField/YearPickerField.d.ts +2 -3
- package/dist/components/FormComponents/YearPickerField/{YearPickerField.js → YearPickerField.esm.js} +2 -6
- package/dist/components/FormComponents/index.d.ts +16 -25
- package/dist/components/FormComponents/{index.js → index.esm.js} +24 -26
- package/dist/components/Global.styles.d.ts +7 -22
- package/dist/components/{Global.styles.js → Global.styles.esm.js} +2 -2
- package/dist/components/ModalField/ConfirmationDialog.d.ts +2 -11
- package/dist/components/ModalField/ConfirmationDialog.esm.js +46 -0
- package/dist/components/ModalField/ModalField.d.ts +2 -3
- package/dist/components/ModalField/{ModalField.js → ModalField.esm.js} +10 -10
- package/dist/components/ModalField/index.d.ts +2 -0
- package/dist/components/ModalField/index.esm.js +2 -0
- package/dist/components/NumberField/index.d.ts +2 -0
- package/dist/components/NumberField/index.esm.js +2 -0
- package/dist/components/PasswordField/index.d.ts +1 -0
- package/dist/components/PasswordField/index.esm.js +1 -0
- package/dist/components/RadioGroup/index.d.ts +1 -0
- package/dist/components/RadioGroup/index.esm.js +1 -0
- package/dist/components/RichTextEditor/index.d.ts +2 -0
- package/dist/components/RichTextEditor/index.esm.js +2 -0
- package/dist/components/Select/index.d.ts +6 -0
- package/dist/components/Select/index.esm.js +8 -0
- package/dist/components/SelectField/MultiSelectField.d.ts +1 -0
- package/dist/components/SelectField/MultiSelectFieldComponent.d.ts +0 -1
- package/dist/components/SelectField/{MultiSelectFieldComponent.js → MultiSelectFieldComponent.esm.js} +36 -45
- package/dist/components/SelectField/index.d.ts +2 -0
- package/dist/components/SelectField/index.esm.js +1 -0
- package/dist/components/SessionTimeOut/SessionTimeOut.d.ts +1 -3
- package/dist/components/SessionTimeOut/{SessionTimeOut.js → SessionTimeOut.esm.js} +6 -7
- package/dist/components/SessionTimeOut/index.d.ts +1 -0
- package/dist/components/SessionTimeOut/index.esm.js +1 -0
- package/dist/components/TextAreaField/index.d.ts +1 -0
- package/dist/components/TextAreaField/index.esm.js +1 -0
- package/dist/components/TextField/index.d.ts +1 -0
- package/dist/components/TextField/index.esm.js +1 -0
- package/dist/components/TimePicker/index.d.ts +1 -0
- package/dist/components/TimePicker/index.esm.js +1 -0
- package/dist/components/TimePickerField/TimePickerField.d.ts +0 -1
- package/dist/components/TimePickerField/TimePickerField.esm.js +11 -0
- package/dist/components/TimePickerField/index.d.ts +1 -0
- package/dist/components/TimePickerField/index.esm.js +1 -0
- package/dist/index.d.ts +14 -9
- package/dist/index.esm.css +1 -0
- package/dist/index.esm.js +14 -0
- package/dist/theme/index.d.ts +0 -2
- package/dist/theme/{index.js → index.esm.js} +4 -7
- package/dist/types/index.d.ts +3 -4
- package/dist/utils/Constants/FormConstants.d.ts +40 -0
- package/dist/utils/Constants/FormConstants.esm.js +78 -0
- package/dist/{lib → utils}/Constants/FunctionConstants.d.ts +6 -7
- package/dist/{lib/Constants/FunctionConstants.js → utils/Constants/FunctionConstants.esm.js} +46 -54
- package/dist/utils/Constants/FunctionConstants.test.d.ts +1 -0
- package/dist/utils/Constants/crypto-js.d.ts +29 -0
- package/dist/utils/Constants/date-pickers.d.ts +29 -0
- package/dist/utils/Constants/date-pickers.esm.js +33 -0
- package/dist/utils/Constants/file-saver.d.ts +14 -0
- package/dist/utils/Constants/file-saver.esm.js +22 -0
- package/dist/utils/Constants/index.d.ts +5 -0
- package/dist/utils/Constants/xlsx-js-style.d.ts +22 -0
- package/dist/utils/Constants/xlsx-js-style.esm.js +46 -0
- package/dist/{lib → utils}/Interface/FormInterface.d.ts +11 -8
- package/dist/utils/Interface/MainInterface.d.ts +17 -0
- package/dist/utils/Interface/ModalInterface.d.ts +12 -0
- package/dist/utils/Interface/index.d.ts +3 -0
- package/dist/{lib → utils}/index.d.ts +3 -4
- package/dist/{lib/index.js → utils/index.esm.js} +2 -2
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.esm.js +1 -0
- package/dist/validation/schemas.d.ts +65 -6
- package/dist/validation/schemas.esm.js +111 -0
- package/package.json +62 -27
- package/scripts/install-deps.js +103 -46
- package/dist/assets/types.d.ts +0 -62
- package/dist/components/DeleteComponent/DeleteField.d.ts.map +0 -1
- package/dist/components/Form/Form.styles.d.ts.map +0 -1
- package/dist/components/Form/Form.styles.js +0 -111
- package/dist/components/Form/FormActiveSwitch.d.ts.map +0 -1
- package/dist/components/Form/FormActiveSwitch.js +0 -27
- package/dist/components/Form/FormConstants.d.ts.map +0 -1
- package/dist/components/Form/FormContainer.d.ts.map +0 -1
- package/dist/components/Form/FormRender.d.ts.map +0 -1
- package/dist/components/Form/FormRender.js +0 -96
- package/dist/components/Form/FormRenderConstants.d.ts.map +0 -1
- package/dist/components/Form/FormRenderWrapper.d.ts.map +0 -1
- package/dist/components/Form/FormRenderWrapper.js +0 -13
- package/dist/components/FormComponents/DatePicker/DateRangePicker.d.ts +0 -7
- package/dist/components/FormComponents/DatePicker/DateRangePicker.d.ts.map +0 -1
- package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.d.ts.map +0 -1
- package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.js +0 -58
- package/dist/components/FormComponents/DatePicker/MonthPicker.d.ts.map +0 -1
- package/dist/components/FormComponents/DatePicker/Monthpickerrender.d.ts.map +0 -1
- package/dist/components/FormComponents/DatePicker/Monthpickerrender.js +0 -61
- package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.d.ts.map +0 -1
- package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.js +0 -86
- package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.d.ts.map +0 -1
- package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.js +0 -96
- package/dist/components/FormComponents/FormBottomField/FormBottomField.d.ts.map +0 -1
- package/dist/components/FormComponents/FormBottomField/FormBottomField.js +0 -9
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.d.ts.map +0 -1
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.js +0 -10
- package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.d.ts.map +0 -1
- package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.js +0 -23
- package/dist/components/FormComponents/FormErrorField/FormErrorField.d.ts.map +0 -1
- package/dist/components/FormComponents/FormErrorField/FormErrorField.js +0 -9
- package/dist/components/FormComponents/FormNumberField/FormNumberField.d.ts.map +0 -1
- package/dist/components/FormComponents/FormNumberField/FormNumberField.js +0 -49
- package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.d.ts.map +0 -1
- package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.js +0 -45
- package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.d.ts.map +0 -1
- package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.js +0 -26
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.d.ts.map +0 -1
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.js +0 -31
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.styles.d.ts.map +0 -1
- package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.styles.js +0 -35
- package/dist/components/FormComponents/FormTextField/FormTextField.d.ts.map +0 -1
- package/dist/components/FormComponents/FormTextField/FormTextField.js +0 -46
- package/dist/components/FormComponents/FormTextField/FormTextField.styles.d.ts.map +0 -1
- package/dist/components/FormComponents/FormTextField/FormTextField.styles.js +0 -22
- package/dist/components/FormComponents/HelperText/HelperText.d.ts.map +0 -1
- package/dist/components/FormComponents/HelperText/HelperText.js +0 -10
- package/dist/components/FormComponents/PasswordField/PasswordField.d.ts.map +0 -1
- package/dist/components/FormComponents/PasswordField/PasswordField.js +0 -49
- package/dist/components/FormComponents/RichTextEditor/RichTextEditor.d.ts.map +0 -1
- package/dist/components/FormComponents/RichTextEditor/RichTextEditorWrapper.d.ts.map +0 -1
- package/dist/components/FormComponents/RichTextEditor/jodit.index.d.ts.map +0 -1
- package/dist/components/FormComponents/RichTextEditor/jodit.index.js +0 -27
- package/dist/components/FormComponents/Select/MultiSelect.d.ts.map +0 -1
- package/dist/components/FormComponents/Select/MultiSelectv1.d.ts.map +0 -1
- package/dist/components/FormComponents/Select/SingleSelect.d.ts.map +0 -1
- package/dist/components/FormComponents/Select/SingleSelect.js +0 -51
- package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.d.ts.map +0 -1
- package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.js +0 -27
- package/dist/components/FormComponents/Select/SingleSelectSearchApi.d.ts.map +0 -1
- package/dist/components/FormComponents/TimePicker/TimePicker.d.ts.map +0 -1
- package/dist/components/FormComponents/TimePicker/TimePicker.js +0 -55
- package/dist/components/FormComponents/YearPickerField/YearPickerField.d.ts.map +0 -1
- package/dist/components/FormComponents/index.d.ts.map +0 -1
- package/dist/components/Global.styles.d.ts.map +0 -1
- package/dist/components/ModalField/ConfirmationDialog.d.ts.map +0 -1
- package/dist/components/ModalField/ConfirmationDialog.js +0 -48
- package/dist/components/ModalField/ModalField.d.ts.map +0 -1
- package/dist/components/SelectField/MultiSelectFieldComponent.d.ts.map +0 -1
- package/dist/components/SessionTimeOut/SessionTimeOut.d.ts.map +0 -1
- package/dist/components/TimePickerField/TimePickerField.d.ts.map +0 -1
- package/dist/components/index.d.ts +0 -8
- package/dist/components/index.d.ts.map +0 -1
- package/dist/index.css +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -16
- package/dist/lib/Constants/FormConstants.d.ts +0 -11
- package/dist/lib/Constants/FormConstants.d.ts.map +0 -1
- package/dist/lib/Constants/FormConstants.js +0 -54
- package/dist/lib/Constants/FunctionConstants.d.ts.map +0 -1
- package/dist/lib/Interface/FormInterface.d.ts.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/validation/schemas.d.ts.map +0 -1
- package/dist/validation/schemas.js +0 -60
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { TextField } from '@mui/material';
|
|
3
|
+
import { Controller } from 'react-hook-form';
|
|
4
|
+
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
5
|
+
import 'dayjs';
|
|
6
|
+
import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* FormNumberField Component
|
|
10
|
+
*
|
|
11
|
+
* A numeric input field component that integrates with react-hook-form.
|
|
12
|
+
* This component is used for integer inputs, phone numbers, and pincodes.
|
|
13
|
+
* It restricts input to numeric characters only.
|
|
14
|
+
*
|
|
15
|
+
* @component
|
|
16
|
+
* @param {Object} props - The component props
|
|
17
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
18
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Basic usage in FormRender
|
|
22
|
+
* <FormNumberField props={formRenderProps} variant="outlined" />
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Usage with specific configuration
|
|
26
|
+
* const formItem = {
|
|
27
|
+
* name: "phoneNumber",
|
|
28
|
+
* label: "Phone Number",
|
|
29
|
+
* inputType: "number",
|
|
30
|
+
* required: true,
|
|
31
|
+
* maxLength: 10
|
|
32
|
+
* };
|
|
33
|
+
* <FormNumberField
|
|
34
|
+
* props={{
|
|
35
|
+
* item: formItem,
|
|
36
|
+
* control: formMethods.control,
|
|
37
|
+
* errors: formMethods.formState.errors
|
|
38
|
+
* }}
|
|
39
|
+
* variant="outlined"
|
|
40
|
+
* />
|
|
41
|
+
*/
|
|
42
|
+
const FormNumberField = ({ props, variant }) => {
|
|
43
|
+
/**
|
|
44
|
+
* Determines if the field has an error based on form validation
|
|
45
|
+
*/
|
|
46
|
+
const isError = !!props.errors?.[props.item.name];
|
|
47
|
+
const isShowBorderError = isError;
|
|
48
|
+
/**
|
|
49
|
+
* Generates the field label based on variant type
|
|
50
|
+
* For non-standard variants, appends an asterisk if the field is required
|
|
51
|
+
*/
|
|
52
|
+
const label = variant !== 'standard' ? `${props.item.label}${props.item.required ? ' *' : ''}` : '';
|
|
53
|
+
/**
|
|
54
|
+
* Renders the numeric field component using react-hook-form's Controller
|
|
55
|
+
* for controlled form state management
|
|
56
|
+
*/
|
|
57
|
+
return (jsx(Fragment, { children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => {
|
|
58
|
+
return (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(TextField, { ...field, size: "small", label: label, error: isShowBorderError, value: field.value ?? '',
|
|
59
|
+
/**
|
|
60
|
+
* Handles input events with numeric restrictions
|
|
61
|
+
* - Removes non-numeric characters
|
|
62
|
+
* - Sets empty value to null
|
|
63
|
+
* - Calls custom onChange handler if provided
|
|
64
|
+
* - Clears validation errors when value changes
|
|
65
|
+
*
|
|
66
|
+
* @param {any} e - The input event object
|
|
67
|
+
*/
|
|
68
|
+
onChange: (e) => {
|
|
69
|
+
const sanitized = String(e.target.value || '').replace(/[^0-9]/g, '');
|
|
70
|
+
const nextValue = sanitized === '' ? null : sanitized;
|
|
71
|
+
field.onChange(nextValue);
|
|
72
|
+
props?.item?.onChangeFn && props?.item?.onChangeFn(nextValue);
|
|
73
|
+
props?.clearErrors && props?.clearErrors(props.item.name);
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Handles blur events
|
|
77
|
+
* Calls custom onBlur handler if provided
|
|
78
|
+
*
|
|
79
|
+
* @param {any} e - The blur event object
|
|
80
|
+
*/
|
|
81
|
+
onBlur: (e) => {
|
|
82
|
+
props?.item?.onBlurFn && props?.item?.onBlurFn(e);
|
|
83
|
+
}, sx: {
|
|
84
|
+
'& .css-1holvmy,.css-lqj8pz-MuiFormLabel-root-MuiInputLabel-root,.css-kichxs-MuiFormLabel-root-MuiInputLabel-root': {
|
|
85
|
+
top: '-10px',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
/**
|
|
89
|
+
* Additional input properties for the TextField
|
|
90
|
+
* Controls input pattern, length restrictions, and additional input handling
|
|
91
|
+
*/
|
|
92
|
+
inputProps: {
|
|
93
|
+
pattern: '[0-9]*',
|
|
94
|
+
maxLength: props.item.maxLength || 20,
|
|
95
|
+
'aria-labelledby': `${props.item.name}-label`,
|
|
96
|
+
'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
|
|
97
|
+
'aria-required': props.item.required ? true : undefined,
|
|
98
|
+
}, disabled: props.item.disable }), jsx(FormBottomField, { ...props })] }));
|
|
99
|
+
} }, props.item.name) }));
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export { FormNumberField as default };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { FormRenderProps, VariantProps } from
|
|
1
|
+
import { FormRenderProps, VariantProps } from '../../../utils';
|
|
2
2
|
declare const FormNumberFieldDecimal: ({ props, variant, }: {
|
|
3
3
|
props: FormRenderProps;
|
|
4
4
|
variant: VariantProps;
|
|
5
5
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export default FormNumberFieldDecimal;
|
|
7
|
-
//# sourceMappingURL=FormNumberFieldDecimal.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { TextField } from '@mui/material';
|
|
3
|
+
import { Controller } from 'react-hook-form';
|
|
4
|
+
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
5
|
+
import 'dayjs';
|
|
6
|
+
import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
|
|
7
|
+
|
|
8
|
+
const FormNumberFieldDecimal = ({ props, variant, }) => {
|
|
9
|
+
const fixedLength = props.item.decimalFixedTo || 2;
|
|
10
|
+
const sanitizeDecimal = (raw) => {
|
|
11
|
+
let next = (raw ?? '').replace(/[^0-9.-]/g, '');
|
|
12
|
+
// Collapse multiple '-' to one at start
|
|
13
|
+
next = next.replace(/(?!^)-/g, '');
|
|
14
|
+
if (next.includes('.')) {
|
|
15
|
+
const [intPart, decPart] = next.split('.');
|
|
16
|
+
const clampedDec = (decPart ?? '').slice(0, fixedLength);
|
|
17
|
+
next = `${intPart}.${clampedDec}`;
|
|
18
|
+
}
|
|
19
|
+
return next;
|
|
20
|
+
};
|
|
21
|
+
const label = variant !== 'standard' ? `${props.item.label}${props.item.required ? ' *' : ''}` : '';
|
|
22
|
+
const isError = !!props.errors?.[props.item.name];
|
|
23
|
+
const isShowBorderError = isError;
|
|
24
|
+
return (jsx(Controller, { name: props.item.name, control: props.control, disabled: props.item?.disable, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(TextField, { type: "text", size: "small", label: label, error: isShowBorderError, ...field, onChange: (e) => {
|
|
25
|
+
const sanitized = sanitizeDecimal(e.target.value ?? '');
|
|
26
|
+
const value = sanitized === '' ? '' : sanitized;
|
|
27
|
+
field.onChange(value);
|
|
28
|
+
props?.clearErrors && props?.clearErrors(props.item.name);
|
|
29
|
+
}, sx: {
|
|
30
|
+
'& input': {
|
|
31
|
+
textAlign: 'right',
|
|
32
|
+
},
|
|
33
|
+
'& .css-16hdwvj,.css-1idq7r3-MuiFormLabel-root-MuiInputLabel-root': {
|
|
34
|
+
top: '-5px',
|
|
35
|
+
},
|
|
36
|
+
}, onBlur: (e) => {
|
|
37
|
+
props?.item?.onBlurFn && props?.item?.onBlurFn(e);
|
|
38
|
+
}, InputProps: {
|
|
39
|
+
inputProps: {
|
|
40
|
+
// allow digits, one dot and optional leading minus
|
|
41
|
+
inputMode: 'decimal',
|
|
42
|
+
maxLength: 20,
|
|
43
|
+
'aria-labelledby': `${props.item.name}-label`,
|
|
44
|
+
'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
|
|
45
|
+
'aria-required': props.item.required ? true : undefined,
|
|
46
|
+
},
|
|
47
|
+
} }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export { FormNumberFieldDecimal as default };
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import { FormRenderProps, VariantProps } from
|
|
2
|
-
|
|
1
|
+
import { FormRenderProps, VariantProps } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* FormRadioGroup Component
|
|
4
|
+
*
|
|
5
|
+
* A radio button group component that integrates with react-hook-form for form state management.
|
|
6
|
+
* Renders multiple radio options in a row with labels and validation support.
|
|
7
|
+
*
|
|
8
|
+
* @component
|
|
9
|
+
* @param {Object} props - The component props
|
|
10
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
11
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Basic usage in FormRender with settings array
|
|
15
|
+
* <FormRadioGroup props={formRenderProps} variant="outlined" />
|
|
16
|
+
*/
|
|
17
|
+
declare const FormRadioGroup: ({ props, variant }: {
|
|
3
18
|
props: FormRenderProps;
|
|
4
19
|
variant: VariantProps;
|
|
5
20
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* Export the FormRadioGroup component for use in the form renderer
|
|
23
|
+
* This component is used for radio group input types
|
|
24
|
+
*/
|
|
6
25
|
export default FormRadioGroup;
|
|
7
|
-
//# sourceMappingURL=FormRadioGroup.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { FormControl, RadioGroup, FormControlLabel, Typography, Radio } from '@mui/material';
|
|
3
|
+
import { Controller } from 'react-hook-form';
|
|
4
|
+
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
5
|
+
import 'dayjs';
|
|
6
|
+
import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* FormRadioGroup Component
|
|
10
|
+
*
|
|
11
|
+
* A radio button group component that integrates with react-hook-form for form state management.
|
|
12
|
+
* Renders multiple radio options in a row with labels and validation support.
|
|
13
|
+
*
|
|
14
|
+
* @component
|
|
15
|
+
* @param {Object} props - The component props
|
|
16
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
17
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Basic usage in FormRender with settings array
|
|
21
|
+
* <FormRadioGroup props={formRenderProps} variant="outlined" />
|
|
22
|
+
*/
|
|
23
|
+
const FormRadioGroup = ({ props, variant }) => {
|
|
24
|
+
/**
|
|
25
|
+
* Renders a group of radio buttons with labels and validation support
|
|
26
|
+
*/
|
|
27
|
+
return (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(FormControl, { component: "fieldset", children: jsx(Controller, { name: props.item.name, control: props.control, render: ({ field }) => (jsx(RadioGroup, { value: field.value, onChange: (e) => {
|
|
28
|
+
field.onChange(e.target.value); // update form state
|
|
29
|
+
props.item.onChangeFn && props.item.onChangeFn(e.target.value); // optional handler
|
|
30
|
+
}, row: true, sx: {
|
|
31
|
+
gap: '8px',
|
|
32
|
+
}, children: props.item?.settings?.map((option, i) => (jsx(FormControlLabel, { value: option.name, control: jsx(Radio, { sx: {
|
|
33
|
+
padding: '6px 2px 6px 8px',
|
|
34
|
+
color: 'black',
|
|
35
|
+
'&.Mui-checked': {
|
|
36
|
+
color: '#1976d2', // blue when selected
|
|
37
|
+
},
|
|
38
|
+
'& .MuiSvgIcon-root': {
|
|
39
|
+
fontSize: 16, // controls the radio icon size
|
|
40
|
+
},
|
|
41
|
+
} }), label: jsx(Typography, { fontSize: '11px', fontWeight: 'normal !important', children: option.label }) }, i))) })) }) }), jsx(FormBottomField, { ...props })] }));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { FormRadioGroup as default };
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import { FormRenderProps, VariantProps } from
|
|
1
|
+
import { FormRenderProps, VariantProps } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* FormTextAreaField Component
|
|
4
|
+
*
|
|
5
|
+
* A multi-line text input field component that integrates with react-hook-form for form state management.
|
|
6
|
+
* Renders a textarea with validation support and customizable rows.
|
|
7
|
+
*
|
|
8
|
+
* @component
|
|
9
|
+
* @param {Object} props - The component props
|
|
10
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
11
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Basic usage in FormRender
|
|
15
|
+
* <FormTextAreaField props={formRenderProps} variant="outlined" />
|
|
16
|
+
*/
|
|
2
17
|
declare const FormTextAreaField: ({ props, variant, }: {
|
|
3
18
|
props: FormRenderProps;
|
|
4
19
|
variant: VariantProps;
|
|
5
20
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* Export the FormTextAreaField component for use in the form renderer
|
|
23
|
+
* This component is used for textarea input types
|
|
24
|
+
*/
|
|
6
25
|
export default FormTextAreaField;
|
|
7
|
-
//# sourceMappingURL=FormTextAreaField.d.ts.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Controller } from 'react-hook-form';
|
|
3
|
+
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
4
|
+
import { TextAreaField } from './FormTextAreaField.styles.esm.js';
|
|
5
|
+
import 'dayjs';
|
|
6
|
+
import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* FormTextAreaField Component
|
|
10
|
+
*
|
|
11
|
+
* A multi-line text input field component that integrates with react-hook-form for form state management.
|
|
12
|
+
* Renders a textarea with validation support and customizable rows.
|
|
13
|
+
*
|
|
14
|
+
* @component
|
|
15
|
+
* @param {Object} props - The component props
|
|
16
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
17
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Basic usage in FormRender
|
|
21
|
+
* <FormTextAreaField props={formRenderProps} variant="outlined" />
|
|
22
|
+
*/
|
|
23
|
+
const FormTextAreaField = ({ props, variant, }) => {
|
|
24
|
+
/**
|
|
25
|
+
* Determines if the field has an error based on form validation
|
|
26
|
+
*/
|
|
27
|
+
const isError = !!props.errors?.[props.item.name];
|
|
28
|
+
const isShowBorderError = isError;
|
|
29
|
+
/**
|
|
30
|
+
* Renders the textarea component with validation support
|
|
31
|
+
*/
|
|
32
|
+
return (jsx(Fragment, { children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(TextAreaField, { multiline: true, size: "small", InputProps: {
|
|
33
|
+
style: {
|
|
34
|
+
border: 'none',
|
|
35
|
+
},
|
|
36
|
+
}, sx: {
|
|
37
|
+
...props.item.sx,
|
|
38
|
+
}, minRows: props.item.minRows || 1, maxRows: props.item.maxRows || 100, placeholder: props.item.placeholder || 'Type Something...', ...field, label: variant !== 'standard'
|
|
39
|
+
? `${props.item.label}${props.item.required ? ' *' : ''}`
|
|
40
|
+
: '', error: isShowBorderError, value: field.value || '', disabled: props.item.disable, inputProps: {
|
|
41
|
+
/**
|
|
42
|
+
* Handles input events with text restrictions
|
|
43
|
+
*
|
|
44
|
+
* @param {any} e - The input event object
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* - Removes special characters if allowSpecialChars is false
|
|
48
|
+
* - Prevents input that starts with a space
|
|
49
|
+
*/
|
|
50
|
+
onInput: (e) => {
|
|
51
|
+
if (!props?.item?.allowSpecialChars) {
|
|
52
|
+
const value = e.target.value;
|
|
53
|
+
e.target.value = value.replace(/[^a-zA-Z0-9 ]/g, '');
|
|
54
|
+
} // Allow only alphanumeric and space
|
|
55
|
+
if (e.target.value.length === 1 && e.target.value === ' ') {
|
|
56
|
+
e.target.value = '';
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
'aria-labelledby': `${props.item.name}-label`,
|
|
60
|
+
'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
|
|
61
|
+
'aria-required': props.item.required ? true : undefined,
|
|
62
|
+
} }), jsx(FormBottomField, { ...props })] })) }, props.item.name) }));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export { FormTextAreaField as default };
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
export declare const TextAreaField: import("@emotion/styled").StyledComponent<{
|
|
2
2
|
variant?: import("@mui/material").TextFieldVariants | undefined;
|
|
3
|
-
} & Omit<import("@mui/material").
|
|
4
|
-
theme?: import("@emotion/react").Theme;
|
|
5
|
-
}, {}, {}>;
|
|
6
|
-
//# sourceMappingURL=FormTextAreaField.styles.d.ts.map
|
|
3
|
+
} & Omit<import("@mui/material").StandardTextFieldProps | import("@mui/material").OutlinedTextFieldProps | import("@mui/material").FilledTextFieldProps, "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { styled } from '@mui/material/styles';
|
|
2
|
+
import { TextField } from '@mui/material';
|
|
3
|
+
|
|
4
|
+
const TextAreaField = styled(TextField)(() => ({
|
|
5
|
+
'& .css-1holvmy,.css-lqj8pz-MuiFormLabel-root-MuiInputLabel-root, .css-kichxs-MuiFormLabel-root-MuiInputLabel-root': {
|
|
6
|
+
top: '-10px',
|
|
7
|
+
},
|
|
8
|
+
'& input': {
|
|
9
|
+
fontSize: '11px',
|
|
10
|
+
},
|
|
11
|
+
'& .css-2rul56-MuiFormLabel-root-MuiInputLabel-root': {
|
|
12
|
+
top: '-10px',
|
|
13
|
+
},
|
|
14
|
+
'& .css-12ciryo-MuiFormLabel-root-MuiInputLabel-root ': {},
|
|
15
|
+
'& .css-1gq5vhi-MuiInputBase-root-MuiOutlinedInput-root input ': {
|
|
16
|
+
outline: 'none',
|
|
17
|
+
border: '1px solid #ced4da', // Add this line to set border to none
|
|
18
|
+
},
|
|
19
|
+
'& .css-1gq5vhi-MuiInputBase-root-MuiOutlinedInput-root input:focus ': {
|
|
20
|
+
outline: 'none',
|
|
21
|
+
border: 'none', // Set border to none when input is focused
|
|
22
|
+
},
|
|
23
|
+
'& .css-1y03twt-MuiInputBase-root-MuiOutlinedInput-root': {
|
|
24
|
+
padding: '5px 5px', // Set border to none when input is focused
|
|
25
|
+
fontSize: '11px',
|
|
26
|
+
},
|
|
27
|
+
'& textarea': {
|
|
28
|
+
fontSize: '11px',
|
|
29
|
+
// textTransform:'uppercase'
|
|
30
|
+
maxHeight: '500px !important',
|
|
31
|
+
overflow: 'auto',
|
|
32
|
+
},
|
|
33
|
+
}));
|
|
34
|
+
|
|
35
|
+
export { TextAreaField };
|
|
@@ -1,7 +1,43 @@
|
|
|
1
|
-
import { FormRenderProps, VariantProps } from
|
|
2
|
-
|
|
1
|
+
import { FormRenderProps, VariantProps } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* FormTextField Component
|
|
4
|
+
*
|
|
5
|
+
* A text input field component that integrates with react-hook-form for form state management.
|
|
6
|
+
* This component is used for standard text inputs, email inputs, and multi-email inputs.
|
|
7
|
+
*
|
|
8
|
+
* @component
|
|
9
|
+
* @param {Object} props - The component props
|
|
10
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
11
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Basic usage in FormRender
|
|
15
|
+
* <FormTextField props={formRenderProps} variant="outlined" />
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Usage with specific configuration
|
|
19
|
+
* const formItem = {
|
|
20
|
+
* name: "email",
|
|
21
|
+
* label: "Email Address",
|
|
22
|
+
* inputType: "email",
|
|
23
|
+
* required: true,
|
|
24
|
+
* placeholder: "Enter your email"
|
|
25
|
+
* };
|
|
26
|
+
* <FormTextField
|
|
27
|
+
* props={{
|
|
28
|
+
* item: formItem,
|
|
29
|
+
* control: formMethods.control,
|
|
30
|
+
* errors: formMethods.formState.errors
|
|
31
|
+
* }}
|
|
32
|
+
* variant="outlined"
|
|
33
|
+
* />
|
|
34
|
+
*/
|
|
35
|
+
declare const FormTextField: ({ props, variant }: {
|
|
3
36
|
props: FormRenderProps;
|
|
4
37
|
variant: VariantProps;
|
|
5
38
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
/**
|
|
40
|
+
* Export the FormTextField component for use in the form renderer
|
|
41
|
+
* This component is used for text, email, and multi-email input types
|
|
42
|
+
*/
|
|
6
43
|
export default FormTextField;
|
|
7
|
-
//# sourceMappingURL=FormTextField.d.ts.map
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { Controller } from 'react-hook-form';
|
|
3
|
+
import { FormTextFieldComponent } from './FormTextField.styles.esm.js';
|
|
4
|
+
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
5
|
+
import 'dayjs';
|
|
6
|
+
import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* FormTextField Component
|
|
10
|
+
*
|
|
11
|
+
* A text input field component that integrates with react-hook-form for form state management.
|
|
12
|
+
* This component is used for standard text inputs, email inputs, and multi-email inputs.
|
|
13
|
+
*
|
|
14
|
+
* @component
|
|
15
|
+
* @param {Object} props - The component props
|
|
16
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
17
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Basic usage in FormRender
|
|
21
|
+
* <FormTextField props={formRenderProps} variant="outlined" />
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // Usage with specific configuration
|
|
25
|
+
* const formItem = {
|
|
26
|
+
* name: "email",
|
|
27
|
+
* label: "Email Address",
|
|
28
|
+
* inputType: "email",
|
|
29
|
+
* required: true,
|
|
30
|
+
* placeholder: "Enter your email"
|
|
31
|
+
* };
|
|
32
|
+
* <FormTextField
|
|
33
|
+
* props={{
|
|
34
|
+
* item: formItem,
|
|
35
|
+
* control: formMethods.control,
|
|
36
|
+
* errors: formMethods.formState.errors
|
|
37
|
+
* }}
|
|
38
|
+
* variant="outlined"
|
|
39
|
+
* />
|
|
40
|
+
*/
|
|
41
|
+
const FormTextField = ({ props, variant }) => {
|
|
42
|
+
// Using fieldState.error directly from Controller render; no local isError needed
|
|
43
|
+
// Removed fieldError gating: error border now shows whenever there is a validation error
|
|
44
|
+
/**
|
|
45
|
+
* Generates the field label based on variant type
|
|
46
|
+
* For non-standard variants, appends an asterisk if the field is required
|
|
47
|
+
*/
|
|
48
|
+
const label = variant !== 'standard' ? `${props.item.label}${props.item.required ? ' *' : ''}` : '';
|
|
49
|
+
/**
|
|
50
|
+
* Handles input events with various text restrictions
|
|
51
|
+
*
|
|
52
|
+
* @param {any} e - The input event object
|
|
53
|
+
*
|
|
54
|
+
* @remarks
|
|
55
|
+
* - Removes spaces if donotAllowSpace is true
|
|
56
|
+
* - Removes special characters if allowSpecialChars is false
|
|
57
|
+
* - Prevents input that starts with a space
|
|
58
|
+
* - Calls custom onInputProps handler if provided
|
|
59
|
+
*/
|
|
60
|
+
const onInput = (e) => {
|
|
61
|
+
if (props?.item?.donotAllowSpace) {
|
|
62
|
+
const value = e.target.value;
|
|
63
|
+
e.target.value = value.replace(' ', '');
|
|
64
|
+
}
|
|
65
|
+
if (props?.item?.allowSpecialChars === false) {
|
|
66
|
+
const value = e.target.value;
|
|
67
|
+
e.target.value = value.replace(/[^a-zA-Z0-9]/g, '');
|
|
68
|
+
}
|
|
69
|
+
if (props?.item?.allowNumbers === false) {
|
|
70
|
+
const value = e.target.value;
|
|
71
|
+
e.target.value = value.replace(/[0-9]/g, '');
|
|
72
|
+
}
|
|
73
|
+
if (props?.item?.allowText === false) {
|
|
74
|
+
const value = e.target.value;
|
|
75
|
+
e.target.value = value.replace(/[a-zA-Z]/g, '');
|
|
76
|
+
}
|
|
77
|
+
if (props?.item?.allowHyphen === false) {
|
|
78
|
+
const value = e.target.value;
|
|
79
|
+
e.target.value = value.replace(/-/g, '');
|
|
80
|
+
}
|
|
81
|
+
// Allow only alphanumeric and space
|
|
82
|
+
if (e.target.value.length === 1 && e.target.value === ' ') {
|
|
83
|
+
e.target.value = '';
|
|
84
|
+
}
|
|
85
|
+
props.item.onInputProps && props.item.onInputProps(e);
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Renders the text field component using react-hook-form's Controller
|
|
89
|
+
* for controlled form state management
|
|
90
|
+
*/
|
|
91
|
+
return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field, fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(FormTextFieldComponent, { ...field, fullWidth: true, error: !!fieldState.error, label: label, placeholder: props.item.placeholder || '', autoComplete: "off", sx: {
|
|
92
|
+
...props.item.sx,
|
|
93
|
+
}, value: field.value || '', size: "small", disabled: props.item.disable, onBlur: (e) => {
|
|
94
|
+
// Call custom onBlur handler if provided
|
|
95
|
+
props?.item?.onBlurFn && props?.item?.onBlurFn(e);
|
|
96
|
+
}, inputProps: {
|
|
97
|
+
...{
|
|
98
|
+
maxLength: props.item.maxLength || 100,
|
|
99
|
+
onInput: onInput,
|
|
100
|
+
onPaste: (e) => {
|
|
101
|
+
if (props.item.doNotAllowPaste)
|
|
102
|
+
e.preventDefault();
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
'aria-labelledby': `${props.item.name}-label`,
|
|
106
|
+
'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
|
|
107
|
+
'aria-required': props.item.required ? true : undefined,
|
|
108
|
+
} }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export { FormTextField as default };
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Styled TextField component with custom styling for form inputs
|
|
3
|
+
*
|
|
4
|
+
* This component extends Material-UI's TextField with custom styling to match
|
|
5
|
+
* the design system requirements. It includes specific CSS overrides for various
|
|
6
|
+
* Material-UI classes to ensure consistent appearance across the application.
|
|
7
|
+
*
|
|
8
|
+
* @component
|
|
9
|
+
*/
|
|
1
10
|
export declare const FormTextFieldComponent: import("@emotion/styled").StyledComponent<{
|
|
2
11
|
variant?: import("@mui/material").TextFieldVariants | undefined;
|
|
3
|
-
} & Omit<import("@mui/material").
|
|
4
|
-
theme?: import("@emotion/react").Theme;
|
|
5
|
-
}, {}, {}>;
|
|
6
|
-
//# sourceMappingURL=FormTextField.styles.d.ts.map
|
|
12
|
+
} & Omit<import("@mui/material").StandardTextFieldProps | import("@mui/material").OutlinedTextFieldProps | import("@mui/material").FilledTextFieldProps, "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { styled } from '@mui/material/styles';
|
|
2
|
+
import { TextField } from '@mui/material';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Styled TextField component with custom styling for form inputs
|
|
6
|
+
*
|
|
7
|
+
* This component extends Material-UI's TextField with custom styling to match
|
|
8
|
+
* the design system requirements. It includes specific CSS overrides for various
|
|
9
|
+
* Material-UI classes to ensure consistent appearance across the application.
|
|
10
|
+
*
|
|
11
|
+
* @component
|
|
12
|
+
*/
|
|
13
|
+
const FormTextFieldComponent = styled(TextField)(() => ({
|
|
14
|
+
// '& .MuiFormLabel-root': {
|
|
15
|
+
// top: '-10px',
|
|
16
|
+
// },
|
|
17
|
+
// '& .MuiInputBase-root.MuiOutlinedInput-root input': {
|
|
18
|
+
// outline: 'none',
|
|
19
|
+
// border: '1px solid #ced4da',
|
|
20
|
+
// },
|
|
21
|
+
// '& .MuiInputBase-root.MuiOutlinedInput-root input:focus': {
|
|
22
|
+
// outline: 'none',
|
|
23
|
+
// border: 'none',
|
|
24
|
+
// },
|
|
25
|
+
}));
|
|
26
|
+
|
|
27
|
+
export { FormTextFieldComponent };
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import { FormRenderProps } from
|
|
1
|
+
import { FormRenderProps } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* HelperText Component
|
|
4
|
+
*
|
|
5
|
+
* Displays helper text below form fields when provided.
|
|
6
|
+
* Helper text provides additional guidance to users about the field.
|
|
7
|
+
*
|
|
8
|
+
* @component
|
|
9
|
+
* @param {FormRenderProps} props - Form rendering properties from parent form
|
|
10
|
+
*/
|
|
2
11
|
declare const HelperText: (props: FormRenderProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
/**
|
|
13
|
+
* Export the HelperText component for use in form field components
|
|
14
|
+
* This component handles the display of helper text for form fields
|
|
15
|
+
*/
|
|
3
16
|
export default HelperText;
|
|
4
|
-
//# sourceMappingURL=HelperText.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* HelperText Component
|
|
5
|
+
*
|
|
6
|
+
* Displays helper text below form fields when provided.
|
|
7
|
+
* Helper text provides additional guidance to users about the field.
|
|
8
|
+
*
|
|
9
|
+
* @component
|
|
10
|
+
* @param {FormRenderProps} props - Form rendering properties from parent form
|
|
11
|
+
*/
|
|
12
|
+
const HelperText = (props) => {
|
|
13
|
+
/**
|
|
14
|
+
* Conditionally renders helper text if it exists in the form item props
|
|
15
|
+
* Returns an empty fragment if no helper text is provided
|
|
16
|
+
*/
|
|
17
|
+
return props?.item?.helperText ? (jsx("span", { id: `${props.item.name}-helper`, style: {
|
|
18
|
+
fontSize: '11px',
|
|
19
|
+
color: '#3651d3',
|
|
20
|
+
}, children: props?.item?.helperText })) : (jsx(Fragment, {}));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { HelperText as default };
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import { FormRenderProps, VariantProps } from
|
|
2
|
-
|
|
1
|
+
import { FormRenderProps, VariantProps } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* PasswordField Component
|
|
4
|
+
*
|
|
5
|
+
* A password input field component that integrates with react-hook-form for form state management.
|
|
6
|
+
* Includes a visibility toggle button to show/hide the password.
|
|
7
|
+
*
|
|
8
|
+
* @component
|
|
9
|
+
* @param {Object} props - The component props
|
|
10
|
+
* @param {FormRenderProps} props.props - Form rendering properties from parent form
|
|
11
|
+
* @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Basic usage in FormRender
|
|
15
|
+
* <PasswordField props={formRenderProps} variant="outlined" />
|
|
16
|
+
*/
|
|
17
|
+
declare const PasswordField: ({ props, variant }: {
|
|
3
18
|
props: FormRenderProps;
|
|
4
19
|
variant: VariantProps;
|
|
5
20
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* Export the PasswordField component for use in the form renderer
|
|
23
|
+
* This component is used for password input types
|
|
24
|
+
*/
|
|
6
25
|
export default PasswordField;
|
|
7
|
-
//# sourceMappingURL=PasswordField.d.ts.map
|