tp-react-elements 1.1.4 → 1.1.6

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.
@@ -1,3 +1,3 @@
1
- var InputRangeField = {};
1
+ var DateInput = {};
2
2
 
3
- export { InputRangeField as __exports };
3
+ export { DateInput as __exports };
@@ -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 Calendar = {};
1
+ var DateRange = {};
2
2
 
3
- export { Calendar as __exports };
3
+ export { DateRange as __exports };
@@ -1,3 +1,3 @@
1
- var DefinedRange = {};
1
+ var DateRangePicker = {};
2
2
 
3
- export { DefinedRange as __exports };
3
+ export { DateRangePicker as __exports };
@@ -1,3 +1,3 @@
1
- var DateRange = {};
1
+ var Calendar = {};
2
2
 
3
- export { DateRange as __exports };
3
+ export { Calendar as __exports };
@@ -1,3 +1,3 @@
1
- var DateRangePicker = {};
1
+ var DefinedRange = {};
2
2
 
3
- export { DateRangePicker as __exports };
3
+ export { DefinedRange as __exports };
@@ -41,9 +41,10 @@ const DatepickerWrapperV2 = ({ props, variant, }) => {
41
41
  ? dayjs(field.value, props.item.DateFormat || 'DD/MM/YYYY')
42
42
  : dayjs(field.value)
43
43
  : null, className: 'read-only', format: props.item.DateFormat || 'DD/MM/YYYY', open: open, onOpen: handleToggle, onClose: handleToggle, minDate: props?.item?.minDate ? dayjs(props?.item?.minDate, props.item.DateFormat || 'DD/MM/YYYY') : undefined, maxDate: props?.item?.maxDate ? dayjs(props?.item?.maxDate, props.item.DateFormat || 'DD/MM/YYYY') : undefined, disabled: props.item.disable || false, onChange: (date) => {
44
- field.onChange(dayjs(date).format(props.item.DateFormat || 'DD/MM/YYYY'));
45
- props?.item?.onChangeFn &&
46
- props?.item?.onChangeFn(dayjs(date).format(props.item.DateFormat || 'DD/MM/YYYY'));
44
+ const formattedDate = dayjs(date).format(props.item.DateFormat || 'DD/MM/YYYY');
45
+ field.onChange(formattedDate);
46
+ props?.item?.onChangeFn && props?.item?.onChangeFn(formattedDate);
47
+ props?.clearErrors && props?.clearErrors(props.item.name);
47
48
  }, slotProps: {
48
49
  textField: {
49
50
  onClick: () => handleToggle(),
@@ -37,7 +37,7 @@ const MultiSelectTable = ({ props, variant, }) => {
37
37
  };
38
38
  const [globalFilter, setGlobalFilter] = useState('');
39
39
  const tableRef = useRef(null);
40
- const fieldValue = useWatch({ control: props.control, name: props.item.name });
40
+ const fieldValue = useWatch({ control: props.control, name: props.item.name }) ?? [];
41
41
  const isError = !!props.errors?.[props.item.name];
42
42
  const isShowBorderError = isError;
43
43
  // Get columns and rows from form item
@@ -49,18 +49,24 @@ const MultiSelectTable = ({ props, variant, }) => {
49
49
  const placeholder = props.item.placeholder || 'None selected';
50
50
  // Get selected rows (handles both array of objects and legacy string format)
51
51
  const selectedRows = useMemo(() => {
52
- if (!fieldValue)
52
+ if (!fieldValue || (Array.isArray(fieldValue) && fieldValue.length === 0)) {
53
53
  return [];
54
+ }
54
55
  // If fieldValue is already an array of objects, use it directly
55
56
  if (Array.isArray(fieldValue)) {
56
57
  return fieldValue;
57
58
  }
58
59
  // Legacy: handle comma-separated string of IDs
59
- const ids = extractValuesToArray(fieldValue);
60
- return rows.filter((row) => ids.includes(String(row[valueField])));
60
+ if (typeof fieldValue === 'string') {
61
+ const ids = extractValuesToArray(fieldValue);
62
+ return rows.filter((row) => ids.includes(String(row[valueField])));
63
+ }
64
+ return [];
61
65
  }, [fieldValue, rows, valueField]);
62
66
  // Get selected values as array of IDs for checkbox state
63
67
  const selectedValues = useMemo(() => {
68
+ if (!selectedRows)
69
+ return [];
64
70
  return selectedRows.map((row) => String(row[valueField]));
65
71
  }, [selectedRows, valueField]);
66
72
  // Display text for selected items
@@ -87,7 +93,7 @@ const MultiSelectTable = ({ props, variant, }) => {
87
93
  newSelectedRows = selectedRows;
88
94
  }
89
95
  }
90
- props.setValue(props.item.name, newSelectedRows);
96
+ props.setValue(props.item.name, newSelectedRows, { shouldValidate: true, shouldDirty: true });
91
97
  props?.item?.onChangeFn && props?.item?.onChangeFn(newSelectedRows);
92
98
  props?.clearErrors && props?.clearErrors(props.item.name);
93
99
  }, [selectedValues, selectedRows, rows, props, valueField]);
@@ -113,7 +119,7 @@ const MultiSelectTable = ({ props, variant, }) => {
113
119
  .filter((row) => !currentIds.has(String(row[valueField])));
114
120
  newSelectedRows = [...selectedRows, ...rowsToAdd];
115
121
  }
116
- props.setValue(props.item.name, newSelectedRows);
122
+ props.setValue(props.item.name, newSelectedRows, { shouldValidate: true, shouldDirty: true });
117
123
  props?.item?.onChangeFn && props?.item?.onChangeFn(newSelectedRows);
118
124
  }, [selectedValues, selectedRows, props, valueField]);
119
125
  // Calculate select all state based on filtered rows
@@ -1,4 +1,4 @@
1
- import { __exports as Calendar } from '../../../../../_virtual/index.esm4.js';
1
+ import { __exports as Calendar } from '../../../../../_virtual/index.esm6.js';
2
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';
@@ -1,4 +1,4 @@
1
- import { __exports as DateInput } from '../../../../../_virtual/index.esm14.js';
1
+ import { __exports as DateInput } from '../../../../../_virtual/index.esm13.js';
2
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';
@@ -1,4 +1,4 @@
1
- import { __exports as DateRange } from '../../../../../_virtual/index.esm6.js';
1
+ import { __exports as DateRange } from '../../../../../_virtual/index.esm4.js';
2
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';
@@ -1,4 +1,4 @@
1
- import { __exports as DateRangePicker } from '../../../../../_virtual/index.esm7.js';
1
+ import { __exports as DateRangePicker } from '../../../../../_virtual/index.esm5.js';
2
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';
@@ -1,4 +1,4 @@
1
- import { __exports as DefinedRange } from '../../../../../_virtual/index.esm5.js';
1
+ import { __exports as DefinedRange } from '../../../../../_virtual/index.esm7.js';
2
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';
@@ -1,4 +1,4 @@
1
- import { __exports as InputRangeField } from '../../../../../_virtual/index.esm13.js';
1
+ import { __exports as InputRangeField } from '../../../../../_virtual/index.esm14.js';
2
2
  import require$$0__default from 'react';
3
3
  import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tp-react-elements",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "React form components library built with React Hook Form and Yup",