@entur/dropdown 5.0.8 → 5.0.9
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/Dropdown.d.ts +7 -1
- package/dist/MultiSelect.d.ts +7 -1
- package/dist/SearchableDropdown.d.ts +7 -1
- package/dist/dropdown.cjs.development.js +76 -41
- package/dist/dropdown.cjs.development.js.map +1 -1
- package/dist/dropdown.cjs.production.min.js +1 -1
- package/dist/dropdown.cjs.production.min.js.map +1 -1
- package/dist/dropdown.esm.js +77 -42
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +156 -159
- package/dist/utils.d.ts +2 -0
- package/package.json +4 -4
package/dist/dropdown.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mergeRefs, debounce, useRandomId, warnAboutMissingStyles } from '@entur/utils';
|
|
2
|
-
import React, { useState, useRef } from 'react';
|
|
2
|
+
import React, { useState, useRef, useEffect } from 'react';
|
|
3
3
|
import Downshift, { useSelect, useCombobox, useMultipleSelection } from 'downshift';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import { BaseFormControl, VariantProvider, FeedbackText, Checkbox } from '@entur/form';
|
|
@@ -835,7 +835,7 @@ debounceTimeout) {
|
|
|
835
835
|
return isItemsFunction ? itemsOrItemsResolver : function () {
|
|
836
836
|
return Promise.resolve(itemsOrItemsResolver);
|
|
837
837
|
};
|
|
838
|
-
}, [isItemsFunction]);
|
|
838
|
+
}, [itemsOrItemsResolver, isItemsFunction]);
|
|
839
839
|
var _React$useReducer = React.useReducer(reducer, {
|
|
840
840
|
items: isItemsFunction ? [] : itemsOrItemsResolver,
|
|
841
841
|
loading: false
|
|
@@ -1313,7 +1313,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1313
1313
|
className: "eds-dropdown__list__item__text"
|
|
1314
1314
|
}, item.label, React.createElement(VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React.createElement("span", null, item.icons.map(function (Icon) {
|
|
1315
1315
|
return React.createElement(Icon, {
|
|
1316
|
-
key: Icon.displayName,
|
|
1316
|
+
key: item.label + item.value + Icon.displayName,
|
|
1317
1317
|
inline: true,
|
|
1318
1318
|
className: "eds-dropdown__list__item__icon"
|
|
1319
1319
|
});
|
|
@@ -1407,7 +1407,7 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1407
1407
|
selectedItems = _ref3.selectedItems;
|
|
1408
1408
|
if (loading) {
|
|
1409
1409
|
return React.createElement("div", {
|
|
1410
|
-
className: 'eds-
|
|
1410
|
+
className: 'eds-dropdown__appendix__toggle-button--loading-dots'
|
|
1411
1411
|
}, React.createElement(LoadingDots, {
|
|
1412
1412
|
"aria-label": loadingText
|
|
1413
1413
|
}));
|
|
@@ -1416,13 +1416,13 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1416
1416
|
return null;
|
|
1417
1417
|
}
|
|
1418
1418
|
return React.createElement("div", {
|
|
1419
|
-
className: "eds-
|
|
1419
|
+
className: "eds-dropdown__appendix"
|
|
1420
1420
|
}, clearable && (selectedItems == null ? void 0 : selectedItems.length) > 0 && selectedItems[0] !== null && React.createElement(React.Fragment, null, React.createElement(ClearableButton, {
|
|
1421
1421
|
onClear: onClear,
|
|
1422
1422
|
focusable: true,
|
|
1423
1423
|
labelClearSelectedItems: labelClearSelectedItems
|
|
1424
1424
|
}), React.createElement("div", {
|
|
1425
|
-
className: "eds-
|
|
1425
|
+
className: "eds-dropdown__appendix__divider"
|
|
1426
1426
|
})), React.createElement(ToggleButton, {
|
|
1427
1427
|
"aria-hidden": ariaHiddenToggleButton,
|
|
1428
1428
|
ariaLabelCloseList: ariaLabelCloseList,
|
|
@@ -1442,9 +1442,9 @@ var ClearableButton = function ClearableButton(_ref4) {
|
|
|
1442
1442
|
"aria-hidden": "true",
|
|
1443
1443
|
placement: "top",
|
|
1444
1444
|
content: labelClearSelectedItems,
|
|
1445
|
-
className: "eds-
|
|
1445
|
+
className: "eds-dropdown__appendix__clear-button__tooltip"
|
|
1446
1446
|
}, React.createElement(IconButton, {
|
|
1447
|
-
className: "eds-
|
|
1447
|
+
className: "eds-dropdown__appendix__clear-button",
|
|
1448
1448
|
type: "button",
|
|
1449
1449
|
tabIndex: focusable ? 0 : 1,
|
|
1450
1450
|
onClick: onClear,
|
|
@@ -1465,8 +1465,8 @@ var ToggleButton = function ToggleButton(_ref5) {
|
|
|
1465
1465
|
_ref5$focusable = _ref5.focusable,
|
|
1466
1466
|
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1467
1467
|
return React.createElement(IconButton, _extends({}, getToggleButtonProps({
|
|
1468
|
-
className: classNames('eds-
|
|
1469
|
-
'eds-
|
|
1468
|
+
className: classNames('eds-dropdown__appendix__toggle-button', {
|
|
1469
|
+
'eds-dropdown__appendix__toggle-button--open': isOpen
|
|
1470
1470
|
}),
|
|
1471
1471
|
'aria-labelledby': undefined
|
|
1472
1472
|
}), {
|
|
@@ -1489,9 +1489,19 @@ function lowerCaseFilterTest(item, input) {
|
|
|
1489
1489
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
1490
1490
|
return inputRegex.test(item.label);
|
|
1491
1491
|
}
|
|
1492
|
+
function noFilter(
|
|
1493
|
+
//@ts-expect-error only here to comply with dropdown filter API
|
|
1494
|
+
item,
|
|
1495
|
+
//@ts-expect-error only here to comply with dropdown filter API
|
|
1496
|
+
input) {
|
|
1497
|
+
return true;
|
|
1498
|
+
}
|
|
1492
1499
|
var itemToString = function itemToString(item) {
|
|
1493
1500
|
return item ? item.label : '';
|
|
1494
1501
|
};
|
|
1502
|
+
var isFunctionWithQueryArgument = function isFunctionWithQueryArgument(object) {
|
|
1503
|
+
return typeof object === 'function' && object.length > 0;
|
|
1504
|
+
};
|
|
1495
1505
|
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1496
1506
|
var listItems = _ref.listItems,
|
|
1497
1507
|
selectedItems = _ref.selectedItems,
|
|
@@ -1628,7 +1638,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
|
1628
1638
|
};
|
|
1629
1639
|
/* end a11y utils */
|
|
1630
1640
|
|
|
1631
|
-
var _excluded$3 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "
|
|
1641
|
+
var _excluded$3 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "items", "itemFilter", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
|
|
1632
1642
|
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1633
1643
|
var _selectedItem$label;
|
|
1634
1644
|
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
@@ -1642,9 +1652,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1642
1652
|
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
1643
1653
|
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
1644
1654
|
feedback = _ref.feedback,
|
|
1645
|
-
_ref$itemFilter = _ref.itemFilter,
|
|
1646
|
-
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1647
1655
|
initialItems = _ref.items,
|
|
1656
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1657
|
+
itemFilter = _ref$itemFilter === void 0 ? isFunctionWithQueryArgument(initialItems) ? noFilter : lowerCaseFilterTest : _ref$itemFilter,
|
|
1648
1658
|
label = _ref.label,
|
|
1649
1659
|
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
1650
1660
|
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
@@ -1658,6 +1668,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1658
1668
|
value = _ref.selectedItem,
|
|
1659
1669
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1660
1670
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1671
|
+
_ref$selectOnTab = _ref.selectOnTab,
|
|
1672
|
+
selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
|
|
1661
1673
|
style = _ref.style,
|
|
1662
1674
|
_ref$variant = _ref.variant,
|
|
1663
1675
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
@@ -1684,7 +1696,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1684
1696
|
};
|
|
1685
1697
|
var updateListItems = function updateListItems(_ref3) {
|
|
1686
1698
|
var inputValue = _ref3.inputValue;
|
|
1687
|
-
|
|
1699
|
+
var shouldRefetchItems = isFunctionWithQueryArgument(initialItems);
|
|
1700
|
+
if (shouldRefetchItems) fetchItems(inputValue != null ? inputValue : EMPTY_INPUT);
|
|
1688
1701
|
filterListItems({
|
|
1689
1702
|
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
1690
1703
|
});
|
|
@@ -1707,7 +1720,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1707
1720
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
1708
1721
|
case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1709
1722
|
{
|
|
1710
|
-
|
|
1723
|
+
updateListItems({
|
|
1711
1724
|
inputValue: EMPTY_INPUT
|
|
1712
1725
|
});
|
|
1713
1726
|
return _extends({}, changes, {
|
|
@@ -1814,16 +1827,14 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1814
1827
|
prepend: prepend,
|
|
1815
1828
|
readOnly: readOnly,
|
|
1816
1829
|
variant: variant
|
|
1817
|
-
}, rest), !hideSelectedItem && selectedItem &&
|
|
1818
|
-
className: "eds-
|
|
1819
|
-
"aria-hidden": "true"
|
|
1820
|
-
}, React.createElement("span", {
|
|
1821
|
-
className: "eds-dropdown__selected-item",
|
|
1830
|
+
}, rest), !hideSelectedItem && selectedItem !== null && inputValue === '' && React.createElement("span", {
|
|
1831
|
+
className: "eds-dropdown--searchable__selected-item",
|
|
1832
|
+
"aria-hidden": "true",
|
|
1822
1833
|
onClick: function onClick() {
|
|
1823
1834
|
var _inputRef$current2;
|
|
1824
1835
|
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1825
1836
|
}
|
|
1826
|
-
}, selectedItem.label)
|
|
1837
|
+
}, selectedItem.label), React.createElement("input", _extends({
|
|
1827
1838
|
className: "eds-dropdown__input eds-form-control",
|
|
1828
1839
|
disabled: readOnly || disabled,
|
|
1829
1840
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder
|
|
@@ -1837,6 +1848,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1837
1848
|
onFocus: function onFocus() {
|
|
1838
1849
|
setHideSelectedItem(true);
|
|
1839
1850
|
},
|
|
1851
|
+
onKeyDown: function onKeyDown(e) {
|
|
1852
|
+
if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
|
|
1853
|
+
},
|
|
1840
1854
|
ref: inputRef
|
|
1841
1855
|
})))), React.createElement(DropdownList, {
|
|
1842
1856
|
isOpen: isOpen,
|
|
@@ -1851,7 +1865,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1851
1865
|
}));
|
|
1852
1866
|
};
|
|
1853
1867
|
|
|
1854
|
-
var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "
|
|
1868
|
+
var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "items", "itemFilter", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "listStyle", "loadingText", "maxChips", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "selectOnTab", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
|
|
1855
1869
|
var MultiSelect = function MultiSelect(_ref) {
|
|
1856
1870
|
var className = _ref.className,
|
|
1857
1871
|
_ref$clearable = _ref.clearable,
|
|
@@ -1864,9 +1878,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1864
1878
|
feedback = _ref.feedback,
|
|
1865
1879
|
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1866
1880
|
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1867
|
-
_ref$itemFilter = _ref.itemFilter,
|
|
1868
|
-
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1869
1881
|
initialItems = _ref.items,
|
|
1882
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1883
|
+
itemFilter = _ref$itemFilter === void 0 ? isFunctionWithQueryArgument(initialItems) ? noFilter : lowerCaseFilterTest : _ref$itemFilter,
|
|
1870
1884
|
label = _ref.label,
|
|
1871
1885
|
_ref$labelAllItemsSel = _ref.labelAllItemsSelected,
|
|
1872
1886
|
labelAllItemsSelected = _ref$labelAllItemsSel === void 0 ? 'Alle valgt' : _ref$labelAllItemsSel,
|
|
@@ -1885,9 +1899,12 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1885
1899
|
placeholder = _ref.placeholder,
|
|
1886
1900
|
_ref$readOnly = _ref.readOnly,
|
|
1887
1901
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1888
|
-
selectedItems = _ref.selectedItems,
|
|
1902
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
1903
|
+
selectedItems = _ref$selectedItems === void 0 ? [] : _ref$selectedItems,
|
|
1889
1904
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1890
1905
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1906
|
+
_ref$selectOnTab = _ref.selectOnTab,
|
|
1907
|
+
selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
|
|
1891
1908
|
style = _ref.style,
|
|
1892
1909
|
_ref$variant = _ref.variant,
|
|
1893
1910
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
@@ -1911,6 +1928,10 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1911
1928
|
lastRemovedItem = _React$useState2[0],
|
|
1912
1929
|
setLastRemovedItem = _React$useState2[1];
|
|
1913
1930
|
var inputRef = useRef(null);
|
|
1931
|
+
useEffect(function () {
|
|
1932
|
+
//@ts-expect-error this is done to aid developers debug wrong prop usage
|
|
1933
|
+
if (rest.selectedItem !== undefined) console.warn("Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?");
|
|
1934
|
+
}, []);
|
|
1914
1935
|
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1915
1936
|
normalizedItems = _useResolvedItems.items,
|
|
1916
1937
|
loading = _useResolvedItems.loading,
|
|
@@ -1940,9 +1961,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1940
1961
|
};
|
|
1941
1962
|
var updateListItems = function updateListItems(_ref3) {
|
|
1942
1963
|
var inputValue = _ref3.inputValue;
|
|
1943
|
-
var shouldRefetchItems =
|
|
1944
|
-
// fetch items only if user provides a function with inputValue argument as items
|
|
1945
|
-
typeof initialItems === 'function' && initialItems.length > 0; // Function.length == number of arguments
|
|
1964
|
+
var shouldRefetchItems = isFunctionWithQueryArgument(initialItems);
|
|
1946
1965
|
if (shouldRefetchItems) fetchItems(inputValue != null ? inputValue : EMPTY_INPUT);
|
|
1947
1966
|
filterListItems({
|
|
1948
1967
|
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
@@ -2046,6 +2065,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2046
2065
|
// reset input value when leaving input field
|
|
2047
2066
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
2048
2067
|
{
|
|
2068
|
+
updateListItems({
|
|
2069
|
+
inputValue: EMPTY_INPUT
|
|
2070
|
+
});
|
|
2049
2071
|
return _extends({}, changes, {
|
|
2050
2072
|
inputValue: EMPTY_INPUT
|
|
2051
2073
|
});
|
|
@@ -2138,16 +2160,16 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2138
2160
|
label: label,
|
|
2139
2161
|
labelId: getLabelProps().id,
|
|
2140
2162
|
labelProps: getLabelProps(),
|
|
2141
|
-
readOnly: readOnly,
|
|
2142
|
-
variant: variant
|
|
2143
|
-
}, rest), React.createElement("div", {
|
|
2144
|
-
className: classNames('eds-dropdown__selected-items-and-input', {
|
|
2145
|
-
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
2146
|
-
}),
|
|
2147
2163
|
onClick: function onClick(e) {
|
|
2148
2164
|
var _inputRef$current4;
|
|
2149
2165
|
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
2150
|
-
}
|
|
2166
|
+
},
|
|
2167
|
+
readOnly: readOnly,
|
|
2168
|
+
variant: variant
|
|
2169
|
+
}, rest), React.createElement("div", {
|
|
2170
|
+
className: classNames('eds-dropdown--multiselect__selected-items-and-input', {
|
|
2171
|
+
'eds-dropdown--multiselect__selected-items-and-input--filled': hasSelectedItems
|
|
2172
|
+
})
|
|
2151
2173
|
}, selectedItems.length < maxChips ? React.createElement(React.Fragment, null, selectedItems.length > 1 ? React.createElement(VisuallyHidden, {
|
|
2152
2174
|
onClick: function onClick() {
|
|
2153
2175
|
var _inputRef$current5;
|
|
@@ -2184,14 +2206,22 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2184
2206
|
placeholder: placeholder,
|
|
2185
2207
|
className: "eds-dropdown__input eds-form-control",
|
|
2186
2208
|
disabled: readOnly || disabled
|
|
2187
|
-
}, getInputProps(
|
|
2209
|
+
}, getInputProps(_extends({
|
|
2210
|
+
onKeyDown: function onKeyDown(e) {
|
|
2211
|
+
if (selectOnTab && e.key === 'Tab') handleListItemClicked({
|
|
2212
|
+
clickedItem: listItems[highlightedIndex],
|
|
2213
|
+
onChange: onChange,
|
|
2214
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2215
|
+
});
|
|
2216
|
+
}
|
|
2217
|
+
}, getDropdownProps({
|
|
2188
2218
|
onClick: function onClick(e) {
|
|
2189
2219
|
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
2190
2220
|
},
|
|
2191
2221
|
preventKeyAction: isOpen,
|
|
2192
2222
|
ref: inputRef,
|
|
2193
2223
|
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2194
|
-
})))))), React.createElement(DropdownList, {
|
|
2224
|
+
}))))))), React.createElement(DropdownList, {
|
|
2195
2225
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2196
2226
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2197
2227
|
getItemProps: getItemProps,
|
|
@@ -2209,7 +2239,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2209
2239
|
}));
|
|
2210
2240
|
};
|
|
2211
2241
|
|
|
2212
|
-
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
|
|
2242
|
+
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
|
|
2213
2243
|
var Dropdown = function Dropdown(_ref) {
|
|
2214
2244
|
var _ref3, _selectedItem$label;
|
|
2215
2245
|
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
@@ -2235,6 +2265,8 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2235
2265
|
selectedItem = _ref.selectedItem,
|
|
2236
2266
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
2237
2267
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
2268
|
+
_ref$selectOnTab = _ref.selectOnTab,
|
|
2269
|
+
selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
|
|
2238
2270
|
style = _ref.style,
|
|
2239
2271
|
_ref$variant = _ref.variant,
|
|
2240
2272
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
@@ -2304,12 +2336,15 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2304
2336
|
readOnly: readOnly,
|
|
2305
2337
|
variant: variant
|
|
2306
2338
|
}, rest), React.createElement("div", _extends({
|
|
2307
|
-
className: "eds-dropdown__selected-item
|
|
2339
|
+
className: "eds-dropdown__selected-item"
|
|
2308
2340
|
}, getToggleButtonProps({
|
|
2309
|
-
id: undefined
|
|
2341
|
+
id: undefined,
|
|
2342
|
+
onKeyDown: function onKeyDown(e) {
|
|
2343
|
+
if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(normalizedItems[highlightedIndex]);
|
|
2344
|
+
}
|
|
2310
2345
|
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
|
|
2311
|
-
className: classNames('eds-dropdown__selected-
|
|
2312
|
-
'eds-dropdown__selected-
|
|
2346
|
+
className: classNames('eds-dropdown__selected-item__placeholder', {
|
|
2347
|
+
'eds-dropdown__selected-item__placeholder--readonly': readOnly
|
|
2313
2348
|
})
|
|
2314
2349
|
}, placeholder)) != null ? _ref3 : '')), React.createElement(DropdownList, {
|
|
2315
2350
|
getItemProps: getItemProps,
|