tp-react-elements 1.1.17 → 1.1.18

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 Month = {};
1
+ var DayCell = {};
2
2
 
3
- export { Month as __exports };
3
+ export { DayCell as __exports };
@@ -1,3 +1,3 @@
1
- var DayCell = {};
1
+ var InputRangeField = {};
2
2
 
3
- export { DayCell as __exports };
3
+ export { InputRangeField as __exports };
@@ -1,3 +1,3 @@
1
- var DateInput = {};
1
+ var Month = {};
2
2
 
3
- export { DateInput as __exports };
3
+ export { Month as __exports };
@@ -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 DateRange = {};
1
+ var DefinedRange = {};
2
2
 
3
- export { DateRange as __exports };
3
+ export { DefinedRange as __exports };
@@ -1,3 +1,3 @@
1
- var DefinedRange = {};
1
+ var DateRange = {};
2
2
 
3
- export { DefinedRange as __exports };
3
+ export { DateRange as __exports };
@@ -1,5 +1,5 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
- import require$$0__default, { lazy, Suspense } from 'react';
2
+ import React__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';
@@ -155,6 +155,6 @@ const RenderForm = (props) => {
155
155
  *
156
156
  * @see FormRenderWrapper
157
157
  */
158
- var RenderForm$1 = require$$0__default.memo(RenderForm);
158
+ var RenderForm$1 = React__default.memo(RenderForm);
159
159
 
160
160
  export { RenderForm$1 as default };
@@ -1,5 +1,5 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
- import require$$0__default from 'react';
2
+ import React__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 = require$$0__default.memo(FormRenderWrapper);
31
+ var FormRenderWrapper_default = React__default.memo(FormRenderWrapper);
32
32
 
33
33
  export { FormRenderWrapper_default as default };
@@ -6,7 +6,7 @@ import ListItemText from '@mui/material/ListItemText';
6
6
  import MenuItem from '@mui/material/MenuItem';
7
7
  import OutlinedInput from '@mui/material/OutlinedInput';
8
8
  import Select from '@mui/material/Select';
9
- import require$$0__default, { useState, useRef, useMemo } from 'react';
9
+ 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';
@@ -22,25 +22,32 @@ const extractValuesToArray = (inputString) => {
22
22
  function MultiSelectV1({ props, variant, }) {
23
23
  const [searchText, setSearchText] = useState('');
24
24
  const options = props.item?.options || [];
25
- const [filterOptions, setFilterOptions] = useState(props.item.options || []);
26
25
  const textfieldRef = useRef(null);
27
26
  // Ref to capture the width of the Select container
28
27
  const containerRef = useRef(null);
29
28
  const fieldValue = useWatch({ control: props.control, name: props.item.name });
29
+ const [savedSortValue, setSavedSortValue] = useState(fieldValue);
30
+ const sortedOptions = useMemo(() => {
31
+ const selectedArray = savedSortValue ? savedSortValue.split(',') : [];
32
+ const selectedItems = options.filter((opt) => selectedArray.includes(String(opt.value)));
33
+ const unselectedItems = options.filter((opt) => !selectedArray.includes(String(opt.value)));
34
+ return [...selectedItems, ...unselectedItems];
35
+ }, [options, savedSortValue]);
36
+ const [filterOptions, setFilterOptions] = useState(sortedOptions);
30
37
  const selectAll = useMemo(() => {
31
38
  if (!fieldValue || filterOptions.length === 0)
32
39
  return false;
33
40
  const selectedValues = fieldValue.split(',').filter(Boolean);
34
41
  return filterOptions.every((option) => selectedValues.includes(String(option.value)));
35
42
  }, [fieldValue, filterOptions]);
36
- require$$0__default.useEffect(() => {
43
+ React__default.useEffect(() => {
37
44
  if (searchText !== '') {
38
- setFilterOptions(options.filter((item) => item.label.toLowerCase().includes(searchText.toLowerCase())));
45
+ setFilterOptions(sortedOptions.filter((item) => item.label.toLowerCase().includes(searchText.toLowerCase())));
39
46
  }
40
47
  else {
41
- setFilterOptions(options);
48
+ setFilterOptions(sortedOptions);
42
49
  }
43
- }, [options, searchText]);
50
+ }, [sortedOptions, searchText]);
44
51
  const handleChange = (event) => {
45
52
  const { target: { value } } = event;
46
53
  const finalValue = typeof value === 'string' ? value.split(',') : value;
@@ -49,8 +56,12 @@ function MultiSelectV1({ props, variant, }) {
49
56
  const selectedOptions = useMemo(() => options.filter((item) => fieldValue?.split(',').some((value) => value === item.value)), [options, fieldValue]);
50
57
  const selectedValuesString = selectedOptions.map((item) => item.label).join(' , ');
51
58
  const isShowBorderError = !!props.errors?.[props.item.name];
52
- 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: () => setTimeout(() => textfieldRef.current?.focus(), 0), onClose: () => {
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
+ setSavedSortValue(fieldValue);
61
+ setTimeout(() => textfieldRef.current?.focus(), 0);
62
+ }, onClose: () => {
53
63
  setSearchText('');
64
+ setSavedSortValue(fieldValue);
54
65
  props?.item?.onCloseMenu && props?.item?.onCloseMenu();
55
66
  }, 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)
56
67
  ? `${selectedOptions.length} Selected`
@@ -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 require$$0 from 'react';
8
+ import * as React from 'react';
9
9
  import { useState } from 'react';
10
10
 
11
11
  const ITEM_HEIGHT = 36;
@@ -16,22 +16,29 @@ const extractValuesToArray = (inputString) => {
16
16
  return trimmedArray;
17
17
  };
18
18
  function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false, optionFontSize = '13px', }) {
19
- const [personName, setPersonName] = require$$0.useState(value ? extractValuesToArray(value) : []);
19
+ const [personName, setPersonName] = React.useState(value ? extractValuesToArray(value) : []);
20
20
  const [searchText, setSearchText] = useState('');
21
- const [filterOptions, setFilterOptions] = useState(options);
22
21
  const [selectAll, setSelectAll] = useState(false);
23
- const textfieldRef = require$$0.useRef(null);
24
- const containerRef = require$$0.useRef(null);
22
+ const textfieldRef = React.useRef(null);
23
+ const containerRef = React.useRef(null);
25
24
  const fieldValue = value;
26
- require$$0.useEffect(() => {
25
+ const [savedSortValue, setSavedSortValue] = React.useState(fieldValue);
26
+ const sortedOptions = React.useMemo(() => {
27
+ const selectedArray = savedSortValue ? savedSortValue.split(',') : [];
28
+ const selectedItems = options.filter((opt) => selectedArray.includes(String(opt.value)));
29
+ const unselectedItems = options.filter((opt) => !selectedArray.includes(String(opt.value)));
30
+ return [...selectedItems, ...unselectedItems];
31
+ }, [options, savedSortValue]);
32
+ const [filterOptions, setFilterOptions] = useState(sortedOptions);
33
+ React.useEffect(() => {
27
34
  if (searchText !== '') {
28
- setFilterOptions(options.filter((item) => item.label.toLowerCase().includes(searchText.toLowerCase())));
35
+ setFilterOptions(sortedOptions.filter((item) => item.label.toLowerCase().includes(searchText.toLowerCase())));
29
36
  }
30
37
  else {
31
- setFilterOptions(options);
38
+ setFilterOptions(sortedOptions);
32
39
  }
33
- }, [options, searchText]);
34
- require$$0.useEffect(() => {
40
+ }, [sortedOptions, searchText]);
41
+ React.useEffect(() => {
35
42
  const values = fieldValue ? fieldValue.split(',').filter(Boolean) : [];
36
43
  const filterIdStrings = filterOptions.map((item) => String(item.value));
37
44
  if (values.length === 0 || filterOptions.length === 0) {
@@ -61,6 +68,7 @@ function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false
61
68
  fontSize: '5px !important',
62
69
  },
63
70
  }, disabled: disable, value: value ? extractValuesToArray(value) : [], onChange: handleChange, onOpen: () => {
71
+ setSavedSortValue(fieldValue);
64
72
  setTimeout(() => {
65
73
  if (textfieldRef.current) {
66
74
  textfieldRef.current?.focus();
@@ -68,6 +76,7 @@ function MultiSelectFieldComponent({ value, options, onChangeFn, disable = false
68
76
  }, 0);
69
77
  }, onClose: () => {
70
78
  setSearchText('');
79
+ setSavedSortValue(fieldValue);
71
80
  }, renderValue: () => (jsx(Tooltip, { title: selectedValues, children: jsx("span", { children: selectedOptions.length > 3 ? `${selectedOptions.length} Selected` : selectedValues }) })), MenuProps: {
72
81
  PaperProps: {
73
82
  style: {
@@ -1,5 +1,5 @@
1
1
  import { __exports as Calendar } from '../../../../../_virtual/index.esm4.js';
2
- import require$$0__default from 'react';
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';
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(require$$0__default);
26
+ var _react = _interopRequireWildcard(React__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.esm13.js';
2
- import require$$0__default from 'react';
1
+ import { __exports as DateInput } from '../../../../../_virtual/index.esm14.js';
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';
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(require$$0__default);
17
+ var _react = _interopRequireWildcard(React__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.esm5.js';
2
- import require$$0__default from 'react';
1
+ import { __exports as DateRange } from '../../../../../_virtual/index.esm6.js';
2
+ import React__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(require$$0__default);
21
+ var _react = _interopRequireWildcard(React__default);
22
22
  var _propTypes = _interopRequireDefault(/*@__PURE__*/ requirePropTypes());
23
23
  var _Calendar = _interopRequireDefault(requireCalendar());
24
24
  var _DayCell = requireDayCell();
@@ -1,5 +1,5 @@
1
1
  import { __exports as DateRangePicker } from '../../../../../_virtual/index.esm7.js';
2
- import require$$0__default from 'react';
2
+ import React__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(require$$0__default);
20
+ var _react = _interopRequireWildcard(React__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
- import { __exports as DayCell } from '../../../../../_virtual/index.esm12.js';
2
- import require$$0__default from 'react';
1
+ import { __exports as DayCell } from '../../../../../_virtual/index.esm11.js';
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';
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(require$$0__default);
17
+ var _react = _interopRequireWildcard(React__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 DefinedRange } from '../../../../../_virtual/index.esm6.js';
2
- import require$$0__default from 'react';
1
+ import { __exports as DefinedRange } from '../../../../../_virtual/index.esm5.js';
2
+ import React__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(require$$0__default);
20
+ var _react = _interopRequireWildcard(React__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.esm14.js';
2
- import require$$0__default from 'react';
1
+ import { __exports as InputRangeField } from '../../../../../_virtual/index.esm12.js';
2
+ import React__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(require$$0__default);
15
+ var _react = _interopRequireWildcard(React__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
- import { __exports as Month } from '../../../../../_virtual/index.esm11.js';
2
- import require$$0__default from 'react';
1
+ import { __exports as Month } from '../../../../../_virtual/index.esm13.js';
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';
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(require$$0__default);
18
+ var _react = _interopRequireWildcard(React__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 require$$0__default from 'react';
2
+ import React__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, require$$0__default, require$$1);
13
+ factory(exports$1, React__default, require$$1);
14
14
  }
15
15
  })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : reactList, function (_exports, _react, _jsxRuntime) {
16
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tp-react-elements",
3
- "version": "1.1.17",
3
+ "version": "1.1.18",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "React form components library built with React Hook Form and Yup",