@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.
- package/dist/cjs/assets/{index-Cp7p-Y-D.css → index-B4R0Qgg4.css} +21 -21
- package/dist/cjs/index.js +1080 -651
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/assets/{index-Cp7p-Y-D.css → index-B4R0Qgg4.css} +21 -21
- package/dist/es/index.js +1078 -649
- package/dist/es/index.js.map +1 -1
- package/dist/esm/components/atoms/Avatar/Avatar.js +6 -2
- package/dist/esm/components/atoms/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.js +10 -3
- package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/esm/components/atoms/Button/Button.js +6 -2
- package/dist/esm/components/atoms/Button/Button.js.map +1 -1
- package/dist/esm/components/atoms/CheckBox/CheckBox.css +1 -1
- package/dist/esm/components/atoms/CheckBox/CheckBox.js +10 -5
- package/dist/esm/components/atoms/CheckBox/CheckBox.js.map +1 -1
- package/dist/esm/components/atoms/Icon/Icon.js +6 -2
- package/dist/esm/components/atoms/Icon/Icon.js.map +1 -1
- package/dist/esm/components/atoms/Input/Input.js +9 -6
- package/dist/esm/components/atoms/Input/Input.js.map +1 -1
- package/dist/esm/components/atoms/InputPassword/InputPassword.js +8 -5
- package/dist/esm/components/atoms/InputPassword/InputPassword.js.map +1 -1
- package/dist/esm/components/atoms/Poster/Poster.js +6 -2
- package/dist/esm/components/atoms/Poster/Poster.js.map +1 -1
- package/dist/esm/components/atoms/ProgressBar/ProgressBar.js +6 -2
- package/dist/esm/components/atoms/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/esm/components/atoms/RadioButton/RadioButton.css +1 -1
- package/dist/esm/components/atoms/RadioButton/RadioButton.js +6 -2
- package/dist/esm/components/atoms/RadioButton/RadioButton.js.map +1 -1
- package/dist/esm/components/atoms/Switch/Switch.css +1 -1
- package/dist/esm/components/atoms/Switch/Switch.js +10 -5
- package/dist/esm/components/atoms/Switch/Switch.js.map +1 -1
- package/dist/esm/components/definitions.d.ts +1 -1
- package/dist/esm/components/molecules/Alert/Alert.js +7 -3
- package/dist/esm/components/molecules/Alert/Alert.js.map +1 -1
- package/dist/esm/components/molecules/Ballot/Ballot.js +8 -3
- package/dist/esm/components/molecules/Ballot/Ballot.js.map +1 -1
- package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.js +8 -3
- package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.js.map +1 -1
- package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.css +2 -2
- package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.d.ts +1 -1
- package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js +11 -9
- package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js.map +1 -1
- package/dist/esm/components/molecules/FieldMoney/FieldMoney.js +14 -5
- package/dist/esm/components/molecules/FieldMoney/FieldMoney.js.map +1 -1
- package/dist/esm/components/molecules/FieldNumber/FieldNumber.js +14 -5
- package/dist/esm/components/molecules/FieldNumber/FieldNumber.js.map +1 -1
- package/dist/esm/components/molecules/FieldPassword/FieldPassword.js +15 -6
- package/dist/esm/components/molecules/FieldPassword/FieldPassword.js.map +1 -1
- package/dist/esm/components/molecules/FieldText/FieldText.js +14 -5
- package/dist/esm/components/molecules/FieldText/FieldText.js.map +1 -1
- package/dist/esm/components/molecules/LabelCheckBox/LabelCheckBox.js +7 -7
- package/dist/esm/components/molecules/LabelCheckBox/LabelCheckBox.js.map +1 -1
- package/dist/esm/components/molecules/LabelRadioButton/LabelRadioButton.js +7 -7
- package/dist/esm/components/molecules/LabelRadioButton/LabelRadioButton.js.map +1 -1
- package/dist/esm/components/molecules/LabelSwitch/LabelSwitch.js +7 -7
- package/dist/esm/components/molecules/LabelSwitch/LabelSwitch.js.map +1 -1
- package/dist/esm/components/molecules/MessageFormError/MessageFormError.js +16 -2
- package/dist/esm/components/molecules/MessageFormError/MessageFormError.js.map +1 -1
- package/dist/esm/components/molecules/Pagination/Pagination.js +23 -32
- package/dist/esm/components/molecules/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/molecules/PickerDay/PickerDay.d.ts +1 -1
- package/dist/esm/components/molecules/PickerDay/PickerDay.js +53 -24
- package/dist/esm/components/molecules/PickerDay/PickerDay.js.map +1 -1
- package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.d.ts +1 -1
- package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js +55 -29
- package/dist/esm/components/molecules/PickerDayRange/PickerDayRange.js.map +1 -1
- package/dist/esm/components/molecules/PickerMonth/PickerMonth.d.ts +1 -1
- package/dist/esm/components/molecules/PickerMonth/PickerMonth.js +57 -34
- package/dist/esm/components/molecules/PickerMonth/PickerMonth.js.map +1 -1
- package/dist/esm/components/molecules/{PickerMonthTitle/PickerMonthTitle.css → PickerSelectorTitle/PickerSelectorTitle.css} +3 -3
- package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.d.ts +15 -0
- package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.js +65 -0
- package/dist/esm/components/molecules/PickerSelectorTitle/PickerSelectorTitle.js.map +1 -0
- package/dist/esm/components/molecules/PickerYear/PickerYear.css +7 -7
- package/dist/esm/components/molecules/PickerYear/PickerYear.d.ts +1 -1
- package/dist/esm/components/molecules/PickerYear/PickerYear.js +45 -38
- package/dist/esm/components/molecules/PickerYear/PickerYear.js.map +1 -1
- package/dist/esm/components/molecules/index.d.ts +1 -1
- package/dist/esm/components/molecules/index.js +1 -1
- package/dist/esm/components/molecules/index.js.map +1 -1
- package/dist/esm/components/organisms/Card/Card.js +6 -2
- package/dist/esm/components/organisms/Card/Card.js.map +1 -1
- package/dist/esm/components/organisms/Confirmation/Confirmation.css +5 -5
- package/dist/esm/components/organisms/Confirmation/Confirmation.d.ts +1 -1
- package/dist/esm/components/organisms/Confirmation/Confirmation.js +7 -4
- package/dist/esm/components/organisms/Confirmation/Confirmation.js.map +1 -1
- package/dist/esm/components/organisms/Datatable/Datatable.js +31 -9
- package/dist/esm/components/organisms/Datatable/Datatable.js.map +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.d.ts +5 -5
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +43 -18
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js +50 -41
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js.map +1 -1
- package/dist/esm/components/organisms/FieldDate/FieldDate.d.ts +5 -4
- package/dist/esm/components/organisms/FieldDate/FieldDate.js +39 -30
- package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
- package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.d.ts +5 -4
- package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +35 -26
- package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +35 -13
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
- package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js +41 -29
- package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js.map +1 -1
- package/dist/esm/components/organisms/FormNavigation/FormNavigation.js +6 -2
- package/dist/esm/components/organisms/FormNavigation/FormNavigation.js.map +1 -1
- package/dist/esm/components/organisms/Modal/Modal.js +6 -2
- package/dist/esm/components/organisms/Modal/Modal.js.map +1 -1
- package/dist/esm/components/organisms/PickerDate/PickerDate.css +1 -1
- package/dist/esm/components/organisms/PickerDate/PickerDate.js +76 -53
- package/dist/esm/components/organisms/PickerDate/PickerDate.js.map +1 -1
- package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.d.ts +1 -1
- package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js +61 -40
- package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js.map +1 -1
- package/dist/esm/components/organisms/Snackbar/Snackbar.d.ts +1 -1
- package/dist/esm/components/organisms/Snackbar/Snackbar.js +32 -22
- package/dist/esm/components/organisms/Snackbar/Snackbar.js.map +1 -1
- package/dist/esm/context.js +6 -5
- package/dist/esm/context.js.map +1 -1
- package/dist/esm/controllers/ListController.js +7 -5
- package/dist/esm/controllers/ListController.js.map +1 -1
- package/dist/esm/controllers/index.d.ts +0 -1
- package/dist/esm/controllers/index.js +0 -1
- package/dist/esm/controllers/index.js.map +1 -1
- package/dist/esm/helpers/css.js +7 -10
- package/dist/esm/helpers/css.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +1 -0
- package/dist/esm/helpers/index.js.map +1 -1
- package/dist/esm/helpers/language.d.ts +4 -0
- package/dist/esm/helpers/language.js +102 -0
- package/dist/esm/helpers/language.js.map +1 -0
- package/package.json +6 -6
- package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.d.ts +0 -15
- package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.js +0 -53
- package/dist/esm/components/molecules/PickerMonthTitle/PickerMonthTitle.js.map +0 -1
- package/dist/esm/controllers/RenderClassStatusController.d.ts +0 -2
- package/dist/esm/controllers/RenderClassStatusController.js +0 -10
- 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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
+
const className = useMemo(() => {
|
|
45
|
+
return renderClassStatus('rls-datatable', {
|
|
26
46
|
scrolleable: datatable?.scrolleable
|
|
27
|
-
})
|
|
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":";
|
|
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>):
|
|
42
|
-
export declare function RlsFieldAutocomplete<T = any>(props: FormControlDefinedProps<T>):
|
|
43
|
-
export declare function RlsFieldAutocomplete<T = any>(props: FormControlVoidProps<T>):
|
|
44
|
-
export declare function RlsFieldAutocomplete<T = any>(props: FormControlEmptyProps<T>):
|
|
45
|
-
export declare function RlsFieldAutocomplete<T = any>(props: FieldAutocompleteProps<T, AutocompleteElement<T>>):
|
|
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 {
|
|
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
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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":";
|
|
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
|
-
|
|
31
|
+
const onFocusInput = useCallback(() => {
|
|
22
32
|
controller.setState({ focused: true });
|
|
23
|
-
}
|
|
24
|
-
|
|
33
|
+
}, [controller.setState]);
|
|
34
|
+
const onBlurInput = useCallback(() => {
|
|
25
35
|
controller.setState({ focused: false });
|
|
26
|
-
}
|
|
27
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAGL,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAIL,SAAS,EACT,MAAM,EACN,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,YAAY,GAAG,CAAC,CAAC;AAoCvB,MAAM,UAAU,oBAAoB,CAIlC,KAAsC;IACtC,MAAM,UAAU,GAAG,iBAAiB,CAAO,KAAK,CAAC,CAAC;IAElD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAM,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,MAAM,CAA0B;QACnD,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;
|
|
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):
|
|
34
|
-
export declare function RlsFieldDate(props: FormControlUndefinedProps):
|
|
35
|
-
export declare function RlsFieldDate(props: FormControlVoidProps):
|
|
36
|
-
export declare function RlsFieldDate(props: FormControlEmptyProps):
|
|
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 {
|
|
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
|
|
12
|
-
export function RlsFieldDate({ children, date, disabled, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, rlsTheme, value:
|
|
13
|
-
const today = new Date(); // Initial current date in component
|
|
14
|
-
const [value, setValue] = useState(formControl?.value
|
|
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
|
|
18
|
-
date: formControl?.value
|
|
29
|
+
const _date = verifyDateRange({
|
|
30
|
+
date: formControl?.value ?? date ?? today.current,
|
|
19
31
|
minDate,
|
|
20
32
|
maxDate
|
|
21
33
|
});
|
|
22
|
-
setValue(
|
|
23
|
-
formControl?.setValue(
|
|
34
|
+
setValue(_date);
|
|
35
|
+
formControl?.setValue(_date);
|
|
24
36
|
}, []);
|
|
25
|
-
|
|
37
|
+
const onClickInput = useCallback(() => {
|
|
38
|
+
setModalIsVisible(true);
|
|
39
|
+
}, []);
|
|
40
|
+
const onChange = useCallback((value) => {
|
|
26
41
|
setValue(value);
|
|
27
42
|
onValue && onValue(value);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
setModalIsVisible(true);
|
|
31
|
-
}
|
|
32
|
-
function onClickAction() {
|
|
43
|
+
}, [onValue]);
|
|
44
|
+
const onClickAction = useCallback(() => {
|
|
33
45
|
if (value) {
|
|
34
|
-
formControl?.setValue(
|
|
46
|
+
formControl?.setValue(_value);
|
|
35
47
|
formControl?.touch();
|
|
36
|
-
onChange(
|
|
48
|
+
onChange(_value);
|
|
37
49
|
}
|
|
38
50
|
else {
|
|
39
51
|
setModalIsVisible(true);
|
|
40
52
|
}
|
|
41
|
-
}
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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,
|
|
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):
|
|
34
|
-
export declare function RlsFieldDateRange(props: FormControlUndefinedProps):
|
|
35
|
-
export declare function RlsFieldDateRange(props: FormControlVoidProps):
|
|
36
|
-
export declare function RlsFieldDateRange(props: FormControlEmptyProps):
|
|
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 {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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:
|
|
12
|
-
const currentDate =
|
|
13
|
-
const [value, setValue] = useState(formControl?.value ||
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
35
|
+
formControl?.setValue(_value);
|
|
21
36
|
formControl?.touch();
|
|
22
|
-
onChange(
|
|
37
|
+
onChange(_value);
|
|
23
38
|
}
|
|
24
39
|
else {
|
|
25
40
|
setModalIsVisible(true);
|
|
26
41
|
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return (_jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [_jsxs("div", { className:
|
|
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
|