@rolster/react-components 18.20.7 → 18.21.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 (138) hide show
  1. package/dist/cjs/assets/{index-Cp7p-Y-D.css → index-B4R0Qgg4.css} +21 -21
  2. package/dist/cjs/index.js +1080 -651
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/es/assets/{index-Cp7p-Y-D.css → index-B4R0Qgg4.css} +21 -21
  5. package/dist/es/index.js +1078 -649
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/esm/components/atoms/Avatar/Avatar.js +6 -2
  8. package/dist/esm/components/atoms/Avatar/Avatar.js.map +1 -1
  9. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.js +10 -3
  10. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.js.map +1 -1
  11. package/dist/esm/components/atoms/Button/Button.js +6 -2
  12. package/dist/esm/components/atoms/Button/Button.js.map +1 -1
  13. package/dist/esm/components/atoms/CheckBox/CheckBox.css +1 -1
  14. package/dist/esm/components/atoms/CheckBox/CheckBox.js +10 -5
  15. package/dist/esm/components/atoms/CheckBox/CheckBox.js.map +1 -1
  16. package/dist/esm/components/atoms/Icon/Icon.js +6 -2
  17. package/dist/esm/components/atoms/Icon/Icon.js.map +1 -1
  18. package/dist/esm/components/atoms/Input/Input.js +9 -6
  19. package/dist/esm/components/atoms/Input/Input.js.map +1 -1
  20. package/dist/esm/components/atoms/InputPassword/InputPassword.js +8 -5
  21. package/dist/esm/components/atoms/InputPassword/InputPassword.js.map +1 -1
  22. package/dist/esm/components/atoms/Poster/Poster.js +6 -2
  23. package/dist/esm/components/atoms/Poster/Poster.js.map +1 -1
  24. package/dist/esm/components/atoms/ProgressBar/ProgressBar.js +6 -2
  25. package/dist/esm/components/atoms/ProgressBar/ProgressBar.js.map +1 -1
  26. package/dist/esm/components/atoms/RadioButton/RadioButton.css +1 -1
  27. package/dist/esm/components/atoms/RadioButton/RadioButton.js +6 -2
  28. package/dist/esm/components/atoms/RadioButton/RadioButton.js.map +1 -1
  29. package/dist/esm/components/atoms/Switch/Switch.css +1 -1
  30. package/dist/esm/components/atoms/Switch/Switch.js +10 -5
  31. package/dist/esm/components/atoms/Switch/Switch.js.map +1 -1
  32. package/dist/esm/components/definitions.d.ts +1 -1
  33. package/dist/esm/components/molecules/Alert/Alert.js +7 -3
  34. package/dist/esm/components/molecules/Alert/Alert.js.map +1 -1
  35. package/dist/esm/components/molecules/Ballot/Ballot.js +8 -3
  36. package/dist/esm/components/molecules/Ballot/Ballot.js.map +1 -1
  37. package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.js +8 -3
  38. package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.js.map +1 -1
  39. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.css +2 -2
  40. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.d.ts +1 -1
  41. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js +11 -9
  42. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js.map +1 -1
  43. package/dist/esm/components/molecules/FieldMoney/FieldMoney.js +14 -5
  44. package/dist/esm/components/molecules/FieldMoney/FieldMoney.js.map +1 -1
  45. package/dist/esm/components/molecules/FieldNumber/FieldNumber.js +14 -5
  46. package/dist/esm/components/molecules/FieldNumber/FieldNumber.js.map +1 -1
  47. package/dist/esm/components/molecules/FieldPassword/FieldPassword.js +15 -6
  48. package/dist/esm/components/molecules/FieldPassword/FieldPassword.js.map +1 -1
  49. package/dist/esm/components/molecules/FieldText/FieldText.js +14 -5
  50. package/dist/esm/components/molecules/FieldText/FieldText.js.map +1 -1
  51. package/dist/esm/components/molecules/LabelCheckBox/LabelCheckBox.js +7 -7
  52. package/dist/esm/components/molecules/LabelCheckBox/LabelCheckBox.js.map +1 -1
  53. package/dist/esm/components/molecules/LabelRadioButton/LabelRadioButton.js +7 -7
  54. package/dist/esm/components/molecules/LabelRadioButton/LabelRadioButton.js.map +1 -1
  55. package/dist/esm/components/molecules/LabelSwitch/LabelSwitch.js +7 -7
  56. package/dist/esm/components/molecules/LabelSwitch/LabelSwitch.js.map +1 -1
  57. package/dist/esm/components/molecules/MessageFormError/MessageFormError.js +16 -2
  58. package/dist/esm/components/molecules/MessageFormError/MessageFormError.js.map +1 -1
  59. package/dist/esm/components/molecules/Pagination/Pagination.js +23 -32
  60. package/dist/esm/components/molecules/Pagination/Pagination.js.map +1 -1
  61. package/dist/esm/components/molecules/PickerDay/PickerDay.d.ts +1 -1
  62. package/dist/esm/components/molecules/PickerDay/PickerDay.js +53 -24
  63. package/dist/esm/components/molecules/PickerDay/PickerDay.js.map +1 -1
  64. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.d.ts +1 -1
  65. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js +55 -29
  66. package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js.map +1 -1
  67. package/dist/esm/components/molecules/PickerMonth/PickerMonth.d.ts +1 -1
  68. package/dist/esm/components/molecules/PickerMonth/PickerMonth.js +57 -34
  69. package/dist/esm/components/molecules/PickerMonth/PickerMonth.js.map +1 -1
  70. package/dist/esm/components/molecules/{PickerMonthTitle/PickerMonthTitle.css → PickerSelectorTitle/PickerSelectorTitle.css} +3 -3
  71. package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.d.ts +15 -0
  72. package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.js +65 -0
  73. package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.js.map +1 -0
  74. package/dist/esm/components/molecules/PickerYear/PickerYear.css +7 -7
  75. package/dist/esm/components/molecules/PickerYear/PickerYear.d.ts +1 -1
  76. package/dist/esm/components/molecules/PickerYear/PickerYear.js +45 -38
  77. package/dist/esm/components/molecules/PickerYear/PickerYear.js.map +1 -1
  78. package/dist/esm/components/molecules/index.d.ts +1 -1
  79. package/dist/esm/components/molecules/index.js +1 -1
  80. package/dist/esm/components/molecules/index.js.map +1 -1
  81. package/dist/esm/components/organisms/Card/Card.js +6 -2
  82. package/dist/esm/components/organisms/Card/Card.js.map +1 -1
  83. package/dist/esm/components/organisms/Confirmation/Confirmation.css +5 -5
  84. package/dist/esm/components/organisms/Confirmation/Confirmation.d.ts +1 -1
  85. package/dist/esm/components/organisms/Confirmation/Confirmation.js +7 -4
  86. package/dist/esm/components/organisms/Confirmation/Confirmation.js.map +1 -1
  87. package/dist/esm/components/organisms/Datatable/Datatable.js +31 -9
  88. package/dist/esm/components/organisms/Datatable/Datatable.js.map +1 -1
  89. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.d.ts +5 -5
  90. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +43 -18
  91. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
  92. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js +50 -41
  93. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js.map +1 -1
  94. package/dist/esm/components/organisms/FieldDate/FieldDate.d.ts +5 -4
  95. package/dist/esm/components/organisms/FieldDate/FieldDate.js +39 -30
  96. package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
  97. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.d.ts +5 -4
  98. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +35 -26
  99. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
  100. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +35 -13
  101. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
  102. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js +41 -29
  103. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js.map +1 -1
  104. package/dist/esm/components/organisms/FormNavigation/FormNavigation.js +6 -2
  105. package/dist/esm/components/organisms/FormNavigation/FormNavigation.js.map +1 -1
  106. package/dist/esm/components/organisms/Modal/Modal.js +6 -2
  107. package/dist/esm/components/organisms/Modal/Modal.js.map +1 -1
  108. package/dist/esm/components/organisms/PickerDate/PickerDate.css +1 -1
  109. package/dist/esm/components/organisms/PickerDate/PickerDate.js +76 -53
  110. package/dist/esm/components/organisms/PickerDate/PickerDate.js.map +1 -1
  111. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.d.ts +1 -1
  112. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js +61 -40
  113. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js.map +1 -1
  114. package/dist/esm/components/organisms/Snackbar/Snackbar.d.ts +1 -1
  115. package/dist/esm/components/organisms/Snackbar/Snackbar.js +32 -22
  116. package/dist/esm/components/organisms/Snackbar/Snackbar.js.map +1 -1
  117. package/dist/esm/context.js +6 -5
  118. package/dist/esm/context.js.map +1 -1
  119. package/dist/esm/controllers/ListController.js +7 -5
  120. package/dist/esm/controllers/ListController.js.map +1 -1
  121. package/dist/esm/controllers/index.d.ts +0 -1
  122. package/dist/esm/controllers/index.js +0 -1
  123. package/dist/esm/controllers/index.js.map +1 -1
  124. package/dist/esm/helpers/css.js +7 -10
  125. package/dist/esm/helpers/css.js.map +1 -1
  126. package/dist/esm/helpers/index.d.ts +1 -0
  127. package/dist/esm/helpers/index.js +1 -0
  128. package/dist/esm/helpers/index.js.map +1 -1
  129. package/dist/esm/helpers/language.d.ts +4 -0
  130. package/dist/esm/helpers/language.js +102 -0
  131. package/dist/esm/helpers/language.js.map +1 -0
  132. package/package.json +6 -6
  133. package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.d.ts +0 -15
  134. package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.js +0 -53
  135. package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.js.map +0 -1
  136. package/dist/esm/controllers/RenderClassStatusController.d.ts +0 -2
  137. package/dist/esm/controllers/RenderClassStatusController.js +0 -10
  138. package/dist/esm/controllers/RenderClassStatusController.js.map +0 -1
@@ -1,29 +1,51 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useRenderClassStatus } from '../../../controllers';
2
+ import { useMemo } from 'react';
3
+ import { renderClassStatus } from '../../../helpers';
3
4
  export function RlsDatatableHeader({ children, identifier }) {
4
5
  return (_jsx("tr", { id: identifier, className: "rls-datatable__header", children: children }));
5
6
  }
6
7
  export function RlsDatatableTitle({ children, className, control, identifier }) {
7
- return (_jsx("th", { id: identifier, className: useRenderClassStatus('rls-datatable__title', { control }, className).trim(), children: children }));
8
+ const classDatatableName = useMemo(() => {
9
+ return renderClassStatus('rls-datatable__title', { control }, className);
10
+ }, [control, className]);
11
+ return (_jsx("th", { id: identifier, className: classDatatableName, children: children }));
8
12
  }
9
13
  export function RlsDatatableSubheader({ children, className, identifier }) {
10
- return (_jsx("tr", { id: identifier, className: useRenderClassStatus('rls-datatable__subheader', {}, className).trim(), children: children }));
14
+ const classDatatableName = useMemo(() => {
15
+ return renderClassStatus('rls-datatable__subheader', {}, className);
16
+ }, [className]);
17
+ return (_jsx("tr", { id: identifier, className: classDatatableName, children: children }));
11
18
  }
12
19
  export function RlsDatatableRecord({ children, className, error, identifier, info, successs, warning }) {
13
- return (_jsx("tr", { id: identifier, className: useRenderClassStatus('rls-datatable__record', { error, info, successs, warning }, className).trim(), children: children }));
20
+ const classDatatableName = useMemo(() => {
21
+ return renderClassStatus('rls-datatable__record', { error, info, successs, warning }, className);
22
+ }, [error, info, successs, warning, className]);
23
+ return (_jsx("tr", { id: identifier, className: classDatatableName, children: children }));
14
24
  }
15
25
  export function RlsDatatableTotals({ children, className, error, identifier, info, successs, warning }) {
16
- return (_jsx("div", { id: identifier, className: useRenderClassStatus('rls-datatable__totals', { error, info, successs, warning }, className).trim(), children: children }));
26
+ const classDatatableName = useMemo(() => {
27
+ return renderClassStatus('rls-datatable__totals', { error, info, successs, warning }, className);
28
+ }, [error, info, successs, warning, className]);
29
+ return (_jsx("div", { id: identifier, className: classDatatableName, children: children }));
17
30
  }
18
31
  export function RlsDatatableCell({ children, className, control, identifier, overflow }) {
19
- return (_jsx("th", { id: identifier, className: useRenderClassStatus('rls-datatable__cell', { control, overflow }, className).trim(), children: children }));
32
+ const classDatatableName = useMemo(() => {
33
+ return renderClassStatus('rls-datatable__cell', { control, overflow }, className);
34
+ }, [control, overflow, className]);
35
+ return (_jsx("th", { id: identifier, className: classDatatableName, children: children }));
20
36
  }
21
37
  export function RlsDatatableData({ children, className, control, identifier, overflow }) {
22
- return (_jsx("div", { id: identifier, className: useRenderClassStatus('rls-datatable__data', { control, overflow }, className).trim(), children: children }));
38
+ const classDatatableName = useMemo(() => {
39
+ return renderClassStatus('rls-datatable__data', { control, overflow }, className);
40
+ }, [control, overflow, className]);
41
+ return (_jsx("div", { id: identifier, className: classDatatableName, children: children }));
23
42
  }
24
43
  export function RlsDatatable({ children, datatable, footer, header, identifier, rlsTheme, summary, toolbar }) {
25
- return (_jsxs("div", { className: useRenderClassStatus('rls-datatable', {
44
+ const className = useMemo(() => {
45
+ return renderClassStatus('rls-datatable', {
26
46
  scrolleable: datatable?.scrolleable
27
- }), "rls-theme": rlsTheme, children: [toolbar && _jsx("div", { className: "rls-datatable__toolbar", children: toolbar }), _jsxs("table", { id: identifier, children: [header && _jsx("thead", { className: "rls-datatable__head", children: header }), _jsx("tbody", { ref: datatable?.tableRef, className: "rls-datatable__body", children: children })] }), summary && _jsx("div", { className: "rls-datatable__summary", children: summary }), footer && _jsx("div", { className: "rls-datatable__footer", children: footer })] }));
47
+ });
48
+ }, [datatable]);
49
+ return (_jsxs("div", { className: className, "rls-theme": rlsTheme, children: [toolbar && _jsx("div", { className: "rls-datatable__toolbar", children: toolbar }), _jsxs("table", { id: identifier, children: [header && _jsx("thead", { className: "rls-datatable__head", children: header }), _jsx("tbody", { ref: datatable?.tableRef, className: "rls-datatable__body", children: children })] }), summary && _jsx("div", { className: "rls-datatable__summary", children: summary }), footer && _jsx("div", { className: "rls-datatable__footer", children: footer })] }));
28
50
  }
29
51
  //# sourceMappingURL=Datatable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Datatable.js","sourceRoot":"","sources":["../../../../../src/components/organisms/Datatable/Datatable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Datatable.js","sourceRoot":"","sources":["../../../../../src/components/organisms/Datatable/Datatable.tsx"],"names":[],"mappings":"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"}
@@ -38,9 +38,9 @@ interface FormControlVoidProps<T = any> extends Omit<FieldAutocompleteProps<T, A
38
38
  interface FormControlEmptyProps<T = any> extends Omit<FieldAutocompleteProps<T, AutocompleteElement<T>>, 'formControl' | 'value'> {
39
39
  onValue?: (value?: T) => void;
40
40
  }
41
- export declare function RlsFieldAutocomplete<T = any>(props: FormControlUndefinedProps<T>): JSX.Element;
42
- export declare function RlsFieldAutocomplete<T = any>(props: FormControlDefinedProps<T>): JSX.Element;
43
- export declare function RlsFieldAutocomplete<T = any>(props: FormControlVoidProps<T>): JSX.Element;
44
- export declare function RlsFieldAutocomplete<T = any>(props: FormControlEmptyProps<T>): JSX.Element;
45
- export declare function RlsFieldAutocomplete<T = any>(props: FieldAutocompleteProps<T, AutocompleteElement<T>>): JSX.Element;
41
+ export declare function RlsFieldAutocomplete<T = any>(props: FormControlUndefinedProps<T>): ReactNode;
42
+ export declare function RlsFieldAutocomplete<T = any>(props: FormControlDefinedProps<T>): ReactNode;
43
+ export declare function RlsFieldAutocomplete<T = any>(props: FormControlVoidProps<T>): ReactNode;
44
+ export declare function RlsFieldAutocomplete<T = any>(props: FormControlEmptyProps<T>): ReactNode;
45
+ export declare function RlsFieldAutocomplete<T = any>(props: FieldAutocompleteProps<T, AutocompleteElement<T>>): ReactNode;
46
46
  export {};
@@ -1,29 +1,54 @@
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 { useCallback, useEffect, useMemo, useState } from 'react';
4
+ import { renderClassStatus } from '../../../helpers';
3
5
  import { reactI18n } from '../../../i18n';
4
- import { RlsIcon, RlsProgressBar } from '../../atoms';
6
+ import { RlsIcon } from '../../atoms/Icon/Icon';
7
+ import { RlsProgressBar } from '../../atoms/ProgressBar/ProgressBar';
5
8
  import { RlsBallot, RlsMessageFormError } from '../../molecules';
6
9
  import { useFieldAutocomplete } from './FieldAutocompleteController';
7
10
  import './FieldAutocomplete.css';
8
- import { renderClassStatus } from '../../../helpers';
9
11
  export function RlsFieldAutocompleteTemplate(props) {
10
12
  const autocomplete = useFieldAutocomplete(props);
11
13
  const { render, children, formControl, msgErrorDisabled, onSearch, placeholder, rlsTheme, searching } = props;
12
- const _disabled = formControl?.disabled || props.disabled;
13
- const className = useRenderClassStatus('rls-field-box', {
14
- focused: autocomplete.focused && !_disabled,
15
- error: formControl?.wrong,
16
- disabled: _disabled,
17
- selected: !!autocomplete.value
18
- }, 'rls-field-list rls-field-autocomplete');
19
- return (_jsxs("div", { id: props.identifier, ref: autocomplete.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", { className: "rls-field-list__control", readOnly: true, disabled: _disabled, placeholder: placeholder, value: autocomplete.value, onClick: autocomplete.onClickControl }), _jsx("button", { className: "rls-field-list__action", disabled: _disabled, onClick: autocomplete.onClickAction, children: _jsx(RlsIcon, { value: autocomplete.value ? 'trash-2' : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), _jsx("div", { className: renderClassStatus('rls-field-list__suggestions', {
20
- higher: autocomplete.higher,
21
- visible: autocomplete.modalIsVisible
22
- }), children: autocomplete.modalIsVisible && (_jsxs(_Fragment, { children: [_jsx("div", { className: "rls-field-list__suggestions__body", children: _jsxs("ul", { ref: autocomplete.listRef, className: "rls-field-list__ul", children: [_jsxs("div", { className: "rls-field-list__ul__search", children: [_jsx("input", { ref: autocomplete.inputRef, className: "rls-field-list__ul__control", type: "text", placeholder: reactI18n('listInputPlaceholder'), value: autocomplete.pattern, onChange: (event) => {
23
- autocomplete.setPattern(event.target.value);
24
- }, disabled: _disabled || searching, onFocus: autocomplete.onFocusInput, onBlur: autocomplete.onBlurInput, onKeyDown: autocomplete.onKeydownInput }), onSearch && (_jsx("button", { disabled: _disabled || searching, onClick: () => {
25
- onSearch(autocomplete.pattern);
26
- }, children: _jsx(RlsIcon, { value: "search" }) }))] }), searching && _jsx(RlsProgressBar, { indeterminate: true }), autocomplete.coincidences.map((element, index) => (_jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: autocomplete.onClickElement(element), onKeyDown: autocomplete.onKeydownElement(element), children: render(element) }, index))), !autocomplete.coincidences.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: autocomplete.onClickBackdrop })] })) })] }));
14
+ const [labels, setLabels] = useState({
15
+ listEmptyDescription: reactI18n('listEmptyDescription'),
16
+ listEmptyTitle: reactI18n('listEmptyTitle'),
17
+ listInputPlaceholder: reactI18n('listInputPlaceholder')
18
+ });
19
+ useEffect(() => {
20
+ return i18nSubscribe(() => {
21
+ setLabels({
22
+ listEmptyDescription: reactI18n('listEmptyDescription'),
23
+ listEmptyTitle: reactI18n('listEmptyTitle'),
24
+ listInputPlaceholder: reactI18n('listInputPlaceholder')
25
+ });
26
+ });
27
+ }, []);
28
+ const _disabled = useMemo(() => {
29
+ return formControl?.disabled || props.disabled;
30
+ }, [formControl?.disabled, props.disabled]);
31
+ const className = useMemo(() => {
32
+ return renderClassStatus('rls-field-box', {
33
+ focused: autocomplete.focused && !_disabled,
34
+ error: formControl?.wrong,
35
+ disabled: _disabled,
36
+ selected: !!autocomplete.value
37
+ }, 'rls-field-list rls-field-autocomplete');
38
+ }, [formControl?.wrong, autocomplete.value, autocomplete.focused, _disabled]);
39
+ const classNameList = useMemo(() => {
40
+ return renderClassStatus('rls-field-list__suggestions', {
41
+ higher: autocomplete.higher,
42
+ visible: autocomplete.modalIsVisible
43
+ });
44
+ }, [autocomplete.higher, autocomplete.modalIsVisible]);
45
+ const onInputSearch = useCallback((event) => {
46
+ autocomplete.setPattern(event.target.value);
47
+ }, []);
48
+ const onClickSearch = useCallback(() => {
49
+ onSearch && onSearch(autocomplete.pattern);
50
+ }, [onSearch, autocomplete.pattern]);
51
+ return (_jsxs("div", { id: props.identifier, ref: autocomplete.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", { className: "rls-field-list__control", readOnly: true, disabled: _disabled, placeholder: placeholder, value: autocomplete.value, onClick: autocomplete.onClickControl }), _jsx("button", { className: "rls-field-list__action", disabled: _disabled, onClick: autocomplete.onClickAction, children: _jsx(RlsIcon, { value: autocomplete.value ? 'trash-2' : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), _jsx("div", { className: classNameList, children: autocomplete.modalIsVisible && (_jsxs(_Fragment, { children: [_jsx("div", { className: "rls-field-list__suggestions__body", children: _jsxs("ul", { ref: autocomplete.listRef, className: "rls-field-list__ul", children: [_jsxs("div", { className: "rls-field-list__ul__search", children: [_jsx("input", { ref: autocomplete.inputRef, className: "rls-field-list__ul__control", type: "text", placeholder: labels.listInputPlaceholder, value: autocomplete.pattern, onChange: onInputSearch, disabled: _disabled || searching, onFocus: autocomplete.onFocusInput, onBlur: autocomplete.onBlurInput, onKeyDown: autocomplete.onKeydownInput }), onSearch && (_jsx("button", { disabled: _disabled || searching, onClick: onClickSearch, children: _jsx(RlsIcon, { value: "search" }) }))] }), searching && _jsx(RlsProgressBar, { indeterminate: true }), autocomplete.coincidences.map((element, index) => (_jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: autocomplete.onClickElement(element), onKeyDown: autocomplete.onKeydownElement(element), children: render(element) }, index))), !autocomplete.coincidences.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: autocomplete.onClickBackdrop })] })) })] }));
27
52
  }
28
53
  export function RlsFieldAutocomplete(props) {
29
54
  return (_jsx(RlsFieldAutocompleteTemplate, { ...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":"FieldAutocomplete.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldAutocomplete/FieldAutocomplete.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldAutocomplete.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldAutocomplete/FieldAutocomplete.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createAutocompleteStore } from '@rolster/components';
2
- import { useEffect, useRef, useState } from 'react';
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
3
  import { useListController } from '../../../controllers';
4
4
  const DURATION_ANIMATION = 240;
5
5
  const MAX_ELEMENTS = 6;
@@ -12,19 +12,29 @@ export function useFieldAutocomplete(props) {
12
12
  pattern: '',
13
13
  previous: null
14
14
  });
15
+ const refreshCoincidences = useCallback((suggestions, pattern, reboot = false) => {
16
+ const { collection, store } = createAutocompleteStore({
17
+ pattern,
18
+ suggestions,
19
+ reboot,
20
+ store: currentStore.current
21
+ });
22
+ currentStore.current = store;
23
+ setCoincidences(collection.slice(0, MAX_ELEMENTS));
24
+ }, []);
15
25
  useEffect(() => {
16
- refreshCoincidences(pattern, true);
26
+ refreshCoincidences(props.suggestions, pattern, true);
17
27
  }, [props.suggestions]);
18
28
  useEffect(() => {
19
- refreshCoincidences(pattern);
29
+ refreshCoincidences(props.suggestions, pattern);
20
30
  }, [pattern]);
21
- function onFocusInput() {
31
+ const onFocusInput = useCallback(() => {
22
32
  controller.setState({ focused: true });
23
- }
24
- function onBlurInput() {
33
+ }, [controller.setState]);
34
+ const onBlurInput = useCallback(() => {
25
35
  controller.setState({ focused: false });
26
- }
27
- function onKeydownInput(event) {
36
+ }, [controller.setState]);
37
+ const onKeydownInput = useCallback((event) => {
28
38
  switch (event.code) {
29
39
  case 'Escape':
30
40
  case 'Tab':
@@ -34,14 +44,14 @@ export function useFieldAutocomplete(props) {
34
44
  controller.navigationInput(event);
35
45
  break;
36
46
  }
37
- }
38
- function onClickControl() {
47
+ }, [controller.setState, controller.navigationInput]);
48
+ const onClickControl = useCallback(() => {
39
49
  controller.setState({ modalIsVisible: true });
40
50
  setTimeout(() => {
41
51
  controller.inputRef?.current?.focus();
42
52
  }, DURATION_ANIMATION);
43
- }
44
- function onClickAction() {
53
+ }, [controller.setState]);
54
+ const onClickAction = useCallback(() => {
45
55
  if (controller.value) {
46
56
  controller.setState({ modalIsVisible: false });
47
57
  controller.setFormValue(undefined);
@@ -50,44 +60,43 @@ export function useFieldAutocomplete(props) {
50
60
  else {
51
61
  onClickControl();
52
62
  }
53
- }
54
- function onClickBackdrop() {
63
+ }, [
64
+ controller.value,
65
+ controller.setState,
66
+ controller.setFormValue,
67
+ props.onValue
68
+ ]);
69
+ const onClickBackdrop = useCallback(() => {
55
70
  controller.setState({ modalIsVisible: false });
56
- }
57
- function onClickElement(element) {
71
+ }, [controller.setState]);
72
+ const onChange = useCallback((element) => {
73
+ if (props.onSelect) {
74
+ controller.setState({ modalIsVisible: false });
75
+ element.value && props.onSelect(element.value);
76
+ }
77
+ else {
78
+ controller.setState({ modalIsVisible: false });
79
+ controller.setFormValue(element);
80
+ }
81
+ props.onValue && props.onValue(element.value);
82
+ }, [
83
+ controller.setState,
84
+ controller.setFormValue,
85
+ props.onSelect,
86
+ props.onValue
87
+ ]);
88
+ const onClickElement = useCallback((element) => {
58
89
  return () => {
59
90
  onChange(element);
60
91
  };
61
- }
62
- function onKeydownElement(element) {
92
+ }, []);
93
+ const onKeydownElement = useCallback((element) => {
63
94
  return (event) => {
64
95
  event.code === 'Enter'
65
96
  ? onChange(element)
66
97
  : controller.navigationElement(event);
67
98
  };
68
- }
69
- function onChange(element) {
70
- const { onSelect, onValue } = props;
71
- if (onSelect) {
72
- controller.setState({ modalIsVisible: false });
73
- element.value && onSelect(element.value);
74
- }
75
- else {
76
- controller.setState({ modalIsVisible: false });
77
- controller.setFormValue(element);
78
- }
79
- onValue && onValue(element.value);
80
- }
81
- function refreshCoincidences(pattern, reboot = false) {
82
- const { collection, store } = createAutocompleteStore({
83
- pattern,
84
- suggestions: props.suggestions,
85
- reboot,
86
- store: currentStore.current
87
- });
88
- currentStore.current = store;
89
- setCoincidences(collection.slice(0, MAX_ELEMENTS));
90
- }
99
+ }, [controller.navigationElement]);
91
100
  return {
92
101
  ...controller,
93
102
  coincidences,
@@ -1 +1 @@
1
- {"version":3,"file":"FieldAutocompleteController.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldAutocomplete/FieldAutocompleteController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldAutocompleteController.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldAutocomplete/FieldAutocompleteController.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ReactControl } from '@rolster/react-forms';
2
+ import { ReactNode } from 'react';
2
3
  import { RlsComponent } from '../../definitions';
3
4
  import './FieldDate.css';
4
5
  interface FieldDateProps extends RlsComponent {
@@ -30,8 +31,8 @@ interface FormControlVoidProps extends Omit<FieldDateProps, 'value'> {
30
31
  interface FormControlEmptyProps extends Omit<FieldDateProps, 'formControl' | 'value'> {
31
32
  onValue?: (value?: Date) => void;
32
33
  }
33
- export declare function RlsFieldDate(props: FormControlDefinedProps): JSX.Element;
34
- export declare function RlsFieldDate(props: FormControlUndefinedProps): JSX.Element;
35
- export declare function RlsFieldDate(props: FormControlVoidProps): JSX.Element;
36
- export declare function RlsFieldDate(props: FormControlEmptyProps): JSX.Element;
34
+ export declare function RlsFieldDate(props: FormControlDefinedProps): ReactNode;
35
+ export declare function RlsFieldDate(props: FormControlUndefinedProps): ReactNode;
36
+ export declare function RlsFieldDate(props: FormControlVoidProps): ReactNode;
37
+ export declare function RlsFieldDate(props: FormControlEmptyProps): ReactNode;
37
38
  export {};
@@ -1,52 +1,61 @@
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, useState } from 'react';
5
- import { useRenderClassStatus } from '../../../controllers';
6
- import { RlsIcon } from '../../atoms';
7
- import { RlsMessageFormError } from '../../molecules';
4
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
+ import { renderClassStatus } from '../../../helpers';
6
+ import { RlsIcon } from '../../atoms/Icon/Icon';
7
+ import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFormError';
8
8
  import { RlsModal } from '../Modal/Modal';
9
9
  import { RlsPickerDate } from '../PickerDate/PickerDate';
10
10
  import './FieldDate.css';
11
- const FORMAT_DATE = '{dd}/{mx}/{aa}';
12
- export function RlsFieldDate({ children, date, disabled, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, value: defaultValue }) {
13
- const today = new Date(); // Initial current date in component
14
- const [value, setValue] = useState(formControl?.value || defaultValue);
11
+ const formatDate = '{dd}/{mx}/{aa}';
12
+ export function RlsFieldDate({ children, date, disabled, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, 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
- formControl?.setValue(defaultValue);
46
+ formControl?.setValue(_value);
35
47
  formControl?.touch();
36
- onChange(defaultValue);
48
+ onChange(_value);
37
49
  }
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
- return (_jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [_jsxs("div", { className: useRenderClassStatus('rls-field-box', { disabled: _disabled }), 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 }) => {
47
- event !== PickerListenerEvent.Cancel && onChange(value);
48
- formControl?.touch();
49
- setModalIsVisible(false);
50
- } }) })] }));
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 }) })] }));
51
60
  }
52
61
  //# sourceMappingURL=FieldDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDate.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,GAAG,gBAAgB,CAAC;AA2CrC,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,UAAU,EACV,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,KAAK,EAAE,YAAY,EACJ;IACf,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,oCAAoC;IAE9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC;IACvE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,eAAe,CAAC;YAChC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK;YACzC,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,QAAQ,CAAC,KAAY;QAC5B,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,IAAI,OAAO,CAAC,KAAa,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,YAAY;QACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,aAAa;QACpB,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,EAAE,QAAQ,CAAC,YAAoB,CAAC,CAAC;YAC5C,WAAW,EAAE,KAAK,EAAE,CAAC;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC;QAClD,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,SAAS,GAAG,WAAW,EAAE,QAAQ,IAAI,QAAQ,CAAC;IAEpD,OAAO,CACL,eAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAC,gBAAgB,eAAY,QAAQ,aACjE,eACE,SAAS,EAAE,oBAAoB,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,aAExE,QAAQ,IAAI,gBAAO,SAAS,EAAC,sBAAsB,YAAE,QAAQ,GAAS,EAEvE,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,qBAAqB,aAClC,gBACE,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,GACnB,EAEF,iBACE,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,QAAQ,YAElB,KAAC,OAAO,IAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAI,GAC3C,IACL,GACF,EAEL,CAAC,gBAAgB,IAAI,CACpB,KAAC,mBAAmB,IAClB,SAAS,EAAC,sBAAsB,EAChC,WAAW,EAAE,WAAW,GACxB,CACH,IACG,EAEN,KAAC,QAAQ,IAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,YACnD,KAAC,aAAa,IACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;wBAC/B,KAAK,KAAK,mBAAmB,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACxD,WAAW,EAAE,KAAK,EAAE,CAAC;wBACrB,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC,GACD,GACO,IACP,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"FieldDate.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { DateRange } from '@rolster/dates';
2
2
  import { ReactControl } from '@rolster/react-forms';
3
+ import { ReactNode } from 'react';
3
4
  import { RlsComponent } from '../../definitions';
4
5
  import './FieldDateRange.css';
5
6
  interface FieldDateRangeProps extends RlsComponent {
@@ -30,8 +31,8 @@ interface FormControlVoidProps extends Omit<FieldDateRangeProps, 'value'> {
30
31
  interface FormControlEmptyProps extends Omit<FieldDateRangeProps, 'formControl' | 'value'> {
31
32
  onValue?: (value?: DateRange) => void;
32
33
  }
33
- export declare function RlsFieldDateRange(props: FormControlDefinedProps): JSX.Element;
34
- export declare function RlsFieldDateRange(props: FormControlUndefinedProps): JSX.Element;
35
- export declare function RlsFieldDateRange(props: FormControlVoidProps): JSX.Element;
36
- export declare function RlsFieldDateRange(props: FormControlEmptyProps): JSX.Element;
34
+ export declare function RlsFieldDateRange(props: FormControlDefinedProps): ReactNode;
35
+ export declare function RlsFieldDateRange(props: FormControlUndefinedProps): ReactNode;
36
+ export declare function RlsFieldDateRange(props: FormControlVoidProps): ReactNode;
37
+ export declare function RlsFieldDateRange(props: FormControlEmptyProps): ReactNode;
37
38
  export {};
@@ -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 { useState } from 'react';
4
- import { useRenderClassStatus } from '../../../controllers';
5
- import { rangeFormatTemplate } from '../../../helpers';
6
- import { RlsIcon } from '../../atoms';
7
- import { RlsMessageFormError } from '../../molecules';
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ import { rangeFormatTemplate, renderClassStatus } from '../../../helpers';
5
+ import { RlsIcon } from '../../atoms/Icon/Icon';
6
+ import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFormError';
8
7
  import { RlsModal } from '../Modal/Modal';
9
8
  import { RlsPickerDateRange } from '../PickerDateRange/PickerDateRange';
10
9
  import './FieldDateRange.css';
11
- export function RlsFieldDateRange({ children, date: datePicker, disabled, formControl, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, value: defaultValue }) {
12
- const currentDate = datePicker || new Date();
13
- 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);
14
13
  const [modalIsVisible, setModalIsVisible] = useState(false);
15
- 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(() => {
16
27
  setModalIsVisible(true);
17
- }
18
- function onClickAction() {
28
+ }, []);
29
+ const onChange = useCallback((value) => {
30
+ setValue(value);
31
+ onValue && onValue(value);
32
+ }, [onValue]);
33
+ const onClickAction = useCallback(() => {
19
34
  if (value) {
20
- formControl?.setValue(defaultValue);
35
+ formControl?.setValue(_value);
21
36
  formControl?.touch();
22
- onChange(defaultValue);
37
+ onChange(_value);
23
38
  }
24
39
  else {
25
40
  setModalIsVisible(true);
26
41
  }
27
- }
28
- function onChange(value) {
29
- setValue(value);
30
- onValue && onValue(value);
31
- }
32
- const _disabled = formControl?.disabled || disabled;
33
- return (_jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [_jsxs("div", { className: useRenderClassStatus('rls-field-box', {
34
- disabled: _disabled
35
- }), 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