tp-react-elements 1.2.0 → 1.2.5

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 (34) hide show
  1. package/dist/_virtual/index.esm12.js +2 -2
  2. package/dist/_virtual/index.esm13.js +2 -2
  3. package/dist/_virtual/index.esm14.js +2 -2
  4. package/dist/components/DateRangePicker/DateRangePicker.esm.js +7 -8
  5. package/dist/components/FormComponents/DatePicker/DatepickerWrapperV2.esm.js +3 -3
  6. package/dist/components/FormComponents/DatePicker/Monthpickerrender.esm.js +3 -3
  7. package/dist/components/FormComponents/FileUpload/FormRenderFileUpload.esm.js +3 -3
  8. package/dist/components/FormComponents/FileUpload/FormRenderMultiFileUpload.esm.js +3 -3
  9. package/dist/components/FormComponents/FormCheckBoxGroup/FormCheckBoxGroup.esm.js +3 -3
  10. package/dist/components/FormComponents/FormNumberField/FormNumberField.esm.js +3 -3
  11. package/dist/components/FormComponents/FormNumberField/FormNumberFieldDecimal.esm.js +6 -3
  12. package/dist/components/FormComponents/FormRadioGroup/FormRadioGroup.esm.js +3 -3
  13. package/dist/components/FormComponents/FormTextAreaField/FormTextAreaField.esm.js +33 -32
  14. package/dist/components/FormComponents/FormTextField/FormTextField.esm.js +20 -19
  15. package/dist/components/FormComponents/FormTextFieldWithSelect/FormTextFieldWithSelect.esm.js +3 -3
  16. package/dist/components/FormComponents/PasswordField/PasswordField.esm.js +3 -3
  17. package/dist/components/FormComponents/RichTextEditor/RichTextEditorWrapper.esm.js +2 -2
  18. package/dist/components/FormComponents/Select/MultiSelectAutocomplete.esm.js +3 -3
  19. package/dist/components/FormComponents/Select/MultiSelectTable.esm.js +18 -11
  20. package/dist/components/FormComponents/Select/MultiSelectv1.esm.js +10 -6
  21. package/dist/components/FormComponents/Select/SingleSelect.esm.js +48 -57
  22. package/dist/components/FormComponents/Select/SingleSelectNonAutoComplete.esm.js +4 -4
  23. package/dist/components/FormComponents/Select/SingleSelectSearchApi.esm.js +9 -13
  24. package/dist/components/FormComponents/TimePicker/TimePicker.esm.js +3 -3
  25. package/dist/components/SelectField/MultiSelectFieldComponent.d.ts +2 -1
  26. package/dist/components/SelectField/MultiSelectFieldComponent.esm.js +7 -3
  27. package/dist/node_modules/react-date-range/dist/components/DateInput/index.esm.js +1 -1
  28. package/dist/node_modules/react-date-range/dist/components/InputRangeField/index.esm.js +1 -1
  29. package/dist/node_modules/react-date-range/dist/components/Month/index.esm.js +1 -1
  30. package/dist/utils/Constants/FormConstants.d.ts +0 -7
  31. package/dist/utils/Constants/FormConstants.esm.js +2 -22
  32. package/dist/utils/Interface/FormInterface.d.ts +4 -3
  33. package/dist/utils/index.esm.js +1 -1
  34. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
- var DateInput = {};
1
+ var InputRangeField = {};
2
2
 
3
- export { DateInput as __exports };
3
+ export { InputRangeField as __exports };
@@ -1,3 +1,3 @@
1
- var InputRangeField = {};
1
+ var Month = {};
2
2
 
3
- export { InputRangeField as __exports };
3
+ export { Month as __exports };
@@ -1,3 +1,3 @@
1
- var Month = {};
1
+ var DateInput = {};
2
2
 
3
- export { Month as __exports };
3
+ export { DateInput as __exports };
@@ -3,7 +3,7 @@ import { useState, useEffect } from 'react';
3
3
  import { Controller } from 'react-hook-form';
4
4
  import { d as distExports } from '../../_virtual/index.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../utils/Constants/FormConstants.esm.js';
7
7
  import FormBottomField from '../FormComponents/FormBottomField/FormBottomField.esm.js';
8
8
  import { Box, TextField, Popover } from '@mui/material';
9
9
  import { format } from '../../node_modules/date-fns/format.esm.js';
@@ -54,13 +54,12 @@ const DateRangePickerComponent = ({ item, control, watch, setValue, getValues, c
54
54
  ? `${format(state[0].startDate, 'dd/MM/yyyy')} - ${format(state[0].endDate, 'dd/MM/yyyy')}`
55
55
  : '';
56
56
  const label = variant !== 'standard' ? `${item.label}${item.required ? ' *' : ''}` : '';
57
- const formProps = {
58
- item,
59
- ...rest,
60
- };
61
- return (jsxs(Fragment, { children: [jsx(Box, { onClick: handleClick, sx: { width: '100%' }, children: jsx(Controller, { name: fromDateName, control: control, render: ({ fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, formProps), ' ', wrapFieldWithLabelTooltipIfEnabled(variant, formProps, (jsx(TextField, { fullWidth: true, value: displayValue, placeholder: item.placeholder || 'DD/MM/YYYY - DD/MM/YYYY', error: !!fieldState.error, InputProps: {
57
+ return (jsxs(Fragment, { children: [jsx(Box, { onClick: handleClick, sx: { width: '100%' }, children: jsx(Controller, { name: fromDateName, control: control, render: ({ fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, {
58
+ item,
59
+ ...rest,
60
+ }), ' ', jsx(TextField, { fullWidth: true, value: displayValue, placeholder: item.placeholder || 'DD/MM/YYYY - DD/MM/YYYY', error: !!fieldState.error, InputProps: {
62
61
  readOnly: true,
63
- }, label: label, size: "small" })))] })) }) }), jsx(Popover, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
62
+ }, label: label, size: "small" })] })) }) }), jsx(Popover, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
64
63
  vertical: 'bottom',
65
64
  horizontal: 'left',
66
65
  }, PaperProps: {
@@ -95,7 +94,7 @@ const DateRangePickerComponent = ({ item, control, watch, setValue, getValues, c
95
94
  item.onChangeFn && item.onChangeFn(dateObject || null);
96
95
  handleClose();
97
96
  }
98
- }, moveRangeOnFirstSelection: false, ranges: state, months: 2, direction: "horizontal", showDateDisplay: false, dateDisplayFormat: "dd/MM/yyyy", rangeColors: ['#4d73b1ff'], minDate: getValidDate(item?.minDate), maxDate: getValidDate(item?.maxDate) }) }), jsx(FormBottomField, { item,
97
+ }, moveRangeOnFirstSelection: false, ranges: state, months: 2, direction: "horizontal", showDateDisplay: false, dateDisplayFormat: "dd/MM/yyyy", rangeColors: ['#4d73b1ff'] }) }), jsx(FormBottomField, { item,
99
98
  control,
100
99
  errors,
101
100
  getValues,
@@ -6,7 +6,7 @@ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
6
6
  import dayjs from 'dayjs';
7
7
  import { Controller } from 'react-hook-form';
8
8
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
9
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
9
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
10
10
 
11
11
  const DatepickerWrapperV2 = ({ props, variant, }) => {
12
12
  const inputTextRef = useRef(null);
@@ -35,7 +35,7 @@ const DatepickerWrapperV2 = ({ props, variant, }) => {
35
35
  return jsx("div", { style: { minHeight: '36px' }, children: "Loading..." });
36
36
  }
37
37
  return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => {
38
- return (jsxs(Fragment, { children: [DatePicker && (jsxs(LocalizationProvider, { dateAdapter: AdapterDayjs, children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(DatePicker, { views: ['month', 'year', 'day'], label: variant !== 'standard'
38
+ return (jsxs(Fragment, { children: [DatePicker && (jsxs(LocalizationProvider, { dateAdapter: AdapterDayjs, children: [renderLabel(variant, props), jsx(DatePicker, { views: ['month', 'year', 'day'], label: variant !== 'standard'
39
39
  ? `${props.item.label}${props.item.required ? ' *' : ''}`
40
40
  : '', value: field.value
41
41
  ? typeof field.value === 'string'
@@ -69,7 +69,7 @@ const DatepickerWrapperV2 = ({ props, variant, }) => {
69
69
  },
70
70
  },
71
71
  },
72
- } })))] })), jsx(FormBottomField, { ...props })] }));
72
+ } })] })), jsx(FormBottomField, { ...props })] }));
73
73
  } }, props.item.name));
74
74
  };
75
75
 
@@ -6,7 +6,7 @@ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
6
6
  import dayjs from 'dayjs';
7
7
  import { Controller } from 'react-hook-form';
8
8
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
9
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled, formatDateMonthAndYear } from '../../../utils/Constants/FormConstants.esm.js';
9
+ import { renderLabel, formatDateMonthAndYear } from '../../../utils/Constants/FormConstants.esm.js';
10
10
 
11
11
  const Monthpickerrender = ({ props, variant, }) => {
12
12
  const ref = useRef(null);
@@ -34,7 +34,7 @@ const Monthpickerrender = ({ props, variant, }) => {
34
34
  if (isLoading) {
35
35
  return jsx("div", { style: { minHeight: '36px' }, children: "Loading..." });
36
36
  }
37
- return (jsx(Fragment, { children: DatePicker && (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [jsxs(LocalizationProvider, { dateAdapter: AdapterDayjs, children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(DatePicker, { ref: ref, label: variant !== 'standard' &&
37
+ return (jsx(Fragment, { children: DatePicker && (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [jsxs(LocalizationProvider, { dateAdapter: AdapterDayjs, children: [renderLabel(variant, props), jsx(DatePicker, { ref: ref, label: variant !== 'standard' &&
38
38
  `${props.item.label}${props.item.required ? ' *' : ''}`, views: ['month', 'year'], disabled: props.item.disable, value: field.value ? dayjs(formatDateMonthAndYear(field.value || null)) : null, slotProps: {
39
39
  textField: {
40
40
  onClick: () => handleToggle(),
@@ -66,7 +66,7 @@ const Monthpickerrender = ({ props, variant, }) => {
66
66
  '& .MuiInputLabel-shrink': {
67
67
  top: 0,
68
68
  },
69
- }, minDate: props.item.minDate ? dayjs(props.item.minDate, 'MM/YYYY') : undefined, maxDate: props.item.maxDate ? dayjs(props.item.maxDate, 'MM/YYYY') : undefined })))] }), props?.item?.helperText && (jsxs("span", { style: {
69
+ }, minDate: props.item.minDate ? dayjs(props.item.minDate, 'MM/YYYY') : undefined, maxDate: props.item.maxDate ? dayjs(props.item.maxDate, 'MM/YYYY') : undefined })] }), props?.item?.helperText && (jsxs("span", { style: {
70
70
  fontSize: '11px',
71
71
  color: '#3651d3',
72
72
  }, children: ["(", props?.item?.helperText, ")"] })), jsx(FormBottomField, { ...props })] })) })) }));
@@ -4,7 +4,7 @@ import { useRef, useEffect } from 'react';
4
4
  import { useWatch } from 'react-hook-form';
5
5
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
6
6
  import 'dayjs';
7
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
8
8
 
9
9
  const FormRenderFileUpload = ({ props, variant, }) => {
10
10
  const isError = !!props.errors?.[props.item.name];
@@ -57,7 +57,7 @@ const FormRenderFileUpload = ({ props, variant, }) => {
57
57
  return extensions.map((ext) => `.${ext}`).join(',');
58
58
  };
59
59
  const accept = getAcceptString();
60
- return (jsxs(Fragment, { children: [jsxs(Box, { paddingLeft: '4px', sx: { ...props.item.sx }, children: [props.item?.label && (jsx(Box, { sx: { fontSize: '10px;' }, children: renderLabel(variant, props, true) })), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(TextField, { type: "file", id: props.item.name, error: isShowBorderError, inputRef: inputRef, inputProps: {
60
+ return (jsxs(Fragment, { children: [jsxs(Box, { paddingLeft: '4px', sx: { ...props.item.sx }, children: [props.item?.label && (jsx(Box, { sx: { fontSize: '10px;' }, children: renderLabel(variant, props, true) })), jsx(TextField, { type: "file", id: props.item.name, error: isShowBorderError, inputRef: inputRef, inputProps: {
61
61
  accept,
62
62
  'aria-labelledby': `${props.item.name}-label`,
63
63
  'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
@@ -90,7 +90,7 @@ const FormRenderFileUpload = ({ props, variant, }) => {
90
90
  props.clearErrors(props.item?.name);
91
91
  props.item.onChangeSetFileFn &&
92
92
  props.item.onChangeSetFileFn(file);
93
- }, sx: { width: '100%' } })))] }), jsx(FormBottomField, { ...props })] }));
93
+ }, sx: { width: '100%' } })] }), jsx(FormBottomField, { ...props })] }));
94
94
  };
95
95
 
96
96
  export { FormRenderFileUpload as default };
@@ -3,7 +3,7 @@ import { Box, TextField } from '@mui/material';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { useWatch } from 'react-hook-form';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
8
8
 
9
9
  const FormRenderMultiFileUpload = ({ props, variant, }) => {
@@ -57,7 +57,7 @@ const FormRenderMultiFileUpload = ({ props, variant, }) => {
57
57
  const extensions = getValidExtensions();
58
58
  return extensions.map((ext) => `.${ext}`).join(',');
59
59
  };
60
- return (jsxs(Fragment, { children: [jsxs(Box, { paddingLeft: '4px', sx: { ...props.item.sx }, children: [props.item?.label && (jsx(Box, { sx: { fontSize: '10px;' }, children: renderLabel(variant, props, true) })), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(TextField, { type: "file", id: props.item.name, error: isShowBorderError, inputRef: inputRef, inputProps: {
60
+ return (jsxs(Fragment, { children: [jsxs(Box, { paddingLeft: '4px', sx: { ...props.item.sx }, children: [props.item?.label && (jsx(Box, { sx: { fontSize: '10px;' }, children: renderLabel(variant, props, true) })), jsx(TextField, { type: "file", id: props.item.name, error: isShowBorderError, inputRef: inputRef, inputProps: {
61
61
  multiple: true,
62
62
  accept: getAcceptString(),
63
63
  'aria-labelledby': `${props.item.name}-label`,
@@ -98,7 +98,7 @@ const FormRenderMultiFileUpload = ({ props, variant, }) => {
98
98
  props.setValue(props.item?.name, fileName);
99
99
  props.setValue(props.item?.name + 'File', fileArray);
100
100
  props.clearErrors(props.item?.name);
101
- }, sx: { width: '100%' } })))] }), jsx(FormBottomField, { ...props })] }));
101
+ }, sx: { width: '100%' } })] }), jsx(FormBottomField, { ...props })] }));
102
102
  };
103
103
 
104
104
  export { FormRenderMultiFileUpload as default };
@@ -3,7 +3,7 @@ import { FormControl, FormGroup, FormControlLabel, Typography, Checkbox } from '
3
3
  import { Controller } from 'react-hook-form';
4
4
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
 
8
8
  /**
9
9
  * FormCheckBoxGroup Component
@@ -24,7 +24,7 @@ const FormCheckBoxGroup = ({ props, variant, }) => {
24
24
  /**
25
25
  * Renders a group of checkboxes with labels and validation support
26
26
  */
27
- return (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(FormControl, { component: "fieldset", children: jsx(FormGroup, { row: true, children: props.item?.settings &&
27
+ return (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(FormControl, { component: "fieldset", children: jsx(FormGroup, { row: true, children: props.item?.settings &&
28
28
  props.item.settings.map((settings, i) => {
29
29
  return (jsx(Controller, { name: settings.name, control: props.control, render: ({ field }) => {
30
30
  return (jsx(FormControlLabel, { control: jsx(Checkbox, { ...field, checked: field.value }), sx: {
@@ -36,7 +36,7 @@ const FormCheckBoxGroup = ({ props, variant, }) => {
36
36
  },
37
37
  }, label: jsx(Typography, { variant: "subtitle2", fontSize: '11px', fontWeight: 'normal !important', children: settings.label }), labelPlacement: "end" }));
38
38
  } }, i));
39
- }) }) }))), jsx(FormBottomField, { ...props })] }));
39
+ }) }) }), jsx(FormBottomField, { ...props })] }));
40
40
  };
41
41
 
42
42
  export { FormCheckBoxGroup as default };
@@ -3,7 +3,7 @@ import { TextField } from '@mui/material';
3
3
  import { Controller } from 'react-hook-form';
4
4
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
 
8
8
  /**
9
9
  * FormNumberField Component
@@ -55,7 +55,7 @@ const FormNumberField = ({ props, variant }) => {
55
55
  * for controlled form state management
56
56
  */
57
57
  return (jsx(Fragment, { children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => {
58
- return (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(TextField, { ...field, size: "small", label: label, error: isShowBorderError, value: field.value ?? '',
58
+ return (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(TextField, { ...field, size: "small", label: label, error: isShowBorderError, value: field.value ?? '',
59
59
  /**
60
60
  * Handles input events with numeric restrictions
61
61
  * - Removes non-numeric characters
@@ -99,7 +99,7 @@ const FormNumberField = ({ props, variant }) => {
99
99
  'aria-labelledby': `${props.item.name}-label`,
100
100
  'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
101
101
  'aria-required': props.item.required ? true : undefined,
102
- }, disabled: props.item.disable }))), jsx(FormBottomField, { ...props })] }));
102
+ }, disabled: props.item.disable }), jsx(FormBottomField, { ...props })] }));
103
103
  } }, props.item.name) }));
104
104
  };
105
105
 
@@ -3,7 +3,7 @@ import { TextField } from '@mui/material';
3
3
  import { Controller } from 'react-hook-form';
4
4
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
 
8
8
  const FormNumberFieldDecimal = ({ props, variant, }) => {
9
9
  const fixedLength = props.item.decimalFixedTo || 2;
@@ -21,7 +21,7 @@ const FormNumberFieldDecimal = ({ props, variant, }) => {
21
21
  const label = variant !== 'standard' ? `${props.item.label}${props.item.required ? ' *' : ''}` : '';
22
22
  const isError = !!props.errors?.[props.item.name];
23
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), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(TextField, { type: "text", size: "small", label: label, error: isShowBorderError, ...field, onChange: (e) => {
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
25
  const sanitized = sanitizeDecimal(e.target.value ?? '');
26
26
  const value = sanitized === '' ? '' : sanitized;
27
27
  field.onChange(value);
@@ -37,6 +37,9 @@ const FormNumberFieldDecimal = ({ props, variant, }) => {
37
37
  props?.item?.onBlurFn && props?.item?.onBlurFn(e);
38
38
  }, InputProps: {
39
39
  inputProps: {
40
+ onInput: (e) => {
41
+ props.item.onInputProps && props.item.onInputProps(e);
42
+ },
40
43
  // allow digits, one dot and optional leading minus
41
44
  inputMode: 'decimal',
42
45
  maxLength: 20,
@@ -44,7 +47,7 @@ const FormNumberFieldDecimal = ({ props, variant, }) => {
44
47
  'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
45
48
  'aria-required': props.item.required ? true : undefined,
46
49
  },
47
- } }))), jsx(FormBottomField, { ...props })] })) }, props.item.name));
50
+ } }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
48
51
  };
49
52
 
50
53
  export { FormNumberFieldDecimal as default };
@@ -3,7 +3,7 @@ import { FormControl, RadioGroup, FormControlLabel, Typography, Radio } from '@m
3
3
  import { Controller } from 'react-hook-form';
4
4
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
 
8
8
  /**
9
9
  * FormRadioGroup Component
@@ -24,7 +24,7 @@ const FormRadioGroup = ({ props, variant }) => {
24
24
  /**
25
25
  * Renders a group of radio buttons with labels and validation support
26
26
  */
27
- return (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(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) => {
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
28
  field.onChange(e.target.value); // update form state
29
29
  props.item.onChangeFn && props.item.onChangeFn(e.target.value); // optional handler
30
30
  }, row: true, sx: {
@@ -38,7 +38,7 @@ const FormRadioGroup = ({ props, variant }) => {
38
38
  '& .MuiSvgIcon-root': {
39
39
  fontSize: 16, // controls the radio icon size
40
40
  },
41
- } }), label: jsx(Typography, { fontSize: '11px', fontWeight: 'normal !important', children: option.label }) }, i))) })) }) }))), jsx(FormBottomField, { ...props })] }));
41
+ } }), label: jsx(Typography, { fontSize: '11px', fontWeight: 'normal !important', children: option.label }) }, i))) })) }) }), jsx(FormBottomField, { ...props })] }));
42
42
  };
43
43
 
44
44
  export { FormRadioGroup as default };
@@ -1,9 +1,10 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { Controller } from 'react-hook-form';
3
+ import { Tooltip, Box } from '@mui/material';
3
4
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
4
5
  import { TextAreaField } from './FormTextAreaField.styles.esm.js';
5
6
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
8
 
8
9
  /**
9
10
  * FormTextAreaField Component
@@ -29,37 +30,37 @@ const FormTextAreaField = ({ props, variant, }) => {
29
30
  /**
30
31
  * Renders the textarea component with validation support
31
32
  */
32
- return (jsx(Fragment, { children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(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) }));
33
+ return (jsx(Fragment, { children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(Tooltip, { title: props.item.isTooltipEnable ? (field.value || '') : '', placement: "bottom-start", children: jsxs(Box, { sx: { width: '100%', position: 'relative' }, children: [jsx(TextAreaField, { multiline: true, size: "small", InputProps: {
34
+ style: {
35
+ border: 'none',
36
+ },
37
+ }, sx: {
38
+ ...props.item.sx,
39
+ }, minRows: props.item.minRows || 1, maxRows: props.item.maxRows || 100, placeholder: props.item.placeholder || 'Type Something...', ...field, label: variant !== 'standard'
40
+ ? `${props.item.label}${props.item.required ? ' *' : ''}`
41
+ : '', error: isShowBorderError, value: field.value || '', disabled: props.item.disable, inputProps: {
42
+ /**
43
+ * Handles input events with text restrictions
44
+ *
45
+ * @param {any} e - The input event object
46
+ *
47
+ * @remarks
48
+ * - Removes special characters if allowSpecialChars is false
49
+ * - Prevents input that starts with a space
50
+ */
51
+ onInput: (e) => {
52
+ if (!props?.item?.allowSpecialChars) {
53
+ const value = e.target.value;
54
+ e.target.value = value.replace(/[^a-zA-Z0-9 ]/g, '');
55
+ } // Allow only alphanumeric and space
56
+ if (e.target.value.length === 1 && e.target.value === ' ') {
57
+ e.target.value = '';
58
+ }
59
+ },
60
+ 'aria-labelledby': `${props.item.name}-label`,
61
+ 'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
62
+ 'aria-required': props.item.required ? true : undefined,
63
+ } }), props.item.disable && props.item.isTooltipEnable && (jsx(Box, { sx: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', zIndex: 1 } }))] }) }), jsx(FormBottomField, { ...props })] })) }, props.item.name) }));
63
64
  };
64
65
 
65
66
  export { FormTextAreaField as default };
@@ -1,9 +1,10 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Controller } from 'react-hook-form';
3
+ import { Tooltip, Box } from '@mui/material';
3
4
  import { FormTextFieldComponent } from './FormTextField.styles.esm.js';
4
5
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
5
6
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
8
 
8
9
  /**
9
10
  * FormTextField Component
@@ -88,24 +89,24 @@ const FormTextField = ({ props, variant }) => {
88
89
  * Renders the text field component using react-hook-form's Controller
89
90
  * for controlled form state management
90
91
  */
91
- return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field, fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(FormTextFieldComponent, { ...field, fullWidth: true, autoFocus: props.item.autoFocus, 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));
92
+ return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field, fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(Tooltip, { title: props.item.isTooltipEnable ? (field.value || '') : '', placement: "bottom-start", children: jsxs(Box, { sx: { width: '100%', position: 'relative' }, children: [jsx(FormTextFieldComponent, { ...field, fullWidth: true, autoFocus: props.item.autoFocus, error: !!fieldState.error, label: label, placeholder: props.item.placeholder || '', autoComplete: "off", sx: {
93
+ ...props.item.sx,
94
+ }, value: field.value || '', size: "small", disabled: props.item.disable, onBlur: (e) => {
95
+ // Call custom onBlur handler if provided
96
+ props?.item?.onBlurFn && props?.item?.onBlurFn(e);
97
+ }, inputProps: {
98
+ ...{
99
+ maxLength: props.item.maxLength || 100,
100
+ onInput: onInput,
101
+ onPaste: (e) => {
102
+ if (props.item.doNotAllowPaste)
103
+ e.preventDefault();
104
+ },
105
+ },
106
+ 'aria-labelledby': `${props.item.name}-label`,
107
+ 'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
108
+ 'aria-required': props.item.required ? true : undefined,
109
+ } }), props.item.disable && props.item.isTooltipEnable && (jsx(Box, { sx: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', zIndex: 1 } }))] }) }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
109
110
  };
110
111
 
111
112
  export { FormTextField as default };
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Controller } from 'react-hook-form';
3
3
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
4
4
  import 'dayjs';
5
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
5
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
6
6
  import { Box, TextField, Select, MenuItem } from '@mui/material';
7
7
 
8
8
  /**
@@ -66,7 +66,7 @@ const FormTextFieldWithSelect = ({ props, variant, }) => {
66
66
  * Renders the text field component using react-hook-form's Controller
67
67
  * for controlled form state management
68
68
  */
69
- return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field, fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsxs(Box, { sx: { display: 'flex', width: '100%' }, children: [jsx(TextField, { ...field, fullWidth: true, autoFocus: props.item.autoFocus, error: !!fieldState.error, label: label, placeholder: props.item.placeholder || '', autoComplete: "off", sx: {
69
+ return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field, fieldState }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsxs(Box, { sx: { display: 'flex', width: '100%' }, children: [jsx(TextField, { ...field, fullWidth: true, autoFocus: props.item.autoFocus, error: !!fieldState.error, label: label, placeholder: props.item.placeholder || '', autoComplete: "off", sx: {
70
70
  ...props.item.sx,
71
71
  '& .MuiOutlinedInput-root': {
72
72
  borderTopRightRadius: 0,
@@ -96,7 +96,7 @@ const FormTextFieldWithSelect = ({ props, variant, }) => {
96
96
  // },
97
97
  }, disabled: props.item.disable, error: !!fieldState.error, children: props?.item?.options?.map((item) => {
98
98
  return (jsx(MenuItem, { value: item.value, children: item.label }, item.value));
99
- }) })) })] }))), jsx(FormBottomField, { ...props })] })) }, props.item.name));
99
+ }) })) })] }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
100
100
  };
101
101
 
102
102
  export { FormTextFieldWithSelect as default };
@@ -5,7 +5,7 @@ import { useState } from 'react';
5
5
  import { Controller } from 'react-hook-form';
6
6
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
7
7
  import 'dayjs';
8
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
8
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
9
9
 
10
10
  /**
11
11
  * PasswordField Component
@@ -46,7 +46,7 @@ const PasswordField = ({ props, variant }) => {
46
46
  /**
47
47
  * Renders the password field component with visibility toggle
48
48
  */
49
- return (jsx(Box, { position: 'relative', children: jsx(FormControl, { fullWidth: true, children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [jsxs(Box, { sx: { position: 'relative' }, children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(TextField, { size: "small", error: isShowBorderError, type: showPassword ? 'text' : 'password', autoComplete: props.item?.InputProps?.autoComplete || 'off', placeholder: props.item.placeholder || '', ...field, label: label, sx: {
49
+ return (jsx(Box, { position: 'relative', children: jsx(FormControl, { fullWidth: true, children: jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [jsxs(Box, { sx: { position: 'relative' }, children: [renderLabel(variant, props), jsx(TextField, { size: "small", error: isShowBorderError, type: showPassword ? 'text' : 'password', autoComplete: props.item?.InputProps?.autoComplete || 'off', placeholder: props.item.placeholder || '', ...field, label: label, sx: {
50
50
  width: '100%',
51
51
  '& .css-kichxs-MuiFormLabel-root-MuiInputLabel-root,.css-1holvmy': {
52
52
  top: '-8px',
@@ -73,7 +73,7 @@ const PasswordField = ({ props, variant }) => {
73
73
  e.preventDefault();
74
74
  }
75
75
  },
76
- }, value: field.value || null, disabled: props.item.disable }))), jsx(IconButton, { sx: {
76
+ }, value: field.value || null, disabled: props.item.disable }), jsx(IconButton, { sx: {
77
77
  position: 'absolute',
78
78
  right: '14px',
79
79
  top: variant === 'standard' ? '70%' : '50%',
@@ -3,10 +3,10 @@ import { Controller } from 'react-hook-form';
3
3
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
4
4
  import RichTextEditor from './RichTextEditor.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
 
8
8
  const RichTextEditorWrapper = ({ props, variant, }) => {
9
- return (jsx(Controller, { control: props.control, name: props.item.name, render: () => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(RichTextEditor, { props: props }))), jsx(FormBottomField, { ...props })] })) }, props.item.name));
9
+ return (jsx(Controller, { control: props.control, name: props.item.name, render: () => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(RichTextEditor, { props: props }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
10
10
  };
11
11
 
12
12
  export { RichTextEditorWrapper as default };
@@ -4,7 +4,7 @@ import { useState, useRef, useMemo, useCallback } from 'react';
4
4
  import { useWatch, Controller } from 'react-hook-form';
5
5
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
6
6
  import 'dayjs';
7
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
8
8
 
9
9
  //region old code
10
10
  // const MultiSelectAutocomplete = ({
@@ -185,7 +185,7 @@ const MultiSelectAutocomplete = ({ props, variant, }) => {
185
185
  const handleBlur = useCallback((e) => {
186
186
  props?.item?.onBlurFn && props?.item?.onBlurFn(e);
187
187
  }, [props]);
188
- return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field: { ref, onBlur: fieldOnBlur } }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(Autocomplete, { ref: ref, open: open, onOpen: () => setOpen(true), onClose: () => setOpen(false), multiple: true, disableCloseOnSelect: true, id: `${props.item.name}-autocomplete-multi`, options: options, value: selectedOptions, getOptionLabel: getOptionLabelCb, isOptionEqualToValue: isOptionEqualCb, onChange: handleChange, onBlur: (e) => {
188
+ return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field: { ref, onBlur: fieldOnBlur } }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(Autocomplete, { ref: ref, open: open, onOpen: () => setOpen(true), onClose: () => setOpen(false), multiple: true, disableCloseOnSelect: true, id: `${props.item.name}-autocomplete-multi`, options: options, value: selectedOptions, getOptionLabel: getOptionLabelCb, isOptionEqualToValue: isOptionEqualCb, getOptionDisabled: (option) => option.disable, onChange: handleChange, onBlur: (e) => {
189
189
  fieldOnBlur();
190
190
  handleBlur(e);
191
191
  }, size: "small", disablePortal: false, autoHighlight: true, selectOnFocus: true, clearOnBlur: false, renderTags: (tagValue, getTagProps) => (jsx(Box, { ref: tagsContainerRef, sx: {
@@ -232,7 +232,7 @@ const MultiSelectAutocomplete = ({ props, variant, }) => {
232
232
  'aria-labelledby': `${props.item.name}-label`,
233
233
  'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
234
234
  'aria-required': props.item.required ? true : undefined,
235
- } })) }))), jsx(FormBottomField, { ...props })] })) }, props.item.name));
235
+ } })) }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
236
236
  };
237
237
 
238
238
  export { MultiSelectAutocomplete as default };
@@ -4,7 +4,7 @@ import { useState, useRef, useMemo, useCallback } from 'react';
4
4
  import { useWatch } from 'react-hook-form';
5
5
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
6
6
  import 'dayjs';
7
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
8
8
  import { useMaterialReactTable, MaterialReactTable } from 'material-react-table';
9
9
 
10
10
  const ITEM_HEIGHT = 50;
@@ -304,15 +304,22 @@ const MultiSelectTable = ({ props, variant, }) => {
304
304
  overflow: 'visible',
305
305
  },
306
306
  },
307
- muiTableBodyRowProps: {
308
- sx: {
309
- borderBottom: '1px solid #e0e0e0',
310
- height: 'auto',
311
- minHeight: '32px',
312
- '&:hover': {
313
- backgroundColor: '#e0f2f1',
307
+ muiTableBodyRowProps: ({ row }) => {
308
+ const rowId = String(row.original[valueField]);
309
+ const isSelected = selectedValues.includes(rowId);
310
+ return {
311
+ onClick: () => handleRowSelect(rowId), // 👈 row click selection
312
+ sx: {
313
+ borderBottom: '1px solid #e0e0e0',
314
+ height: 'auto',
315
+ minHeight: '32px',
316
+ cursor: 'pointer',
317
+ backgroundColor: isSelected ? '#b2dfdb' : 'inherit', // optional highlight
318
+ '&:hover': {
319
+ backgroundColor: '#e0f2f1',
320
+ },
314
321
  },
315
- },
322
+ };
316
323
  },
317
324
  initialState: {
318
325
  density: 'compact',
@@ -337,7 +344,7 @@ const MultiSelectTable = ({ props, variant, }) => {
337
344
  '& .MuiTablePagination-root': {
338
345
  padding: '0px !important'
339
346
  }
340
- }, children: [renderLabel(variant, props), variant !== 'standard' ? (jsxs(InputLabel, { error: isShowBorderError, id: `${props.item.name}-mst-labelId`, children: [props.item.label, props.item.required ? ' *' : ''] })) : null, wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(Select, { labelId: `${props.item.name}-mst-labelId`, id: `${props.item.name}-mst-select`, multiple: true, sx: {
347
+ }, 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: {
341
348
  '& .MuiTypography-root': {
342
349
  fontSize: '5px !important',
343
350
  },
@@ -356,7 +363,7 @@ const MultiSelectTable = ({ props, variant, }) => {
356
363
  maxHeight: 450, width: '100%', overflow: 'hidden', overflowY: 'auto', '.MuiTextField-root': {
357
364
  width: '280% !important'
358
365
  }
359
- }, 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));
366
+ }, 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));
360
367
  };
361
368
 
362
369
  export { MultiSelectTable as default };
@@ -10,7 +10,7 @@ import React__default, { useState, useRef, useMemo } from 'react';
10
10
  import { useWatch } from 'react-hook-form';
11
11
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
12
12
  import 'dayjs';
13
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
13
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
14
14
 
15
15
  const ITEM_HEIGHT = 36;
16
16
  const ITEM_PADDING_TOP = 2;
@@ -56,12 +56,16 @@ function MultiSelectV1({ props, variant, }) {
56
56
  const selectedOptions = useMemo(() => options.filter((item) => fieldValue?.split(',').some((value) => value === item.value)), [options, fieldValue]);
57
57
  const selectedValuesString = selectedOptions.map((item) => item.label).join(' , ');
58
58
  const isShowBorderError = !!props.errors?.[props.item.name];
59
- return (jsx(Box, { children: jsxs(FormControl, { fullWidth: true, ref: containerRef, sx: { '& .MuiFormLabel-root': { top: -10 }, '& .MuiInputLabel-shrink': { top: 0 } }, children: [renderLabel(variant, props), variant !== 'standard' && (jsxs(InputLabel, { error: isShowBorderError, id: `${props.item.name}-ms-labelId`, children: [props.item.label, props.item.required ? ' *' : ''] })), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsxs(Select, { labelId: `${props.item.name}-ms-labelId`, id: `${props.item.name}-ms-select`, multiple: true, displayEmpty: true, error: isShowBorderError, disabled: props.item.disable, value: fieldValue ? extractValuesToArray(fieldValue) : [], onChange: handleChange, onOpen: () => {
60
- setSavedSortValue(fieldValue);
59
+ return (jsx(Box, { children: jsxs(FormControl, { fullWidth: true, ref: containerRef, sx: { '& .MuiFormLabel-root': { top: -10 }, '& .MuiInputLabel-shrink': { top: 0 } }, 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, error: isShowBorderError, disabled: props.item.disable, value: fieldValue ? extractValuesToArray(fieldValue) : [], onChange: handleChange, onOpen: () => {
60
+ if (!props.item.doNotEnableMultiselectOrder) {
61
+ setSavedSortValue(fieldValue);
62
+ }
61
63
  setTimeout(() => textfieldRef.current?.focus(), 0);
62
64
  }, onClose: () => {
63
65
  setSearchText('');
64
- setSavedSortValue(fieldValue);
66
+ if (!props.item.doNotEnableMultiselectOrder) {
67
+ setSavedSortValue(fieldValue);
68
+ }
65
69
  props?.item?.onCloseMenu && props?.item?.onCloseMenu();
66
70
  }, input: jsx(OutlinedInput, { label: variant !== 'standard' ? props.item.label : '' }), renderValue: () => (jsx(Tooltip, { title: selectedValuesString, children: jsx("span", { style: { display: 'block', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: props.item.placeholder && selectedOptions.length === 0 ? (jsx("span", { style: { color: '#0009' }, children: props.item.placeholder })) : (selectedOptions.length > (props.item.multiSelectLabelLength || 3)
67
71
  ? `${selectedOptions.length} Selected`
@@ -103,7 +107,7 @@ function MultiSelectV1({ props, variant, }) {
103
107
  } }) }), filterOptions.length !== 0 ? (filterOptions.map((option) => {
104
108
  const selectedArray = fieldValue ? extractValuesToArray(fieldValue) : [];
105
109
  const isChecked = selectedArray.includes(String(option.value));
106
- return (jsxs(MenuItem, { value: `${option.value}`, sx: {
110
+ return (jsxs(MenuItem, { value: `${option.value}`, disabled: option.disable, sx: {
107
111
  whiteSpace: 'normal',
108
112
  wordBreak: 'break-all',
109
113
  alignItems: 'center',
@@ -118,7 +122,7 @@ function MultiSelectV1({ props, variant, }) {
118
122
  lineHeight: '1.2'
119
123
  }
120
124
  } })] }, option.value));
121
- })) : (jsx(MenuItem, { className: 'multiselect-datanotfound', sx: { marginLeft: '30px', fontSize: '12px' }, disabled: true, children: "No data Found" }))] }))), jsx(FormBottomField, { ...props })] }) }, props.item.name));
125
+ })) : (jsx(MenuItem, { disabled: true, children: "No data Found" }))] }), jsx(FormBottomField, { ...props })] }) }, props.item.name));
122
126
  }
123
127
 
124
128
  export { MultiSelectV1 as default };
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { createElement } from 'react';
3
- import { Autocomplete, TextField, Tooltip } from '@mui/material';
3
+ import { Tooltip, Box, Autocomplete, TextField } from '@mui/material';
4
4
  import { useWatch, Controller } from 'react-hook-form';
5
5
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
6
6
  import 'dayjs';
7
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
8
8
 
9
9
  const SingleSelect = ({ props, variant }) => {
10
10
  const isError = !!props.errors?.[props.item.name];
@@ -14,61 +14,52 @@ const SingleSelect = ({ props, variant }) => {
14
14
  const value = currentValue
15
15
  ? props.item.options?.find((item) => item.value === currentValue)
16
16
  : null;
17
- return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(Autocomplete, { ...field, id: `${props.item.name}-autocomplete`, value: value, onChange: (_, newValue) => {
18
- props.setValue(props?.item?.name, newValue?.value);
19
- props?.item?.onChangeFn && props?.item?.onChangeFn(newValue?.value, newValue);
20
- props?.clearErrors && props?.clearErrors(props?.item?.name);
21
- }, onBlur: (e) => {
22
- props?.item?.onBlurFn && props?.item?.onBlurFn(e);
23
- }, size: "small", sx: {
24
- '& .MuiAutocomplete-input': {
25
- padding: '0px 0px 0px 5px !important',
26
- },
27
- '& .css-erkti9-MuiFormLabel-root-MuiInputLabel-root,.css-8edmr2-MuiFormLabel-root-MuiInputLabel-root': {
28
- top: '-3px',
29
- },
30
- // Note: Options are rendered in a portal; keep this as a fallback only
31
- '& .MuiAutocomplete-option': {
32
- fontSize: '11px',
33
- zIndex: 2000,
34
- },
35
- ...props.item.sx,
36
- }, ListboxProps: {
37
- onScroll: (event) => {
38
- const listboxNode = event.currentTarget;
39
- if (listboxNode.scrollTop + listboxNode.clientHeight === listboxNode.scrollHeight) ;
40
- },
41
- }, disabled: props.item.disable, options: props.item.options || [], slotProps: {
42
- popper: {
43
- sx: {
44
- zIndex: 1401,
45
- },
46
- },
47
- listbox: {
48
- sx: {
49
- fontSize: '11px',
50
- },
51
- },
52
- }, renderOption: (props, option) => (createElement("li", { ...props, value: option.value, key: option.value }, option.label)), renderInput: (params) => {
53
- const inputField = (jsx(TextField, { ...params, placeholder: props.item.placeholder, error: isShowBorderError, label: variant !== 'standard'
54
- ? `${props.item.label}${props.item.required ? ' *' : ''}`
55
- : '', inputProps: {
56
- ...params.inputProps,
57
- 'aria-labelledby': `${props.item.name}-label`,
58
- 'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
59
- 'aria-required': props.item.required ? true : undefined,
60
- } }));
61
- if (!props.item.isLabelToolTipEnable) {
62
- return inputField;
63
- }
64
- return (jsx(Tooltip, { title: value?.label ?? '', disableHoverListener: !value, children: jsx("span", { style: {
65
- display: 'block',
66
- overflow: 'hidden',
67
- textOverflow: 'ellipsis',
68
- whiteSpace: 'nowrap',
69
- width: '100%',
70
- }, children: inputField }) }));
71
- } }))), jsx(FormBottomField, { ...props })] })) }, props.item.name));
17
+ return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(Tooltip, { title: props.item.isTooltipEnable ? (value?.label || '') : '', placement: "bottom-start", children: jsxs(Box, { sx: { width: '100%', position: 'relative' }, children: [jsx(Autocomplete, { ...field, id: `${props.item.name}-autocomplete`, value: value, onChange: (_, newValue) => {
18
+ props.setValue(props?.item?.name, newValue?.value);
19
+ props?.item?.onChangeFn && props?.item?.onChangeFn(newValue?.value, newValue);
20
+ props?.clearErrors && props?.clearErrors(props?.item?.name);
21
+ }, onBlur: (e) => {
22
+ props?.item?.onBlurFn && props?.item?.onBlurFn(e);
23
+ }, size: "small", sx: {
24
+ '& .MuiAutocomplete-input': {
25
+ padding: '0px 0px 0px 5px !important',
26
+ },
27
+ '& .css-erkti9-MuiFormLabel-root-MuiInputLabel-root,.css-8edmr2-MuiFormLabel-root-MuiInputLabel-root': {
28
+ top: '-3px',
29
+ },
30
+ // Note: Options are rendered in a portal; keep this as a fallback only
31
+ '& .MuiAutocomplete-option': {
32
+ fontSize: '11px',
33
+ zIndex: 2000,
34
+ },
35
+ ...props.item.sx,
36
+ }, ListboxProps: {
37
+ onScroll: (event) => {
38
+ const listboxNode = event.currentTarget;
39
+ if (listboxNode.scrollTop + listboxNode.clientHeight === listboxNode.scrollHeight) ;
40
+ },
41
+ }, disabled: props.item.disable, options: props.item.options || [], slotProps: {
42
+ popper: {
43
+ sx: {
44
+ zIndex: 1401,
45
+ },
46
+ },
47
+ listbox: {
48
+ sx: {
49
+ fontSize: '11px',
50
+ },
51
+ },
52
+ }, renderOption: (props, option) => (createElement("li", { ...props, value: option.value, style: {
53
+ opacity: option.disable ? 0.5 : 1,
54
+ pointerEvents: option.disable ? 'none' : 'auto',
55
+ }, key: option.value }, option.label)), renderInput: (params) => (jsx(TextField, { ...params, placeholder: props.item.placeholder, error: isShowBorderError, label: variant !== 'standard'
56
+ ? `${props.item.label}${props.item.required ? ' *' : ''}`
57
+ : '', inputProps: {
58
+ ...params.inputProps,
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
+ } })) }), props.item.disable && props.item.isTooltipEnable && (jsx(Box, { sx: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', zIndex: 1 } }))] }) }), jsx(FormBottomField, { ...props })] })) }, props.item.name));
72
63
  };
73
64
 
74
65
  export { SingleSelect as default };
@@ -3,7 +3,7 @@ import { FormControl, InputLabel, Select, MenuItem } from '@mui/material';
3
3
  import { useWatch } from 'react-hook-form';
4
4
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
5
5
  import 'dayjs';
6
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
6
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
7
7
 
8
8
  const SingleSelectNonAutoComplete = ({ props, variant, }) => {
9
9
  const isError = !!props.errors?.[props.item.name];
@@ -17,16 +17,16 @@ const SingleSelectNonAutoComplete = ({ props, variant, }) => {
17
17
  '& .MuiInputLabel-shrink': {
18
18
  top: 0,
19
19
  },
20
- }, disabled: props.item.disable, children: [renderLabel(variant, props), variant !== 'standard' && (jsx(InputLabel, { error: isShowBorderError, id: `${props.item.name}-labelId`, children: props.item.label })), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(Select, { labelId: `${props.item.name}-labelId`, id: `${props.item.name}-select`, value: value, label: variant !== 'standard' ? `${props.item.label}${props.item.required ? ' *' : ''}` : '', disabled: props.item.disable, onChange: (e) => props.setValue(props.item.name, e.target.value), onBlur: (e) => {
20
+ }, disabled: props.item.disable, children: [renderLabel(variant, props), variant !== 'standard' && (jsx(InputLabel, { error: isShowBorderError, id: `${props.item.name}-labelId`, children: props.item.label })), jsx(Select, { labelId: `${props.item.name}-labelId`, id: `${props.item.name}-select`, value: value, label: variant !== 'standard' ? `${props.item.label}${props.item.required ? ' *' : ''}` : '', disabled: props.item.disable, onChange: (e) => props.setValue(props.item.name, e.target.value), onBlur: (e) => {
21
21
  props?.item?.onBlurFn && props?.item?.onBlurFn(e);
22
22
  }, error: isShowBorderError, inputProps: {
23
23
  'aria-labelledby': `${props.item.name}-label`,
24
24
  'aria-describedby': `${props.item.name}-helper ${props.item.name}-error`,
25
25
  'aria-required': props.item.required ? true : undefined,
26
- }, children: (props.item.options || []).map((item) => (jsx(MenuItem, { sx: {
26
+ }, children: (props.item.options || []).map((item) => (jsx(MenuItem, { disabled: item.disable, sx: {
27
27
  fontSize: '11px', // Adjust the font size as needed
28
28
  zIndex: 2000,
29
- }, value: item.value, children: item.label }, item.value))) }))), jsx(FormBottomField, { ...props })] }, props.item.name));
29
+ }, value: item.value, children: item.label }, item.value))) }), jsx(FormBottomField, { ...props })] }, props.item.name));
30
30
  };
31
31
 
32
32
  export { SingleSelectNonAutoComplete as default };
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { Autocomplete, Stack, Skeleton, TextField, Tooltip } from '@mui/material';
2
+ import { Autocomplete, Stack, Skeleton, Tooltip, TextField } from '@mui/material';
3
3
  import { useState, useEffect } from 'react';
4
4
  import { Controller } from 'react-hook-form';
5
5
  import '../../../node_modules/axios/index.esm.js';
6
6
  import 'dayjs';
7
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled } from '../../../utils/Constants/FormConstants.esm.js';
7
+ import { renderLabel } from '../../../utils/Constants/FormConstants.esm.js';
8
8
  import FormBottomField from '../FormBottomField/FormBottomField.esm.js';
9
9
  import axios from '../../../node_modules/axios/lib/axios.esm.js';
10
10
 
@@ -48,7 +48,7 @@ const SingleSelectSearchApi = ({ props, variant, }) => {
48
48
  // setSearchValue('');
49
49
  // }, [props.item?.changeValue]);
50
50
  const isOptionEqualToValue = (option, value) => option?.value === value?.value; // Assuming there's a 'value' property in your options
51
- return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(Autocomplete, { ...field, value: props.getValues(props.item.name)
51
+ return (jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(Autocomplete, { ...field, value: props.getValues(props.item.name)
52
52
  ? optionsFetched?.find((item) => item.value === props.getValues(props.item.name))
53
53
  : null, onChange: (_, newValue) => {
54
54
  // field.onChange(newValue);
@@ -68,18 +68,14 @@ const SingleSelectSearchApi = ({ props, variant, }) => {
68
68
  fontSize: '16px',
69
69
  },
70
70
  }, disabled: props.item.disable, options: optionsFetched, getOptionLabel: (option) => option.label, renderInput: (params) => {
71
- const inputField = (jsx(TextField, { ...params, onChange: (e) => {
72
- setSearchValue(e.target.value);
73
- }, label: variant !== 'standard'
74
- ? `${props.item.label}${props.item.required ? ' *' : ''}`
75
- : '', placeholder: props.item.placeholder }));
76
- if (!props.item.isLabelToolTipEnable) {
77
- return inputField;
78
- }
79
- return (jsx(Tooltip, { title: params.inputProps.value && params.inputProps.value, children: jsx("span", { style: { display: 'block', width: '100%' }, children: inputField }) }));
71
+ return (jsx(Tooltip, { title: params.inputProps.value && params.inputProps.value, children: jsx(TextField, { ...params, onChange: (e) => {
72
+ setSearchValue(e.target.value);
73
+ }, label: variant !== 'standard'
74
+ ? `${props.item.label}${props.item.required ? ' *' : ''}`
75
+ : '', placeholder: props.item.placeholder }) }));
80
76
  }, PaperComponent: ({ children }) => (jsx("div", { style: {
81
77
  background: '#fff',
82
- }, children: isLoading ? (jsxs(Stack, { padding: 2, spacing: 1, children: [jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 })] })) : (children) })), isOptionEqualToValue: isOptionEqualToValue }))), props?.item?.helperText && (jsxs("span", { style: {
78
+ }, children: isLoading ? (jsxs(Stack, { padding: 2, spacing: 1, children: [jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 }), jsx(Skeleton, { variant: "rectangular", width: '100%', height: 20 })] })) : (children) })), isOptionEqualToValue: isOptionEqualToValue }), props?.item?.helperText && (jsxs("span", { style: {
83
79
  fontFamily: 'Roboto-Reg',
84
80
  fontSize: '11px',
85
81
  color: '#3651d3',
@@ -7,7 +7,7 @@ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
7
7
  import { useWatch, Controller } from 'react-hook-form';
8
8
  import { ErrorMessageComponent } from '../../Form/Form.styles.esm.js';
9
9
  import 'dayjs';
10
- import { renderLabel, wrapFieldWithLabelTooltipIfEnabled, parseCustomTime, formatDayjsToCustomTime } from '../../../utils/Constants/FormConstants.esm.js';
10
+ import { renderLabel, parseCustomTime, formatDayjsToCustomTime } from '../../../utils/Constants/FormConstants.esm.js';
11
11
 
12
12
  function TimePickerFieldWrapper({ props, variant, }) {
13
13
  const [TimePicker, setTimePicker] = useState(null);
@@ -27,7 +27,7 @@ function TimePickerFieldWrapper({ props, variant, }) {
27
27
  if (isLoading) {
28
28
  return jsx("div", { style: { minHeight: '36px' }, children: "Loading..." });
29
29
  }
30
- return (jsx(Fragment, { children: TimePicker && (jsxs(LocalizationProvider, { dateAdapter: AdapterDayjs, children: [jsx(Controller, { name: props.item.name, control: props.control, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), wrapFieldWithLabelTooltipIfEnabled(variant, props, (jsx(TimePicker, { ...field, value: value ? parseCustomTime(value) : null, onChange: (newTime) => {
30
+ return (jsx(Fragment, { children: TimePicker && (jsxs(LocalizationProvider, { dateAdapter: AdapterDayjs, children: [jsx(Controller, { name: props.item.name, control: props.control, render: ({ field }) => (jsxs(Fragment, { children: [renderLabel(variant, props), jsx(TimePicker, { ...field, value: value ? parseCustomTime(value) : null, onChange: (newTime) => {
31
31
  const parsedTime = parseCustomTime(formatDayjsToCustomTime(newTime));
32
32
  const min = props.item.minTime ? parseCustomTime(props.item.minTime) : null;
33
33
  const max = props.item.maxTime ? parseCustomTime(props.item.maxTime) : null;
@@ -64,7 +64,7 @@ function TimePickerFieldWrapper({ props, variant, }) {
64
64
  },
65
65
  },
66
66
  },
67
- } })))] })) }), jsx(ErrorMessageComponent, { children: jsx(ErrorMessage, { errors: props.errors, name: props.item.name }) })] })) }));
67
+ } })] })) }), jsx(ErrorMessageComponent, { children: jsx(ErrorMessage, { errors: props.errors, name: props.item.name }) })] })) }));
68
68
  }
69
69
 
70
70
  export { TimePickerFieldWrapper as default };
@@ -7,6 +7,7 @@ interface MultiSelectProps {
7
7
  onChangeFn: (e: any) => void;
8
8
  disable?: boolean;
9
9
  optionFontSize?: string;
10
+ donotEnableMultiselectOrder?: boolean;
10
11
  }
11
- export default function MultiSelectFieldComponent({ value, options, onChangeFn, disable, optionFontSize, }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
12
+ export default function MultiSelectFieldComponent({ value, options, onChangeFn, disable, optionFontSize, donotEnableMultiselectOrder }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -15,7 +15,7 @@ const extractValuesToArray = (inputString) => {
15
15
  const trimmedArray = valuesArray?.map((value) => value.trim());
16
16
  return trimmedArray;
17
17
  };
18
- function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false, optionFontSize = '13px', }) {
18
+ function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false, optionFontSize = '13px', donotEnableMultiselectOrder = false }) {
19
19
  const [personName, setPersonName] = React.useState(value ? extractValuesToArray(value) : []);
20
20
  const [searchText, setSearchText] = useState('');
21
21
  const [selectAll, setSelectAll] = useState(false);
@@ -68,7 +68,9 @@ function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false
68
68
  fontSize: '5px !important',
69
69
  },
70
70
  }, disabled: disable, value: value ? extractValuesToArray(value) : [], onChange: handleChange, onOpen: () => {
71
- setSavedSortValue(fieldValue);
71
+ if (!donotEnableMultiselectOrder) {
72
+ setSavedSortValue(fieldValue);
73
+ }
72
74
  setTimeout(() => {
73
75
  if (textfieldRef.current) {
74
76
  textfieldRef.current?.focus();
@@ -76,7 +78,9 @@ function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false
76
78
  }, 0);
77
79
  }, onClose: () => {
78
80
  setSearchText('');
79
- setSavedSortValue(fieldValue);
81
+ if (!donotEnableMultiselectOrder) {
82
+ setSavedSortValue(fieldValue);
83
+ }
80
84
  }, renderValue: () => (jsx(Tooltip, { title: selectedValues, children: jsx("span", { children: selectedOptions.length > 3 ? `${selectedOptions.length} Selected` : selectedValues }) })), MenuProps: {
81
85
  PaperProps: {
82
86
  style: {
@@ -1,4 +1,4 @@
1
- import { __exports as DateInput } from '../../../../../_virtual/index.esm12.js';
1
+ import { __exports as DateInput } from '../../../../../_virtual/index.esm14.js';
2
2
  import React__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';
@@ -1,4 +1,4 @@
1
- import { __exports as InputRangeField } from '../../../../../_virtual/index.esm13.js';
1
+ import { __exports as InputRangeField } from '../../../../../_virtual/index.esm12.js';
2
2
  import React__default from 'react';
3
3
  import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { __exports as Month } from '../../../../../_virtual/index.esm14.js';
1
+ import { __exports as Month } from '../../../../../_virtual/index.esm13.js';
2
2
  import React__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';
@@ -1,12 +1,5 @@
1
- import type { ReactElement } from 'react';
2
1
  import dayjs, { Dayjs } from 'dayjs';
3
2
  import { VariantProps, FormRenderProps } from '../Interface/FormInterface';
4
- /** Full label text used for tooltips (label + required asterisk when applicable). */
5
- export declare const getLabelTooltipTitle: (props: FormRenderProps) => string;
6
- /**
7
- * For non-`standard` variants the visible label sits on the input; wrap the control so the full label shows on hover.
8
- */
9
- export declare const wrapFieldWithLabelTooltipIfEnabled: (variant: VariantProps, props: FormRenderProps, children: ReactElement) => ReactElement;
10
3
  /**
11
4
  * Renders a form input label with an optional required asterisk.
12
5
  *
@@ -1,18 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Tooltip } from '@mui/material';
3
2
  import dayjs from 'dayjs';
4
3
 
5
- /** Full label text used for tooltips (label + required asterisk when applicable). */
6
- const getLabelTooltipTitle = (props) => `${props.item.label}${props.item.required ? ' *' : ''}`;
7
- /**
8
- * For non-`standard` variants the visible label sits on the input; wrap the control so the full label shows on hover.
9
- */
10
- const wrapFieldWithLabelTooltipIfEnabled = (variant, props, children) => {
11
- if (!props.item.isLabelToolTipEnable || variant === 'standard') {
12
- return children;
13
- }
14
- return (jsx(Tooltip, { title: getLabelTooltipTitle(props), placement: "top", children: jsx("span", { style: { display: 'block', width: '100%' }, children: children }) }));
15
- };
16
4
  /**
17
5
  * Renders a form input label with an optional required asterisk.
18
6
  *
@@ -21,15 +9,7 @@ const wrapFieldWithLabelTooltipIfEnabled = (variant, props, children) => {
21
9
  * @param {boolean} [showLabel=false] - Whether to always show the label.
22
10
  * @returns {JSX.Element | false} The rendered label element or false if not shown.
23
11
  */
24
- const renderLabel = (variant, props, showLabel = false) => {
25
- if (!(variant === 'standard' || showLabel))
26
- return false;
27
- const labelInner = (jsxs("span", { id: `${props.item.name}-label`, className: "formInputlabel", style: { fontSize: '12px' }, children: [props.item.label, ' ', props.item.required && (jsx("span", { "aria-hidden": "true", style: { color: 'var(--mui-palette-error-main, #B3261E)' }, children: "*" }))] }));
28
- if (props.item.isLabelToolTipEnable) {
29
- return (jsx(Tooltip, { title: getLabelTooltipTitle(props), placement: "top", children: jsx("span", { style: { display: 'inline-block', maxWidth: '100%' }, children: labelInner }) }));
30
- }
31
- return labelInner;
32
- };
12
+ const renderLabel = (variant, props, showLabel = false) => (variant === 'standard' || showLabel) && (jsxs("span", { id: `${props.item.name}-label`, className: "formInputlabel", style: { fontSize: '12px' }, children: [props.item.label, ' ', props.item.required && (jsx("span", { "aria-hidden": "true", style: { color: 'var(--mui-palette-error-main, #B3261E)' }, children: "*" }))] }));
33
13
  /**
34
14
  * Formats a date string in "M/YYYY" or "MM/YYYY" format to "MM/01/YYYY".
35
15
  *
@@ -95,4 +75,4 @@ const extractDate = (inputDateString) => {
95
75
  return formattedDate;
96
76
  };
97
77
 
98
- export { extractDate, formatDateMonthAndYear, formatDayjsToCustomTime, getLabelTooltipTitle, parseCustomTime, renderLabel, wrapFieldWithLabelTooltipIfEnabled };
78
+ export { extractDate, formatDateMonthAndYear, formatDayjsToCustomTime, parseCustomTime, renderLabel };
@@ -3,6 +3,7 @@ import { SxProps } from '@mui/material';
3
3
  export interface OptionsProps {
4
4
  label: string | boolean | number;
5
5
  value: string | number;
6
+ disable?: boolean;
6
7
  }
7
8
  export interface TextFieldInputProps {
8
9
  autoComplete: 'new-password' | 'off';
@@ -40,7 +41,7 @@ export interface FormSectionPropsItem {
40
41
  customErrorMessage?: string | null;
41
42
  sx?: SxProps<Theme>;
42
43
  donotAllowSpace?: boolean;
43
- onInputProps?: (e: React.FocusEvent<HTMLInputElement>) => void;
44
+ onInputProps?: (e: React.FocusEvent<HTMLInputElement> | any) => void;
44
45
  fileType?: 'excel' | 'pdf' | 'all' | 'zip' | 'image' | 'document' | '' | string[];
45
46
  handleFileError?: (message: string) => void;
46
47
  onCloseMenu?: () => void;
@@ -81,8 +82,8 @@ export interface FormSectionPropsItem {
81
82
  labelField?: string;
82
83
  headerColor?: string;
83
84
  optionFontSize?: string;
84
- /** When true, shows a tooltip with the full field label on standard labels and outlined field wrappers (and single-select value overflow). Multi-select selection/value tooltips are always shown. */
85
- isLabelToolTipEnable?: boolean;
85
+ isTooltipEnable?: boolean;
86
+ doNotEnableMultiselectOrder?: boolean;
86
87
  }
87
88
  export type VariantProps = 'standard' | 'outlined' | '';
88
89
  export interface FormRenderProps {
@@ -1,4 +1,4 @@
1
1
  export { calculateTotalArrayValueTotal, checkIsDateIsBefore, findMenuHierarchy, getDesiredDate, getFormattedDate, getInitials, getUsernameFromEmail, handleDownloadReactTableDataExcel, lightenColor } from './Constants/FunctionConstants.esm.js';
2
- export { extractDate, formatDateMonthAndYear, formatDayjsToCustomTime, getLabelTooltipTitle, parseCustomTime, renderLabel, wrapFieldWithLabelTooltipIfEnabled } from './Constants/FormConstants.esm.js';
2
+ export { extractDate, formatDateMonthAndYear, formatDayjsToCustomTime, parseCustomTime, renderLabel } from './Constants/FormConstants.esm.js';
3
3
 
4
4
  // Utility Functions - Helper functions for form operations and data manipulation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tp-react-elements",
3
- "version": "1.2.0",
3
+ "version": "1.2.5",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "React form components library built with React Hook Form and Yup",