@rolster/react-components 18.15.13 → 18.15.20

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 (57) hide show
  1. package/dist/cjs/index.js +78 -84
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.js +78 -84
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/esm/components/atoms/Input/Input.d.ts +2 -2
  6. package/dist/esm/components/atoms/Input/Input.js +1 -1
  7. package/dist/esm/components/atoms/Input/Input.js.map +1 -1
  8. package/dist/esm/components/atoms/InputMoney/InputMoney.d.ts +3 -8
  9. package/dist/esm/components/atoms/InputMoney/InputMoney.js +1 -1
  10. package/dist/esm/components/atoms/InputMoney/InputMoney.js.map +1 -1
  11. package/dist/esm/components/atoms/InputNumber/InputNumber.d.ts +2 -10
  12. package/dist/esm/components/atoms/InputNumber/InputNumber.js +1 -1
  13. package/dist/esm/components/atoms/InputNumber/InputNumber.js.map +1 -1
  14. package/dist/esm/components/atoms/InputPassword/InputPassword.d.ts +4 -4
  15. package/dist/esm/components/atoms/InputPassword/InputPassword.js +1 -1
  16. package/dist/esm/components/atoms/InputPassword/InputPassword.js.map +1 -1
  17. package/dist/esm/components/atoms/InputSearch/InputSearch.d.ts +3 -3
  18. package/dist/esm/components/atoms/InputSearch/InputSearch.js +1 -1
  19. package/dist/esm/components/atoms/InputSearch/InputSearch.js.map +1 -1
  20. package/dist/esm/components/atoms/InputText/InputText.d.ts +2 -10
  21. package/dist/esm/components/atoms/InputText/InputText.js +2 -2
  22. package/dist/esm/components/atoms/InputText/InputText.js.map +1 -1
  23. package/dist/esm/components/molecules/FieldMoney/FieldMoney.d.ts +3 -9
  24. package/dist/esm/components/molecules/FieldMoney/FieldMoney.js +2 -2
  25. package/dist/esm/components/molecules/FieldMoney/FieldMoney.js.map +1 -1
  26. package/dist/esm/components/molecules/FieldNumber/FieldNumber.d.ts +2 -11
  27. package/dist/esm/components/molecules/FieldNumber/FieldNumber.js +2 -2
  28. package/dist/esm/components/molecules/FieldNumber/FieldNumber.js.map +1 -1
  29. package/dist/esm/components/molecules/FieldPassword/FieldPassword.d.ts +4 -3
  30. package/dist/esm/components/molecules/FieldPassword/FieldPassword.js +2 -2
  31. package/dist/esm/components/molecules/FieldPassword/FieldPassword.js.map +1 -1
  32. package/dist/esm/components/molecules/FieldText/FieldText.d.ts +2 -11
  33. package/dist/esm/components/molecules/FieldText/FieldText.js +2 -2
  34. package/dist/esm/components/molecules/FieldText/FieldText.js.map +1 -1
  35. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.d.ts +2 -1
  36. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +7 -11
  37. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
  38. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteHook.js +10 -11
  39. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteHook.js.map +1 -1
  40. package/dist/esm/components/organisms/FieldDate/FieldDate.d.ts +2 -1
  41. package/dist/esm/components/organisms/FieldDate/FieldDate.js +2 -2
  42. package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
  43. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.d.ts +2 -1
  44. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +2 -2
  45. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
  46. package/dist/esm/components/organisms/FieldSelect/FieldSelect.d.ts +3 -2
  47. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +12 -13
  48. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
  49. package/dist/esm/components/organisms/FieldSelect/FieldSelectHook.js +11 -11
  50. package/dist/esm/components/organisms/FieldSelect/FieldSelectHook.js.map +1 -1
  51. package/dist/esm/components/types.d.ts +13 -0
  52. package/dist/esm/components/types.js +2 -0
  53. package/dist/esm/components/types.js.map +1 -0
  54. package/dist/esm/hooks/ListControlHook.d.ts +2 -4
  55. package/dist/esm/hooks/ListControlHook.js +19 -19
  56. package/dist/esm/hooks/ListControlHook.js.map +1 -1
  57. package/package.json +2 -2
package/dist/cjs/index.js CHANGED
@@ -1418,7 +1418,7 @@ function RlsCheckBoxControl({ formControl, disabled, rlsTheme }) {
1418
1418
  }, rlsTheme: rlsTheme }));
1419
1419
  }
1420
1420
 
1421
- function RlsInput({ children, disabled, formControl, placeholder, type, value, onValue }) {
1421
+ function RlsInput({ children, disabled, formControl, onValue, placeholder, type, value }) {
1422
1422
  const [focused, setFocused] = require$$0.useState(false);
1423
1423
  function setValue(value) {
1424
1424
  formControl?.setValue(value);
@@ -1441,7 +1441,7 @@ function RlsInput({ children, disabled, formControl, placeholder, type, value, o
1441
1441
  }), children: [jsxRuntimeExports.jsx("input", { ref: formControl?.elementRef, className: "rls-input__component", autoComplete: "off", type: type ?? 'text', placeholder: placeholder, disabled: formControl?.disabled ?? disabled, onFocus: onFocus, onBlur: onBlur, onChange: onChange, value: formControl?.value ?? value ?? '' }), jsxRuntimeExports.jsx("span", { className: "rls-input__value", children: children })] }));
1442
1442
  }
1443
1443
 
1444
- function RlsInputMoney({ decimals, disabled, formControl, placeholder, symbol, value, onValue }) {
1444
+ function RlsInputMoney({ decimals, disabled, formControl, onValue, placeholder, symbol, value }) {
1445
1445
  const [valueInput, setValueInput] = require$$0.useState(value || 0);
1446
1446
  function onChange(value) {
1447
1447
  !formControl && setValueInput(value);
@@ -1450,7 +1450,7 @@ function RlsInputMoney({ decimals, disabled, formControl, placeholder, symbol, v
1450
1450
  return (jsxRuntimeExports.jsx("div", { className: "rls-input-money", children: jsxRuntimeExports.jsx(RlsInput, { formControl: formControl, type: "number", value: value, disabled: disabled, placeholder: placeholder, onValue: onChange, children: jsxRuntimeExports.jsx(RlsAmount, { value: formControl?.value ?? value ?? valueInput, symbol: symbol, decimals: decimals }) }) }));
1451
1451
  }
1452
1452
 
1453
- function RlsInputNumber({ disabled, formControl, placeholder, value, onValue }) {
1453
+ function RlsInputNumber({ disabled, formControl, onValue, placeholder, value }) {
1454
1454
  const [valueInput, setValueInput] = require$$0.useState(value ?? 0);
1455
1455
  function onChange(value) {
1456
1456
  !formControl && setValueInput(value);
@@ -1459,7 +1459,7 @@ function RlsInputNumber({ disabled, formControl, placeholder, value, onValue })
1459
1459
  return (jsxRuntimeExports.jsx("div", { className: "rls-input-number", children: jsxRuntimeExports.jsx(RlsInput, { formControl: formControl, type: "number", value: value, disabled: disabled, placeholder: placeholder, onValue: onChange, children: formControl?.value ?? value ?? valueInput }) }));
1460
1460
  }
1461
1461
 
1462
- function RlsInputPassword({ disabled, formControl, placeholder, type, onValue }) {
1462
+ function RlsInputPassword({ disabled, formControl, onValue, placeholder, type }) {
1463
1463
  const [focused, setFocused] = require$$0.useState(false);
1464
1464
  function onChange(event) {
1465
1465
  formControl?.setValue(event.target.value);
@@ -1479,12 +1479,12 @@ function RlsInputPassword({ disabled, formControl, placeholder, type, onValue })
1479
1479
  }), children: jsxRuntimeExports.jsx("input", { className: "rls-input-password__component", autoComplete: "off", type: type ?? 'password', placeholder: placeholder, disabled: disabled, onFocus: onFocus, onBlur: onBlur, onChange: onChange }) }));
1480
1480
  }
1481
1481
 
1482
- function RlsInputSearch({ formControl, placeholder, onSearch }) {
1482
+ function RlsInputSearch({ formControl, onSearch, placeholder }) {
1483
1483
  return (jsxRuntimeExports.jsxs("div", { className: "rls-input-search", children: [jsxRuntimeExports.jsx(RlsInput, { formControl: formControl, placeholder: placeholder }), onSearch && jsxRuntimeExports.jsx(RlsButtonAction, { icon: "search", onClick: onSearch })] }));
1484
1484
  }
1485
1485
 
1486
- function RlsInputText({ disabled, formControl, placeholder, value, onValue }) {
1487
- const [valueInput, setValueInput] = require$$0.useState(value || '');
1486
+ function RlsInputText({ disabled, formControl, onValue, placeholder, value }) {
1487
+ const [valueInput, setValueInput] = require$$0.useState(value ?? '');
1488
1488
  function onChange(value) {
1489
1489
  !formControl && setValueInput(value);
1490
1490
  onValue && onValue(value);
@@ -1577,23 +1577,23 @@ function RlsMessageFormError({ className, formControl }) {
1577
1577
  return (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: formControl?.wrong && (jsxRuntimeExports.jsx("div", { className: className, children: jsxRuntimeExports.jsx(RlsMessageIcon, { icon: "alert-triangle", rlsTheme: "danger", children: formControl?.error?.message }) })) }));
1578
1578
  }
1579
1579
 
1580
- function RlsFieldMoney({ children, decimals, disabled, formControl, placeholder, symbol, rlsTheme, value, onValue }) {
1580
+ function RlsFieldMoney({ children, decimals, disabled, formControl, msgErrorDisabled, onValue, placeholder, symbol, rlsTheme, value }) {
1581
1581
  return (jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', {
1582
1582
  focused: formControl?.focused,
1583
1583
  error: formControl?.wrong,
1584
1584
  disabled: formControl?.disabled || disabled
1585
- }, 'rls-field-money'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputMoney, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, symbol: symbol, decimals: decimals, onValue: onValue }) }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })] }));
1585
+ }, 'rls-field-money'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputMoney, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, symbol: symbol, decimals: decimals, onValue: onValue }) }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1586
1586
  }
1587
1587
 
1588
- function RlsFieldNumber({ children, disabled, formControl, placeholder, rlsTheme, value, onValue }) {
1588
+ function RlsFieldNumber({ children, disabled, formControl, msgErrorDisabled, onValue, placeholder, rlsTheme, value }) {
1589
1589
  return (jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', {
1590
1590
  focused: formControl?.focused,
1591
1591
  error: formControl?.wrong,
1592
1592
  disabled: formControl?.disabled || disabled
1593
- }, 'rls-field-number'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputNumber, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, onValue: onValue }) }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })] }));
1593
+ }, 'rls-field-number'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputNumber, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, onValue: onValue }) }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1594
1594
  }
1595
1595
 
1596
- function RlsFieldPassword({ children, disabled, formControl, placeholder, rlsTheme }) {
1596
+ function RlsFieldPassword({ children, disabled, formControl, msgErrorDisabled, placeholder, rlsTheme }) {
1597
1597
  const [password, setPassword] = require$$0.useState(true);
1598
1598
  function onToggleInput() {
1599
1599
  setPassword(!password);
@@ -1602,15 +1602,15 @@ function RlsFieldPassword({ children, disabled, formControl, placeholder, rlsThe
1602
1602
  focused: formControl?.focused,
1603
1603
  error: formControl?.wrong,
1604
1604
  disabled: formControl?.disabled || disabled
1605
- }, 'rls-field-password'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx(RlsInputPassword, { formControl: formControl, disabled: disabled, placeholder: placeholder, type: password ? 'password' : 'text' }), jsxRuntimeExports.jsx(RlsButtonAction, { icon: password ? 'eye' : 'eye-off', onClick: onToggleInput })] }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })] }));
1605
+ }, 'rls-field-password'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx(RlsInputPassword, { formControl: formControl, disabled: disabled, placeholder: placeholder, type: password ? 'password' : 'text' }), jsxRuntimeExports.jsx(RlsButtonAction, { icon: password ? 'eye' : 'eye-off', onClick: onToggleInput })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1606
1606
  }
1607
1607
 
1608
- function RlsFieldText({ children, disabled, formControl, placeholder, rlsTheme, value, onValue }) {
1608
+ function RlsFieldText({ children, disabled, formControl, msgErrorDisabled, onValue, placeholder, rlsTheme, value }) {
1609
1609
  return (jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', {
1610
1610
  focused: formControl?.focused,
1611
1611
  error: formControl?.wrong,
1612
1612
  disabled: formControl?.disabled || disabled
1613
- }, 'rls-field-text'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputText, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, onValue: onValue }) }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })] }));
1613
+ }, 'rls-field-text'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputText, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, onValue: onValue }) }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1614
1614
  }
1615
1615
 
1616
1616
  function RlsLabelCheckBox({ children, disabled, extended, formControl, rlsTheme }) {
@@ -2067,11 +2067,12 @@ function useListControl({ suggestions, formControl }) {
2067
2067
  const contentRef = require$$0.useRef(null);
2068
2068
  const listRef = require$$0.useRef(null);
2069
2069
  const inputRef = require$$0.useRef(null);
2070
+ const listIsOpen = require$$0.useRef(false);
2070
2071
  const [state, setState] = require$$0.useState({
2071
2072
  focused: false,
2072
2073
  higher: false,
2073
2074
  value: '',
2074
- visible: false
2075
+ listIsVisible: false
2075
2076
  });
2076
2077
  const collection = require$$0.useRef(new components.ListCollection([]));
2077
2078
  const position = require$$0.useRef(0);
@@ -2079,7 +2080,7 @@ function useListControl({ suggestions, formControl }) {
2079
2080
  require$$0.useEffect(() => {
2080
2081
  function onCloseSuggestions({ target }) {
2081
2082
  !contentRef?.current?.contains(target) &&
2082
- setState((state) => ({ ...state, visible: false }));
2083
+ setState((state) => ({ ...state, listIsVisible: false }));
2083
2084
  }
2084
2085
  document.addEventListener('click', onCloseSuggestions);
2085
2086
  return () => {
@@ -2087,29 +2088,36 @@ function useListControl({ suggestions, formControl }) {
2087
2088
  };
2088
2089
  }, []);
2089
2090
  require$$0.useEffect(() => {
2090
- state.visible && formControl?.touch();
2091
+ if (!listIsOpen.current && state.listIsVisible) {
2092
+ listIsOpen.current = true;
2093
+ }
2094
+ if (listIsOpen.current && !state.listIsVisible) {
2095
+ formControl?.touch();
2096
+ }
2091
2097
  setState((state) => ({
2092
2098
  ...state,
2093
2099
  higher: components.locationListCanTop(contentRef.current, listRef.current)
2094
2100
  }));
2095
- }, [state.visible]);
2101
+ }, [state.listIsVisible]);
2096
2102
  require$$0.useEffect(() => {
2097
2103
  collection.current = new components.ListCollection(suggestions);
2098
2104
  refresh(collection.current, formControl?.value);
2099
2105
  }, [suggestions, formControl?.value]);
2100
2106
  function refresh(collection, state) {
2101
2107
  if (!state) {
2102
- return refreshProtected(collection) ? undefined : setValue('');
2108
+ return refreshProtected(collection)
2109
+ ? undefined
2110
+ : refreshState({ value: '' });
2103
2111
  }
2104
2112
  const element = collection.find(state);
2105
2113
  if (element) {
2106
2114
  protectedValue.current = undefined;
2107
- return setValue(element.description);
2115
+ return refreshState({ value: element.description });
2108
2116
  }
2109
2117
  if (!refreshProtected(collection)) {
2110
2118
  protectedValue.current = state;
2111
- setValue('');
2112
2119
  setFormValue(undefined);
2120
+ refreshState({ value: '' });
2113
2121
  }
2114
2122
  }
2115
2123
  function refreshProtected(collection) {
@@ -2123,20 +2131,14 @@ function useListControl({ suggestions, formControl }) {
2123
2131
  }
2124
2132
  return false;
2125
2133
  }
2126
- function setFocused(focused) {
2127
- setState((state) => ({ ...state, focused }));
2128
- }
2129
- function setValue(value) {
2130
- setState((state) => ({ ...state, value }));
2134
+ function refreshState(state) {
2135
+ setState((currentState) => ({ ...currentState, state }));
2131
2136
  }
2132
2137
  function setFormValue(value) {
2133
2138
  formControl?.setValue(value);
2134
2139
  }
2135
- function setVisible(visible) {
2136
- setState((state) => ({ ...state, visible }));
2137
- }
2138
2140
  function navigationInput(event) {
2139
- if (state.visible) {
2141
+ if (state.listIsVisible) {
2140
2142
  const newPosition = components.navigationListFromInput({
2141
2143
  content: contentRef.current,
2142
2144
  event: event,
@@ -2161,10 +2163,8 @@ function useListControl({ suggestions, formControl }) {
2161
2163
  listRef,
2162
2164
  navigationElement,
2163
2165
  navigationInput,
2164
- setFocused,
2165
2166
  setFormValue,
2166
- setValue,
2167
- setVisible
2167
+ setState: refreshState
2168
2168
  };
2169
2169
  }
2170
2170
 
@@ -2174,12 +2174,12 @@ function useFieldAutocomplete({ disabled, formControl, onSelect, onValue, sugges
2174
2174
  const [pattern, setPattern] = require$$0.useState('');
2175
2175
  const [coincidences, setCoincidences] = require$$0.useState([]);
2176
2176
  const currentStore = require$$0.useRef({
2177
- pattern: '',
2178
2177
  coincidences: [],
2178
+ pattern: '',
2179
2179
  previous: null
2180
2180
  });
2181
2181
  const listControl = useListControl({ suggestions, formControl });
2182
- const { inputRef, navigationElement, navigationInput, setFocused, setFormValue, setValue, setVisible } = listControl;
2182
+ const { inputRef, navigationElement, navigationInput, setFormValue, setState } = listControl;
2183
2183
  require$$0.useEffect(() => {
2184
2184
  refreshCoincidences(pattern, true);
2185
2185
  }, [suggestions]);
@@ -2188,23 +2188,23 @@ function useFieldAutocomplete({ disabled, formControl, onSelect, onValue, sugges
2188
2188
  }, [pattern]);
2189
2189
  function onClickControl() {
2190
2190
  if (!disabled) {
2191
- setVisible(true);
2191
+ setState({ listIsVisible: true });
2192
2192
  setTimeout(() => {
2193
2193
  inputRef?.current?.focus();
2194
2194
  }, DURATION_ANIMATION$1);
2195
2195
  }
2196
2196
  }
2197
2197
  function onFocusInput() {
2198
- setFocused(true);
2198
+ setState({ focused: true });
2199
2199
  }
2200
2200
  function onBlurInput() {
2201
- setFocused(false);
2201
+ setState({ focused: false });
2202
2202
  }
2203
2203
  function onKeydownInput(event) {
2204
2204
  switch (event.code) {
2205
2205
  case 'Escape':
2206
2206
  case 'Tab':
2207
- setVisible(false);
2207
+ setState({ listIsVisible: false });
2208
2208
  break;
2209
2209
  default:
2210
2210
  navigationInput(event);
@@ -2212,13 +2212,12 @@ function useFieldAutocomplete({ disabled, formControl, onSelect, onValue, sugges
2212
2212
  }
2213
2213
  }
2214
2214
  function onClickAction() {
2215
- setVisible(false);
2216
- setValue('');
2215
+ setState({ listIsVisible: false, value: '' });
2217
2216
  setFormValue(undefined);
2218
2217
  onValue && onValue(undefined);
2219
2218
  }
2220
2219
  function onClickBackdrop() {
2221
- setVisible(false);
2220
+ setState({ listIsVisible: false });
2222
2221
  }
2223
2222
  function onClickElement(element) {
2224
2223
  return () => {
@@ -2231,13 +2230,13 @@ function useFieldAutocomplete({ disabled, formControl, onSelect, onValue, sugges
2231
2230
  };
2232
2231
  }
2233
2232
  function onChange({ description, value }) {
2234
- setVisible(false);
2235
2233
  if (onSelect) {
2234
+ setState({ listIsVisible: false });
2236
2235
  onSelect(value);
2237
2236
  }
2238
2237
  else {
2238
+ setState({ listIsVisible: false, value: description });
2239
2239
  setFormValue(value);
2240
- setValue(description);
2241
2240
  }
2242
2241
  onValue && onValue(value);
2243
2242
  }
@@ -2267,21 +2266,17 @@ function useFieldAutocomplete({ disabled, formControl, onSelect, onValue, sugges
2267
2266
  };
2268
2267
  }
2269
2268
 
2270
- function RlsFieldAutocompleteTemplate({ render, suggestions, children, disabled, formControl, hiddenIcon, onSearch, onSelect, onValue, placeholder, rlsTheme, searching }) {
2271
- const fieldAutocomplete = useFieldAutocomplete({
2272
- suggestions,
2273
- disabled,
2274
- formControl,
2275
- onSelect,
2276
- onValue
2277
- });
2269
+ function RlsFieldAutocompleteTemplate(props) {
2270
+ const fieldAutocomplete = useFieldAutocomplete(props);
2271
+ const { render, children, disabled, formControl, hiddenIcon, msgErrorDisabled, onSearch, placeholder, rlsTheme, searching } = props;
2278
2272
  return (jsxRuntimeExports.jsxs("div", { ref: fieldAutocomplete.listControl.contentRef, className: renderClassStatus('rls-field-box', {
2279
2273
  disabled,
2280
2274
  focused: fieldAutocomplete.listControl.focused,
2275
+ error: formControl?.wrong,
2281
2276
  selected: !!fieldAutocomplete.listControl.value
2282
- }, 'rls-field-list rls-field-autocomplete'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: fieldAutocomplete.listControl.value, onClick: fieldAutocomplete.onClickControl }), !hiddenIcon && fieldAutocomplete.listControl.value && (jsxRuntimeExports.jsx("button", { className: "rls-field-list__action", disabled: disabled, onClick: fieldAutocomplete.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "trash-2" }) }))] }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2283
- visible: fieldAutocomplete.listControl.visible,
2284
- hide: !fieldAutocomplete.listControl.visible,
2277
+ }, 'rls-field-list rls-field-autocomplete'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: fieldAutocomplete.listControl.value, onClick: fieldAutocomplete.onClickControl }), !hiddenIcon && fieldAutocomplete.listControl.value && (jsxRuntimeExports.jsx("button", { className: "rls-field-list__action", disabled: disabled, onClick: fieldAutocomplete.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "trash-2" }) }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2278
+ visible: fieldAutocomplete.listControl.listIsVisible,
2279
+ hide: !fieldAutocomplete.listControl.listIsVisible,
2285
2280
  higher: fieldAutocomplete.listControl.higher
2286
2281
  }), children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: fieldAutocomplete.listControl.listRef, className: "rls-field-list__ul", children: [jsxRuntimeExports.jsxs("div", { className: "rls-field-list__ul__search", children: [jsxRuntimeExports.jsx("input", { ref: fieldAutocomplete.listControl.inputRef, className: "rls-field-list__ul__control", type: "text", placeholder: reactI18n('listInputPlaceholder'), value: fieldAutocomplete.pattern, onChange: ({ target: { value } }) => {
2287
2282
  fieldAutocomplete.setPattern(value);
@@ -2366,7 +2361,7 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
2366
2361
  }
2367
2362
 
2368
2363
  const FORMAT_DATE = '{dd}/{mx}/{aa}';
2369
- function RlsFieldDate({ children, date, disabled, formControl, format, maxDate, minDate, onValue, placeholder, rlsTheme }) {
2364
+ function RlsFieldDate({ children, date, disabled, formControl, format, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme }) {
2370
2365
  const today = new Date(); // Initial current date in component
2371
2366
  const [value, setValue] = require$$0.useState();
2372
2367
  const [modalIsVisible, setModalIsVisible] = require$$0.useState(false);
@@ -2399,7 +2394,7 @@ function RlsFieldDate({ children, date, disabled, formControl, format, maxDate,
2399
2394
  const valueInput = value
2400
2395
  ? dates.dateFormatTemplate(value, format || FORMAT_DATE)
2401
2396
  : '';
2402
- return (jsxRuntimeExports.jsxs("div", { className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled }), children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date__control", type: "text", value: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: ({ value, type }) => {
2397
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled }), children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date__control", type: "text", value: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: ({ value, type }) => {
2403
2398
  type !== components.PickerListenerType.Cancel && onChange(value);
2404
2399
  formControl?.touch();
2405
2400
  setModalIsVisible(false);
@@ -2458,7 +2453,7 @@ function RlsPickerDateRange({ automatic, date: datePicker, disabled, formControl
2458
2453
  }), children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "ghost", onClick: onCancel, children: reactI18n('dateActionCancel') }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "raised", onClick: onSelect, children: reactI18n('dateActionSelect') }) })] }) })] }));
2459
2454
  }
2460
2455
 
2461
- function RlsFieldDateRange({ children, date: datePicker, disabled, formControl, maxDate, minDate, placeholder, rlsTheme }) {
2456
+ function RlsFieldDateRange({ children, date: datePicker, disabled, formControl, maxDate, minDate, msgErrorDisabled, placeholder, rlsTheme }) {
2462
2457
  const currentRange = formControl?.value || dates.DateRange.now();
2463
2458
  const currentDate = datePicker || new Date();
2464
2459
  const [value, setValue] = require$$0.useState(currentRange);
@@ -2475,7 +2470,7 @@ function RlsFieldDateRange({ children, date: datePicker, disabled, formControl,
2475
2470
  setModalIsVisible(true);
2476
2471
  }
2477
2472
  }
2478
- return (jsxRuntimeExports.jsxs("div", { className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled }), children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date-range__control", type: "text", value: value ? rangeFormatTemplate(value) : '', readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date-range__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: ({ value }) => {
2473
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled }), children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date-range__control", type: "text", value: value ? rangeFormatTemplate(value) : '', readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date-range__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: ({ value }) => {
2479
2474
  value && setValue(value);
2480
2475
  setModalIsVisible(false);
2481
2476
  } }) })] }));
@@ -2483,25 +2478,25 @@ function RlsFieldDateRange({ children, date: datePicker, disabled, formControl,
2483
2478
 
2484
2479
  function useFieldSelect({ suggestions, formControl, onSelect, onValue }) {
2485
2480
  const listControl = useListControl({ suggestions, formControl });
2486
- const { inputRef, visible, navigationElement, navigationInput, setFocused, setFormValue, setValue, setVisible } = listControl;
2481
+ const { inputRef, listIsVisible, navigationElement, navigationInput, setFormValue, setState } = listControl;
2487
2482
  function onFocusInput() {
2488
- setFocused(true);
2483
+ setState({ focused: true });
2489
2484
  }
2490
2485
  function onBlurInput() {
2491
- setFocused(false);
2486
+ setState({ focused: false });
2492
2487
  }
2493
2488
  function onClickInput() {
2494
- setVisible(true);
2489
+ setState({ listIsVisible: true });
2495
2490
  }
2496
2491
  function onKeydownInput(event) {
2497
2492
  switch (event.code) {
2498
2493
  case 'Space':
2499
2494
  case 'Enter':
2500
- setVisible(true);
2495
+ setState({ listIsVisible: true });
2501
2496
  break;
2502
2497
  case 'Escape':
2503
2498
  case 'Tab':
2504
- setVisible(false);
2499
+ setState({ listIsVisible: false });
2505
2500
  break;
2506
2501
  default:
2507
2502
  navigationInput(event);
@@ -2509,11 +2504,11 @@ function useFieldSelect({ suggestions, formControl, onSelect, onValue }) {
2509
2504
  }
2510
2505
  }
2511
2506
  function onClickAction() {
2512
- setVisible(!visible);
2513
- !visible && inputRef?.current?.focus();
2507
+ setState({ listIsVisible: !listIsVisible });
2508
+ !listIsVisible && inputRef?.current?.focus();
2514
2509
  }
2515
2510
  function onClickBackdrop() {
2516
- setVisible(false);
2511
+ setState({ listIsVisible: false });
2517
2512
  }
2518
2513
  function onClickElement(element) {
2519
2514
  return () => {
@@ -2527,13 +2522,13 @@ function useFieldSelect({ suggestions, formControl, onSelect, onValue }) {
2527
2522
  }
2528
2523
  function onChange({ description, value }) {
2529
2524
  inputRef?.current?.focus();
2530
- setVisible(false);
2531
2525
  if (onSelect) {
2526
+ setState({ listIsVisible: false });
2532
2527
  onSelect(value);
2533
2528
  }
2534
2529
  else {
2535
2530
  setFormValue(value);
2536
- setValue(description);
2531
+ setState({ listIsVisible: false, value: description });
2537
2532
  }
2538
2533
  onValue && onValue(value);
2539
2534
  }
@@ -2550,19 +2545,18 @@ function useFieldSelect({ suggestions, formControl, onSelect, onValue }) {
2550
2545
  };
2551
2546
  }
2552
2547
 
2553
- function RlsFieldSelectTemplate({ render, suggestions, children, disabled, formControl, onSelect, onValue, placeholder, rlsTheme }) {
2554
- const fieldSelect = useFieldSelect({
2555
- suggestions,
2556
- disabled,
2557
- formControl,
2558
- onSelect,
2559
- onValue
2560
- });
2561
- return (jsxRuntimeExports.jsxs("div", { ref: fieldSelect.listControl.contentRef, className: renderClassStatus('rls-field-box', { focused: fieldSelect.listControl.focused, disabled }, 'rls-field-list rls-field-select'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { ref: fieldSelect.listControl.inputRef, className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: fieldSelect.listControl.value, onFocus: fieldSelect.onFocusInput, onBlur: fieldSelect.onBlurInput, onClick: fieldSelect.onClickInput, onKeyDown: fieldSelect.onKeydownInput }), jsxRuntimeExports.jsx("button", { className: renderClassStatus('rls-field-list__action', {
2562
- visible: fieldSelect.listControl.visible
2563
- }), disabled: disabled, onClick: fieldSelect.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-down" }) })] }) }), jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2564
- visible: fieldSelect.listControl.visible,
2565
- hide: !fieldSelect.listControl.visible,
2548
+ function RlsFieldSelectTemplate(props) {
2549
+ const fieldSelect = useFieldSelect(props);
2550
+ const { render, suggestions, children, disabled, formControl, msgErrorDisabled, placeholder, rlsTheme } = props;
2551
+ return (jsxRuntimeExports.jsxs("div", { ref: fieldSelect.listControl.contentRef, className: renderClassStatus('rls-field-box', {
2552
+ focused: fieldSelect.listControl.focused,
2553
+ error: formControl?.wrong,
2554
+ disabled
2555
+ }, 'rls-field-list rls-field-select'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { ref: fieldSelect.listControl.inputRef, className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: fieldSelect.listControl.value, onFocus: fieldSelect.onFocusInput, onBlur: fieldSelect.onBlurInput, onClick: fieldSelect.onClickInput, onKeyDown: fieldSelect.onKeydownInput }), jsxRuntimeExports.jsx("button", { className: renderClassStatus('rls-field-list__action', {
2556
+ visible: fieldSelect.listControl.listIsVisible
2557
+ }), disabled: disabled, onClick: fieldSelect.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-down" }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2558
+ visible: fieldSelect.listControl.listIsVisible,
2559
+ hide: !fieldSelect.listControl.listIsVisible,
2566
2560
  higher: fieldSelect.listControl.higher
2567
2561
  }), children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: fieldSelect.listControl.listRef, className: "rls-field-list__ul", children: [suggestions.map((element, index) => (jsxRuntimeExports.jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: fieldSelect.onClickElement(element), onKeyDown: fieldSelect.onKeydownElement(element), children: render(element) }, index))), !suggestions.length && (jsxRuntimeExports.jsx("li", { className: "rls-field-list__empty", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-list__empty__description", children: [jsxRuntimeExports.jsx("label", { className: "rls-label-bold truncate", children: reactI18n('listEmptyTitle') }), jsxRuntimeExports.jsx("p", { className: "rls-caption-regular", children: reactI18n('listEmptyDescription') })] }) }))] }) }), jsxRuntimeExports.jsx("div", { className: "rls-field-list__backdrop", onClick: fieldSelect.onClickBackdrop })] })] }));
2568
2562
  }