@rolster/react-components 18.21.0 → 18.21.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/cjs/assets/{index-eohCf4O9.css → index-B4R0Qgg4.css} +11 -11
  2. package/dist/cjs/index.js +616 -433
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/es/assets/{index-eohCf4O9.css → index-B4R0Qgg4.css} +11 -11
  5. package/dist/es/index.js +617 -433
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/esm/components/definitions.d.ts +1 -1
  8. package/dist/esm/components/molecules/Pagination/Pagination.d.ts +1 -1
  9. package/dist/esm/components/molecules/Pagination/Pagination.js +18 -18
  10. package/dist/esm/components/molecules/Pagination/Pagination.js.map +1 -1
  11. package/dist/esm/components/molecules/PickerDay/PickerDay.d.ts +1 -1
  12. package/dist/esm/components/molecules/PickerDay/PickerDay.js +53 -24
  13. package/dist/esm/components/molecules/PickerDay/PickerDay.js.map +1 -1
  14. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.d.ts +1 -1
  15. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js +55 -29
  16. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js.map +1 -1
  17. package/dist/esm/components/molecules/PickerMonth/PickerMonth.d.ts +1 -1
  18. package/dist/esm/components/molecules/PickerMonth/PickerMonth.js +57 -34
  19. package/dist/esm/components/molecules/PickerMonth/PickerMonth.js.map +1 -1
  20. package/dist/esm/components/molecules/{PickerMonthTitle/PickerMonthTitle.css → PickerSelectorTitle/PickerSelectorTitle.css} +3 -3
  21. package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.d.ts +15 -0
  22. package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.js +65 -0
  23. package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.js.map +1 -0
  24. package/dist/esm/components/molecules/PickerYear/PickerYear.css +7 -7
  25. package/dist/esm/components/molecules/PickerYear/PickerYear.d.ts +1 -1
  26. package/dist/esm/components/molecules/PickerYear/PickerYear.js +45 -38
  27. package/dist/esm/components/molecules/PickerYear/PickerYear.js.map +1 -1
  28. package/dist/esm/components/molecules/index.d.ts +1 -1
  29. package/dist/esm/components/molecules/index.js +1 -1
  30. package/dist/esm/components/molecules/index.js.map +1 -1
  31. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +27 -14
  32. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
  33. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js +50 -41
  34. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js.map +1 -1
  35. package/dist/esm/components/organisms/FieldDate/FieldDate.js +34 -28
  36. package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
  37. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +32 -23
  38. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
  39. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +35 -13
  40. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
  41. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js +41 -29
  42. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js.map +1 -1
  43. package/dist/esm/components/organisms/PickerDate/PickerDate.css +1 -1
  44. package/dist/esm/components/organisms/PickerDate/PickerDate.js +71 -54
  45. package/dist/esm/components/organisms/PickerDate/PickerDate.js.map +1 -1
  46. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.d.ts +1 -1
  47. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js +56 -43
  48. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js.map +1 -1
  49. package/dist/esm/components/organisms/Snackbar/Snackbar.js +25 -18
  50. package/dist/esm/components/organisms/Snackbar/Snackbar.js.map +1 -1
  51. package/dist/esm/controllers/ListController.js +7 -5
  52. package/dist/esm/controllers/ListController.js.map +1 -1
  53. package/dist/esm/controllers/index.d.ts +0 -1
  54. package/dist/esm/controllers/index.js +0 -1
  55. package/dist/esm/controllers/index.js.map +1 -1
  56. package/dist/esm/helpers/css.js +7 -10
  57. package/dist/esm/helpers/css.js.map +1 -1
  58. package/package.json +3 -3
  59. package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.d.ts +0 -15
  60. package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.js +0 -53
  61. package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.js.map +0 -1
  62. package/dist/esm/controllers/RenderClassStatusController.d.ts +0 -2
  63. package/dist/esm/controllers/RenderClassStatusController.js +0 -10
  64. package/dist/esm/controllers/RenderClassStatusController.js.map +0 -1
@@ -1,35 +1,47 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { PickerListenerEvent, verifyDateRange } from '@rolster/components';
3
3
  import { dateFormatTemplate } from '@rolster/dates';
4
- import { useEffect, useMemo, useState } from 'react';
4
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
+ import { renderClassStatus } from '../../../helpers';
5
6
  import { RlsIcon } from '../../atoms/Icon/Icon';
6
7
  import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFormError';
7
8
  import { RlsModal } from '../Modal/Modal';
8
9
  import { RlsPickerDate } from '../PickerDate/PickerDate';
9
10
  import './FieldDate.css';
10
- import { renderClassStatus } from '../../../helpers';
11
- const FORMAT_DATE = '{dd}/{mx}/{aa}';
11
+ const formatDate = '{dd}/{mx}/{aa}';
12
12
  export function RlsFieldDate({ children, date, disabled, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, value: _value }) {
13
- const today = new Date(); // Initial current date in component
14
- const [value, setValue] = useState(formControl?.value || _value);
13
+ const today = useRef(new Date()); // Initial current date in component
14
+ const [value, setValue] = useState(formControl?.value ?? _value);
15
15
  const [modalIsVisible, setModalIsVisible] = useState(false);
16
+ const _disabled = useMemo(() => {
17
+ return formControl?.disabled || disabled;
18
+ }, [formControl?.disabled, disabled]);
19
+ const className = useMemo(() => {
20
+ return renderClassStatus('rls-field-box', { disabled: _disabled });
21
+ }, [_disabled]);
22
+ const { icon, valueInput } = useMemo(() => {
23
+ return {
24
+ icon: value ? 'trash-2' : 'calendar',
25
+ valueInput: value ? dateFormatTemplate(value, format || formatDate) : ''
26
+ };
27
+ }, [value]);
16
28
  useEffect(() => {
17
- const dateRange = verifyDateRange({
18
- date: formControl?.value || date || today,
29
+ const _date = verifyDateRange({
30
+ date: formControl?.value ?? date ?? today.current,
19
31
  minDate,
20
32
  maxDate
21
33
  });
22
- setValue(dateRange);
23
- formControl?.setValue(dateRange);
34
+ setValue(_date);
35
+ formControl?.setValue(_date);
24
36
  }, []);
25
- function onChange(value) {
37
+ const onClickInput = useCallback(() => {
38
+ setModalIsVisible(true);
39
+ }, []);
40
+ const onChange = useCallback((value) => {
26
41
  setValue(value);
27
42
  onValue && onValue(value);
28
- }
29
- function onClickInput() {
30
- setModalIsVisible(true);
31
- }
32
- function onClickAction() {
43
+ }, [onValue]);
44
+ const onClickAction = useCallback(() => {
33
45
  if (value) {
34
46
  formControl?.setValue(_value);
35
47
  formControl?.touch();
@@ -38,18 +50,12 @@ export function RlsFieldDate({ children, date, disabled, formControl, format, id
38
50
  else {
39
51
  setModalIsVisible(true);
40
52
  }
41
- }
42
- const valueInput = value
43
- ? dateFormatTemplate(value, format || FORMAT_DATE)
44
- : '';
45
- const _disabled = formControl?.disabled || disabled;
46
- const className = useMemo(() => {
47
- return renderClassStatus('rls-field-box', { disabled: _disabled });
48
- }, [formControl?.disabled, disabled]);
49
- return (_jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [_jsxs("div", { className: className, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { className: "rls-field-date__control", type: "text", value: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), _jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: disabled, children: _jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), _jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: _jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: _disabled, maxDate: maxDate, minDate: minDate, onListener: ({ event, value }) => {
50
- event !== PickerListenerEvent.Cancel && onChange(value);
51
- formControl?.touch();
52
- setModalIsVisible(false);
53
- } }) })] }));
53
+ }, [value, formControl, _value, onChange]);
54
+ const onListener = useCallback(({ event, value }) => {
55
+ event !== PickerListenerEvent.Cancel && onChange(value);
56
+ formControl?.touch();
57
+ setModalIsVisible(false);
58
+ }, [formControl, onChange]);
59
+ return (_jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [_jsxs("div", { className: className, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { className: "rls-field-date__control", type: "text", value: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), _jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: _disabled, children: _jsx(RlsIcon, { value: icon }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), _jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: _jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: _disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) })] }));
54
60
  }
55
61
  //# sourceMappingURL=FieldDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDate.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldDate.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.tsx"],"names":[],"mappings":"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"}
@@ -1,41 +1,50 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { PickerListenerEvent } from '@rolster/components';
3
- import { useMemo, useState } from 'react';
3
+ import { useCallback, useMemo, useState } from 'react';
4
4
  import { rangeFormatTemplate, renderClassStatus } from '../../../helpers';
5
5
  import { RlsIcon } from '../../atoms/Icon/Icon';
6
6
  import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFormError';
7
7
  import { RlsModal } from '../Modal/Modal';
8
8
  import { RlsPickerDateRange } from '../PickerDateRange/PickerDateRange';
9
9
  import './FieldDateRange.css';
10
- export function RlsFieldDateRange({ children, date: datePicker, disabled, formControl, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, value: defaultValue }) {
11
- const currentDate = datePicker || new Date();
12
- const [value, setValue] = useState(formControl?.value || defaultValue);
10
+ export function RlsFieldDateRange({ children, date: _date, disabled, formControl, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, value: _value }) {
11
+ const currentDate = useMemo(() => _date ?? new Date(), [_date]);
12
+ const [value, setValue] = useState(formControl?.value || _value);
13
13
  const [modalIsVisible, setModalIsVisible] = useState(false);
14
- function onClickInput() {
14
+ const _disabled = useMemo(() => {
15
+ return formControl?.disabled || disabled;
16
+ }, [formControl?.disabled, disabled]);
17
+ const className = useMemo(() => {
18
+ return renderClassStatus('rls-field-box', { disabled: _disabled });
19
+ }, [_disabled]);
20
+ const { icon, valueInput } = useMemo(() => {
21
+ return {
22
+ icon: value ? 'trash-2' : 'calendar',
23
+ valueInput: value ? rangeFormatTemplate(value) : ''
24
+ };
25
+ }, [value]);
26
+ const onClickInput = useCallback(() => {
15
27
  setModalIsVisible(true);
16
- }
17
- function onClickAction() {
28
+ }, []);
29
+ const onChange = useCallback((value) => {
30
+ setValue(value);
31
+ onValue && onValue(value);
32
+ }, [onValue]);
33
+ const onClickAction = useCallback(() => {
18
34
  if (value) {
19
- formControl?.setValue(defaultValue);
35
+ formControl?.setValue(_value);
20
36
  formControl?.touch();
21
- onChange(defaultValue);
37
+ onChange(_value);
22
38
  }
23
39
  else {
24
40
  setModalIsVisible(true);
25
41
  }
26
- }
27
- function onChange(value) {
28
- setValue(value);
29
- onValue && onValue(value);
30
- }
31
- const _disabled = formControl?.disabled || disabled;
32
- const className = useMemo(() => {
33
- return renderClassStatus('rls-field-box', { disabled: _disabled });
34
- }, [formControl?.disabled, disabled]);
35
- return (_jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [_jsxs("div", { className: className, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { className: "rls-field-date-range__control", type: "text", value: value ? rangeFormatTemplate(value) : '', readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), _jsx("button", { className: "rls-field-date-range__action", onClick: onClickAction, disabled: _disabled, children: _jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), _jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: _jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: _disabled, maxDate: maxDate, minDate: minDate, onListener: ({ event, value }) => {
36
- event !== PickerListenerEvent.Cancel && onChange(value);
37
- formControl?.touch();
38
- setModalIsVisible(false);
39
- } }) })] }));
42
+ }, [value, formControl, _value, onChange]);
43
+ const onListener = useCallback(({ event, value }) => {
44
+ event !== PickerListenerEvent.Cancel && onChange(value);
45
+ formControl?.touch();
46
+ setModalIsVisible(false);
47
+ }, [formControl, onChange]);
48
+ return (_jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [_jsxs("div", { className: className, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { className: "rls-field-date-range__control", type: "text", value: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), _jsx("button", { className: "rls-field-date-range__action", onClick: onClickAction, disabled: _disabled, children: _jsx(RlsIcon, { value: icon }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), _jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: _jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: _disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) })] }));
40
49
  }
41
50
  //# sourceMappingURL=FieldDateRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDateRange.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDateRange/FieldDateRange.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldDateRange.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDateRange/FieldDateRange.tsx"],"names":[],"mappings":"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"}
@@ -1,23 +1,45 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useRenderClassStatus } from '../../../controllers';
2
+ import { i18nSubscribe } from '@rolster/i18n';
3
+ import { useEffect, useMemo, useState } from 'react';
4
+ import { renderClassStatus } from '../../../helpers';
3
5
  import { reactI18n } from '../../../i18n';
4
- import { RlsIcon } from '../../atoms';
5
- import { RlsBallot, RlsMessageFormError } from '../../molecules';
6
+ import { RlsIcon } from '../../atoms/Icon/Icon';
7
+ import { RlsBallot } from '../../molecules/Ballot/Ballot';
8
+ import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFormError';
6
9
  import { useFieldSelect } from './FieldSelectController';
7
10
  import './FieldSelect.css';
8
11
  export function RlsFieldSelectTemplate(props) {
9
12
  const select = useFieldSelect(props);
10
13
  const { render, suggestions, children, formControl, msgErrorDisabled, placeholder, rlsTheme, unremovable } = props;
11
- const _disabled = formControl?.disabled || props.disabled;
12
- const className = useRenderClassStatus('rls-field-box', {
13
- disabled: _disabled,
14
- error: formControl?.wrong,
15
- focused: select.focused && !_disabled
16
- }, 'rls-field-list rls-field-select');
17
- return (_jsxs("div", { id: props.identifier, ref: select.contentRef, className: className, "rls-theme": rlsTheme, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { ref: select.inputRef, className: "rls-field-list__control", readOnly: true, disabled: _disabled, placeholder: placeholder, value: select.value, onFocus: select.onFocusInput, onBlur: select.onBlurInput, onClick: select.onClickInput, onKeyDown: select.onKeydownInput }), _jsx("button", { className: 'rls-field-list__action', disabled: _disabled, onClick: select.onClickAction, children: _jsx(RlsIcon, { value: !unremovable && !!select.value ? 'close' : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), _jsx("div", { className: useRenderClassStatus('rls-field-list__suggestions', {
18
- higher: select.higher,
19
- visible: select.modalIsVisible
20
- }), children: select.modalIsVisible && (_jsxs(_Fragment, { children: [_jsx("div", { className: "rls-field-list__suggestions__body", children: _jsxs("ul", { ref: select.listRef, className: "rls-field-list__ul", children: [suggestions.map((element, index) => (_jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: select.onClickElement(element), onKeyDown: select.onKeydownElement(element), children: render(element) }, index))), !suggestions.length && (_jsx("li", { className: "rls-field-list__empty", children: _jsxs("div", { className: "rls-field-list__empty__description", children: [_jsx("label", { className: "rls-label-bold truncate", children: reactI18n('listEmptyTitle') }), _jsx("p", { className: "rls-caption-regular", children: reactI18n('listEmptyDescription') })] }) }))] }) }), _jsx("div", { className: "rls-field-list__backdrop", onClick: select.onClickBackdrop })] })) })] }));
14
+ const [labels, setLabels] = useState({
15
+ listEmptyDescription: reactI18n('listEmptyDescription'),
16
+ listEmptyTitle: reactI18n('listEmptyTitle')
17
+ });
18
+ useEffect(() => {
19
+ return i18nSubscribe(() => {
20
+ setLabels({
21
+ listEmptyDescription: reactI18n('listEmptyDescription'),
22
+ listEmptyTitle: reactI18n('listEmptyTitle')
23
+ });
24
+ });
25
+ }, []);
26
+ const _disabled = useMemo(() => {
27
+ return formControl?.disabled || props.disabled;
28
+ }, [formControl?.disabled, props.disabled]);
29
+ const className = useMemo(() => {
30
+ return renderClassStatus('rls-field-box', {
31
+ disabled: _disabled,
32
+ error: formControl?.wrong,
33
+ focused: select.focused && !_disabled
34
+ }, 'rls-field-list rls-field-select');
35
+ }, [formControl?.wrong, select.focused, _disabled]);
36
+ const classNameList = useMemo(() => {
37
+ return renderClassStatus('rls-field-list__suggestions', {
38
+ higher: select.higher,
39
+ visible: select.modalIsVisible
40
+ });
41
+ }, [select.modalIsVisible, select.higher]);
42
+ return (_jsxs("div", { id: props.identifier, ref: select.contentRef, className: className, "rls-theme": rlsTheme, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { ref: select.inputRef, className: "rls-field-list__control", readOnly: true, disabled: _disabled, placeholder: placeholder, value: select.value, onFocus: select.onFocusInput, onBlur: select.onBlurInput, onClick: select.onClickInput, onKeyDown: select.onKeydownInput }), _jsx("button", { className: 'rls-field-list__action', disabled: _disabled, onClick: select.onClickAction, children: _jsx(RlsIcon, { value: !unremovable && !!select.value ? 'close' : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), _jsx("div", { className: classNameList, children: select.modalIsVisible && (_jsxs(_Fragment, { children: [_jsx("div", { className: "rls-field-list__suggestions__body", children: _jsxs("ul", { ref: select.listRef, className: "rls-field-list__ul", children: [suggestions.map((element, index) => (_jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: select.onClickElement(element), onKeyDown: select.onKeydownElement(element), children: render(element) }, index))), !suggestions.length && (_jsx("li", { className: "rls-field-list__empty", children: _jsxs("div", { className: "rls-field-list__empty__description", children: [_jsx("label", { className: "rls-label-bold truncate", children: labels.listEmptyTitle }), _jsx("p", { className: "rls-caption-regular", children: labels.listEmptyDescription })] }) }))] }) }), _jsx("div", { className: "rls-field-list__backdrop", onClick: select.onClickBackdrop })] })) })] }));
21
43
  }
22
44
  export function RlsFieldSelect(props) {
23
45
  return (_jsx(RlsFieldSelectTemplate, { ...props, render: (element) => (_jsx(RlsBallot, { subtitle: element.subtitle, img: element.img, initials: element.initials, children: _jsx("span", { children: element.title }) })) }));
@@ -1 +1 @@
1
- {"version":3,"file":"FieldSelect.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldSelect/FieldSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldSelect.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldSelect/FieldSelect.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
+ import { useCallback } from 'react';
1
2
  import { useListController } from '../../../controllers';
2
3
  export function useFieldSelect(props) {
3
4
  const controller = useListController(props);
4
- function onFocusInput() {
5
+ const onFocusInput = useCallback(() => {
5
6
  controller.setState({ focused: true });
6
- }
7
- function onBlurInput() {
7
+ }, [controller.setState]);
8
+ const onBlurInput = useCallback(() => {
8
9
  controller.setState({ focused: false });
9
- }
10
- function onClickInput() {
10
+ }, [controller.setState]);
11
+ const onClickInput = useCallback(() => {
11
12
  controller.setState({ modalIsVisible: true });
12
- }
13
- function onKeydownInput(event) {
13
+ }, [controller.setState]);
14
+ const onKeydownInput = useCallback((event) => {
14
15
  switch (event.code) {
15
16
  case 'Space':
16
17
  case 'Enter':
@@ -24,8 +25,8 @@ export function useFieldSelect(props) {
24
25
  controller.navigationInput(event);
25
26
  break;
26
27
  }
27
- }
28
- function onClickAction() {
28
+ }, [controller.setState, controller.navigationInput]);
29
+ const onClickAction = useCallback(() => {
29
30
  const removable = !props.unremovable && !!controller.value;
30
31
  if (removable) {
31
32
  controller.setState({ modalIsVisible: false });
@@ -37,35 +38,46 @@ export function useFieldSelect(props) {
37
38
  controller.setState({ modalIsVisible });
38
39
  modalIsVisible && controller.inputRef?.current?.focus();
39
40
  }
40
- }
41
- function onClickBackdrop() {
41
+ }, [
42
+ controller.modalIsVisible,
43
+ controller.value,
44
+ controller.setState,
45
+ controller.setFormValue,
46
+ props.unremovable,
47
+ props.onValue
48
+ ]);
49
+ const onClickBackdrop = useCallback(() => {
42
50
  controller.setState({ modalIsVisible: false });
43
- }
44
- function onClickElement(element) {
51
+ }, [controller.setState]);
52
+ const onChange = useCallback((element) => {
53
+ controller.inputRef?.current?.focus();
54
+ if (props.onSelect) {
55
+ controller.setState({ modalIsVisible: false });
56
+ element.value && props.onSelect(element.value);
57
+ }
58
+ else {
59
+ controller.setFormValue(element);
60
+ controller.setState({ modalIsVisible: false });
61
+ }
62
+ props.onValue && props.onValue(element.value);
63
+ }, [
64
+ controller.setState,
65
+ controller.setFormValue,
66
+ props.onSelect,
67
+ props.onValue
68
+ ]);
69
+ const onClickElement = useCallback((element) => {
45
70
  return () => {
46
71
  onChange(element);
47
72
  };
48
- }
49
- function onKeydownElement(element) {
73
+ }, []);
74
+ const onKeydownElement = useCallback((element) => {
50
75
  return (event) => {
51
76
  event.code === 'Enter'
52
77
  ? onChange(element)
53
78
  : controller.navigationElement(event);
54
79
  };
55
- }
56
- function onChange(element) {
57
- const { onSelect, onValue } = props;
58
- controller.inputRef?.current?.focus();
59
- if (onSelect) {
60
- controller.setState({ modalIsVisible: false });
61
- element.value && onSelect(element.value);
62
- }
63
- else {
64
- controller.setFormValue(element);
65
- controller.setState({ modalIsVisible: false });
66
- }
67
- onValue && onValue(element.value);
68
- }
80
+ }, [controller.navigationElement]);
69
81
  return {
70
82
  ...controller,
71
83
  onBlurInput,
@@ -1 +1 @@
1
- {"version":3,"file":"FieldSelectController.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldSelect/FieldSelectController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAiCzD,MAAM,UAAU,cAAc,CAI5B,KAAgC;IAChC,MAAM,UAAU,GAAG,iBAAiB,CAAO,KAAK,CAAC,CAAC;IAElD,SAAS,YAAY;QACnB,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,WAAW;QAClB,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS,YAAY;QACnB,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,cAAc,CAAC,KAAoB;QAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM;YAER,KAAK,QAAQ,CAAC;YACd,KAAK,KAAK;gBACR,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/C,MAAM;YAER;gBACE,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM;QACV,CAAC;IACH,CAAC;IAED,SAAS,aAAa;QACpB,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAE3D,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACnC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAU,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;YAClD,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YACxC,cAAc,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,SAAS,eAAe;QACtB,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,cAAc,CAAC,OAAmB;QACzC,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,gBAAgB,CAAC,OAAmB;QAC3C,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,KAAK,CAAC,IAAI,KAAK,OAAO;gBACpB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACnB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,QAAQ,CAAC,OAAmB;QACnC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAEpC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAEtC,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjC,UAAU,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,WAAW;QACX,aAAa;QACb,eAAe;QACf,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,gBAAgB;QAChB,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"FieldSelectController.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldSelect/FieldSelectController.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  background: var(--rls-theme-color-100);
16
16
  border-radius: var(--rls-sizing-x4);
17
17
  }
18
- .rls-picker-date__header .rls-picker-month-title {
18
+ .rls-picker-date__header .rls-picker-selector-title {
19
19
  padding: 0rem var(--rls-sizing-x6);
20
20
  box-sizing: border-box;
21
21
  }
@@ -1,77 +1,94 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { itIsDefined } from '@rolster/commons';
3
2
  import { PickerListenerEvent, dateOutRange, verifyDateRange } from '@rolster/components';
4
- import { assignDayInDate, assignMonthInDate, assignYearInDate, dateFormatTemplate } from '@rolster/dates';
3
+ import { dateFormatTemplate } from '@rolster/dates';
5
4
  import { useReactControl } from '@rolster/react-forms';
6
- import { useEffect, useMemo, useState } from 'react';
5
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
7
6
  import { renderClassStatus } from '../../../helpers';
8
7
  import { reactI18n } from '../../../i18n';
9
8
  import { RlsButton } from '../../atoms/Button/Button';
10
9
  import { RlsPickerDay } from '../../molecules/PickerDay/PickerDay';
11
10
  import { RlsPickerMonth } from '../../molecules/PickerMonth/PickerMonth';
12
- import { RlsPickerMonthTitle } from '../../molecules/PickerMonthTitle/PickerMonthTitle';
11
+ import { RlsPickerSelectorTitle } from '../../molecules/PickerSelectorTitle/PickerSelectorTitle';
13
12
  import { RlsPickerYear } from '../../molecules/PickerYear/PickerYear';
14
13
  import './PickerDate.css';
15
- const FORMAT_TITLE = '{dw}, {mx} {dd} de {aa}';
14
+ import { i18nSubscribe } from '@rolster/i18n';
15
+ const formatTitle = '{dw}, {mx} {dd} de {aa}';
16
16
  export function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDate, onListener, rlsTheme }) {
17
- const today = new Date(); // Initial current date in component
18
- const dateInitial = formControl?.value || date || today;
19
- const yearControl = useReactControl(dateInitial.getFullYear());
20
- const dayControl = useReactControl(dateInitial.getDate());
21
- const monthControl = useReactControl(dateInitial.getMonth());
22
- const [value, setValue] = useState(dateInitial);
17
+ const today = useRef(new Date()); // Initial current date in component
18
+ const _date = useMemo(() => {
19
+ return formControl?.value ?? date ?? today.current;
20
+ }, [formControl?.value, date]);
21
+ const yearControl = useReactControl(_date.getFullYear());
22
+ const dayControl = useReactControl(_date.getDate());
23
+ const monthControl = useReactControl(_date.getMonth());
24
+ const [value, setValue] = useState(_date);
23
25
  const [visibility, setVisibility] = useState('DAY');
26
+ const [labels, setLabels] = useState({
27
+ dateActionCancel: reactI18n('dateActionCancel'),
28
+ dateActionSelect: reactI18n('dateActionSelect'),
29
+ dateActionToday: reactI18n('dateActionToday')
30
+ });
31
+ const classNameComponent = useMemo(() => {
32
+ return renderClassStatus('rls-picker-date__component', {
33
+ day: visibility === 'DAY',
34
+ month: visibility === 'MONTH',
35
+ year: visibility === 'YEAR'
36
+ });
37
+ }, [visibility]);
38
+ const title = useMemo(() => {
39
+ return dateFormatTemplate(_date, formatTitle);
40
+ }, [_date]);
41
+ const itIsDisabledToday = useMemo(() => dateOutRange({
42
+ date: today.current,
43
+ maxDate,
44
+ minDate
45
+ }), [today.current, maxDate, minDate]);
24
46
  useEffect(() => {
25
- const dateRange = verifyDateRange({
26
- date: formControl?.value || date || today,
27
- minDate,
28
- maxDate
47
+ const date = verifyDateRange({ date: _date, minDate, maxDate });
48
+ setValue(date);
49
+ formControl?.setValue(date);
50
+ return i18nSubscribe(() => {
51
+ setLabels({
52
+ dateActionCancel: reactI18n('dateActionCancel'),
53
+ dateActionSelect: reactI18n('dateActionSelect'),
54
+ dateActionToday: reactI18n('dateActionToday')
55
+ });
29
56
  });
30
- setValue(dateRange);
31
- formControl?.setValue(dateRange);
32
57
  }, []);
33
58
  useEffect(() => {
34
- itIsDefined(yearControl.value) &&
35
- setValue(assignYearInDate(value, yearControl.value));
36
- }, [yearControl.value]);
37
- useEffect(() => {
38
- itIsDefined(monthControl.value) &&
39
- setValue(assignMonthInDate(value, monthControl.value));
40
- }, [monthControl.value]);
41
- useEffect(() => {
42
- itIsDefined(dayControl.value) &&
43
- setValue(assignDayInDate(value, dayControl.value));
44
- }, [dayControl.value]);
45
- function onVisibilityDay() {
59
+ setValue(new Date(yearControl.value, monthControl.value, dayControl.value));
60
+ }, [yearControl.value, monthControl.value, dayControl.value]);
61
+ const onVisibilityDay = useCallback(() => {
46
62
  setVisibility('DAY');
47
- }
48
- function onVisibilityMonth() {
63
+ }, []);
64
+ const onVisibilityMonth = useCallback(() => {
49
65
  setVisibility('MONTH');
50
- }
51
- function onVisibilityYear() {
66
+ }, []);
67
+ const onVisibilityYear = useCallback(() => {
52
68
  setVisibility('YEAR');
53
- }
54
- function onCancel() {
69
+ }, []);
70
+ const onCancel = useCallback(() => {
55
71
  onListener && onListener({ event: PickerListenerEvent.Cancel });
56
- }
57
- function onToday() {
58
- yearControl.setValue(today.getFullYear());
59
- dayControl.setValue(today.getDate());
60
- monthControl.setValue(today.getMonth());
61
- formControl?.setValue(today);
62
- onListener && onListener({ event: PickerListenerEvent.Now, value: today });
63
- }
64
- function onSelect() {
72
+ }, [onListener]);
73
+ const onToday = useCallback(() => {
74
+ yearControl.setValue(today.current.getFullYear());
75
+ dayControl.setValue(today.current.getDate());
76
+ monthControl.setValue(today.current.getMonth());
77
+ formControl?.setValue(today.current);
78
+ onListener &&
79
+ onListener({
80
+ event: PickerListenerEvent.Now,
81
+ value: today.current
82
+ });
83
+ }, [today.current, formControl, onListener]);
84
+ const onSelect = useCallback(() => {
65
85
  formControl?.setValue(value);
66
- onListener && onListener({ event: PickerListenerEvent.Select, value });
67
- }
68
- const classNameComponent = useMemo(() => {
69
- return renderClassStatus('rls-picker-date__component', {
70
- day: visibility === 'DAY',
71
- month: visibility === 'MONTH',
72
- year: visibility === 'YEAR'
73
- });
74
- }, [visibility]);
75
- return (_jsxs("div", { className: "rls-picker-date", "rls-theme": rlsTheme, children: [_jsxs("div", { className: "rls-picker-date__header", children: [_jsx("div", { className: "rls-picker-date__title rls-picker-date__title--description", children: _jsx("span", { onClick: onVisibilityDay, children: dateFormatTemplate(dateInitial, FORMAT_TITLE) }) }), _jsx("div", { className: "rls-picker-date__title rls-picker-date__title--year", children: _jsx("span", { onClick: onVisibilityYear, children: yearControl.value }) }), _jsx(RlsPickerMonthTitle, { monthControl: monthControl, yearControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: 'month', onClick: onVisibilityMonth })] }), _jsxs("div", { className: classNameComponent, children: [_jsx(RlsPickerDay, { formControl: dayControl, date: dateInitial, month: monthControl.value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled }), _jsx(RlsPickerMonth, { formControl: monthControl, date: dateInitial, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), _jsx(RlsPickerYear, { formControl: yearControl, date: dateInitial, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), !automatic && (_jsx("div", { className: "rls-picker-date__footer", children: _jsxs("div", { className: "rls-picker-date__actions", children: [_jsx("div", { className: "rls-picker-date__actions--cancel", children: _jsx(RlsButton, { type: "ghost", onClick: onCancel, children: reactI18n('dateActionCancel') }) }), _jsx("div", { className: "rls-picker-date__actions--today", children: _jsx(RlsButton, { type: "ghost", onClick: onToday, disabled: dateOutRange({ date: today, maxDate, minDate }), children: reactI18n('dateActionToday') }) }), _jsx("div", { className: "rls-picker-date__actions--ok", children: _jsx(RlsButton, { type: "raised", onClick: onSelect, children: reactI18n('dateActionSelect') }) })] }) }))] }));
86
+ onListener &&
87
+ onListener({
88
+ event: PickerListenerEvent.Select,
89
+ value
90
+ });
91
+ }, [formControl, value, onListener]);
92
+ return (_jsxs("div", { className: "rls-picker-date", "rls-theme": rlsTheme, children: [_jsxs("div", { className: "rls-picker-date__header", children: [_jsx("div", { className: "rls-picker-date__title rls-picker-date__title--description", children: _jsx("span", { onClick: onVisibilityDay, children: title }) }), _jsx("div", { className: "rls-picker-date__title rls-picker-date__title--year", children: _jsx("span", { onClick: onVisibilityYear, children: yearControl.value }) }), _jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: 'month', onClick: onVisibilityMonth })] }), _jsxs("div", { className: classNameComponent, children: [_jsx(RlsPickerDay, { formControl: dayControl, date: _date, month: monthControl.value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled }), _jsx(RlsPickerMonth, { formControl: monthControl, date: _date, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), _jsx(RlsPickerYear, { formControl: yearControl, date: _date, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), !automatic && (_jsx("div", { className: "rls-picker-date__footer", children: _jsxs("div", { className: "rls-picker-date__actions", children: [_jsx("div", { className: "rls-picker-date__actions--cancel", children: _jsx(RlsButton, { type: "ghost", onClick: onCancel, children: labels.dateActionCancel }) }), _jsx("div", { className: "rls-picker-date__actions--today", children: _jsx(RlsButton, { type: "ghost", onClick: onToday, disabled: itIsDisabledToday, children: labels.dateActionToday }) }), _jsx("div", { className: "rls-picker-date__actions--ok", children: _jsx(RlsButton, { type: "raised", onClick: onSelect, children: labels.dateActionSelect }) })] }) }))] }));
76
93
  }
77
94
  //# sourceMappingURL=PickerDate.js.map