@rolster/react-components 18.15.12 → 18.15.14
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 +23 -35
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/index.js +23 -35
- package/dist/es/index.js.map +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.d.ts +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +4 -8
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
- package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocompleteHook.js +3 -3
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.d.ts +1 -1
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +8 -9
- package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
- package/dist/esm/components/organisms/FieldSelect/FieldSelectHook.js +2 -2
- package/dist/esm/hooks/ListControlHook.d.ts +1 -1
- package/dist/esm/hooks/ListControlHook.js +6 -13
- package/dist/esm/hooks/ListControlHook.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,6 @@ interface FieldAutocompleteProps<T = any, E extends Element<T> = Element<T>> ext
|
|
|
17
17
|
interface FieldAutocompleteTemplateProps<T = any, E extends Element<T> = Element<T>> extends FieldAutocompleteProps<T, E> {
|
|
18
18
|
render: (element: E) => ReactNode;
|
|
19
19
|
}
|
|
20
|
-
export declare function RlsFieldAutocompleteTemplate<T = any, E extends Element<T> = Element<T>>(
|
|
20
|
+
export declare function RlsFieldAutocompleteTemplate<T = any, E extends Element<T> = Element<T>>(props: FieldAutocompleteTemplateProps<T, E>): import("react/jsx-runtime").JSX.Element;
|
|
21
21
|
export declare function RlsFieldAutocomplete<T = any>(props: FieldAutocompleteProps<T, AutocompleteElement<T>>): import("react/jsx-runtime").JSX.Element;
|
|
22
22
|
export {};
|
|
@@ -5,17 +5,13 @@ import { RlsIcon, RlsProgressBar } from '../../atoms';
|
|
|
5
5
|
import { RlsBallot, RlsMessageFormError } from '../../molecules';
|
|
6
6
|
import { useFieldAutocomplete } from './FieldAutocompleteHook';
|
|
7
7
|
import './FieldAutocomplete.css';
|
|
8
|
-
export function RlsFieldAutocompleteTemplate(
|
|
9
|
-
const fieldAutocomplete = useFieldAutocomplete(
|
|
10
|
-
|
|
11
|
-
disabled,
|
|
12
|
-
formControl,
|
|
13
|
-
onSelect,
|
|
14
|
-
onValue
|
|
15
|
-
});
|
|
8
|
+
export function RlsFieldAutocompleteTemplate(props) {
|
|
9
|
+
const fieldAutocomplete = useFieldAutocomplete(props);
|
|
10
|
+
const { render, children, disabled, formControl, hiddenIcon, onSearch, placeholder, rlsTheme, searching } = props;
|
|
16
11
|
return (_jsxs("div", { ref: fieldAutocomplete.listControl.contentRef, className: renderClassStatus('rls-field-box', {
|
|
17
12
|
disabled,
|
|
18
13
|
focused: fieldAutocomplete.listControl.focused,
|
|
14
|
+
error: formControl?.wrong,
|
|
19
15
|
selected: !!fieldAutocomplete.listControl.value
|
|
20
16
|
}, 'rls-field-list rls-field-autocomplete'), "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: fieldAutocomplete.listControl.value, onClick: fieldAutocomplete.onClickControl }), !hiddenIcon && fieldAutocomplete.listControl.value && (_jsx("button", { className: "rls-field-list__action", disabled: disabled, onClick: fieldAutocomplete.onClickAction, children: _jsx(RlsIcon, { value: "trash-2" }) }))] }) }), _jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }), _jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
|
|
21
17
|
visible: fieldAutocomplete.listControl.visible,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldAutocomplete.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldAutocomplete/FieldAutocomplete.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,yBAAyB,CAAC;AAsBjC,MAAM,UAAU,4BAA4B,CAG1C,
|
|
1
|
+
{"version":3,"file":"FieldAutocomplete.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldAutocomplete/FieldAutocomplete.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,yBAAyB,CAAC;AAsBjC,MAAM,UAAU,4BAA4B,CAG1C,KAA2C;IAC3C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,eACE,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,UAAU,EAC7C,SAAS,EAAE,iBAAiB,CAC1B,eAAe,EACf;YACE,QAAQ;YACR,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,OAAO;YAC9C,KAAK,EAAE,WAAW,EAAE,KAAK;YACzB,QAAQ,EAAE,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK;SAChD,EACD,uCAAuC,CACxC,eACU,QAAQ,aAElB,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,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAC1C,OAAO,EAAE,iBAAiB,CAAC,cAAc,GACzC,EAED,CAAC,UAAU,IAAI,iBAAiB,CAAC,WAAW,CAAC,KAAK,IAAI,CACrD,iBACE,SAAS,EAAC,wBAAwB,EAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,iBAAiB,CAAC,aAAa,YAExC,KAAC,OAAO,IAAC,KAAK,EAAC,SAAS,GAAG,GACpB,CACV,IACG,GACF,EAEN,KAAC,mBAAmB,IAClB,SAAS,EAAC,sBAAsB,EAChC,WAAW,EAAE,WAAW,GACxB,EAEF,eACE,SAAS,EAAE,iBAAiB,CAAC,6BAA6B,EAAE;oBAC1D,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,OAAO;oBAC9C,IAAI,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO;oBAC5C,MAAM,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM;iBAC7C,CAAC,aAEF,cAAK,SAAS,EAAC,mCAAmC,YAChD,cACE,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAC1C,SAAS,EAAC,oBAAoB,aAE9B,eAAK,SAAS,EAAC,4BAA4B,aACzC,gBACE,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAC3C,SAAS,EAAC,6BAA6B,EACvC,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,SAAS,CAAC,sBAAsB,CAAC,EAC9C,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAChC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gDAClC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;4CACtC,CAAC,EACD,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAC/B,OAAO,EAAE,iBAAiB,CAAC,YAAY,EACvC,MAAM,EAAE,iBAAiB,CAAC,WAAW,EACrC,SAAS,EAAE,iBAAiB,CAAC,cAAc,GAC3C,EAED,QAAQ,IAAI,CACX,iBACE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAC/B,OAAO,EAAE,GAAG,EAAE;gDACZ,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;4CACtC,CAAC,YAED,KAAC,OAAO,IAAC,KAAK,EAAC,QAAQ,GAAG,GACnB,CACV,IACG,EAEL,SAAS,IAAI,KAAC,cAAc,IAAC,aAAa,EAAE,IAAI,GAAI,EAEpD,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CACtD,aAEE,SAAS,EAAC,yBAAyB,EACnC,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,EAClD,SAAS,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAErD,MAAM,CAAC,OAAO,CAAC,IANX,KAAK,CAOP,CACN,CAAC,EAED,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,IAAI,CACzC,aAAI,SAAS,EAAC,uBAAuB,YACnC,eAAK,SAAS,EAAC,oCAAoC,aACjD,gBAAO,SAAS,EAAC,yBAAyB,YACvC,SAAS,CAAC,gBAAgB,CAAC,GACtB,EACR,YAAG,SAAS,EAAC,qBAAqB,YAC/B,SAAS,CAAC,sBAAsB,CAAC,GAChC,IACA,GACH,CACN,IACE,GACD,EAEN,cACE,SAAS,EAAC,0BAA0B,EACpC,OAAO,EAAE,iBAAiB,CAAC,eAAe,GACrC,IACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAwD;IAExD,OAAO,CACL,KAAC,4BAA4B,OACvB,KAAK,EACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CACnB,KAAC,SAAS,IACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,EAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,YAE1B,yBAAO,OAAO,CAAC,KAAK,GAAQ,GAClB,CACb,GACD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -12,7 +12,7 @@ export function useFieldAutocomplete({ disabled, formControl, onSelect, onValue,
|
|
|
12
12
|
previous: null
|
|
13
13
|
});
|
|
14
14
|
const listControl = useListControl({ suggestions, formControl });
|
|
15
|
-
const { inputRef, navigationElement, navigationInput, setFocused,
|
|
15
|
+
const { inputRef, navigationElement, navigationInput, setFocused, setFormValue, setValue, setVisible } = listControl;
|
|
16
16
|
useEffect(() => {
|
|
17
17
|
refreshCoincidences(pattern, true);
|
|
18
18
|
}, [suggestions]);
|
|
@@ -47,7 +47,7 @@ export function useFieldAutocomplete({ disabled, formControl, onSelect, onValue,
|
|
|
47
47
|
function onClickAction() {
|
|
48
48
|
setVisible(false);
|
|
49
49
|
setValue('');
|
|
50
|
-
|
|
50
|
+
setFormValue(undefined);
|
|
51
51
|
onValue && onValue(undefined);
|
|
52
52
|
}
|
|
53
53
|
function onClickBackdrop() {
|
|
@@ -69,7 +69,7 @@ export function useFieldAutocomplete({ disabled, formControl, onSelect, onValue,
|
|
|
69
69
|
onSelect(value);
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
-
|
|
72
|
+
setFormValue(value);
|
|
73
73
|
setValue(description);
|
|
74
74
|
}
|
|
75
75
|
onValue && onValue(value);
|
|
@@ -14,6 +14,6 @@ interface FieldSelectProps<T = any, E extends Element<T> = Element<T>> extends R
|
|
|
14
14
|
interface FieldSelectTemplateProps<T = any, E extends Element<T> = Element<T>> extends FieldSelectProps<T, E> {
|
|
15
15
|
render: (element: E) => ReactNode;
|
|
16
16
|
}
|
|
17
|
-
export declare function RlsFieldSelectTemplate<T = any, E extends Element<T> = Element<T>>(
|
|
17
|
+
export declare function RlsFieldSelectTemplate<T = any, E extends Element<T> = Element<T>>(props: FieldSelectTemplateProps<T, E>): import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
export declare function RlsFieldSelect<T = any>(props: FieldSelectProps<T, ListElement<T>>): import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
export {};
|
|
@@ -5,15 +5,14 @@ import { RlsIcon } from '../../atoms';
|
|
|
5
5
|
import { RlsBallot, RlsMessageFormError } from '../../molecules';
|
|
6
6
|
import { useFieldSelect } from './FieldSelectHook';
|
|
7
7
|
import './FieldSelect.css';
|
|
8
|
-
export function RlsFieldSelectTemplate(
|
|
9
|
-
const fieldSelect = useFieldSelect(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return (_jsxs("div", { ref: fieldSelect.listControl.contentRef, className: renderClassStatus('rls-field-box', { focused: fieldSelect.listControl.focused, disabled }, 'rls-field-list rls-field-select'), "rls-theme": rlsTheme, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { ref: fieldSelect.listControl.inputRef, className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: fieldSelect.listControl.value, onFocus: fieldSelect.onFocusInput, onBlur: fieldSelect.onBlurInput, onClick: fieldSelect.onClickInput, onKeyDown: fieldSelect.onKeydownInput }), _jsx("button", { className: renderClassStatus('rls-field-list__action', {
|
|
8
|
+
export function RlsFieldSelectTemplate(props) {
|
|
9
|
+
const fieldSelect = useFieldSelect(props);
|
|
10
|
+
const { render, suggestions, children, disabled, formControl, placeholder, rlsTheme } = props;
|
|
11
|
+
return (_jsxs("div", { ref: fieldSelect.listControl.contentRef, className: renderClassStatus('rls-field-box', {
|
|
12
|
+
focused: fieldSelect.listControl.focused,
|
|
13
|
+
error: formControl?.wrong,
|
|
14
|
+
disabled
|
|
15
|
+
}, 'rls-field-list rls-field-select'), "rls-theme": rlsTheme, children: [children && _jsx("label", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { ref: fieldSelect.listControl.inputRef, className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: fieldSelect.listControl.value, onFocus: fieldSelect.onFocusInput, onBlur: fieldSelect.onBlurInput, onClick: fieldSelect.onClickInput, onKeyDown: fieldSelect.onKeydownInput }), _jsx("button", { className: renderClassStatus('rls-field-list__action', {
|
|
17
16
|
visible: fieldSelect.listControl.visible
|
|
18
17
|
}), disabled: disabled, onClick: fieldSelect.onClickAction, children: _jsx(RlsIcon, { value: "arrow-ios-down" }) })] }) }), _jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }), _jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
|
|
19
18
|
visible: fieldSelect.listControl.visible,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSelect.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldSelect/FieldSelect.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,mBAAmB,CAAC;AAiB3B,MAAM,UAAU,sBAAsB,CAGpC,
|
|
1
|
+
{"version":3,"file":"FieldSelect.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldSelect/FieldSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useListControl } from '../../../hooks';
|
|
2
2
|
export function useFieldSelect({ suggestions, formControl, onSelect, onValue }) {
|
|
3
3
|
const listControl = useListControl({ suggestions, formControl });
|
|
4
|
-
const { inputRef, visible, navigationElement, navigationInput, setFocused,
|
|
4
|
+
const { inputRef, visible, navigationElement, navigationInput, setFocused, setFormValue, setValue, setVisible } = listControl;
|
|
5
5
|
function onFocusInput() {
|
|
6
6
|
setFocused(true);
|
|
7
7
|
}
|
|
@@ -50,7 +50,7 @@ export function useFieldSelect({ suggestions, formControl, onSelect, onValue })
|
|
|
50
50
|
onSelect(value);
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
|
-
|
|
53
|
+
setFormValue(value);
|
|
54
54
|
setValue(description);
|
|
55
55
|
}
|
|
56
56
|
onValue && onValue(value);
|
|
@@ -14,7 +14,7 @@ export interface ListControl<T = any> extends ListControlState {
|
|
|
14
14
|
navigationElement: (event: KeyboardEvent) => void;
|
|
15
15
|
navigationInput: (event: KeyboardEvent) => void;
|
|
16
16
|
setFocused: (focused: boolean) => void;
|
|
17
|
-
|
|
17
|
+
setFormValue(value: Undefined<T>): void;
|
|
18
18
|
setValue: (value: string) => void;
|
|
19
19
|
setVisible: (visible: boolean) => void;
|
|
20
20
|
}
|
|
@@ -12,7 +12,6 @@ export function useListControl({ suggestions, formControl }) {
|
|
|
12
12
|
});
|
|
13
13
|
const collection = useRef(new ListCollection([]));
|
|
14
14
|
const position = useRef(0);
|
|
15
|
-
const changeInternal = useRef(false);
|
|
16
15
|
const protectedValue = useRef();
|
|
17
16
|
useEffect(() => {
|
|
18
17
|
function onCloseSuggestions({ target }) {
|
|
@@ -25,17 +24,12 @@ export function useListControl({ suggestions, formControl }) {
|
|
|
25
24
|
};
|
|
26
25
|
}, []);
|
|
27
26
|
useEffect(() => {
|
|
28
|
-
formControl?.touch();
|
|
29
27
|
setState((state) => ({
|
|
30
28
|
...state,
|
|
31
29
|
higher: locationListCanTop(contentRef.current, listRef.current)
|
|
32
30
|
}));
|
|
33
31
|
}, [state.visible]);
|
|
34
32
|
useEffect(() => {
|
|
35
|
-
if (changeInternal.current) {
|
|
36
|
-
changeInternal.current = false;
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
33
|
collection.current = new ListCollection(suggestions);
|
|
40
34
|
refresh(collection.current, formControl?.value);
|
|
41
35
|
}, [suggestions, formControl?.value]);
|
|
@@ -45,12 +39,13 @@ export function useListControl({ suggestions, formControl }) {
|
|
|
45
39
|
}
|
|
46
40
|
const element = collection.find(state);
|
|
47
41
|
if (element) {
|
|
42
|
+
protectedValue.current = undefined;
|
|
48
43
|
return setValue(element.description);
|
|
49
44
|
}
|
|
50
45
|
if (!refreshProtected(collection)) {
|
|
51
46
|
protectedValue.current = state;
|
|
52
47
|
setValue('');
|
|
53
|
-
|
|
48
|
+
setFormValue(undefined);
|
|
54
49
|
}
|
|
55
50
|
}
|
|
56
51
|
function refreshProtected(collection) {
|
|
@@ -70,14 +65,12 @@ export function useListControl({ suggestions, formControl }) {
|
|
|
70
65
|
function setValue(value) {
|
|
71
66
|
setState((state) => ({ ...state, value }));
|
|
72
67
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
changeInternal.current = true;
|
|
76
|
-
formControl.setValue(value);
|
|
77
|
-
}
|
|
68
|
+
function setFormValue(value) {
|
|
69
|
+
formControl?.setValue(value);
|
|
78
70
|
}
|
|
79
71
|
function setVisible(visible) {
|
|
80
72
|
setState((state) => ({ ...state, visible }));
|
|
73
|
+
!visible && formControl?.touch();
|
|
81
74
|
}
|
|
82
75
|
function navigationInput(event) {
|
|
83
76
|
if (state.visible) {
|
|
@@ -106,7 +99,7 @@ export function useListControl({ suggestions, formControl }) {
|
|
|
106
99
|
navigationElement,
|
|
107
100
|
navigationInput,
|
|
108
101
|
setFocused,
|
|
109
|
-
|
|
102
|
+
setFormValue,
|
|
110
103
|
setValue,
|
|
111
104
|
setVisible
|
|
112
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListControlHook.js","sourceRoot":"","sources":["../../../src/hooks/ListControlHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAA4B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA0B9E,MAAM,UAAU,cAAc,CAAU,EACtC,WAAW,EACX,WAAW,EACS;IACpB,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEhD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB;QACnD,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,cAAc,CAAI,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,cAAc,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ListControlHook.js","sourceRoot":"","sources":["../../../src/hooks/ListControlHook.ts"],"names":[],"mappings":"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"}
|