@linzjs/lui 17.4.0 → 17.5.2
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/CHANGELOG.md +21 -0
- package/README.md +0 -1
- package/dist/components/LuiSearchBox/LuiSearchBox.d.ts +1 -0
- package/dist/components/LuiSearchInput/LuiSearchInput.d.ts +1 -0
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/dist/lui.esm.js +33 -2
- package/dist/lui.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/lui.esm.js
CHANGED
|
@@ -55882,6 +55882,10 @@ var LuiSearchInput = function (props) {
|
|
|
55882
55882
|
var _e = useState(false), isLoading = _e[0], setIsLoading = _e[1];
|
|
55883
55883
|
var inputRef = useRef(null);
|
|
55884
55884
|
var selectedRef = useRef(null);
|
|
55885
|
+
//clear result after search types changed
|
|
55886
|
+
useEffect(function () {
|
|
55887
|
+
setResults([]);
|
|
55888
|
+
}, [props.getOptions]);
|
|
55885
55889
|
function setInputValue(value) {
|
|
55886
55890
|
setTypedValue(props.inputTransformer ? props.inputTransformer(value) : value);
|
|
55887
55891
|
}
|
|
@@ -55986,6 +55990,25 @@ var LuiSearchInput = function (props) {
|
|
|
55986
55990
|
},
|
|
55987
55991
|
} })) : null;
|
|
55988
55992
|
var searchIcon = (React__default.createElement(LuiIcon, { className: 'LuiSearchInput-startIconPosition', name: "ic_search", size: "md", alt: "search", spanProps: { onClick: function () { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); } } }));
|
|
55993
|
+
var typeMore = 'You need to type a few more characters';
|
|
55994
|
+
function enoughChars(input) {
|
|
55995
|
+
if (typeof props.minCharactersForSearch === 'number')
|
|
55996
|
+
return input.length >= props.minCharactersForSearch;
|
|
55997
|
+
else
|
|
55998
|
+
return false;
|
|
55999
|
+
}
|
|
56000
|
+
function noOptionsMessage(inputValue) {
|
|
56001
|
+
if (inputValue === '') {
|
|
56002
|
+
return null;
|
|
56003
|
+
}
|
|
56004
|
+
if (!enoughChars(inputValue)) {
|
|
56005
|
+
return typeMore;
|
|
56006
|
+
}
|
|
56007
|
+
if (props.name)
|
|
56008
|
+
return "The " + props.name + " could not be displayed or does not exist.";
|
|
56009
|
+
else
|
|
56010
|
+
return null;
|
|
56011
|
+
}
|
|
55989
56012
|
return (React__default.createElement("div", { className: "LuiSearchInput" },
|
|
55990
56013
|
React__default.createElement("span", { className: "LuiSearchInput-inputWrapper" },
|
|
55991
56014
|
searchIcon,
|
|
@@ -55994,10 +56017,17 @@ var LuiSearchInput = function (props) {
|
|
|
55994
56017
|
setHaveFocus(true);
|
|
55995
56018
|
},
|
|
55996
56019
|
// This timeout could be a little brittle but allows the menu to stay open long enough to click it
|
|
55997
|
-
onBlur: function () { return setTimeout(function () { return setHaveFocus(false); },
|
|
56020
|
+
onBlur: function () { return setTimeout(function () { return setHaveFocus(false); }, 200); } }),
|
|
55998
56021
|
cancelIcon),
|
|
55999
56022
|
(isLoading || results.length > 0) && haveFocus && (React__default.createElement("div", null,
|
|
56000
56023
|
React__default.createElement(ResultsDisplay, { results: results, selectedId: selectedId, setSelectedId: setSelectedId, selectedRef: selectedRef, onClick: selectItem, isLoading: isLoading, renderItem: props.renderItem }))),
|
|
56024
|
+
props.name &&
|
|
56025
|
+
haveFocus &&
|
|
56026
|
+
results.length === 0 &&
|
|
56027
|
+
!isLoading &&
|
|
56028
|
+
noOptionsMessage(typedValue) && (React__default.createElement(React__default.Fragment, null,
|
|
56029
|
+
React__default.createElement("hr", { className: "LuiSearchInput-resultSeparator" }),
|
|
56030
|
+
React__default.createElement("div", { "data-testid": "no-result-msg", className: "LuiSearchInput-disclaimer" }, noOptionsMessage(typedValue)))),
|
|
56001
56031
|
props.disclaimer && haveFocus && (React__default.createElement(React__default.Fragment, null,
|
|
56002
56032
|
React__default.createElement("hr", { className: "LuiSearchInput-resultSeparator" }),
|
|
56003
56033
|
React__default.createElement("div", { "data-testid": "disclaimer", className: "LuiSearchInput-disclaimer" }, props.disclaimer)))));
|
|
@@ -56031,7 +56061,7 @@ var LuiSearchBox = function (_a) {
|
|
|
56031
56061
|
return (React__default.createElement("div", { className: "LuiSearchBox" },
|
|
56032
56062
|
React__default.createElement(LuiSelectMenu, { menuButton: React__default.createElement(LuiSearchBoxButton, null, selectedMenuOption.title) }, renderSelectMenu(searchBoxOptions, handleMenuSelected)),
|
|
56033
56063
|
React__default.createElement("div", { className: "LuiSearchBox-right" },
|
|
56034
|
-
React__default.createElement(LuiSearchInput, { minCharactersForSearch: 2, placeholderText: selectedMenuOption.placeholderText, getOptions: selectedMenuOption.getOption, onSelectOption: selectedMenuOption.onSelectOption, renderItem: selectedMenuOption.renderItem
|
|
56064
|
+
React__default.createElement(LuiSearchInput, { name: selectedMenuOption.name ? selectedMenuOption.name : undefined, minCharactersForSearch: 2, placeholderText: selectedMenuOption.placeholderText, getOptions: selectedMenuOption.getOption, onSelectOption: selectedMenuOption.onSelectOption, renderItem: selectedMenuOption.renderItem
|
|
56035
56065
|
? selectedMenuOption.renderItem
|
|
56036
56066
|
: function (item) {
|
|
56037
56067
|
return React__default.createElement("span", { style: resultStyle$1 }, item.description);
|
|
@@ -56084,6 +56114,7 @@ var searchBoxOptions = [
|
|
|
56084
56114
|
groupTitle: 'Title',
|
|
56085
56115
|
value: 'address',
|
|
56086
56116
|
title: 'Address',
|
|
56117
|
+
name: 'address',
|
|
56087
56118
|
placeholderText: 'Enter a place, street or address. e.g. Newlands',
|
|
56088
56119
|
disclaimer: 'This is a default disclaimer, add your own search options',
|
|
56089
56120
|
getOption: getDefaultOptions,
|