tp-react-elements 1.0.3 → 1.1.1
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/dist/_virtual/index.esm10.js +2 -2
- package/dist/_virtual/index.esm12.js +2 -2
- package/dist/_virtual/index.esm13.js +2 -2
- package/dist/_virtual/index.esm4.js +2 -2
- package/dist/_virtual/index.esm6.js +2 -2
- package/dist/_virtual/index.esm7.js +2 -2
- package/dist/_virtual/index.esm9.js +2 -2
- package/dist/components/Form/FormRender.esm.js +6 -2
- package/dist/components/Form/FormRenderWrapper.esm.js +2 -2
- package/dist/components/FormComponents/Select/MultiSelectTable.d.ts +6 -0
- package/dist/components/FormComponents/Select/MultiSelectTable.esm.js +339 -0
- package/dist/components/FormComponents/Select/MultiSelectv1.esm.js +39 -37
- package/dist/components/FormComponents/index.d.ts +1 -0
- package/dist/components/FormComponents/index.esm.js +1 -0
- package/dist/components/SelectField/MultiSelectFieldComponent.esm.js +5 -5
- package/dist/node_modules/prop-types/index.esm.js +1 -1
- package/dist/node_modules/react-date-range/dist/accessibility/index.esm.js +1 -1
- package/dist/node_modules/react-date-range/dist/components/Calendar/index.esm.js +3 -3
- package/dist/node_modules/react-date-range/dist/components/DateInput/index.esm.js +3 -3
- package/dist/node_modules/react-date-range/dist/components/DateRange/index.esm.js +3 -3
- package/dist/node_modules/react-date-range/dist/components/DateRangePicker/index.esm.js +3 -3
- package/dist/node_modules/react-date-range/dist/components/DayCell/index.esm.js +2 -2
- package/dist/node_modules/react-date-range/dist/components/DefinedRange/index.esm.js +2 -2
- package/dist/node_modules/react-date-range/dist/components/InputRangeField/index.esm.js +3 -3
- package/dist/node_modules/react-date-range/dist/components/Month/index.esm.js +2 -2
- package/dist/node_modules/react-list/react-list.esm.js +2 -2
- package/dist/utils/Interface/FormInterface.d.ts +11 -1
- package/package.json +6 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var accessibility = {};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { accessibility as __exports };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var DateInput = {};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { DateInput as __exports };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var InputRangeField = {};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { InputRangeField as __exports };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Calendar = {};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { Calendar as __exports };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var DateRangePicker = {};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { DateRangePicker as __exports };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var DateRange = {};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { DateRange as __exports };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var propTypes = {exports: {}};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { propTypes as __module };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import require$$0__default, { lazy, Suspense } from 'react';
|
|
3
3
|
import FormCheckBox from '../FormComponents/FormCheckBox/FormCheckBox.esm.js';
|
|
4
4
|
import FormCheckBoxGroup from '../FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.esm.js';
|
|
5
5
|
import FormNumberField from '../FormComponents/FormNumberField/FormNumberField.esm.js';
|
|
@@ -22,6 +22,7 @@ import SingleSelectSearchApi from '../FormComponents/Select/SingleSelectSearchAp
|
|
|
22
22
|
// import('../RichTextEditor').then((m) => ({ default: m.RichTextEditorWrapper }))
|
|
23
23
|
// );
|
|
24
24
|
const MultiSelectV1 = lazy(() => import('../FormComponents/Select/MultiSelectv1.esm.js'));
|
|
25
|
+
const MultiSelectTable = lazy(() => import('../FormComponents/Select/MultiSelectTable.esm.js'));
|
|
25
26
|
const FormRenderFileUpload = lazy(() => import('../FileUpload/index.esm.js').then((m) => ({ default: m.FormRenderFileUpload })));
|
|
26
27
|
const FormRenderMultiFileUpload = lazy(() => import('../FileUpload/index.esm.js').then((m) => ({ default: m.FormRenderMultiFileUpload })));
|
|
27
28
|
const MultiFileWithPreview = lazy(() => import('../FileUpload/index.esm.js').then((m) => ({ default: m.MultiFileWithPreview })));
|
|
@@ -118,6 +119,9 @@ const RenderForm = (props) => {
|
|
|
118
119
|
// Multi-select dropdown
|
|
119
120
|
case 'multiselect':
|
|
120
121
|
return (jsx(Suspense, { fallback: jsx(LoadingFallback, {}), children: jsx(MultiSelectV1, { props: props, variant: variant }) }));
|
|
122
|
+
// Multi-select with table dropdown
|
|
123
|
+
case 'multiselect-table':
|
|
124
|
+
return (jsx(Suspense, { fallback: jsx(LoadingFallback, {}), children: jsx(MultiSelectTable, { props: props, variant: variant }) }));
|
|
121
125
|
// Single file upload
|
|
122
126
|
case 'file':
|
|
123
127
|
return (jsx(Suspense, { fallback: jsx(LoadingFallback, {}), children: jsx(FormRenderFileUpload, { props: props, variant: variant }) }));
|
|
@@ -151,6 +155,6 @@ const RenderForm = (props) => {
|
|
|
151
155
|
*
|
|
152
156
|
* @see FormRenderWrapper
|
|
153
157
|
*/
|
|
154
|
-
var RenderForm$1 =
|
|
158
|
+
var RenderForm$1 = require$$0__default.memo(RenderForm);
|
|
155
159
|
|
|
156
160
|
export { RenderForm$1 as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { useFormState } from 'react-hook-form';
|
|
4
4
|
import { FormComponent, Formitem } from './Form.styles.esm.js';
|
|
5
5
|
import RenderForm from './FormRender.esm.js';
|
|
@@ -28,6 +28,6 @@ const FormRenderWrapper = ({ formArray, name = '', numberOfColumns = 3, form, va
|
|
|
28
28
|
* Export the FormRenderWrapper component for use in form containers
|
|
29
29
|
* This component is the main entry point for rendering form fields
|
|
30
30
|
*/
|
|
31
|
-
var FormRenderWrapper_default =
|
|
31
|
+
var FormRenderWrapper_default = require$$0__default.memo(FormRenderWrapper);
|
|
32
32
|
|
|
33
33
|
export { FormRenderWrapper_default as default };
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Box, FormControl, InputLabel, Select, Tooltip, OutlinedInput, Checkbox } from '@mui/material';
|
|
3
|
+
import { useState, useRef, useMemo, useCallback } from 'react';
|
|
4
|
+
import { useWatch } from 'react-hook-form';
|
|
5
|
+
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
6
|
+
import 'dayjs';
|
|
7
|
+
import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
|
|
8
|
+
import { useMaterialReactTable, MaterialReactTable } from 'material-react-table';
|
|
9
|
+
|
|
10
|
+
const ITEM_HEIGHT = 50;
|
|
11
|
+
const ITEM_PADDING_TOP = 3;
|
|
12
|
+
const extractValuesToArray = (inputString) => {
|
|
13
|
+
if (!inputString)
|
|
14
|
+
return [];
|
|
15
|
+
return inputString.split(',').map((value) => value.trim()).filter(Boolean);
|
|
16
|
+
};
|
|
17
|
+
const MultiSelectTable = ({ props, variant, }) => {
|
|
18
|
+
const MenuProps = {
|
|
19
|
+
PaperProps: {
|
|
20
|
+
style: {
|
|
21
|
+
maxHeight: ITEM_HEIGHT * 8 + ITEM_PADDING_TOP,
|
|
22
|
+
width: '100%',
|
|
23
|
+
minWidth: '280px',
|
|
24
|
+
maxWidth: '450px',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
autoFocus: false,
|
|
28
|
+
disableAutoFocusItem: true,
|
|
29
|
+
};
|
|
30
|
+
const [globalFilter, setGlobalFilter] = useState('');
|
|
31
|
+
const tableRef = useRef(null);
|
|
32
|
+
const fieldValue = useWatch({ control: props.control, name: props.item.name });
|
|
33
|
+
const isError = !!props.errors?.[props.item.name];
|
|
34
|
+
const isShowBorderError = isError;
|
|
35
|
+
// Get columns and rows from form item
|
|
36
|
+
const columns = props.item.columns || [];
|
|
37
|
+
const rows = props.item.rows || [];
|
|
38
|
+
const valueField = props.item.valueField || 'id';
|
|
39
|
+
const labelField = props.item.labelField || 'name';
|
|
40
|
+
const headerColor = props.item.headerColor || '#00695c';
|
|
41
|
+
const placeholder = props.item.placeholder || 'None selected';
|
|
42
|
+
// Get selected rows (handles both array of objects and legacy string format)
|
|
43
|
+
const selectedRows = useMemo(() => {
|
|
44
|
+
if (!fieldValue)
|
|
45
|
+
return [];
|
|
46
|
+
// If fieldValue is already an array of objects, use it directly
|
|
47
|
+
if (Array.isArray(fieldValue)) {
|
|
48
|
+
return fieldValue;
|
|
49
|
+
}
|
|
50
|
+
// Legacy: handle comma-separated string of IDs
|
|
51
|
+
const ids = extractValuesToArray(fieldValue);
|
|
52
|
+
return rows.filter((row) => ids.includes(String(row[valueField])));
|
|
53
|
+
}, [fieldValue, rows, valueField]);
|
|
54
|
+
// Get selected values as array of IDs for checkbox state
|
|
55
|
+
const selectedValues = useMemo(() => {
|
|
56
|
+
return selectedRows.map((row) => String(row[valueField]));
|
|
57
|
+
}, [selectedRows, valueField]);
|
|
58
|
+
// Display text for selected items
|
|
59
|
+
const selectedDisplayText = useMemo(() => {
|
|
60
|
+
const labels = selectedRows.map((row) => row[labelField]);
|
|
61
|
+
return labels.join(', ');
|
|
62
|
+
}, [selectedRows, labelField]);
|
|
63
|
+
// Handle row selection
|
|
64
|
+
const handleRowSelect = useCallback((rowId) => {
|
|
65
|
+
const currentIds = new Set(selectedValues);
|
|
66
|
+
const isSelected = currentIds.has(rowId);
|
|
67
|
+
let newSelectedRows;
|
|
68
|
+
if (isSelected) {
|
|
69
|
+
// Remove row
|
|
70
|
+
newSelectedRows = selectedRows.filter((row) => String(row[valueField]) !== rowId);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// Add row
|
|
74
|
+
const rowToAdd = rows.find((row) => String(row[valueField]) === rowId);
|
|
75
|
+
if (rowToAdd) {
|
|
76
|
+
newSelectedRows = [...selectedRows, rowToAdd];
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
newSelectedRows = selectedRows;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
props.setValue(props.item.name, newSelectedRows);
|
|
83
|
+
props?.item?.onChangeFn && props?.item?.onChangeFn(newSelectedRows);
|
|
84
|
+
props?.clearErrors && props?.clearErrors(props.item.name);
|
|
85
|
+
}, [selectedValues, selectedRows, rows, props, valueField]);
|
|
86
|
+
// Handle select all - selects filtered/visible rows (like MUI MultiSelect)
|
|
87
|
+
const handleSelectAll = useCallback(() => {
|
|
88
|
+
const table = tableRef.current;
|
|
89
|
+
if (!table)
|
|
90
|
+
return;
|
|
91
|
+
// Get filtered/visible rows (respects search filter)
|
|
92
|
+
const filteredRows = table.getFilteredRowModel().rows;
|
|
93
|
+
const filteredIds = filteredRows.map((row) => String(row.original[valueField]));
|
|
94
|
+
const currentIds = new Set(selectedValues);
|
|
95
|
+
const allFilteredSelected = filteredIds.every((id) => currentIds.has(id));
|
|
96
|
+
let newSelectedRows;
|
|
97
|
+
if (allFilteredSelected) {
|
|
98
|
+
// Deselect filtered rows - remove them from selection
|
|
99
|
+
newSelectedRows = selectedRows.filter((row) => !filteredIds.includes(String(row[valueField])));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// Select filtered rows - add them to selection
|
|
103
|
+
const rowsToAdd = filteredRows
|
|
104
|
+
.map((row) => row.original)
|
|
105
|
+
.filter((row) => !currentIds.has(String(row[valueField])));
|
|
106
|
+
newSelectedRows = [...selectedRows, ...rowsToAdd];
|
|
107
|
+
}
|
|
108
|
+
props.setValue(props.item.name, newSelectedRows);
|
|
109
|
+
props?.item?.onChangeFn && props?.item?.onChangeFn(newSelectedRows);
|
|
110
|
+
}, [selectedValues, selectedRows, props, valueField]);
|
|
111
|
+
// Calculate select all state based on filtered rows
|
|
112
|
+
const getIsAllSelected = useCallback((table) => {
|
|
113
|
+
const filteredRows = table.getFilteredRowModel().rows;
|
|
114
|
+
if (filteredRows.length === 0)
|
|
115
|
+
return false;
|
|
116
|
+
return filteredRows.every((row) => selectedValues.includes(String(row.original[valueField])));
|
|
117
|
+
}, [selectedValues, valueField]);
|
|
118
|
+
const getIsIndeterminate = useCallback((table) => {
|
|
119
|
+
const filteredRows = table.getFilteredRowModel().rows;
|
|
120
|
+
if (filteredRows.length === 0)
|
|
121
|
+
return false;
|
|
122
|
+
const selectedCount = filteredRows.filter((row) => selectedValues.includes(String(row.original[valueField]))).length;
|
|
123
|
+
return selectedCount > 0 && selectedCount < filteredRows.length;
|
|
124
|
+
}, [selectedValues, valueField]);
|
|
125
|
+
// Build MRT columns from form item columns
|
|
126
|
+
const mrtColumns = useMemo(() => {
|
|
127
|
+
const selectColumn = {
|
|
128
|
+
id: 'select',
|
|
129
|
+
header: '',
|
|
130
|
+
size: 40,
|
|
131
|
+
minSize: 40,
|
|
132
|
+
maxSize: 40,
|
|
133
|
+
enableSorting: false,
|
|
134
|
+
enableColumnFilter: false,
|
|
135
|
+
Cell: ({ row }) => {
|
|
136
|
+
const rowId = String(row.original[valueField]);
|
|
137
|
+
const isSelected = selectedValues.includes(rowId);
|
|
138
|
+
return (jsx(Checkbox, { size: "small", checked: isSelected, onChange: () => handleRowSelect(rowId), sx: {
|
|
139
|
+
padding: '2px',
|
|
140
|
+
'& .MuiSvgIcon-root': {
|
|
141
|
+
fontSize: '16px',
|
|
142
|
+
},
|
|
143
|
+
} }));
|
|
144
|
+
},
|
|
145
|
+
Header: ({ table }) => {
|
|
146
|
+
// Store table reference for select all
|
|
147
|
+
tableRef.current = table;
|
|
148
|
+
const isAllSelected = getIsAllSelected(table);
|
|
149
|
+
const isIndeterminate = getIsIndeterminate(table);
|
|
150
|
+
return (jsx(Checkbox, { size: "small", checked: isAllSelected, indeterminate: isIndeterminate, onChange: handleSelectAll, sx: {
|
|
151
|
+
padding: '2px',
|
|
152
|
+
'& .MuiSvgIcon-root': {
|
|
153
|
+
fontSize: '16px',
|
|
154
|
+
},
|
|
155
|
+
} }));
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
const dataColumns = columns.map((col) => ({
|
|
159
|
+
accessorKey: col.field,
|
|
160
|
+
header: col.headerName,
|
|
161
|
+
size: col.width || 100,
|
|
162
|
+
minSize: 60,
|
|
163
|
+
maxSize: 150,
|
|
164
|
+
}));
|
|
165
|
+
return [selectColumn, ...dataColumns];
|
|
166
|
+
}, [columns, selectedValues, valueField, handleRowSelect, handleSelectAll, getIsAllSelected, getIsIndeterminate]);
|
|
167
|
+
// MRT table instance
|
|
168
|
+
const table = useMaterialReactTable({
|
|
169
|
+
columns: mrtColumns,
|
|
170
|
+
data: rows,
|
|
171
|
+
enableTopToolbar: true,
|
|
172
|
+
enableGlobalFilter: true,
|
|
173
|
+
enableBottomToolbar: true,
|
|
174
|
+
enablePagination: true,
|
|
175
|
+
enableColumnActions: false,
|
|
176
|
+
enableColumnFilters: false,
|
|
177
|
+
enableSorting: false,
|
|
178
|
+
enableRowSelection: false,
|
|
179
|
+
enableSelectAll: false,
|
|
180
|
+
enableMultiRowSelection: false,
|
|
181
|
+
enableStickyHeader: true,
|
|
182
|
+
enableDensityToggle: false,
|
|
183
|
+
enableFullScreenToggle: false,
|
|
184
|
+
enableHiding: false,
|
|
185
|
+
positionGlobalFilter: 'left',
|
|
186
|
+
muiSearchTextFieldProps: {
|
|
187
|
+
placeholder: 'Search...',
|
|
188
|
+
size: 'small',
|
|
189
|
+
sx: {
|
|
190
|
+
width: 'calc(100% - 24px)',
|
|
191
|
+
margin: '0 12px',
|
|
192
|
+
'& .MuiInputBase-root': {
|
|
193
|
+
fontSize: '11px',
|
|
194
|
+
height: '28px',
|
|
195
|
+
width: '100%',
|
|
196
|
+
},
|
|
197
|
+
'& .MuiInputBase-input': {
|
|
198
|
+
padding: '4px 8px',
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
globalFilterFn: 'contains',
|
|
203
|
+
muiTopToolbarProps: {
|
|
204
|
+
sx: {
|
|
205
|
+
padding: '8px 12px',
|
|
206
|
+
minHeight: '44px',
|
|
207
|
+
width: '100%',
|
|
208
|
+
boxSizing: 'border-box',
|
|
209
|
+
'& .Mui-Toolbar': {
|
|
210
|
+
width: '100%',
|
|
211
|
+
},
|
|
212
|
+
'& .MuiBox-root': {
|
|
213
|
+
width: '100%',
|
|
214
|
+
maxWidth: '100%',
|
|
215
|
+
},
|
|
216
|
+
'& > div': {
|
|
217
|
+
width: '100%',
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
mrtTheme: {
|
|
222
|
+
baseBackgroundColor: '#fff',
|
|
223
|
+
},
|
|
224
|
+
defaultColumn: {
|
|
225
|
+
size: 120,
|
|
226
|
+
minSize: 80,
|
|
227
|
+
maxSize: 200,
|
|
228
|
+
},
|
|
229
|
+
paginationDisplayMode: 'pages',
|
|
230
|
+
muiPaginationProps: {
|
|
231
|
+
rowsPerPageOptions: [10, 25, 50],
|
|
232
|
+
showFirstButton: false,
|
|
233
|
+
showLastButton: false,
|
|
234
|
+
size: 'small',
|
|
235
|
+
sx: {
|
|
236
|
+
'& .MuiTablePagination-root': {
|
|
237
|
+
fontSize: '10px',
|
|
238
|
+
minHeight: '28px',
|
|
239
|
+
},
|
|
240
|
+
'& .MuiTablePagination-select': {
|
|
241
|
+
fontSize: '10px',
|
|
242
|
+
},
|
|
243
|
+
'& .MuiTablePagination-displayedRows': {
|
|
244
|
+
fontSize: '10px',
|
|
245
|
+
},
|
|
246
|
+
'& .MuiTablePagination-toolbar': {
|
|
247
|
+
minHeight: '28px',
|
|
248
|
+
padding: '0 4px',
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
muiTableContainerProps: {
|
|
253
|
+
sx: {
|
|
254
|
+
maxHeight: 400,
|
|
255
|
+
width: '100%',
|
|
256
|
+
overflowX: 'hidden',
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
layoutMode: 'semantic',
|
|
260
|
+
muiTableHeadCellProps: {
|
|
261
|
+
sx: {
|
|
262
|
+
backgroundColor: headerColor,
|
|
263
|
+
color: '#fff',
|
|
264
|
+
fontWeight: 'bold',
|
|
265
|
+
fontSize: '11px',
|
|
266
|
+
padding: '4px 6px',
|
|
267
|
+
borderBottom: '1px solid #e0e0e0',
|
|
268
|
+
'& .Mui-TableHeadCell-Content': {
|
|
269
|
+
color: '#fff',
|
|
270
|
+
fontSize: '11px',
|
|
271
|
+
},
|
|
272
|
+
'& .MuiSvgIcon-root': {
|
|
273
|
+
color: '#fff',
|
|
274
|
+
fontSize: '16px',
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
muiTableBodyCellProps: {
|
|
279
|
+
sx: {
|
|
280
|
+
fontSize: '10px',
|
|
281
|
+
padding: '4px 6px',
|
|
282
|
+
borderBottom: '1px solid #e0e0e0',
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
muiTableBodyRowProps: {
|
|
286
|
+
sx: {
|
|
287
|
+
borderBottom: '1px solid #e0e0e0',
|
|
288
|
+
height: '32px',
|
|
289
|
+
'&:hover': {
|
|
290
|
+
backgroundColor: '#e0f2f1',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
initialState: {
|
|
295
|
+
density: 'compact',
|
|
296
|
+
pagination: {
|
|
297
|
+
pageSize: 7,
|
|
298
|
+
pageIndex: 0,
|
|
299
|
+
},
|
|
300
|
+
showGlobalFilter: true,
|
|
301
|
+
},
|
|
302
|
+
state: {
|
|
303
|
+
globalFilter,
|
|
304
|
+
},
|
|
305
|
+
onGlobalFilterChange: setGlobalFilter,
|
|
306
|
+
});
|
|
307
|
+
return (jsx(Box, { children: jsxs(FormControl, { fullWidth: true, sx: {
|
|
308
|
+
'& .MuiFormLabel-root': {
|
|
309
|
+
top: -10,
|
|
310
|
+
},
|
|
311
|
+
'& .MuiInputLabel-shrink': {
|
|
312
|
+
top: 0,
|
|
313
|
+
},
|
|
314
|
+
'& .MuiTablePagination-root': {
|
|
315
|
+
padding: '0px !important'
|
|
316
|
+
}
|
|
317
|
+
}, children: [renderLabel(variant, props), variant !== 'standard' ? (jsxs(InputLabel, { error: isShowBorderError, id: `${props.item.name}-mst-labelId`, children: [props.item.label, props.item.required ? ' *' : ''] })) : null, jsx(Select, { labelId: `${props.item.name}-mst-labelId`, id: `${props.item.name}-mst-select`, multiple: true, sx: {
|
|
318
|
+
'& .MuiTypography-root': {
|
|
319
|
+
fontSize: '5px !important',
|
|
320
|
+
},
|
|
321
|
+
}, error: isShowBorderError, disabled: props.item.disable, value: selectedValues, displayEmpty: true, inputProps: {
|
|
322
|
+
'aria-labelledby': `${props.item.name}-label`,
|
|
323
|
+
'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
|
|
324
|
+
'aria-required': props.item.required ? true : undefined,
|
|
325
|
+
}, onOpen: () => {
|
|
326
|
+
setGlobalFilter('');
|
|
327
|
+
}, onClose: () => {
|
|
328
|
+
setGlobalFilter('');
|
|
329
|
+
props?.item?.onCloseMenu && props?.item?.onCloseMenu();
|
|
330
|
+
}, input: jsx(OutlinedInput, { label: variant !== 'standard' ? props.item.label : '' }), renderValue: () => (jsx(Tooltip, { title: selectedDisplayText, children: jsx("span", { children: selectedRows.length > (props.item.multiSelectLabelLength || 2)
|
|
331
|
+
? `${selectedRows.length} Selected`
|
|
332
|
+
: selectedDisplayText || placeholder }) })), MenuProps: MenuProps, autoFocus: false, children: jsx(Box, { sx: {
|
|
333
|
+
maxHeight: 450, width: '100%', overflow: 'hidden', '.MuiTextField-root': {
|
|
334
|
+
width: '260% !important'
|
|
335
|
+
}
|
|
336
|
+
}, children: rows.length > 0 ? (jsx(MaterialReactTable, { table: table })) : (jsx(Box, { sx: { padding: '16px', textAlign: 'center', color: '#999', fontSize: '11px' }, children: "No Options found" })) }) }), jsx(FormBottomField, { ...props })] }) }, props.item.name));
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
export { MultiSelectTable as default };
|
|
@@ -7,7 +7,7 @@ import ListItemText from '@mui/material/ListItemText';
|
|
|
7
7
|
import MenuItem from '@mui/material/MenuItem';
|
|
8
8
|
import OutlinedInput from '@mui/material/OutlinedInput';
|
|
9
9
|
import Select from '@mui/material/Select';
|
|
10
|
-
import
|
|
10
|
+
import require$$0__default, { useState, useMemo } from 'react';
|
|
11
11
|
import { useWatch } from 'react-hook-form';
|
|
12
12
|
import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
|
|
13
13
|
import 'dayjs';
|
|
@@ -34,21 +34,27 @@ const MenuProps = {
|
|
|
34
34
|
// },
|
|
35
35
|
// }));
|
|
36
36
|
const extractValuesToArray = (inputString) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return
|
|
37
|
+
if (!inputString)
|
|
38
|
+
return [];
|
|
39
|
+
return inputString.split(',').map((value) => value.trim()).filter(Boolean);
|
|
40
40
|
};
|
|
41
41
|
function MultiSelectV1({ props, variant, }) {
|
|
42
|
-
const [personName, setPersonName] =
|
|
42
|
+
const [personName, setPersonName] = require$$0__default.useState(props.getValues(props.item.name) ? extractValuesToArray(props.getValues(props.item.name)) : []);
|
|
43
43
|
const [searchText, setSearchText] = useState('');
|
|
44
44
|
const options = props.item?.options || [];
|
|
45
45
|
const [filterOptions, setFilterOptions] = useState(props.item.options || []);
|
|
46
|
-
const
|
|
47
|
-
const textfieldRef = React__default.useRef(null);
|
|
46
|
+
const textfieldRef = require$$0__default.useRef(null);
|
|
48
47
|
const fieldValue = useWatch({ control: props.control, name: props.item.name });
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
48
|
+
// Calculate selectAll state based on actual selection
|
|
49
|
+
const selectAll = useMemo(() => {
|
|
50
|
+
if (!fieldValue || filterOptions.length === 0)
|
|
51
|
+
return false;
|
|
52
|
+
const selectedValues = fieldValue.split(',').filter(Boolean);
|
|
53
|
+
return filterOptions.every((option) => selectedValues.includes(String(option.value)));
|
|
54
|
+
}, [fieldValue, filterOptions]);
|
|
55
|
+
useMemo(() => filterOptions.map((item) => item.value), [filterOptions]);
|
|
56
|
+
useMemo(() => filterOptions.map((item) => item.value), [filterOptions]);
|
|
57
|
+
require$$0__default.useEffect(() => {
|
|
52
58
|
if (searchText !== '') {
|
|
53
59
|
setFilterOptions(options.filter((item) => item.label.toLowerCase().includes(searchText.toLowerCase())));
|
|
54
60
|
}
|
|
@@ -56,19 +62,6 @@ function MultiSelectV1({ props, variant, }) {
|
|
|
56
62
|
setFilterOptions(options);
|
|
57
63
|
}
|
|
58
64
|
}, [options, searchText]);
|
|
59
|
-
function hasExactMatch(array, value) {
|
|
60
|
-
return array.some((item) => item === value);
|
|
61
|
-
}
|
|
62
|
-
React__default.useEffect(() => {
|
|
63
|
-
if (fieldValue?.split(',').length !== filterOptions.length) {
|
|
64
|
-
setSelectAll(false);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
if (fieldValue?.split(',').every((value) => hasExactMatch(filterIds, value))) {
|
|
68
|
-
setSelectAll(true);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}, [filterOptions, fieldValue]);
|
|
72
65
|
const handleChange = (event) => {
|
|
73
66
|
const { target: { value }, } = event;
|
|
74
67
|
setPersonName(typeof value === 'string' ? value?.split(',') : value);
|
|
@@ -88,7 +81,7 @@ function MultiSelectV1({ props, variant, }) {
|
|
|
88
81
|
'& .MuiInputLabel-shrink': {
|
|
89
82
|
top: 0,
|
|
90
83
|
},
|
|
91
|
-
}, children: [renderLabel(variant, props), variant !== 'standard' ? (jsxs(InputLabel, { error: isShowBorderError, id: `${props.item.name}-ms-labelId`, children: [props.item.label, props.item.required ? ' *' : ''] })) : (''), jsxs(Select, { labelId: `${props.item.name}-ms-labelId`, id: `${props.item.name}-ms-select`, multiple: true, sx: {
|
|
84
|
+
}, children: [renderLabel(variant, props), variant !== 'standard' ? (jsxs(InputLabel, { error: isShowBorderError, id: `${props.item.name}-ms-labelId`, children: [props.item.label, props.item.required ? ' *' : ''] })) : (''), jsxs(Select, { labelId: `${props.item.name}-ms-labelId`, id: `${props.item.name}-ms-select`, multiple: true, displayEmpty: true, sx: {
|
|
92
85
|
'& .MuiTypography-root': {
|
|
93
86
|
fontSize: '5px !important',
|
|
94
87
|
},
|
|
@@ -105,7 +98,7 @@ function MultiSelectV1({ props, variant, }) {
|
|
|
105
98
|
}, onClose: () => {
|
|
106
99
|
setSearchText('');
|
|
107
100
|
props?.item?.onCloseMenu && props?.item?.onCloseMenu();
|
|
108
|
-
}, input: jsx(OutlinedInput, { label: variant !== 'standard' ? props.item.label : '' }), renderValue: (_selected) => (jsx(Tooltip, { title: selectedValues, children: jsx("span", { children: selectedOptions.length > (props.item.multiSelectLabelLength || 3)
|
|
101
|
+
}, input: jsx(OutlinedInput, { label: variant !== 'standard' ? props.item.label : '' }), renderValue: (_selected) => (jsx(Tooltip, { title: selectedValues, children: (props.item.placeholder && selectedOptions.length === 0) ? jsx("span", { style: { color: '#0009' }, children: props.item.placeholder }) : jsx("span", { children: selectedOptions.length > (props.item.multiSelectLabelLength || 3)
|
|
109
102
|
? `${selectedOptions.length} Selected`
|
|
110
103
|
: selectedValues }) })), MenuProps: MenuProps, autoFocus: false, children: [jsx(Box, { sx: {
|
|
111
104
|
width: '100%',
|
|
@@ -125,26 +118,35 @@ function MultiSelectV1({ props, variant, }) {
|
|
|
125
118
|
e.stopPropagation();
|
|
126
119
|
}
|
|
127
120
|
} }) }), jsxs(MenuItem, { disabled: filterOptions.length === 0, sx: { zIndex: 0, fontSize: '5px !important' }, children: [jsx(Checkbox, { size: "small", checked: selectAll, onChange: () => {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
121
|
+
if (selectAll) {
|
|
122
|
+
// Deselect all filtered options
|
|
123
|
+
const currentValues = fieldValue?.split(',').filter(Boolean) || [];
|
|
124
|
+
const filteredValues = filterOptions.map((opt) => String(opt.value));
|
|
125
|
+
const newValues = currentValues.filter((v) => !filteredValues.includes(v));
|
|
126
|
+
props.setValue(props.item.name, newValues.join(','));
|
|
132
127
|
}
|
|
133
128
|
else {
|
|
134
|
-
|
|
135
|
-
|
|
129
|
+
// Select all filtered options
|
|
130
|
+
const currentValues = fieldValue?.split(',').filter(Boolean) || [];
|
|
131
|
+
const filteredValues = filterOptions.map((opt) => String(opt.value));
|
|
132
|
+
const newValues = [...new Set([...currentValues, ...filteredValues])];
|
|
133
|
+
props.setValue(props.item.name, newValues.join(','));
|
|
136
134
|
}
|
|
137
135
|
} }), jsx(ListItemText, { primary: 'Select All', sx: {
|
|
138
136
|
fontSize: '5px !important',
|
|
139
137
|
'& span': {
|
|
140
138
|
fontSize: '12px !important',
|
|
141
139
|
},
|
|
142
|
-
} })] }), filterOptions.length !== 0 ? (filterOptions.map((option) =>
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
140
|
+
} })] }), filterOptions.length !== 0 ? (filterOptions.map((option) => {
|
|
141
|
+
const selectedArray = fieldValue ? extractValuesToArray(fieldValue) : [];
|
|
142
|
+
const isChecked = selectedArray.includes(String(option.value));
|
|
143
|
+
return (jsxs(MenuItem, { value: `${option.value}`, selected: isChecked, sx: { zIndex: 0, fontSize: '11px !important' }, children: [jsx(Checkbox, { checked: isChecked, size: "small" }), jsx(ListItemText, { primary: option.label, sx: {
|
|
144
|
+
fontSize: '5px !important',
|
|
145
|
+
'& span': {
|
|
146
|
+
fontSize: '12px !important',
|
|
147
|
+
},
|
|
148
|
+
} })] }, option.value));
|
|
149
|
+
})) : (jsx(MenuItem, { disabled: true, value: 'NA', children: "No data Found" }, 'NA'))] }), jsx(FormBottomField, { ...props })] }) }, props.item.name));
|
|
148
150
|
}
|
|
149
151
|
|
|
150
152
|
export { MultiSelectV1 as default };
|
|
@@ -7,6 +7,7 @@ export { default as SingleSelect } from './Select/SingleSelect';
|
|
|
7
7
|
export { default as SingleSelectNonAutoComplete } from './Select/SingleSelectNonAutoComplete';
|
|
8
8
|
export { default as SingleSelectSearchApi } from './Select/SingleSelectSearchApi';
|
|
9
9
|
export { default as MultiSelectV1 } from './Select/MultiSelectv1';
|
|
10
|
+
export { default as MultiSelectTable } from './Select/MultiSelectTable';
|
|
10
11
|
export { FormCheckBoxGroup } from '../CheckBoxGroup';
|
|
11
12
|
export { FormRadioGroup } from '../RadioGroup';
|
|
12
13
|
export { DatepickerWrapperV2, MonthPicker, Monthpickerrender, YearPickerField, } from '../DatePicker';
|
|
@@ -8,6 +8,7 @@ export { default as SingleSelect } from './Select/SingleSelect.esm.js';
|
|
|
8
8
|
export { default as SingleSelectNonAutoComplete } from './Select/SingleSelectNonAutoComplete.esm.js';
|
|
9
9
|
export { default as SingleSelectSearchApi } from './Select/SingleSelectSearchApi.esm.js';
|
|
10
10
|
export { default as MultiSelectV1 } from './Select/MultiSelectv1.esm.js';
|
|
11
|
+
export { default as MultiSelectTable } from './Select/MultiSelectTable.esm.js';
|
|
11
12
|
export { default as FormCheckBoxGroup } from './FormCheckBoxGroup/FormCheckBoxGroup.esm.js';
|
|
12
13
|
export { default as FormRadioGroup } from './FormRadioGroup/FormRadioGroup.esm.js';
|
|
13
14
|
export { default as DatepickerWrapperV2 } from './DatePicker/DatepickerWrapperV2.esm.js';
|
|
@@ -5,7 +5,7 @@ import FormControl from '@mui/material/FormControl';
|
|
|
5
5
|
import ListItemText from '@mui/material/ListItemText';
|
|
6
6
|
import MenuItem from '@mui/material/MenuItem';
|
|
7
7
|
import Select from '@mui/material/Select';
|
|
8
|
-
import * as
|
|
8
|
+
import * as require$$0 from 'react';
|
|
9
9
|
import { useState } from 'react';
|
|
10
10
|
|
|
11
11
|
const ITEM_HEIGHT = 48;
|
|
@@ -25,15 +25,15 @@ const extractValuesToArray = (inputString) => {
|
|
|
25
25
|
return trimmedArray;
|
|
26
26
|
};
|
|
27
27
|
function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false, }) {
|
|
28
|
-
const [personName, setPersonName] =
|
|
28
|
+
const [personName, setPersonName] = require$$0.useState(value ? extractValuesToArray(value) : []);
|
|
29
29
|
const [searchText, setSearchText] = useState('');
|
|
30
30
|
const [filterOptions, setFilterOptions] = useState(options);
|
|
31
31
|
const [selectAll, setSelectAll] = useState(false);
|
|
32
|
-
const textfieldRef =
|
|
32
|
+
const textfieldRef = require$$0.useRef(null);
|
|
33
33
|
const fieldValue = value;
|
|
34
34
|
const mappedIds = filterOptions.map((item) => item.value);
|
|
35
35
|
const filterIds = filterOptions.map((item) => item.value);
|
|
36
|
-
|
|
36
|
+
require$$0.useEffect(() => {
|
|
37
37
|
if (searchText !== '') {
|
|
38
38
|
setFilterOptions(options.filter((item) => item.label.toLowerCase().includes(searchText.toLowerCase())));
|
|
39
39
|
}
|
|
@@ -44,7 +44,7 @@ function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false
|
|
|
44
44
|
function hasExactMatch(array, value) {
|
|
45
45
|
return array.some((item) => item === value);
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
require$$0.useEffect(() => {
|
|
48
48
|
if (fieldValue?.split(',').length !== filterOptions.length) {
|
|
49
49
|
setSelectAll(false);
|
|
50
50
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __module as propTypes } from '../../_virtual/index.
|
|
1
|
+
import { __module as propTypes } from '../../_virtual/index.esm9.js';
|
|
2
2
|
import { __require as requireReactIs } from './node_modules/react-is/index.esm.js';
|
|
3
3
|
import { __require as requireFactoryWithTypeCheckers } from './factoryWithTypeCheckers.esm.js';
|
|
4
4
|
import { __require as requireFactoryWithThrowingShims } from './factoryWithThrowingShims.esm.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as accessibility } from '../../../../_virtual/index.
|
|
1
|
+
import { __exports as accessibility } from '../../../../_virtual/index.esm10.js';
|
|
2
2
|
import { __require as requirePropTypes } from '../../../prop-types/index.esm.js';
|
|
3
3
|
|
|
4
4
|
var hasRequiredAccessibility;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __exports as Calendar } from '../../../../../_virtual/index.
|
|
2
|
-
import
|
|
1
|
+
import { __exports as Calendar } from '../../../../../_virtual/index.esm4.js';
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireDayCell } from '../DayCell/index.esm.js';
|
|
5
5
|
import { __require as requireMonth } from '../Month/index.esm.js';
|
|
@@ -23,7 +23,7 @@ function requireCalendar () {
|
|
|
23
23
|
value: true
|
|
24
24
|
});
|
|
25
25
|
Calendar.default = void 0;
|
|
26
|
-
var _react = _interopRequireWildcard(
|
|
26
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
27
27
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
28
28
|
var _DayCell = requireDayCell();
|
|
29
29
|
var _Month = _interopRequireDefault(requireMonth());
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __exports as DateInput } from '../../../../../_virtual/index.
|
|
2
|
-
import
|
|
1
|
+
import { __exports as DateInput } from '../../../../../_virtual/index.esm12.js';
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireClassnames } from '../../../../classnames/index.esm.js';
|
|
5
5
|
import { __require as requireDateFns } from '../../../../date-fns/index.esm.js';
|
|
@@ -14,7 +14,7 @@ function requireDateInput () {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
DateInput.default = void 0;
|
|
17
|
-
var _react = _interopRequireWildcard(
|
|
17
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
18
18
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
19
19
|
var _classnames = _interopRequireDefault(requireClassnames());
|
|
20
20
|
var _dateFns = /*@__PURE__*/ requireDateFns();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __exports as DateRange } from '../../../../../_virtual/index.
|
|
2
|
-
import
|
|
1
|
+
import { __exports as DateRange } from '../../../../../_virtual/index.esm7.js';
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireCalendar } from '../Calendar/index.esm.js';
|
|
5
5
|
import { __require as requireDayCell } from '../DayCell/index.esm.js';
|
|
@@ -18,7 +18,7 @@ function requireDateRange () {
|
|
|
18
18
|
value: true
|
|
19
19
|
});
|
|
20
20
|
DateRange.default = void 0;
|
|
21
|
-
var _react = _interopRequireWildcard(
|
|
21
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
22
22
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
23
23
|
var _Calendar = _interopRequireDefault(requireCalendar());
|
|
24
24
|
var _DayCell = requireDayCell();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __exports as DateRangePicker } from '../../../../../_virtual/index.
|
|
2
|
-
import
|
|
1
|
+
import { __exports as DateRangePicker } from '../../../../../_virtual/index.esm6.js';
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireDateRange } from '../DateRange/index.esm.js';
|
|
5
5
|
import { __require as requireDefinedRange } from '../DefinedRange/index.esm.js';
|
|
@@ -17,7 +17,7 @@ function requireDateRangePicker () {
|
|
|
17
17
|
value: true
|
|
18
18
|
});
|
|
19
19
|
DateRangePicker.default = void 0;
|
|
20
|
-
var _react = _interopRequireWildcard(
|
|
20
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
21
21
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
22
22
|
var _DateRange = _interopRequireDefault(requireDateRange());
|
|
23
23
|
var _DefinedRange = _interopRequireDefault(requireDefinedRange());
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exports as DayCell } from '../../../../../_virtual/index.esm11.js';
|
|
2
|
-
import
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireClassnames } from '../../../../classnames/index.esm.js';
|
|
5
5
|
import { __require as requireDateFns } from '../../../../date-fns/index.esm.js';
|
|
@@ -14,7 +14,7 @@ function requireDayCell () {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
DayCell.rangeShape = DayCell.default = void 0;
|
|
17
|
-
var _react = _interopRequireWildcard(
|
|
17
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
18
18
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
19
19
|
var _classnames = _interopRequireDefault(requireClassnames());
|
|
20
20
|
var _dateFns = /*@__PURE__*/ requireDateFns();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exports as DefinedRange } from '../../../../../_virtual/index.esm5.js';
|
|
2
|
-
import
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireStyles } from '../../styles.esm.js';
|
|
5
5
|
import { __require as requireDefaultRanges } from '../../defaultRanges.esm.js';
|
|
@@ -17,7 +17,7 @@ function requireDefinedRange () {
|
|
|
17
17
|
value: true
|
|
18
18
|
});
|
|
19
19
|
DefinedRange.default = void 0;
|
|
20
|
-
var _react = _interopRequireWildcard(
|
|
20
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
21
21
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
22
22
|
var _styles = _interopRequireDefault(requireStyles());
|
|
23
23
|
var _defaultRanges = requireDefaultRanges();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { __exports as InputRangeField } from '../../../../../_virtual/index.
|
|
2
|
-
import
|
|
1
|
+
import { __exports as InputRangeField } from '../../../../../_virtual/index.esm13.js';
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
|
|
5
5
|
var hasRequiredInputRangeField;
|
|
@@ -12,7 +12,7 @@ function requireInputRangeField () {
|
|
|
12
12
|
value: true
|
|
13
13
|
});
|
|
14
14
|
InputRangeField.default = void 0;
|
|
15
|
-
var _react = _interopRequireWildcard(
|
|
15
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
16
16
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exports as Month } from '../../../../../_virtual/index.esm14.js';
|
|
2
|
-
import
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireDayCell } from '../DayCell/index.esm.js';
|
|
5
5
|
import { __require as requireDateFns } from '../../../../date-fns/index.esm.js';
|
|
@@ -15,7 +15,7 @@ function requireMonth () {
|
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
17
|
Month.default = void 0;
|
|
18
|
-
var _react = _interopRequireWildcard(
|
|
18
|
+
var _react = _interopRequireWildcard(require$$0__default);
|
|
19
19
|
var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
|
|
20
20
|
var _DayCell = _interopRequireWildcard(requireDayCell());
|
|
21
21
|
var _dateFns = /*@__PURE__*/ requireDateFns();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exports as reactList } from '../../_virtual/react-list.esm.js';
|
|
2
|
-
import
|
|
2
|
+
import require$$0__default from 'react';
|
|
3
3
|
import require$$1 from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
5
|
var hasRequiredReactList;
|
|
@@ -10,7 +10,7 @@ function requireReactList () {
|
|
|
10
10
|
(function (exports$1) {
|
|
11
11
|
(function (global, factory) {
|
|
12
12
|
{
|
|
13
|
-
factory(exports$1,
|
|
13
|
+
factory(exports$1, require$$0__default, require$$1);
|
|
14
14
|
}
|
|
15
15
|
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : reactList, function (_exports, _react, _jsxRuntime) {
|
|
16
16
|
|
|
@@ -10,7 +10,7 @@ export interface TextFieldInputProps {
|
|
|
10
10
|
export interface FormSectionPropsItem {
|
|
11
11
|
name: string;
|
|
12
12
|
label: string;
|
|
13
|
-
inputType: 'text' | 'password' | 'number' | 'select' | 'autocomplete-select' | 'autocomplete-multi-select' | 'single-select-search' | 'datepicker' | 'multiselect' | 'select-v2' | 'basic-select' | 'decimal' | 'alpha-numerical' | 'yearpicker' | 'dateRangePicker' | 'monthpicker' | 'multiselect' | 'file' | 'multifile' | 'multifile-with-preview' | 'textarea' | 'phoneNumber' | 'pincode' | 'email' | 'toggleSwitch' | 'rich-text-editor' | 'multiEmail' | 'timepicker' | 'checkbox-group' | 'radio-group' | 'checkbox' | 'custom' | 'input-select' | 'date-range-picker' | '';
|
|
13
|
+
inputType: 'text' | 'password' | 'number' | 'select' | 'autocomplete-select' | 'autocomplete-multi-select' | 'single-select-search' | 'datepicker' | 'multiselect' | 'select-v2' | 'basic-select' | 'decimal' | 'alpha-numerical' | 'yearpicker' | 'dateRangePicker' | 'monthpicker' | 'multiselect' | 'file' | 'multifile' | 'multifile-with-preview' | 'textarea' | 'phoneNumber' | 'pincode' | 'email' | 'toggleSwitch' | 'rich-text-editor' | 'multiEmail' | 'timepicker' | 'checkbox-group' | 'radio-group' | 'checkbox' | 'custom' | 'input-select' | 'date-range-picker' | 'multiselect-table' | '';
|
|
14
14
|
options?: OptionsProps[];
|
|
15
15
|
required?: boolean;
|
|
16
16
|
errorMessage?: string;
|
|
@@ -70,6 +70,16 @@ export interface FormSectionPropsItem {
|
|
|
70
70
|
api?: string;
|
|
71
71
|
jwtHeader?: any;
|
|
72
72
|
searchValue?: any;
|
|
73
|
+
columns?: {
|
|
74
|
+
field: string;
|
|
75
|
+
headerName: string;
|
|
76
|
+
width?: number;
|
|
77
|
+
flex?: number;
|
|
78
|
+
}[];
|
|
79
|
+
rows?: any[];
|
|
80
|
+
valueField?: string;
|
|
81
|
+
labelField?: string;
|
|
82
|
+
headerColor?: string;
|
|
73
83
|
}
|
|
74
84
|
export type VariantProps = 'standard' | 'outlined' | '';
|
|
75
85
|
export interface FormRenderProps {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tp-react-elements",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "React form components library built with React Hook Form and Yup",
|
|
@@ -90,6 +90,7 @@
|
|
|
90
90
|
"file-saver": ">=2.0.5 <3.0.0",
|
|
91
91
|
"jodit": ">=4.6.2 <5.0.0",
|
|
92
92
|
"jodit-react": ">=5.2.19 <6.0.0",
|
|
93
|
+
"material-react-table": ">=3.0.0 <4.0.0",
|
|
93
94
|
"react": ">=18 <20",
|
|
94
95
|
"react-dom": ">=18 <20",
|
|
95
96
|
"react-hook-form": ">=7.62.0 <8.0.0",
|
|
@@ -106,6 +107,9 @@
|
|
|
106
107
|
},
|
|
107
108
|
"jodit-react": {
|
|
108
109
|
"optional": true
|
|
110
|
+
},
|
|
111
|
+
"material-react-table": {
|
|
112
|
+
"optional": true
|
|
109
113
|
}
|
|
110
114
|
},
|
|
111
115
|
"devDependencies": {
|
|
@@ -149,6 +153,7 @@
|
|
|
149
153
|
"jodit": "^4.6.2",
|
|
150
154
|
"jodit-react": "^5.2.19",
|
|
151
155
|
"jsdom": "^25.0.0",
|
|
156
|
+
"material-react-table": "^3.2.1",
|
|
152
157
|
"prettier": "^3.6.2",
|
|
153
158
|
"react": "^19.1.1",
|
|
154
159
|
"react-dom": "^19.1.1",
|