tp-react-elements-dev 1.12.20 → 1.12.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/components/DeleteComponent/DeleteField.js +24 -0
  2. package/dist/components/Form/Form.styles.js +111 -0
  3. package/dist/components/Form/FormActiveSwitch.js +27 -0
  4. package/dist/components/Form/FormConstants.d.ts +1 -1
  5. package/dist/components/Form/FormConstants.d.ts.map +1 -1
  6. package/dist/components/Form/FormConstants.js +336 -0
  7. package/dist/components/Form/FormRender.d.ts +1 -1
  8. package/dist/components/Form/FormRender.d.ts.map +1 -1
  9. package/dist/components/Form/FormRender.js +96 -0
  10. package/dist/components/Form/FormRenderWrapper.d.ts +1 -1
  11. package/dist/components/Form/FormRenderWrapper.d.ts.map +1 -1
  12. package/dist/components/Form/FormRenderWrapper.js +13 -0
  13. package/dist/components/FormComponents/DatePicker/DateRangePicker.d.ts +1 -1
  14. package/dist/components/FormComponents/DatePicker/DateRangePicker.d.ts.map +1 -1
  15. package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.d.ts +1 -1
  16. package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.d.ts.map +1 -1
  17. package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.js +58 -0
  18. package/dist/components/FormComponents/DatePicker/MonthPicker.d.ts.map +1 -1
  19. package/dist/components/FormComponents/DatePicker/MonthPicker.js +48 -0
  20. package/dist/components/FormComponents/DatePicker/Monthpickerrender.d.ts +1 -1
  21. package/dist/components/FormComponents/DatePicker/Monthpickerrender.d.ts.map +1 -1
  22. package/dist/components/FormComponents/DatePicker/Monthpickerrender.js +61 -0
  23. package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.d.ts +1 -1
  24. package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.d.ts.map +1 -1
  25. package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.js +86 -0
  26. package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.d.ts +1 -1
  27. package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.d.ts.map +1 -1
  28. package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.js +96 -0
  29. package/dist/components/FormComponents/FormBottomField/FormBottomField.d.ts +1 -1
  30. package/dist/components/FormComponents/FormBottomField/FormBottomField.d.ts.map +1 -1
  31. package/dist/components/FormComponents/FormBottomField/FormBottomField.js +9 -0
  32. package/dist/components/FormComponents/FormCheckBox/FormCheckBox.d.ts +1 -1
  33. package/dist/components/FormComponents/FormCheckBox/FormCheckBox.d.ts.map +1 -1
  34. package/dist/components/FormComponents/FormCheckBox/FormCheckBox.js +10 -0
  35. package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.d.ts +1 -1
  36. package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.d.ts.map +1 -1
  37. package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.js +23 -0
  38. package/dist/components/FormComponents/FormErrorField/FormErrorField.d.ts +1 -1
  39. package/dist/components/FormComponents/FormErrorField/FormErrorField.d.ts.map +1 -1
  40. package/dist/components/FormComponents/FormErrorField/FormErrorField.js +9 -0
  41. package/dist/components/FormComponents/FormNumberField/FormNumberField.d.ts +1 -1
  42. package/dist/components/FormComponents/FormNumberField/FormNumberField.d.ts.map +1 -1
  43. package/dist/components/FormComponents/FormNumberField/FormNumberField.js +49 -0
  44. package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.d.ts +1 -1
  45. package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.d.ts.map +1 -1
  46. package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.js +45 -0
  47. package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.d.ts +1 -1
  48. package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.d.ts.map +1 -1
  49. package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.js +26 -0
  50. package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.d.ts +1 -1
  51. package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.d.ts.map +1 -1
  52. package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.js +31 -0
  53. package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.styles.js +35 -0
  54. package/dist/components/FormComponents/FormTextField/FormTextField.d.ts +1 -1
  55. package/dist/components/FormComponents/FormTextField/FormTextField.d.ts.map +1 -1
  56. package/dist/components/FormComponents/FormTextField/FormTextField.js +46 -0
  57. package/dist/components/FormComponents/FormTextField/FormTextField.styles.js +22 -0
  58. package/dist/components/FormComponents/HelperText/HelperText.d.ts +1 -1
  59. package/dist/components/FormComponents/HelperText/HelperText.d.ts.map +1 -1
  60. package/dist/components/FormComponents/HelperText/HelperText.js +10 -0
  61. package/dist/components/FormComponents/PasswordField/PasswordField.d.ts +1 -1
  62. package/dist/components/FormComponents/PasswordField/PasswordField.d.ts.map +1 -1
  63. package/dist/components/FormComponents/PasswordField/PasswordField.js +49 -0
  64. package/dist/components/FormComponents/RichTextEditor/RichTextEditor.d.ts +1 -1
  65. package/dist/components/FormComponents/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  66. package/dist/components/FormComponents/RichTextEditor/RichTextEditor.js +95 -0
  67. package/dist/components/FormComponents/RichTextEditor/RichTextEditorWrapper.d.ts +1 -1
  68. package/dist/components/FormComponents/RichTextEditor/RichTextEditorWrapper.d.ts.map +1 -1
  69. package/dist/components/FormComponents/RichTextEditor/RichTextEditorWrapper.js +11 -0
  70. package/dist/components/FormComponents/RichTextEditor/jodit.index.js +27 -0
  71. package/dist/components/FormComponents/Select/MultiSelectv1.d.ts +1 -1
  72. package/dist/components/FormComponents/Select/MultiSelectv1.d.ts.map +1 -1
  73. package/dist/components/FormComponents/Select/MultiSelectv1.js +157 -0
  74. package/dist/components/FormComponents/Select/SingleSelect.d.ts +1 -1
  75. package/dist/components/FormComponents/Select/SingleSelect.d.ts.map +1 -1
  76. package/dist/components/FormComponents/Select/SingleSelect.js +51 -0
  77. package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.d.ts +1 -1
  78. package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.d.ts.map +1 -1
  79. package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.js +27 -0
  80. package/dist/components/FormComponents/Select/SingleSelectSearchApi.js +204 -0
  81. package/dist/components/FormComponents/TimePicker/TimePicker.d.ts +1 -1
  82. package/dist/components/FormComponents/TimePicker/TimePicker.d.ts.map +1 -1
  83. package/dist/components/FormComponents/TimePicker/TimePicker.js +55 -0
  84. package/dist/components/FormComponents/YearPickerField/YearPickerField.js +82 -0
  85. package/dist/components/FormComponents/index.js +26 -0
  86. package/dist/components/Global.styles.js +79 -0
  87. package/dist/components/ModalField/ConfirmationDialog.js +48 -0
  88. package/dist/components/ModalField/ModalField.js +32 -0
  89. package/dist/components/SelectField/MultiSelectFieldComponent.js +129 -0
  90. package/dist/components/SessionTimeOut/SessionTimeOut.js +63 -0
  91. package/dist/index.d.ts +3 -3
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +16 -2673
  94. package/dist/lib/Constants/FormConstants.d.ts.map +1 -0
  95. package/dist/lib/Constants/FormConstants.js +54 -0
  96. package/dist/lib/Constants/FunctionConstants.d.ts.map +1 -0
  97. package/dist/lib/Constants/FunctionConstants.js +244 -0
  98. package/dist/{Utilities → lib}/Interface/FormInterface.d.ts +0 -1
  99. package/dist/lib/Interface/FormInterface.d.ts.map +1 -0
  100. package/dist/lib/index.d.ts +3 -2
  101. package/dist/lib/index.d.ts.map +1 -1
  102. package/dist/lib/index.js +4 -0
  103. package/dist/theme/index.js +64 -0
  104. package/dist/validation/schemas.js +60 -0
  105. package/package.json +6 -5
  106. package/dist/Utilities/Constants/FormConstants.d.ts.map +0 -1
  107. package/dist/Utilities/Constants/FunctionConstants.d.ts.map +0 -1
  108. package/dist/Utilities/Interface/FormInterface.d.ts.map +0 -1
  109. package/dist/Utilities/index.d.ts +0 -4
  110. package/dist/Utilities/index.d.ts.map +0 -1
  111. package/dist/index.esm.css +0 -1
  112. package/dist/index.esm.js +0 -2632
  113. package/dist/lib/constants.d.ts +0 -2
  114. package/dist/lib/constants.d.ts.map +0 -1
  115. package/dist/lib/hook-form.d.ts +0 -4
  116. package/dist/lib/hook-form.d.ts.map +0 -1
  117. /package/dist/{Utilities → lib}/Constants/FormConstants.d.ts +0 -0
  118. /package/dist/{Utilities → lib}/Constants/FunctionConstants.d.ts +0 -0
@@ -0,0 +1,24 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { Tooltip, Grid, Typography } from '@mui/material';
3
+ import ConfirmationDialog from '../ModalField/ConfirmationDialog.js';
4
+ import { useState } from 'react';
5
+
6
+ const DeleteField = ({ onClickFn, tooltip = "Delete", text }) => {
7
+ const [openDialog, setOpenDialog] = useState(false);
8
+ const handleCancel = () => {
9
+ setOpenDialog(false);
10
+ };
11
+ return (jsxs(Fragment, { children: [jsx(Tooltip, { title: jsx(Typography, { sx: { fontSize: "8px" }, children: tooltip }), children: jsx(Grid, { sx: { ":hover": { cursor: "pointer" } }, onClick: () => {
12
+ setOpenDialog(true);
13
+ }, children: jsx("i", { className: "flaticon-trash", style: {
14
+ lineHeight: 1,
15
+ fontSize: "11px",
16
+ color: "red",
17
+ marginTop: "10px",
18
+ } }) }) }), jsx(ConfirmationDialog, { openConfirmDialog: openDialog, handleCancel: handleCancel, onClickSubmit: () => {
19
+ handleCancel();
20
+ onClickFn();
21
+ }, text: text })] }));
22
+ };
23
+
24
+ export { DeleteField as default };
@@ -0,0 +1,111 @@
1
+ import styled from '@emotion/styled';
2
+ import ArrowDropDownSharpIcon from '@mui/icons-material/ArrowDropDownSharp';
3
+ import { Grid, Box, Button, MenuItem, Typography } from '@mui/material';
4
+ import Container from '@mui/material/Container';
5
+ import { DatePicker } from '@mui/x-date-pickers';
6
+
7
+ const FormComponent = styled(Grid)(({ theme }) => ({
8
+ alignItems: "flex-start",
9
+ flexWrap: "wrap",
10
+ [theme.breakpoints.down("md")]: {
11
+ flexDirection: "column",
12
+ },
13
+ }));
14
+ styled(Box)(() => ({
15
+ margin: "5px 0px",
16
+ fontSize: "11px",
17
+ backgroundColor: "#ffff",
18
+ padding: "0.5em",
19
+ border: "0px solid rgba(0, 0, 0, 0.125)",
20
+ boxShadow: "0 1px 15px rgba(0,0,0,.04), 0 1px 6px rgba(0,0,0,.04)",
21
+ borderRadius: "0.75rem",
22
+ }));
23
+ const Formitem = styled(Grid, {
24
+ shouldForwardProp: (prop) => prop !== "isActive" && prop !== "noOfColumn",
25
+ })(({ theme, noOfColumn }) => ({
26
+ width: `calc(100%/${noOfColumn})`,
27
+ flexDirection: "column",
28
+ paddingLeft: "15px",
29
+ paddingRight: "15px",
30
+ marginBottom: theme.spacing(1),
31
+ [theme.breakpoints.down("md")]: {
32
+ width: "100%",
33
+ },
34
+ }));
35
+ const ErrorMessageComponent = styled(Box)(() => ({
36
+ color: "red",
37
+ marginTop: "4px",
38
+ fontSize: "11px",
39
+ fontWeight: 500,
40
+ }));
41
+ styled(Container)(({ theme }) => ({
42
+ [theme.breakpoints.up("sm")]: {
43
+ padding: "16px 24px",
44
+ },
45
+ [theme.breakpoints.up("lg")]: {
46
+ paddingLeft: "30px",
47
+ paddingRight: "30px",
48
+ },
49
+ }));
50
+ styled(Button)(() => ({
51
+ color: "#fff",
52
+ backgroundColor: "#00acc1",
53
+ BorderColor: "#00acc1",
54
+ }));
55
+ styled(Button)(() => ({
56
+ color: "#fff",
57
+ backgroundColor: " #343a40",
58
+ borderColor: "#343a40",
59
+ }));
60
+ styled(Grid)(() => ({
61
+ alignItems: "start",
62
+ gap: "1px",
63
+ }));
64
+ styled("text")(() => ({
65
+ color: "red",
66
+ }));
67
+ styled(Box)(() => ({
68
+ margin: "5px 0px",
69
+ backgroundColor: "#ffff",
70
+ paddingBlock: "0.5em",
71
+ border: "0px solid rgba(0, 0, 0, 0.125)",
72
+ boxShadow: "0 1px 15px rgba(0,0,0,.04), 0 1px 6px rgba(0,0,0,.04)",
73
+ borderRadius: "0.75rem",
74
+ overflow: "hidden",
75
+ fontSize: "11px",
76
+ }));
77
+ styled(DatePicker)(() => ({
78
+ "& .MuiInputBase-input": {
79
+ padding: "6.38px 14px",
80
+ },
81
+ }));
82
+ styled(MenuItem)(() => ({
83
+ fontSize: "11px",
84
+ }));
85
+ styled(Box)(() => ({
86
+ maxHeight: "120px",
87
+ overflow: "auto",
88
+ position: "absolute",
89
+ top: "100%",
90
+ background: "#fff",
91
+ zIndex: 1000,
92
+ border: "1px solid #0001",
93
+ }));
94
+ styled(Typography)(() => ({
95
+ fontSize: "13px",
96
+ background: "#fff",
97
+ padding: "5px 13px",
98
+ zIndex: 1000,
99
+ "&:hover": {
100
+ backgroundColor: "#0001",
101
+ cursor: "pointer",
102
+ },
103
+ }));
104
+ styled(ArrowDropDownSharpIcon)(() => ({
105
+ fontSize: "25px",
106
+ position: "absolute",
107
+ right: 0,
108
+ color: "#0009",
109
+ }));
110
+
111
+ export { ErrorMessageComponent, FormComponent, Formitem };
@@ -0,0 +1,27 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect, useCallback } from 'react';
3
+
4
+ const FormActiveSwitch = ({ props }) => {
5
+ const [active, setActive] = useState(true);
6
+ const { getValues, setValue, item } = props;
7
+ const defaultValue1 = item.value1 ?? "A";
8
+ const defaultValue2 = item.value2 ?? "I";
9
+ useEffect(() => {
10
+ const currentValue = getValues(item.name);
11
+ setActive(currentValue === defaultValue1);
12
+ }, [getValues, item.name, defaultValue1]);
13
+ const handleSwitchChange = useCallback(() => {
14
+ setActive((prevActive) => {
15
+ const newValue = !prevActive ? defaultValue1 : defaultValue2;
16
+ setValue(item.name, newValue);
17
+ return !prevActive;
18
+ });
19
+ }, [setValue, item.name, defaultValue1, defaultValue2]);
20
+ return (jsxs("div", { className: "m-form__input", children: [item.label && (jsx("span", { style: {
21
+ fontSize: "12px",
22
+ fontWeight: 400,
23
+ paddingRight: 10,
24
+ }, children: item.label })), jsxs("span", { className: "switch prestashop-switch fixed-width-lg", children: [jsx("input", { checked: active, id: `${item.name}_on`, name: item.name, type: "radio", value: "Active", onChange: handleSwitchChange }), jsx("label", { htmlFor: `${item.name}_on`, style: { textTransform: "none" }, children: item.label1 ?? "Active" }), jsx("input", { checked: !active, id: `${item.name}_off`, name: item.name, type: "radio", value: "In Active", onChange: handleSwitchChange }), jsx("label", { htmlFor: `${item.name}_off`, style: { textTransform: "none" }, children: item.label2 ?? "In Active" }), jsx("a", { className: "slide-button btn" })] })] }));
25
+ };
26
+
27
+ export { FormActiveSwitch as default };
@@ -1,5 +1,5 @@
1
1
  import * as Yup from "yup";
2
- import { FormSectionPropsItem } from "@/Utilities/Interface/FormInterface";
2
+ import { FormSectionPropsItem } from "@/lib/Interface/FormInterface";
3
3
  export interface InitialValues {
4
4
  [key: string]: string | number | null | boolean;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FormConstants.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormConstants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACjD;AACD,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,QAAA,MAAM,wBAAwB,GAAI,WAAW,oBAAoB,EAAE;;;CAkXlE,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"FormConstants.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormConstants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACjD;AACD,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,QAAA,MAAM,wBAAwB,GAAI,WAAW,oBAAoB,EAAE;;;CAkXlE,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,336 @@
1
+ import * as Yup from 'yup';
2
+
3
+ const useFormValidatingContext = (formArray) => {
4
+ const initialValues = {};
5
+ const validationShape = {};
6
+ const renderCustomError = (field) => {
7
+ if (field.customValidation) {
8
+ validationShape[field.name] = validationShape[field.name].test("custom-check", field.customErrorMessage || "Invalid value", (value) => {
9
+ // Call the custom validation function if provided
10
+ return field.customValidation ? field.customValidation(value) : true;
11
+ });
12
+ }
13
+ };
14
+ formArray.forEach((field) => {
15
+ switch (field.inputType) {
16
+ case "text":
17
+ initialValues[field.name] = "";
18
+ if (field.required && field.errorMessage) {
19
+ validationShape[field.name] = Yup.string()
20
+ .typeError(field.errorMessage)
21
+ .required(field.errorMessage);
22
+ renderCustomError(field);
23
+ }
24
+ renderCustomError(field);
25
+ break;
26
+ case "rich-text-editor":
27
+ initialValues[field.name] = "";
28
+ if (field.required && field.errorMessage) {
29
+ validationShape[field.name] = Yup.string()
30
+ .typeError(field.errorMessage)
31
+ .required(field.errorMessage);
32
+ renderCustomError(field);
33
+ }
34
+ renderCustomError(field);
35
+ break;
36
+ case "password":
37
+ initialValues[field.name] = "";
38
+ if (field.required && field.errorMessage) {
39
+ validationShape[field.name] = Yup.string()
40
+ .typeError(field.errorMessage)
41
+ .required(field.errorMessage);
42
+ renderCustomError(field);
43
+ }
44
+ renderCustomError(field);
45
+ break;
46
+ case "email":
47
+ initialValues[field.name] = "";
48
+ if (field.required && field.errorMessage) {
49
+ validationShape[field.name] = Yup.string()
50
+ .typeError(`Please enter ${field.label}`)
51
+ .required(field.errorMessage)
52
+ .test("valid-email", `Please enter valid Email`, (value) => {
53
+ return /\@.*\..+/.test(value);
54
+ });
55
+ renderCustomError(field);
56
+ }
57
+ else {
58
+ validationShape[field.name] = Yup.string()
59
+ .typeError(`Please enter ${field.label}`)
60
+ .test("valid-email", `Please enter valid Email`, (value) => {
61
+ // Custom validation to check for at least one period after '@'
62
+ return !value || /\@.*\..+/.test(value);
63
+ });
64
+ renderCustomError(field);
65
+ }
66
+ renderCustomError(field);
67
+ break;
68
+ case "multiEmail":
69
+ initialValues[field.name] = "";
70
+ if (field.required && field.errorMessage) {
71
+ validationShape[field.name] = Yup.string()
72
+ .typeError(`Please enter ${field.label}`)
73
+ .required(field.errorMessage)
74
+ .test("valid-email", `Please enter valid Email`, (value) => {
75
+ if (!value)
76
+ return false;
77
+ const emails = value.split(";");
78
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
79
+ return emails.every((email) => emailRegex.test(email.trim()));
80
+ });
81
+ renderCustomError(field);
82
+ }
83
+ else {
84
+ validationShape[field.name] = Yup.string()
85
+ .typeError(`Please enter ${field.label}`)
86
+ .test("custom", `Please enter valid Email`, (value) => {
87
+ // Custom validation to check for at least one period after '@'
88
+ if (!value || value === "") {
89
+ return true;
90
+ }
91
+ else {
92
+ const emails = value.split(";");
93
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
94
+ return emails.every((email) => emailRegex.test(email.trim()));
95
+ }
96
+ });
97
+ renderCustomError(field);
98
+ }
99
+ renderCustomError(field);
100
+ break;
101
+ case "file":
102
+ initialValues[field.name] = null;
103
+ if (field.required && field.errorMessage) {
104
+ validationShape[field.name] = Yup.mixed()
105
+ .test("fileOrString", field?.errorMessage, (value) => {
106
+ return (value instanceof File ||
107
+ (typeof value === "string" && value.trim() !== ""));
108
+ })
109
+ .required(field.errorMessage);
110
+ renderCustomError(field);
111
+ }
112
+ renderCustomError(field);
113
+ break;
114
+ case "multifile":
115
+ initialValues[field.name] = null;
116
+ if (field.required && field.errorMessage) {
117
+ validationShape[field.name] = Yup.string()
118
+ .test("hasAtLeastOneFile", field.errorMessage, (value) => {
119
+ if (!value)
120
+ return false;
121
+ // Split by comma, trim, and filter out empty values
122
+ const files = value
123
+ .split(",")
124
+ .map((f) => f.trim())
125
+ .filter((f) => f !== "");
126
+ return files.length > 0;
127
+ })
128
+ .required(field.errorMessage);
129
+ renderCustomError(field);
130
+ }
131
+ renderCustomError(field);
132
+ break;
133
+ case "number":
134
+ initialValues[field.name] = null;
135
+ if (field.required && field.errorMessage) {
136
+ validationShape[field.name] = Yup.number()
137
+ .nullable()
138
+ .typeError(field.errorMessage)
139
+ .required(field.errorMessage);
140
+ renderCustomError(field);
141
+ }
142
+ renderCustomError(field);
143
+ break;
144
+ case "checkbox":
145
+ initialValues[field.name] = false;
146
+ break;
147
+ case "pincode":
148
+ initialValues[field.name] = null;
149
+ if (field.required && field.errorMessage) {
150
+ validationShape[field.name] = Yup.number()
151
+ .nullable()
152
+ .typeError(`Please enter PinCode`)
153
+ .required(field.errorMessage)
154
+ .test("is-six-digits", `Please enter a 6-digit PinCode`, (value) => {
155
+ if (value) {
156
+ const stringValue = value.toString();
157
+ return stringValue.length === 6;
158
+ }
159
+ return false;
160
+ });
161
+ renderCustomError(field);
162
+ }
163
+ renderCustomError(field);
164
+ break;
165
+ // case "phoneNumber":
166
+ // initialValues[field.name] = null;
167
+ // if (field.required && field.errorMessage) {
168
+ // validationShape[field.name] = Yup.number()
169
+ // .nullable()
170
+ // .typeError(`Please enter Mobile Number`)
171
+ // .required(field.errorMessage)
172
+ // .test(
173
+ // "is-two-digits",
174
+ // `Please enter a 10-digit Mobile Number`,
175
+ // (value) => {
176
+ // if (value) {
177
+ // const stringValue = value.toString();
178
+ // return stringValue.length === 2;
179
+ // }
180
+ // return false;
181
+ // }
182
+ // );
183
+ // renderCustomError(field)
184
+ // } else {
185
+ // validationShape[field.name] = Yup.number()
186
+ // .nullable()
187
+ // // .typeError(`Please enter Mobile Number`)
188
+ // .test(
189
+ // "is-two-digits",
190
+ // `Please enter a 10-digit Mobile Number`,
191
+ // (value: any) => {
192
+ // return !value || value?.toString().length === 2;
193
+ // }
194
+ // );
195
+ // renderCustomError(field)
196
+ // }
197
+ // break;
198
+ case "phoneNumber":
199
+ initialValues[field.name] = null;
200
+ if (field.required) {
201
+ validationShape[field.name] = Yup.number()
202
+ .nullable()
203
+ .typeError(`Please enter Mobile Number`)
204
+ .required(field.errorMessage)
205
+ .test("is-two-digits", `Please enter a 10-digit Mobile Number`, (value) => {
206
+ if (value) {
207
+ const stringValue = value.toString();
208
+ return stringValue.length === 10;
209
+ }
210
+ return false;
211
+ });
212
+ renderCustomError(field);
213
+ }
214
+ else {
215
+ validationShape[field.name] = Yup.string()
216
+ .nullable()
217
+ .typeError(``)
218
+ .test("is-two-digits", `Please enter a 10-digit Mobile Number`, (value) => {
219
+ if (value) {
220
+ // Custom validation to check for at least one period after '@'
221
+ const stringValue = value.toString();
222
+ return stringValue.length === 10;
223
+ }
224
+ return true; // Skip validation if no value is present
225
+ });
226
+ renderCustomError(field);
227
+ }
228
+ break;
229
+ case "select":
230
+ initialValues[field.name] = "";
231
+ if (field.required && field.errorMessage) {
232
+ validationShape[field.name] = Yup.string()
233
+ .typeError(`Select ${field.label}`)
234
+ .required(field.errorMessage);
235
+ renderCustomError(field);
236
+ }
237
+ renderCustomError(field);
238
+ break;
239
+ case "checkbox-group":
240
+ case "radio-group":
241
+ initialValues[field.name] = "";
242
+ if (field.required && field.errorMessage) {
243
+ validationShape[field.name] = Yup.string()
244
+ .typeError(`Select ${field.label}`)
245
+ .required(field.errorMessage);
246
+ renderCustomError(field);
247
+ }
248
+ renderCustomError(field);
249
+ break;
250
+ case "multiselect":
251
+ initialValues[field.name] = null;
252
+ if (field.required && field.errorMessage) {
253
+ validationShape[field.name] = validationShape[field.name] =
254
+ Yup.string()
255
+ .typeError(`Select atleast one ${field.label}`)
256
+ .required(field.errorMessage);
257
+ renderCustomError(field);
258
+ }
259
+ renderCustomError(field);
260
+ break;
261
+ case "datepicker":
262
+ case "timepicker":
263
+ initialValues[field.name] = null;
264
+ if (field.required && field.errorMessage) {
265
+ validationShape[field.name] = validationShape[field.name] =
266
+ Yup.string()
267
+ .typeError(`Select ${field.label}`)
268
+ .required(field.errorMessage);
269
+ renderCustomError(field);
270
+ }
271
+ renderCustomError(field);
272
+ break;
273
+ case "yearpicker":
274
+ initialValues[field.name] = null;
275
+ if (field.required && field.errorMessage) {
276
+ validationShape[field.name] = validationShape[field.name] =
277
+ Yup.string()
278
+ .typeError(`Select ${field.label}`)
279
+ .required(field.errorMessage);
280
+ renderCustomError(field);
281
+ }
282
+ renderCustomError(field);
283
+ break;
284
+ case "monthpicker":
285
+ initialValues[field.name] = null;
286
+ if (field.required && field.errorMessage) {
287
+ validationShape[field.name] = validationShape[field.name] =
288
+ Yup.string()
289
+ .typeError(`Select ${field.label}`)
290
+ .required(field.errorMessage);
291
+ renderCustomError(field);
292
+ }
293
+ renderCustomError(field);
294
+ break;
295
+ case "toggleSwitch":
296
+ initialValues[field.name] = true;
297
+ renderCustomError(field);
298
+ break;
299
+ case "dateRangePicker":
300
+ const today = new Date();
301
+ const day = String(today.getDate()).padStart(2, "0");
302
+ const month = String(today.getMonth() + 1).padStart(2, "0"); // January is 0!
303
+ const year = today.getFullYear();
304
+ const formattedDate = `${day}/${month}/${year}`;
305
+ const threeMonthsAgo = new Date(today);
306
+ threeMonthsAgo.setMonth(today.getMonth() - (field.monthSpan ?? 3));
307
+ const dayBeforeThreeMonths = String(threeMonthsAgo.getDate()).padStart(2, "0");
308
+ const monthBeforeThreeMonths = String(threeMonthsAgo.getMonth() + 1).padStart(2, "0"); // January is 0!
309
+ const yearBeforeThreeMonths = threeMonthsAgo.getFullYear();
310
+ const formattedDateForThreeMonths = `${dayBeforeThreeMonths}/${monthBeforeThreeMonths}/${yearBeforeThreeMonths}`;
311
+ initialValues["FromDate"] = formattedDateForThreeMonths;
312
+ initialValues["ToDate"] = formattedDate;
313
+ if (field.required && field.errorMessage) {
314
+ validationShape[field.name] = validationShape[field.name] =
315
+ Yup.string()
316
+ .typeError(`Select ${field.label}`)
317
+ .required(field.errorMessage);
318
+ renderCustomError(field);
319
+ }
320
+ renderCustomError(field);
321
+ break;
322
+ default:
323
+ initialValues[field.name] = null; // default value if inputType is not recognized
324
+ if (field.required && field.errorMessage) {
325
+ validationShape[field.name] = Yup.mixed().required(field.errorMessage);
326
+ renderCustomError(field);
327
+ }
328
+ renderCustomError(field);
329
+ break;
330
+ }
331
+ });
332
+ const validationSchema = Yup.object().shape(validationShape);
333
+ return { validationSchema, initialValues };
334
+ };
335
+
336
+ export { useFormValidatingContext as default };
@@ -1,4 +1,4 @@
1
- import { FormRenderProps } from "../../Utilities/Interface/FormInterface";
1
+ import { FormRenderProps } from "../../lib/Interface/FormInterface";
2
2
  declare const RenderForm: (props: FormRenderProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default RenderForm;
4
4
  //# sourceMappingURL=FormRender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormRender.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormRender.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAsB1E,QAAA,MAAM,UAAU,GAAI,OAAO,eAAe,4CA2FzC,CAAC;AAGF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FormRender.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormRender.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAsBpE,QAAA,MAAM,UAAU,GAAI,OAAO,eAAe,4CA2FzC,CAAC;AAGF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import DatepickerWrapperV2 from '../FormComponents/DatePicker/DatepickerWrapperV2.js';
3
+ import Monthpickerrender from '../FormComponents/DatePicker/Monthpickerrender.js';
4
+ import FormRenderFileUpload from '../FormComponents/FileUpload/FormRenderFileUpload.js';
5
+ import FormRenderMultiFileUpload from '../FormComponents/FileUpload/FormRenderMultiFileUpload.js';
6
+ import FormCheckBox from '../FormComponents/FormCheckBox/FormCheckBox.js';
7
+ import FormCheckBoxGroup from '../FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.js';
8
+ import FormNumberField from '../FormComponents/FormNumberField/FormNumberField.js';
9
+ import FormNumberFieldDecimal from '../FormComponents/FormNumberField/FormNumberFieldDecimal.js';
10
+ import FormRadioGroup from '../FormComponents/FormRadioGroup/FormRadioGroup.js';
11
+ import FormTextAreaField from '../FormComponents/FormTextAreaField/FormTextAreaField.js';
12
+ import FormTextField from '../FormComponents/FormTextField/FormTextField.js';
13
+ import PasswordField from '../FormComponents/PasswordField/PasswordField.js';
14
+ import RichTextEditorWrapper from '../FormComponents/RichTextEditor/RichTextEditorWrapper.js';
15
+ import MultiSelectV1 from '../FormComponents/Select/MultiSelectv1.js';
16
+ import SingleSelect from '../FormComponents/Select/SingleSelect.js';
17
+ import SingleSelectNonAutoComplete from '../FormComponents/Select/SingleSelectNonAutoComplete.js';
18
+ import TimePickerFieldWrapper from '../FormComponents/TimePicker/TimePicker.js';
19
+ import FormActiveSwitch from './FormActiveSwitch.js';
20
+
21
+ // Main renderer function: decides which form field component to render
22
+ // based on the `inputType` defined in `props.item`
23
+ const RenderForm = (props) => {
24
+ // Variant is an optional property that controls UI style differences
25
+ const variant = props.variant || "";
26
+ // Switch between different input types and render the corresponding component
27
+ switch (props.item?.inputType) {
28
+ // Common text-based inputs
29
+ case "text":
30
+ case "multiEmail":
31
+ case "email":
32
+ return jsx(FormTextField, { props: props, variant: variant });
33
+ // Rich text editor
34
+ case "rich-text-editor":
35
+ return jsx(RichTextEditorWrapper, { props: props, variant: variant });
36
+ // Password field
37
+ case "password":
38
+ return jsx(PasswordField, { props: props, variant: variant });
39
+ // Dropdown select (auto-complete)
40
+ case "select":
41
+ return jsx(SingleSelect, { props: props, variant: variant });
42
+ // Dropdown select (non auto-complete)
43
+ case "select-v2":
44
+ return jsx(SingleSelectNonAutoComplete, { props: props, variant: variant });
45
+ // Numeric inputs (integer, pincode, phone)
46
+ case "number":
47
+ case "pincode":
48
+ case "phoneNumber":
49
+ return jsx(FormNumberField, { props: props, variant: variant });
50
+ // Decimal input
51
+ case "decimal":
52
+ return jsx(FormNumberFieldDecimal, { props: props, variant: variant });
53
+ // Checkbox group (multiple options)
54
+ case "checkbox-group":
55
+ return jsx(FormCheckBoxGroup, { props: props, variant: variant });
56
+ // Radio group (single option)
57
+ case "radio-group":
58
+ return jsx(FormRadioGroup, { props: props, variant: variant });
59
+ // Date picker
60
+ case "datepicker":
61
+ return jsx(DatepickerWrapperV2, { props: props, variant: variant });
62
+ // Time picker
63
+ case "timepicker":
64
+ return jsx(TimePickerFieldWrapper, { props: props, variant: variant });
65
+ // Date range picker - TEMPORARILY DISABLED
66
+ case "dateRangePicker":
67
+ return jsx("div", {});
68
+ // return <DateRangePickerComponent props={props} variant={variant} />;
69
+ // Month picker
70
+ case "monthpicker":
71
+ return jsx(Monthpickerrender, { props: props, variant: variant });
72
+ // Multi-select dropdown
73
+ case "multiselect":
74
+ return jsx(MultiSelectV1, { props: props, variant: variant });
75
+ // Single file upload
76
+ case "file":
77
+ return jsx(FormRenderFileUpload, { props: props, variant: variant });
78
+ // Multi file upload
79
+ case "multifile":
80
+ return jsx(FormRenderMultiFileUpload, { props: props, variant: variant });
81
+ // Single checkbox
82
+ case "checkbox":
83
+ return jsx(FormCheckBox, { props: props, variant: variant });
84
+ // Multi-line text input
85
+ case "textarea":
86
+ return jsx(FormTextAreaField, { props: props, variant: variant });
87
+ // Toggle switch (active/inactive)
88
+ case "toggleSwitch":
89
+ return jsx(FormActiveSwitch, { props: props }, props.item.name);
90
+ // Default case: if input type is not found, return nothing
91
+ default:
92
+ return jsx(Fragment, {});
93
+ }
94
+ };
95
+
96
+ export { RenderForm as default };
@@ -1,4 +1,4 @@
1
- import { FormSectionPropsItem, VariantProps } from "@/Utilities/Interface/FormInterface";
1
+ import { FormSectionPropsItem, VariantProps } from "@/lib/Interface/FormInterface";
2
2
  import { UseFormReturn } from "react-hook-form";
3
3
  export interface FormRenderWrapperProps {
4
4
  formArray: FormSectionPropsItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"FormRenderWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormRenderWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,YAAY,EACb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,aAAa,CACjB;QACE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;QAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;KAC/C,EACD,GAAG,EACH;QACE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;QAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;KAC/C,CACF,CAAC;IACF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,QAAA,MAAM,iBAAiB,GAAI,kEAOxB,sBAAsB,4CA+BxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"FormRenderWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormRenderWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,YAAY,EACb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,aAAa,CACjB;QACE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;QAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;KAC/C,EACD,GAAG,EACH;QACE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;QAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;KAC/C,CACF,CAAC;IACF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,QAAA,MAAM,iBAAiB,GAAI,kEAOxB,sBAAsB,4CA+BxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { customTheme } from '../../theme/index.js';
3
+ import { ThemeProvider } from '@emotion/react';
4
+ import { FormComponent, Formitem } from './Form.styles.js';
5
+ import RenderForm from './FormRender.js';
6
+
7
+ const FormRenderWrapper = ({ formArray, name = "", numberOfColumns = 3, form, variant = "", fieldError, }) => {
8
+ return (jsx(ThemeProvider, { theme: customTheme, children: jsx(FormComponent, { container: true, margin: "auto", children: formArray.map((item, i) => {
9
+ return (item.inputType && (jsx(Formitem, { container: true, sx: item.CustomProps, noOfColumn: item.numberOfColumns || numberOfColumns, children: jsx(RenderForm, { item: item, register: form.register, control: form.control, errors: form.formState.errors, getValues: form.getValues, clearErrors: form.clearErrors, setValue: form.setValue, variant: variant, fieldError: fieldError }) }, `${name}_${i}`)));
10
+ }) }) }));
11
+ };
12
+
13
+ export { FormRenderWrapper as default };
@@ -1,4 +1,4 @@
1
- import { FormRenderProps, VariantProps } from "../../../Utilities/Interface/FormInterface";
1
+ import { FormRenderProps, VariantProps } from "../../../lib/Interface/FormInterface";
2
2
  declare const DateRangePickerComponent: ({ props: _props, variant: _variant, }: {
3
3
  props: FormRenderProps;
4
4
  variant: VariantProps;