@rolster/react-components 19.4.4 → 19.4.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 (26) hide show
  1. package/dist/cjs/index.cjs +53 -62
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/components/atoms/Image/Image.js +3 -6
  4. package/dist/esm/components/atoms/Image/Image.js.map +1 -1
  5. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js +9 -5
  6. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js.map +1 -1
  7. package/dist/esm/components/molecules/FieldListSuggestions/FieldListSuggestions.js +10 -1
  8. package/dist/esm/components/molecules/FieldListSuggestions/FieldListSuggestions.js.map +1 -1
  9. package/dist/esm/components/molecules/PickerDay/PickerDay.js +4 -8
  10. package/dist/esm/components/molecules/PickerDay/PickerDay.js.map +1 -1
  11. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js +4 -8
  12. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js.map +1 -1
  13. package/dist/esm/components/molecules/PickerMonth/PickerMonth.js +2 -6
  14. package/dist/esm/components/molecules/PickerMonth/PickerMonth.js.map +1 -1
  15. package/dist/esm/components/molecules/PickerYear/PickerYear.js +2 -6
  16. package/dist/esm/components/molecules/PickerYear/PickerYear.js.map +1 -1
  17. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.d.ts +2 -2
  18. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js.map +1 -1
  19. package/dist/esm/components/organisms/PickerDate/PickerDate.js +10 -9
  20. package/dist/esm/components/organisms/PickerDate/PickerDate.js.map +1 -1
  21. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js +13 -17
  22. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js.map +1 -1
  23. package/dist/esm/components/organisms/VirtualScroll/VirtualScroll.d.ts +8 -1
  24. package/dist/esm/components/organisms/VirtualScroll/VirtualScroll.js +14 -23
  25. package/dist/esm/components/organisms/VirtualScroll/VirtualScroll.js.map +1 -1
  26. package/package.json +2 -2
@@ -570,20 +570,17 @@ function RlsSkeleton({ rlsTheme }) {
570
570
 
571
571
  function RlsImage({ src, rlsTheme }) {
572
572
  const [srcIsComplet, setSrcIsComplet] = require$$0.useState(false);
573
- const refSrc = require$$0.useRef(src);
573
+ const refImage = require$$0.useRef(null);
574
574
  const className = require$$0.useMemo(() => {
575
575
  return renderClassStatus('rls-image', { complet: srcIsComplet });
576
576
  }, [srcIsComplet]);
577
577
  require$$0.useEffect(() => {
578
- if (refSrc.current !== src) {
579
- setSrcIsComplet(false);
580
- refSrc.current = src;
581
- }
578
+ setSrcIsComplet(!!(src && refImage.current?.complete));
582
579
  }, [src]);
583
580
  const onLoad = require$$0.useCallback(() => {
584
581
  setSrcIsComplet(true);
585
582
  }, []);
586
- return (jsxRuntimeExports.jsxs("div", { className: className, "rls-theme": rlsTheme, children: [!srcIsComplet && jsxRuntimeExports.jsx(RlsSkeleton, { rlsTheme: rlsTheme }), jsxRuntimeExports.jsx("img", { src: src, onLoad: onLoad })] }));
583
+ return (jsxRuntimeExports.jsxs("div", { className: className, "rls-theme": rlsTheme, children: [!srcIsComplet && jsxRuntimeExports.jsx(RlsSkeleton, { rlsTheme: rlsTheme }), jsxRuntimeExports.jsx("img", { ref: refImage, src: src, onLoad: onLoad })] }));
587
584
  }
588
585
 
589
586
  function RlsInput({ children, decimals, disabled, formControl, identifier, onBlur, onEnter, onFocus, onKeyDown, onKeyUp, onValue, placeholder, readOnly, type, value }) {
@@ -828,11 +825,15 @@ function RlsButtonToggle({ onAction, options, type, automatic, disabled, rlsThem
828
825
  setVisible(() => false);
829
826
  automatic && onAction(action.value);
830
827
  }, [onAction, automatic]);
831
- return (jsxRuntimeExports.jsxs("div", { className: "rls-button-toggle", ref: componentRef, "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-button-toggle__content", children: [action && (jsxRuntimeExports.jsx("div", { className: "rls-button-toggle__action", children: jsxRuntimeExports.jsx(RlsButton, { disabled: disabled, type: type, onClick: () => {
832
- onAction(action.value);
833
- }, children: action.label }) })), jsxRuntimeExports.jsx("div", { className: "rls-button-toggle__icon", children: jsxRuntimeExports.jsx(RlsButton, { type: type, prefixIcon: "arrow-ios-down", disabled: disabled, onClick: onClickMenu }) })] }), jsxRuntimeExports.jsx("div", { className: classNameList, children: jsxRuntimeExports.jsx("ul", { children: options.map((action, index) => (jsxRuntimeExports.jsx("li", { className: "truncate", onClick: () => {
834
- onSelectAction(action);
835
- }, children: action.label }, index))) }) })] }));
828
+ const onClickAction = require$$0.useCallback(() => {
829
+ action && onAction(action.value);
830
+ }, [action, onAction]);
831
+ const onClickOption = require$$0.useCallback((event) => {
832
+ const index = Number(event.currentTarget.dataset.index);
833
+ const option = options[index];
834
+ option && onSelectAction(option);
835
+ }, [options, onSelectAction]);
836
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-button-toggle", ref: componentRef, "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-button-toggle__content", children: [action && (jsxRuntimeExports.jsx("div", { className: "rls-button-toggle__action", children: jsxRuntimeExports.jsx(RlsButton, { disabled: disabled, type: type, onClick: onClickAction, children: action.label }) })), jsxRuntimeExports.jsx("div", { className: "rls-button-toggle__icon", children: jsxRuntimeExports.jsx(RlsButton, { type: type, prefixIcon: "arrow-ios-down", disabled: disabled, onClick: onClickMenu }) })] }), jsxRuntimeExports.jsx("div", { className: classNameList, children: jsxRuntimeExports.jsx("ul", { children: options.map((action, index) => (jsxRuntimeExports.jsx("li", { className: "rls-truncate", "data-index": index, onClick: onClickOption, children: action.label }, index))) }) })] }));
836
837
  }
837
838
 
838
839
  function RlsContent({ children, identifier, rlsTheme }) {
@@ -1043,6 +1044,15 @@ const reactI18n = i18n.i18n({
1043
1044
  }
1044
1045
  });
1045
1046
 
1047
+ function RlsFieldListLi({ element, onClickElement, onKeydownElement, render }) {
1048
+ const onClick = require$$0.useMemo(() => {
1049
+ return onClickElement(element);
1050
+ }, [element, onClickElement]);
1051
+ const onKeyDown = require$$0.useMemo(() => {
1052
+ return onKeydownElement(element);
1053
+ }, [element, onKeydownElement]);
1054
+ return (jsxRuntimeExports.jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: onClick, onKeyDown: onKeyDown, children: render(element) }));
1055
+ }
1046
1056
  function RlsFieldListSuggestions({ elements, disabled, higher, render, renderEmpty, searchControl, visible, onClickBackdrop, onClickElement, onKeydownElement, refList, rlsTheme }) {
1047
1057
  const [labels, setLabels] = require$$0.useState({
1048
1058
  listEmptyDescription: reactI18n('listEmptyDescription'),
@@ -1067,7 +1077,7 @@ function RlsFieldListSuggestions({ elements, disabled, higher, render, renderEmp
1067
1077
  searchControl?.onChange(event.target.value);
1068
1078
  }, [searchControl?.onChange]);
1069
1079
  const searching = searchControl?.searching ?? false;
1070
- return (jsxRuntimeExports.jsxs("div", { className: className, "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: refList, className: "rls-field-list__ul", children: [searchControl && (jsxRuntimeExports.jsxs("div", { className: "rls-field-list__ul__search", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-list__ul__control", ref: searchControl.refInput, type: "text", placeholder: searchControl.placeholder, value: searchControl.pattern, onChange: onChangePattern, onFocus: searchControl.onFocus, onBlur: searchControl.onBlur, onKeyDown: searchControl.onKeyDown, disabled: disabled || searching }), searchControl.onSearch && (jsxRuntimeExports.jsx("button", { disabled: disabled || searching, onClick: searchControl.onSearch, children: jsxRuntimeExports.jsx(RlsIcon, { value: "search" }) }))] })), searching && jsxRuntimeExports.jsx(RlsProgressBar, { indeterminate: true }), elements.map((element, index) => (jsxRuntimeExports.jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: onClickElement(element), onKeyDown: onKeydownElement(element), children: render(element) }, index))), !elements.length && (jsxRuntimeExports.jsx("li", { className: "rls-field-list__empty", children: renderEmpty ? (renderEmpty()) : (jsxRuntimeExports.jsxs("div", { className: "rls-field-list__empty__description", children: [jsxRuntimeExports.jsx("label", { className: "rls-label-bold rls-truncate", children: labels.listEmptyTitle }), jsxRuntimeExports.jsx("p", { className: "rls-caption-regular", children: labels.listEmptyDescription })] })) }))] }) }), jsxRuntimeExports.jsx("div", { className: "rls-field-list__backdrop", onClick: onClickBackdrop })] }));
1080
+ return (jsxRuntimeExports.jsxs("div", { className: className, "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: refList, className: "rls-field-list__ul", children: [searchControl && (jsxRuntimeExports.jsxs("div", { className: "rls-field-list__ul__search", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-list__ul__control", ref: searchControl.refInput, type: "text", placeholder: searchControl.placeholder, value: searchControl.pattern, onChange: onChangePattern, onFocus: searchControl.onFocus, onBlur: searchControl.onBlur, onKeyDown: searchControl.onKeyDown, disabled: disabled || searching }), searchControl.onSearch && (jsxRuntimeExports.jsx("button", { disabled: disabled || searching, onClick: searchControl.onSearch, children: jsxRuntimeExports.jsx(RlsIcon, { value: "search" }) }))] })), searching && jsxRuntimeExports.jsx(RlsProgressBar, { indeterminate: true }), elements.map((element, index) => (jsxRuntimeExports.jsx(RlsFieldListLi, { element: element, onClickElement: onClickElement, onKeydownElement: onKeydownElement, render: render }, index))), !elements.length && (jsxRuntimeExports.jsx("li", { className: "rls-field-list__empty", children: renderEmpty ? (renderEmpty()) : (jsxRuntimeExports.jsxs("div", { className: "rls-field-list__empty__description", children: [jsxRuntimeExports.jsx("label", { className: "rls-label-bold rls-truncate", children: labels.listEmptyTitle }), jsxRuntimeExports.jsx("p", { className: "rls-caption-regular", children: labels.listEmptyDescription })] })) }))] }) }), jsxRuntimeExports.jsx("div", { className: "rls-field-list__backdrop", onClick: onClickBackdrop })] }));
1071
1081
  }
1072
1082
 
1073
1083
  function RlsFieldMoney(props) {
@@ -1295,8 +1305,7 @@ function RlsPickerDay({ date, disabled, formControl, maxDate, month, minDate, on
1295
1305
  const dateDay = require$$0.useMemo(() => date ?? new Date(), [date]);
1296
1306
  const [weeks, setWeeks] = require$$0.useState([]);
1297
1307
  const [value, setValue] = require$$0.useState(formControl?.value ?? dateDay.getDate());
1298
- const [headers, setHeaders] = require$$0.useState(jsxRuntimeExports.jsx(RlsPickerDayHeaders, {}));
1299
- const [component, setComponent] = require$$0.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {}));
1308
+ const [_, setI18nVersion] = require$$0.useState(0);
1300
1309
  const setDayValue = require$$0.useCallback((value) => {
1301
1310
  formControl ? formControl.setValue(value) : setValue(value);
1302
1311
  }, [formControl]);
@@ -1306,12 +1315,9 @@ function RlsPickerDay({ date, disabled, formControl, maxDate, month, minDate, on
1306
1315
  }, [setDayValue, onValue]);
1307
1316
  require$$0.useEffect(() => {
1308
1317
  return i18n.i18nSubscribe(() => {
1309
- setHeaders(jsxRuntimeExports.jsx(RlsPickerDayHeaders, {}));
1318
+ setI18nVersion((value) => value + 1);
1310
1319
  });
1311
1320
  }, []);
1312
- require$$0.useEffect(() => {
1313
- setComponent(jsxRuntimeExports.jsx("div", { className: "rls-picker-day__component", children: weeks.map(({ days }, index) => (jsxRuntimeExports.jsx("div", { className: "rls-picker-day__week", children: days.map((day, index) => (jsxRuntimeExports.jsx(RlsPickerDayElement, { day: day, onSelect: onSelect, disabled: disabled }, index))) }, index))) }));
1314
- }, [weeks, onSelect, disabled]);
1315
1321
  require$$0.useEffect(() => {
1316
1322
  const options = createPickerOptions();
1317
1323
  const day = components.verifyDayPicker(options);
@@ -1333,7 +1339,7 @@ function RlsPickerDay({ date, disabled, formControl, maxDate, month, minDate, on
1333
1339
  maxDate
1334
1340
  };
1335
1341
  }, [dateDay, formControl?.value, value, month, year, minDate, maxDate]);
1336
- return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-day", "rls-theme": rlsTheme, children: [headers, component] }));
1342
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-day", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsx(RlsPickerDayHeaders, {}), jsxRuntimeExports.jsx("div", { className: "rls-picker-day__component", children: weeks.map(({ days }, index) => (jsxRuntimeExports.jsx("div", { className: "rls-picker-day__week", children: days.map((day, index) => (jsxRuntimeExports.jsx(RlsPickerDayElement, { day: day, onSelect: onSelect, disabled: disabled }, index))) }, index))) })] }));
1337
1343
  }
1338
1344
 
1339
1345
  function RlsPickerDayRangeHeaders() {
@@ -1364,8 +1370,7 @@ function RlsPickerDayRange({ date, disabled, formControl, maxDate, minDate, rlsT
1364
1370
  const sourceDate = require$$0.useRef(rangeDay.minDate);
1365
1371
  const [weeks, setWeeks] = require$$0.useState([]);
1366
1372
  const [range, setRange] = require$$0.useState(rangeDay);
1367
- const [headers, setHeaders] = require$$0.useState(jsxRuntimeExports.jsx(RlsPickerDayRangeHeaders, {}));
1368
- const [component, setComponent] = require$$0.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {}));
1373
+ const [_, setI18nVersion] = require$$0.useState(0);
1369
1374
  const onSelect = require$$0.useCallback((value) => {
1370
1375
  const date = dates.assignDayInDate(dateDayRange, value);
1371
1376
  const range = dates.dateIsBefore(date, sourceDate.current)
@@ -1377,12 +1382,9 @@ function RlsPickerDayRange({ date, disabled, formControl, maxDate, minDate, rlsT
1377
1382
  }, [dateDayRange, formControl]);
1378
1383
  require$$0.useEffect(() => {
1379
1384
  return i18n.i18nSubscribe(() => {
1380
- setHeaders(jsxRuntimeExports.jsx(RlsPickerDayRangeHeaders, {}));
1385
+ setI18nVersion((value) => value + 1);
1381
1386
  });
1382
1387
  }, []);
1383
- require$$0.useEffect(() => {
1384
- setComponent(jsxRuntimeExports.jsx("div", { className: "rls-picker-day-range__component", children: weeks.map(({ days }, index) => (jsxRuntimeExports.jsx("div", { className: "rls-picker-day-range__week", children: days.map((day, index) => (jsxRuntimeExports.jsx(RlsPickerDayRangeElement, { day: day, onSelect: onSelect, disabled: disabled }, index))) }, index))) }));
1385
- }, [weeks, onSelect, disabled]);
1386
1388
  require$$0.useEffect(() => {
1387
1389
  setWeeks(components.createDayRangePicker({
1388
1390
  date: dateDayRange,
@@ -1392,7 +1394,7 @@ function RlsPickerDayRange({ date, disabled, formControl, maxDate, minDate, rlsT
1392
1394
  maxDate
1393
1395
  }));
1394
1396
  }, [dateDayRange, range, minDate, maxDate]);
1395
- return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-day-range", "rls-theme": rlsTheme, children: [headers, component] }));
1397
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-day-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsx(RlsPickerDayRangeHeaders, {}), jsxRuntimeExports.jsx("div", { className: "rls-picker-day-range__component", children: weeks.map(({ days }, index) => (jsxRuntimeExports.jsx("div", { className: "rls-picker-day-range__week", children: days.map((day, index) => (jsxRuntimeExports.jsx(RlsPickerDayRangeElement, { day: day, onSelect: onSelect, disabled: disabled }, index))) }, index))) })] }));
1396
1398
  }
1397
1399
 
1398
1400
  function RlsPickerMonthElement({ month, onSelect, disabled }) {
@@ -1421,7 +1423,6 @@ function RlsPickerMonth({ date, disabled, formControl, maxDate, minDate, onValue
1421
1423
  const dateMonth = require$$0.useMemo(() => date ?? new Date(), [date]);
1422
1424
  const [months, setMonths] = require$$0.useState([]);
1423
1425
  const [value, setValue] = require$$0.useState(formControl?.value ?? dateMonth.getMonth());
1424
- const [component, setComponent] = require$$0.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {}));
1425
1426
  const setMonthValue = require$$0.useCallback((value) => {
1426
1427
  formControl ? formControl.setValue(value) : setValue(value);
1427
1428
  }, [formControl]);
@@ -1429,9 +1430,6 @@ function RlsPickerMonth({ date, disabled, formControl, maxDate, minDate, onValue
1429
1430
  setMonthValue(value);
1430
1431
  onValue?.(value);
1431
1432
  }, [setMonthValue, onValue]);
1432
- require$$0.useEffect(() => {
1433
- setComponent(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: months.map((month, index) => (jsxRuntimeExports.jsx(RlsPickerMonthElement, { month: month, onSelect: onSelect, disabled: disabled }, index))) }));
1434
- }, [months, onSelect, disabled]);
1435
1433
  require$$0.useEffect(() => {
1436
1434
  const options = {
1437
1435
  date: dateMonth,
@@ -1457,7 +1455,7 @@ function RlsPickerMonth({ date, disabled, formControl, maxDate, minDate, onValue
1457
1455
  ? formControl?.setValue(month)
1458
1456
  : setValue(formControl?.value ?? dateMonth.getMonth());
1459
1457
  }, [formControl?.value]);
1460
- return (jsxRuntimeExports.jsx("div", { className: "rls-picker-month", "rls-theme": rlsTheme, children: component }));
1458
+ return (jsxRuntimeExports.jsx("div", { className: "rls-picker-month", "rls-theme": rlsTheme, children: months.map((month, index) => (jsxRuntimeExports.jsx(RlsPickerMonthElement, { month: month, onSelect: onSelect, disabled: disabled }, index))) }));
1461
1459
  }
1462
1460
 
1463
1461
  function RlsPickerSelectorTitle({ monthControl, type, yearControl, date, disabled, maxDate, minDate, onClick }) {
@@ -1542,7 +1540,6 @@ function RlsPickerYear({ date, disabled, formControl, maxDate, minDate, onValue,
1542
1540
  const dateYear = require$$0.useMemo(() => date ?? new Date(), [date]);
1543
1541
  const [value, setValue] = require$$0.useState(formControl?.value ?? dateYear.getFullYear());
1544
1542
  const [year, setYear] = require$$0.useState(formControl?.value ?? dateYear.getFullYear());
1545
- const [component, setComponent] = require$$0.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {}));
1546
1543
  const createPickerOptions = require$$0.useCallback(() => {
1547
1544
  return {
1548
1545
  date: dateYear,
@@ -1565,9 +1562,6 @@ function RlsPickerYear({ date, disabled, formControl, maxDate, minDate, onValue,
1565
1562
  const year = components.verifyYearPicker(options);
1566
1563
  year ? setYearValue(year) : setTemplate(components.createYearPicker(options));
1567
1564
  }, [dateYear, year, value, minDate, maxDate]);
1568
- require$$0.useEffect(() => {
1569
- setComponent(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: template.years.map((year, index) => (jsxRuntimeExports.jsx(RlsPickerYearElement, { year: year, onSelect: onSelect, disabled: disabled }, index))) }));
1570
- }, [template.years, onSelect, disabled]);
1571
1565
  require$$0.useEffect(() => {
1572
1566
  const year = components.verifyYearPicker(createPickerOptions());
1573
1567
  commons.valueIsDefined(year)
@@ -1580,7 +1574,7 @@ function RlsPickerYear({ date, disabled, formControl, maxDate, minDate, onValue,
1580
1574
  const onClickNext = require$$0.useCallback(() => {
1581
1575
  setYear((year) => year + 8);
1582
1576
  }, []);
1583
- return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-year", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-year__header", children: [jsxRuntimeExports.jsx("button", { className: "rls-picker-year__action rls-picker-year__action--prev", onClick: onClickPrev, disabled: !template.canPrevious || disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-left" }) }), jsxRuntimeExports.jsxs("span", { children: [template.minRange, " - ", template.maxRange] }), jsxRuntimeExports.jsx("button", { className: "rls-picker-year__action rls-picker-year__action--next", onClick: onClickNext, disabled: !template.canNext || disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-right" }) })] }), jsxRuntimeExports.jsx("div", { className: "rls-picker-year__component", children: component })] }));
1577
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-year", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-year__header", children: [jsxRuntimeExports.jsx("button", { className: "rls-picker-year__action rls-picker-year__action--prev", onClick: onClickPrev, disabled: !template.canPrevious || disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-left" }) }), jsxRuntimeExports.jsxs("span", { children: [template.minRange, " - ", template.maxRange] }), jsxRuntimeExports.jsx("button", { className: "rls-picker-year__action rls-picker-year__action--next", onClick: onClickNext, disabled: !template.canNext || disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-right" }) })] }), jsxRuntimeExports.jsx("div", { className: "rls-picker-year__component", children: template.years.map((year, index) => (jsxRuntimeExports.jsx(RlsPickerYearElement, { year: year, onSelect: onSelect, disabled: disabled }, index))) })] }));
1584
1578
  }
1585
1579
 
1586
1580
  function calculateInitialValue(value, minValue, maxValue) {
@@ -2442,13 +2436,15 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
2442
2436
  const yearControl = reactForms.useReactControl(_date.getFullYear());
2443
2437
  const dayControl = reactForms.useReactControl(_date.getDate());
2444
2438
  const monthControl = reactForms.useReactControl(_date.getMonth());
2445
- const [value, setValue] = require$$0.useState(_date);
2446
2439
  const [visibility, setVisibility] = require$$0.useState('DAY');
2447
2440
  const [labels, setLabels] = require$$0.useState({
2448
2441
  dateActionCancel: reactI18n('dateActionCancel'),
2449
2442
  dateActionSelect: reactI18n('dateActionSelect'),
2450
2443
  dateActionToday: reactI18n('dateActionToday')
2451
2444
  });
2445
+ const value = require$$0.useMemo(() => {
2446
+ return new Date(yearControl.value, monthControl.value, dayControl.value);
2447
+ }, [yearControl.value, monthControl.value, dayControl.value]);
2452
2448
  const classNameComponent = require$$0.useMemo(() => {
2453
2449
  return renderClassStatus('rls-picker-date__component', {
2454
2450
  day: visibility === 'DAY',
@@ -2457,8 +2453,8 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
2457
2453
  });
2458
2454
  }, [visibility]);
2459
2455
  const title = require$$0.useMemo(() => {
2460
- return dates.dateFormatTemplate(_date, DATE_FORMAT_TITLE);
2461
- }, [_date]);
2456
+ return dates.dateFormatTemplate(value, DATE_FORMAT_TITLE);
2457
+ }, [value]);
2462
2458
  const itIsDisabledToday = require$$0.useMemo(() => components.dateOutRange({
2463
2459
  date: today.current,
2464
2460
  maxDate,
@@ -2466,7 +2462,9 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
2466
2462
  }), [maxDate, minDate]);
2467
2463
  require$$0.useEffect(() => {
2468
2464
  const date = components.verifyDateRange({ date: _date, minDate, maxDate });
2469
- setValue(date);
2465
+ yearControl.setValue(date.getFullYear());
2466
+ monthControl.setValue(date.getMonth());
2467
+ dayControl.setValue(date.getDate());
2470
2468
  formControl?.setValue(date);
2471
2469
  return i18n.i18nSubscribe(() => {
2472
2470
  setLabels({
@@ -2476,9 +2474,6 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
2476
2474
  });
2477
2475
  });
2478
2476
  }, []);
2479
- require$$0.useEffect(() => {
2480
- setValue(new Date(yearControl.value, monthControl.value, dayControl.value));
2481
- }, [yearControl.value, monthControl.value, dayControl.value]);
2482
2477
  const onVisibilityDay = require$$0.useCallback(() => {
2483
2478
  setVisibility('DAY');
2484
2479
  }, []);
@@ -2502,10 +2497,10 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
2502
2497
  formControl?.setValue(value);
2503
2498
  onListener?.({
2504
2499
  event: components.PickerListenerEvent.Select,
2505
- value
2500
+ value: value
2506
2501
  });
2507
2502
  }, [formControl, value, onListener]);
2508
- return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__header", children: [jsxRuntimeExports.jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: 'month', onClick: onVisibilityTitle }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__title", children: jsxRuntimeExports.jsx("span", { onClick: onVisibilityDay, children: title }) })] }), jsxRuntimeExports.jsxs("div", { className: classNameComponent, children: [jsxRuntimeExports.jsx(RlsPickerDay, { formControl: dayControl, date: _date, month: monthControl.value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled }), jsxRuntimeExports.jsx(RlsPickerMonth, { formControl: monthControl, date: _date, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), jsxRuntimeExports.jsx(RlsPickerYear, { formControl: yearControl, date: _date, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), !automatic && (jsxRuntimeExports.jsx("div", { className: "rls-picker-date__footer", children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.dateActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--today", children: jsxRuntimeExports.jsx(RlsButtonAction, { icon: "calendar", onClick: onToday, disabled: itIsDisabledToday }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.dateActionSelect }) })] }) }))] }));
2503
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__header", children: [jsxRuntimeExports.jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: 'month', onClick: onVisibilityTitle }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__title", children: jsxRuntimeExports.jsx("span", { onClick: onVisibilityDay, children: title }) })] }), jsxRuntimeExports.jsxs("div", { className: classNameComponent, children: [jsxRuntimeExports.jsx(RlsPickerDay, { formControl: dayControl, date: value, month: monthControl.value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled }), jsxRuntimeExports.jsx(RlsPickerMonth, { formControl: monthControl, date: value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), jsxRuntimeExports.jsx(RlsPickerYear, { formControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), !automatic && (jsxRuntimeExports.jsx("div", { className: "rls-picker-date__footer", children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.dateActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--today", children: jsxRuntimeExports.jsx(RlsButtonAction, { icon: "calendar", onClick: onToday, disabled: itIsDisabledToday }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.dateActionSelect }) })] }) }))] }));
2509
2504
  }
2510
2505
 
2511
2506
  function RlsFieldDate({ children, date, disabled: disabledProps, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: valueInitial }) {
@@ -2578,13 +2573,24 @@ function RlsPickerDateRange({ automatic, date: datePicker, disabled, formControl
2578
2573
  const yearControl = reactForms.useReactControl(_date.getFullYear());
2579
2574
  const monthControl = reactForms.useReactControl(_date.getMonth());
2580
2575
  const rangeControl = reactForms.useReactControl(_range);
2581
- const [value, setValue] = require$$0.useState(_range);
2582
- const [date, setDate] = require$$0.useState(_date);
2583
2576
  const [visibility, setVisibility] = require$$0.useState('DAY');
2584
2577
  const [labels, setLabels] = require$$0.useState({
2585
2578
  dateActionCancel: reactI18n('dateActionCancel'),
2586
2579
  dateActionSelect: reactI18n('dateActionSelect')
2587
2580
  });
2581
+ const value = require$$0.useMemo(() => {
2582
+ return rangeControl.value ?? _range;
2583
+ }, [rangeControl.value, _range]);
2584
+ const date = require$$0.useMemo(() => {
2585
+ let value = _date;
2586
+ if (commons.valueIsDefined(yearControl.value)) {
2587
+ value = dates.assignYearInDate(value, yearControl.value);
2588
+ }
2589
+ if (commons.valueIsDefined(monthControl.value)) {
2590
+ value = dates.assignMonthInDate(value, monthControl.value);
2591
+ }
2592
+ return value;
2593
+ }, [_date, yearControl.value, monthControl.value]);
2588
2594
  const classNameComponent = require$$0.useMemo(() => {
2589
2595
  return renderClassStatus('rls-picker-date-range__component', {
2590
2596
  day: visibility === 'DAY',
@@ -2605,21 +2611,6 @@ function RlsPickerDateRange({ automatic, date: datePicker, disabled, formControl
2605
2611
  });
2606
2612
  }, []);
2607
2613
  require$$0.useEffect(() => {
2608
- setDate((date) => {
2609
- return commons.valueIsDefined(yearControl.value)
2610
- ? dates.assignYearInDate(date, yearControl.value)
2611
- : date;
2612
- });
2613
- }, [yearControl.value]);
2614
- require$$0.useEffect(() => {
2615
- setDate((date) => {
2616
- return commons.valueIsDefined(monthControl.value)
2617
- ? dates.assignMonthInDate(date, monthControl.value)
2618
- : date;
2619
- });
2620
- }, [monthControl.value]);
2621
- require$$0.useEffect(() => {
2622
- rangeControl.value && setValue(rangeControl.value);
2623
2614
  setVisibility('DAY');
2624
2615
  }, [rangeControl.value]);
2625
2616
  const onVisibilityDay = require$$0.useCallback(() => {