@rolster/react-components 18.15.30 → 18.15.32
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/index.js +28 -27
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/index.js +28 -27
- package/dist/es/index.js.map +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.d.ts +31 -9
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +2 -2
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.d.ts +1 -11
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js +7 -7
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteController.js.map +1 -1
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.d.ts +31 -9
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +3 -3
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
- package/dist/esm/components/organisms/FieldSelect/FieldSelectController.d.ts +1 -11
- package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js +9 -8
- package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js.map +1 -1
- package/dist/esm/controllers/ListController.d.ts +3 -13
- package/dist/esm/controllers/ListController.js +8 -8
- package/dist/esm/controllers/ListController.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -2067,15 +2067,15 @@ function useDatatable() {
|
|
|
2067
2067
|
|
|
2068
2068
|
function useListController(props) {
|
|
2069
2069
|
const { suggestions, formControl, value } = props;
|
|
2070
|
+
const listIsOpen = require$$0.useRef(false);
|
|
2070
2071
|
const contentRef = require$$0.useRef(null);
|
|
2071
2072
|
const listRef = require$$0.useRef(null);
|
|
2072
2073
|
const inputRef = require$$0.useRef(null);
|
|
2073
|
-
const listIsOpen = require$$0.useRef(false);
|
|
2074
2074
|
const [state, setState] = require$$0.useState({
|
|
2075
2075
|
focused: false,
|
|
2076
2076
|
higher: false,
|
|
2077
2077
|
value: '',
|
|
2078
|
-
|
|
2078
|
+
modalIsVisible: false
|
|
2079
2079
|
});
|
|
2080
2080
|
const collection = require$$0.useRef(new components.ListCollection([]));
|
|
2081
2081
|
const position = require$$0.useRef(0);
|
|
@@ -2083,7 +2083,7 @@ function useListController(props) {
|
|
|
2083
2083
|
require$$0.useEffect(() => {
|
|
2084
2084
|
function onCloseSuggestions({ target }) {
|
|
2085
2085
|
!contentRef?.current?.contains(target) &&
|
|
2086
|
-
setState((state) => ({ ...state,
|
|
2086
|
+
setState((state) => ({ ...state, modalIsVisible: false }));
|
|
2087
2087
|
}
|
|
2088
2088
|
document.addEventListener('click', onCloseSuggestions);
|
|
2089
2089
|
return () => {
|
|
@@ -2091,17 +2091,17 @@ function useListController(props) {
|
|
|
2091
2091
|
};
|
|
2092
2092
|
}, []);
|
|
2093
2093
|
require$$0.useEffect(() => {
|
|
2094
|
-
if (!listIsOpen.current && state.
|
|
2094
|
+
if (!listIsOpen.current && state.modalIsVisible) {
|
|
2095
2095
|
listIsOpen.current = true;
|
|
2096
2096
|
}
|
|
2097
|
-
if (listIsOpen.current && !state.
|
|
2097
|
+
if (listIsOpen.current && !state.modalIsVisible) {
|
|
2098
2098
|
formControl?.touch();
|
|
2099
2099
|
}
|
|
2100
2100
|
setState((state) => ({
|
|
2101
2101
|
...state,
|
|
2102
2102
|
higher: components.locationListCanTop(contentRef.current, listRef.current)
|
|
2103
2103
|
}));
|
|
2104
|
-
}, [state.
|
|
2104
|
+
}, [state.modalIsVisible]);
|
|
2105
2105
|
require$$0.useEffect(() => {
|
|
2106
2106
|
collection.current = new components.ListCollection(suggestions);
|
|
2107
2107
|
refresh(collection.current, formControl?.value);
|
|
@@ -2141,7 +2141,7 @@ function useListController(props) {
|
|
|
2141
2141
|
formControl?.setValue(value);
|
|
2142
2142
|
}
|
|
2143
2143
|
function navigationInput(event) {
|
|
2144
|
-
if (state.
|
|
2144
|
+
if (state.modalIsVisible) {
|
|
2145
2145
|
const newPosition = components.navigationListFromInput({
|
|
2146
2146
|
content: contentRef.current,
|
|
2147
2147
|
event: event,
|
|
@@ -2175,8 +2175,8 @@ const DURATION_ANIMATION$1 = 240;
|
|
|
2175
2175
|
const MAX_ELEMENTS = 6;
|
|
2176
2176
|
function useFieldAutocomplete(props) {
|
|
2177
2177
|
const controller = useListController(props);
|
|
2178
|
-
const [pattern, setPattern] = require$$0.useState('');
|
|
2179
2178
|
const [coincidences, setCoincidences] = require$$0.useState([]);
|
|
2179
|
+
const [pattern, setPattern] = require$$0.useState('');
|
|
2180
2180
|
const currentStore = require$$0.useRef({
|
|
2181
2181
|
coincidences: [],
|
|
2182
2182
|
pattern: '',
|
|
@@ -2191,7 +2191,7 @@ function useFieldAutocomplete(props) {
|
|
|
2191
2191
|
}, [pattern]);
|
|
2192
2192
|
function onClickControl() {
|
|
2193
2193
|
if (!disabled) {
|
|
2194
|
-
controller.setState({
|
|
2194
|
+
controller.setState({ modalIsVisible: true });
|
|
2195
2195
|
setTimeout(() => {
|
|
2196
2196
|
controller.inputRef?.current?.focus();
|
|
2197
2197
|
}, DURATION_ANIMATION$1);
|
|
@@ -2207,7 +2207,7 @@ function useFieldAutocomplete(props) {
|
|
|
2207
2207
|
switch (event.code) {
|
|
2208
2208
|
case 'Escape':
|
|
2209
2209
|
case 'Tab':
|
|
2210
|
-
controller.setState({
|
|
2210
|
+
controller.setState({ modalIsVisible: false });
|
|
2211
2211
|
break;
|
|
2212
2212
|
default:
|
|
2213
2213
|
controller.navigationInput(event);
|
|
@@ -2215,12 +2215,12 @@ function useFieldAutocomplete(props) {
|
|
|
2215
2215
|
}
|
|
2216
2216
|
}
|
|
2217
2217
|
function onClickAction() {
|
|
2218
|
-
controller.setState({
|
|
2218
|
+
controller.setState({ modalIsVisible: false, value: '' });
|
|
2219
2219
|
controller.setFormValue(props.value);
|
|
2220
2220
|
props.onValue && props.onValue(props.value);
|
|
2221
2221
|
}
|
|
2222
2222
|
function onClickBackdrop() {
|
|
2223
|
-
controller.setState({
|
|
2223
|
+
controller.setState({ modalIsVisible: false });
|
|
2224
2224
|
}
|
|
2225
2225
|
function onClickElement(element) {
|
|
2226
2226
|
return () => {
|
|
@@ -2236,11 +2236,11 @@ function useFieldAutocomplete(props) {
|
|
|
2236
2236
|
}
|
|
2237
2237
|
function onChange({ description, value }) {
|
|
2238
2238
|
if (props.onSelect) {
|
|
2239
|
-
controller.setState({
|
|
2239
|
+
controller.setState({ modalIsVisible: false });
|
|
2240
2240
|
value && props.onSelect(value);
|
|
2241
2241
|
}
|
|
2242
2242
|
else {
|
|
2243
|
-
controller.setState({
|
|
2243
|
+
controller.setState({ modalIsVisible: false, value: description });
|
|
2244
2244
|
controller.setFormValue(value);
|
|
2245
2245
|
}
|
|
2246
2246
|
props.onValue && props.onValue(value);
|
|
@@ -2283,9 +2283,9 @@ function RlsFieldAutocompleteTemplate(props) {
|
|
|
2283
2283
|
selected: !!controller.value
|
|
2284
2284
|
}, 'rls-field-list rls-field-autocomplete');
|
|
2285
2285
|
return (jsxRuntimeExports.jsxs("div", { ref: controller.contentRef, className: className, "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: controller.value, onClick: autocomplete.onClickControl }), !hiddenIcon && controller.value && (jsxRuntimeExports.jsx("button", { className: "rls-field-list__action", disabled: disabled, onClick: autocomplete.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "trash-2" }) }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
|
|
2286
|
-
visible: controller.
|
|
2286
|
+
visible: controller.modalIsVisible,
|
|
2287
2287
|
higher: controller.higher,
|
|
2288
|
-
hide: !controller.
|
|
2288
|
+
hide: !controller.modalIsVisible
|
|
2289
2289
|
}), children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: controller.listRef, className: "rls-field-list__ul", children: [jsxRuntimeExports.jsxs("div", { className: "rls-field-list__ul__search", children: [jsxRuntimeExports.jsx("input", { ref: controller.inputRef, className: "rls-field-list__ul__control", type: "text", placeholder: reactI18n('listInputPlaceholder'), value: autocomplete.pattern, onChange: ({ target: { value } }) => {
|
|
2290
2290
|
autocomplete.setPattern(value);
|
|
2291
2291
|
}, disabled: disabled || searching, onFocus: autocomplete.onFocusInput, onBlur: autocomplete.onBlurInput, onKeyDown: autocomplete.onKeydownInput }), onSearch && (jsxRuntimeExports.jsx("button", { disabled: disabled || searching, onClick: () => {
|
|
@@ -2493,17 +2493,17 @@ function useFieldSelect(props) {
|
|
|
2493
2493
|
controller.setState({ focused: false });
|
|
2494
2494
|
}
|
|
2495
2495
|
function onClickInput() {
|
|
2496
|
-
controller.setState({
|
|
2496
|
+
controller.setState({ modalIsVisible: true });
|
|
2497
2497
|
}
|
|
2498
2498
|
function onKeydownInput(event) {
|
|
2499
2499
|
switch (event.code) {
|
|
2500
2500
|
case 'Space':
|
|
2501
2501
|
case 'Enter':
|
|
2502
|
-
controller.setState({
|
|
2502
|
+
controller.setState({ modalIsVisible: true });
|
|
2503
2503
|
break;
|
|
2504
2504
|
case 'Escape':
|
|
2505
2505
|
case 'Tab':
|
|
2506
|
-
controller.setState({
|
|
2506
|
+
controller.setState({ modalIsVisible: false });
|
|
2507
2507
|
break;
|
|
2508
2508
|
default:
|
|
2509
2509
|
controller.navigationInput(event);
|
|
@@ -2511,11 +2511,12 @@ function useFieldSelect(props) {
|
|
|
2511
2511
|
}
|
|
2512
2512
|
}
|
|
2513
2513
|
function onClickAction() {
|
|
2514
|
-
|
|
2515
|
-
|
|
2514
|
+
const modalIsVisible = !controller.modalIsVisible;
|
|
2515
|
+
controller.setState({ modalIsVisible });
|
|
2516
|
+
modalIsVisible && controller.inputRef?.current?.focus();
|
|
2516
2517
|
}
|
|
2517
2518
|
function onClickBackdrop() {
|
|
2518
|
-
controller.setState({
|
|
2519
|
+
controller.setState({ modalIsVisible: false });
|
|
2519
2520
|
}
|
|
2520
2521
|
function onClickElement(element) {
|
|
2521
2522
|
return () => {
|
|
@@ -2532,12 +2533,12 @@ function useFieldSelect(props) {
|
|
|
2532
2533
|
function onChange({ description, value }) {
|
|
2533
2534
|
controller.inputRef?.current?.focus();
|
|
2534
2535
|
if (props.onSelect) {
|
|
2535
|
-
controller.setState({
|
|
2536
|
+
controller.setState({ modalIsVisible: false });
|
|
2536
2537
|
value && props.onSelect(value);
|
|
2537
2538
|
}
|
|
2538
2539
|
else {
|
|
2539
2540
|
controller.setFormValue(value);
|
|
2540
|
-
controller.setState({
|
|
2541
|
+
controller.setState({ modalIsVisible: false, value: description });
|
|
2541
2542
|
}
|
|
2542
2543
|
props.onValue && props.onValue(value);
|
|
2543
2544
|
}
|
|
@@ -2565,11 +2566,11 @@ function RlsFieldSelectTemplate(props) {
|
|
|
2565
2566
|
error: formControl?.wrong
|
|
2566
2567
|
}, 'rls-field-list rls-field-select');
|
|
2567
2568
|
return (jsxRuntimeExports.jsxs("div", { ref: controller.contentRef, className: className, "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { ref: controller.inputRef, className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: controller.value, onFocus: select.onFocusInput, onBlur: select.onBlurInput, onClick: select.onClickInput, onKeyDown: select.onKeydownInput }), jsxRuntimeExports.jsx("button", { className: renderClassStatus('rls-field-list__action', {
|
|
2568
|
-
visible: controller.
|
|
2569
|
+
visible: controller.modalIsVisible
|
|
2569
2570
|
}), disabled: disabled, onClick: select.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-down" }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
|
|
2570
|
-
visible: controller.
|
|
2571
|
+
visible: controller.modalIsVisible,
|
|
2571
2572
|
higher: controller.higher,
|
|
2572
|
-
hide: !controller.
|
|
2573
|
+
hide: !controller.modalIsVisible
|
|
2573
2574
|
}), children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: controller.listRef, className: "rls-field-list__ul", children: [suggestions.map((element, index) => (jsxRuntimeExports.jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: select.onClickElement(element), onKeyDown: select.onKeydownElement(element), children: render(element) }, index))), !suggestions.length && (jsxRuntimeExports.jsx("li", { className: "rls-field-list__empty", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-list__empty__description", children: [jsxRuntimeExports.jsx("label", { className: "rls-label-bold truncate", children: reactI18n('listEmptyTitle') }), jsxRuntimeExports.jsx("p", { className: "rls-caption-regular", children: reactI18n('listEmptyDescription') })] }) }))] }) }), jsxRuntimeExports.jsx("div", { className: "rls-field-list__backdrop", onClick: select.onClickBackdrop })] })] }));
|
|
2574
2575
|
}
|
|
2575
2576
|
function RlsFieldSelect(props) {
|