@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.d.ts
CHANGED
|
@@ -19,6 +19,12 @@ export type DropdownProps = {
|
|
|
19
19
|
*/
|
|
20
20
|
clearable?: boolean;
|
|
21
21
|
/** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
22
|
+
selectOnTab?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated
|
|
25
|
+
* Bruk selectOnTab i stedet
|
|
26
|
+
*
|
|
27
|
+
* Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
22
28
|
selectOnBlur?: boolean;
|
|
23
29
|
/** Deaktiver dropdown-en */
|
|
24
30
|
disabled?: boolean;
|
|
@@ -59,4 +65,4 @@ export type DropdownProps = {
|
|
|
59
65
|
*/
|
|
60
66
|
ariaLabelOpenList?: string;
|
|
61
67
|
};
|
|
62
|
-
export declare const Dropdown: ({ ariaLabelCloseList, ariaLabelOpenList, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, style, variant, ...rest }: DropdownProps) => React.JSX.Element;
|
|
68
|
+
export declare const Dropdown: ({ ariaLabelCloseList, ariaLabelOpenList, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, selectOnTab, style, variant, ...rest }: DropdownProps) => React.JSX.Element;
|
package/dist/MultiSelect.d.ts
CHANGED
|
@@ -59,6 +59,12 @@ export type MultiSelectProps = {
|
|
|
59
59
|
*/
|
|
60
60
|
clearInputOnSelect?: boolean;
|
|
61
61
|
/** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
62
|
+
selectOnTab?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated
|
|
65
|
+
* Bruk selectOnTab i stedet
|
|
66
|
+
*
|
|
67
|
+
* Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
62
68
|
selectOnBlur?: boolean;
|
|
63
69
|
style?: React.CSSProperties;
|
|
64
70
|
/** Styling som sendes ned til MultiSelect-lista */
|
|
@@ -108,4 +114,4 @@ export type MultiSelectProps = {
|
|
|
108
114
|
*/
|
|
109
115
|
ariaLabelSelectedItem?: string;
|
|
110
116
|
};
|
|
111
|
-
export declare const MultiSelect: ({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, feedback, hideSelectAll,
|
|
117
|
+
export declare const MultiSelect: ({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, feedback, hideSelectAll, items: initialItems, itemFilter, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, listStyle, loadingText, maxChips, noMatchesText, onChange, placeholder, readOnly, selectedItems, selectOnBlur, selectOnTab, style, variant, ariaLabelChosenSingular, ariaLabelChosenPlural, ariaLabelCloseList, ariaLabelJumpToInput, ariaLabelOpenList, ariaLabelRemoveSelected, ariaLabelSelectedItem, ...rest }: MultiSelectProps) => React.JSX.Element;
|
|
@@ -33,6 +33,12 @@ export type SearchableDropdownProps = {
|
|
|
33
33
|
/** Deaktiver dropdown-en */
|
|
34
34
|
disabled?: boolean;
|
|
35
35
|
/** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
36
|
+
selectOnTab?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated
|
|
39
|
+
* Bruk selectOnTab i stedet
|
|
40
|
+
*
|
|
41
|
+
* Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
36
42
|
selectOnBlur?: boolean;
|
|
37
43
|
/** Gjør dropdown-en til å kun kunne leses
|
|
38
44
|
* @default false
|
|
@@ -67,4 +73,4 @@ export type SearchableDropdownProps = {
|
|
|
67
73
|
*/
|
|
68
74
|
ariaLabelOpenList?: string;
|
|
69
75
|
};
|
|
70
|
-
export declare const SearchableDropdown: ({ ariaLabelCloseList, ariaLabelOpenList, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback,
|
|
76
|
+
export declare const SearchableDropdown: ({ ariaLabelCloseList, ariaLabelOpenList, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback, items: initialItems, itemFilter, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, selectOnTab, style, variant, ...rest }: SearchableDropdownProps) => React.JSX.Element;
|
|
@@ -839,7 +839,7 @@ debounceTimeout) {
|
|
|
839
839
|
return isItemsFunction ? itemsOrItemsResolver : function () {
|
|
840
840
|
return Promise.resolve(itemsOrItemsResolver);
|
|
841
841
|
};
|
|
842
|
-
}, [isItemsFunction]);
|
|
842
|
+
}, [itemsOrItemsResolver, isItemsFunction]);
|
|
843
843
|
var _React$useReducer = React.useReducer(reducer, {
|
|
844
844
|
items: isItemsFunction ? [] : itemsOrItemsResolver,
|
|
845
845
|
loading: false
|
|
@@ -1317,7 +1317,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1317
1317
|
className: "eds-dropdown__list__item__text"
|
|
1318
1318
|
}, item.label, React.createElement(a11y.VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React.createElement("span", null, item.icons.map(function (Icon) {
|
|
1319
1319
|
return React.createElement(Icon, {
|
|
1320
|
-
key: Icon.displayName,
|
|
1320
|
+
key: item.label + item.value + Icon.displayName,
|
|
1321
1321
|
inline: true,
|
|
1322
1322
|
className: "eds-dropdown__list__item__icon"
|
|
1323
1323
|
});
|
|
@@ -1411,7 +1411,7 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1411
1411
|
selectedItems = _ref3.selectedItems;
|
|
1412
1412
|
if (loading) {
|
|
1413
1413
|
return React.createElement("div", {
|
|
1414
|
-
className: 'eds-
|
|
1414
|
+
className: 'eds-dropdown__appendix__toggle-button--loading-dots'
|
|
1415
1415
|
}, React.createElement(loader.LoadingDots, {
|
|
1416
1416
|
"aria-label": loadingText
|
|
1417
1417
|
}));
|
|
@@ -1420,13 +1420,13 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1420
1420
|
return null;
|
|
1421
1421
|
}
|
|
1422
1422
|
return React.createElement("div", {
|
|
1423
|
-
className: "eds-
|
|
1423
|
+
className: "eds-dropdown__appendix"
|
|
1424
1424
|
}, clearable && (selectedItems == null ? void 0 : selectedItems.length) > 0 && selectedItems[0] !== null && React.createElement(React.Fragment, null, React.createElement(ClearableButton, {
|
|
1425
1425
|
onClear: onClear,
|
|
1426
1426
|
focusable: true,
|
|
1427
1427
|
labelClearSelectedItems: labelClearSelectedItems
|
|
1428
1428
|
}), React.createElement("div", {
|
|
1429
|
-
className: "eds-
|
|
1429
|
+
className: "eds-dropdown__appendix__divider"
|
|
1430
1430
|
})), React.createElement(ToggleButton, {
|
|
1431
1431
|
"aria-hidden": ariaHiddenToggleButton,
|
|
1432
1432
|
ariaLabelCloseList: ariaLabelCloseList,
|
|
@@ -1446,9 +1446,9 @@ var ClearableButton = function ClearableButton(_ref4) {
|
|
|
1446
1446
|
"aria-hidden": "true",
|
|
1447
1447
|
placement: "top",
|
|
1448
1448
|
content: labelClearSelectedItems,
|
|
1449
|
-
className: "eds-
|
|
1449
|
+
className: "eds-dropdown__appendix__clear-button__tooltip"
|
|
1450
1450
|
}, React.createElement(button.IconButton, {
|
|
1451
|
-
className: "eds-
|
|
1451
|
+
className: "eds-dropdown__appendix__clear-button",
|
|
1452
1452
|
type: "button",
|
|
1453
1453
|
tabIndex: focusable ? 0 : 1,
|
|
1454
1454
|
onClick: onClear,
|
|
@@ -1469,8 +1469,8 @@ var ToggleButton = function ToggleButton(_ref5) {
|
|
|
1469
1469
|
_ref5$focusable = _ref5.focusable,
|
|
1470
1470
|
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1471
1471
|
return React.createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1472
|
-
className: classNames('eds-
|
|
1473
|
-
'eds-
|
|
1472
|
+
className: classNames('eds-dropdown__appendix__toggle-button', {
|
|
1473
|
+
'eds-dropdown__appendix__toggle-button--open': isOpen
|
|
1474
1474
|
}),
|
|
1475
1475
|
'aria-labelledby': undefined
|
|
1476
1476
|
}), {
|
|
@@ -1493,9 +1493,19 @@ function lowerCaseFilterTest(item, input) {
|
|
|
1493
1493
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
1494
1494
|
return inputRegex.test(item.label);
|
|
1495
1495
|
}
|
|
1496
|
+
function noFilter(
|
|
1497
|
+
//@ts-expect-error only here to comply with dropdown filter API
|
|
1498
|
+
item,
|
|
1499
|
+
//@ts-expect-error only here to comply with dropdown filter API
|
|
1500
|
+
input) {
|
|
1501
|
+
return true;
|
|
1502
|
+
}
|
|
1496
1503
|
var itemToString = function itemToString(item) {
|
|
1497
1504
|
return item ? item.label : '';
|
|
1498
1505
|
};
|
|
1506
|
+
var isFunctionWithQueryArgument = function isFunctionWithQueryArgument(object) {
|
|
1507
|
+
return typeof object === 'function' && object.length > 0;
|
|
1508
|
+
};
|
|
1499
1509
|
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1500
1510
|
var listItems = _ref.listItems,
|
|
1501
1511
|
selectedItems = _ref.selectedItems,
|
|
@@ -1632,7 +1642,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
|
1632
1642
|
};
|
|
1633
1643
|
/* end a11y utils */
|
|
1634
1644
|
|
|
1635
|
-
var _excluded$3 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "
|
|
1645
|
+
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"];
|
|
1636
1646
|
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1637
1647
|
var _selectedItem$label;
|
|
1638
1648
|
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
@@ -1646,9 +1656,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1646
1656
|
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
1647
1657
|
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
1648
1658
|
feedback = _ref.feedback,
|
|
1649
|
-
_ref$itemFilter = _ref.itemFilter,
|
|
1650
|
-
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1651
1659
|
initialItems = _ref.items,
|
|
1660
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1661
|
+
itemFilter = _ref$itemFilter === void 0 ? isFunctionWithQueryArgument(initialItems) ? noFilter : lowerCaseFilterTest : _ref$itemFilter,
|
|
1652
1662
|
label = _ref.label,
|
|
1653
1663
|
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
1654
1664
|
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
@@ -1662,6 +1672,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1662
1672
|
value = _ref.selectedItem,
|
|
1663
1673
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1664
1674
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1675
|
+
_ref$selectOnTab = _ref.selectOnTab,
|
|
1676
|
+
selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
|
|
1665
1677
|
style = _ref.style,
|
|
1666
1678
|
_ref$variant = _ref.variant,
|
|
1667
1679
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
@@ -1688,7 +1700,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1688
1700
|
};
|
|
1689
1701
|
var updateListItems = function updateListItems(_ref3) {
|
|
1690
1702
|
var inputValue = _ref3.inputValue;
|
|
1691
|
-
|
|
1703
|
+
var shouldRefetchItems = isFunctionWithQueryArgument(initialItems);
|
|
1704
|
+
if (shouldRefetchItems) fetchItems(inputValue != null ? inputValue : EMPTY_INPUT);
|
|
1692
1705
|
filterListItems({
|
|
1693
1706
|
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
1694
1707
|
});
|
|
@@ -1711,7 +1724,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1711
1724
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1712
1725
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1713
1726
|
{
|
|
1714
|
-
|
|
1727
|
+
updateListItems({
|
|
1715
1728
|
inputValue: EMPTY_INPUT
|
|
1716
1729
|
});
|
|
1717
1730
|
return _extends({}, changes, {
|
|
@@ -1818,16 +1831,14 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1818
1831
|
prepend: prepend,
|
|
1819
1832
|
readOnly: readOnly,
|
|
1820
1833
|
variant: variant
|
|
1821
|
-
}, rest), !hideSelectedItem && selectedItem &&
|
|
1822
|
-
className: "eds-
|
|
1823
|
-
"aria-hidden": "true"
|
|
1824
|
-
}, React.createElement("span", {
|
|
1825
|
-
className: "eds-dropdown__selected-item",
|
|
1834
|
+
}, rest), !hideSelectedItem && selectedItem !== null && inputValue === '' && React.createElement("span", {
|
|
1835
|
+
className: "eds-dropdown--searchable__selected-item",
|
|
1836
|
+
"aria-hidden": "true",
|
|
1826
1837
|
onClick: function onClick() {
|
|
1827
1838
|
var _inputRef$current2;
|
|
1828
1839
|
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1829
1840
|
}
|
|
1830
|
-
}, selectedItem.label)
|
|
1841
|
+
}, selectedItem.label), React.createElement("input", _extends({
|
|
1831
1842
|
className: "eds-dropdown__input eds-form-control",
|
|
1832
1843
|
disabled: readOnly || disabled,
|
|
1833
1844
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder
|
|
@@ -1841,6 +1852,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1841
1852
|
onFocus: function onFocus() {
|
|
1842
1853
|
setHideSelectedItem(true);
|
|
1843
1854
|
},
|
|
1855
|
+
onKeyDown: function onKeyDown(e) {
|
|
1856
|
+
if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
|
|
1857
|
+
},
|
|
1844
1858
|
ref: inputRef
|
|
1845
1859
|
})))), React.createElement(DropdownList, {
|
|
1846
1860
|
isOpen: isOpen,
|
|
@@ -1855,7 +1869,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1855
1869
|
}));
|
|
1856
1870
|
};
|
|
1857
1871
|
|
|
1858
|
-
var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "
|
|
1872
|
+
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"];
|
|
1859
1873
|
var MultiSelect = function MultiSelect(_ref) {
|
|
1860
1874
|
var className = _ref.className,
|
|
1861
1875
|
_ref$clearable = _ref.clearable,
|
|
@@ -1868,9 +1882,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1868
1882
|
feedback = _ref.feedback,
|
|
1869
1883
|
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1870
1884
|
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1871
|
-
_ref$itemFilter = _ref.itemFilter,
|
|
1872
|
-
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1873
1885
|
initialItems = _ref.items,
|
|
1886
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1887
|
+
itemFilter = _ref$itemFilter === void 0 ? isFunctionWithQueryArgument(initialItems) ? noFilter : lowerCaseFilterTest : _ref$itemFilter,
|
|
1874
1888
|
label = _ref.label,
|
|
1875
1889
|
_ref$labelAllItemsSel = _ref.labelAllItemsSelected,
|
|
1876
1890
|
labelAllItemsSelected = _ref$labelAllItemsSel === void 0 ? 'Alle valgt' : _ref$labelAllItemsSel,
|
|
@@ -1889,9 +1903,12 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1889
1903
|
placeholder = _ref.placeholder,
|
|
1890
1904
|
_ref$readOnly = _ref.readOnly,
|
|
1891
1905
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1892
|
-
selectedItems = _ref.selectedItems,
|
|
1906
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
1907
|
+
selectedItems = _ref$selectedItems === void 0 ? [] : _ref$selectedItems,
|
|
1893
1908
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1894
1909
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1910
|
+
_ref$selectOnTab = _ref.selectOnTab,
|
|
1911
|
+
selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
|
|
1895
1912
|
style = _ref.style,
|
|
1896
1913
|
_ref$variant = _ref.variant,
|
|
1897
1914
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
@@ -1915,6 +1932,10 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1915
1932
|
lastRemovedItem = _React$useState2[0],
|
|
1916
1933
|
setLastRemovedItem = _React$useState2[1];
|
|
1917
1934
|
var inputRef = React.useRef(null);
|
|
1935
|
+
React.useEffect(function () {
|
|
1936
|
+
//@ts-expect-error this is done to aid developers debug wrong prop usage
|
|
1937
|
+
if (rest.selectedItem !== undefined) console.warn("Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?");
|
|
1938
|
+
}, []);
|
|
1918
1939
|
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1919
1940
|
normalizedItems = _useResolvedItems.items,
|
|
1920
1941
|
loading = _useResolvedItems.loading,
|
|
@@ -1944,9 +1965,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1944
1965
|
};
|
|
1945
1966
|
var updateListItems = function updateListItems(_ref3) {
|
|
1946
1967
|
var inputValue = _ref3.inputValue;
|
|
1947
|
-
var shouldRefetchItems =
|
|
1948
|
-
// fetch items only if user provides a function with inputValue argument as items
|
|
1949
|
-
typeof initialItems === 'function' && initialItems.length > 0; // Function.length == number of arguments
|
|
1968
|
+
var shouldRefetchItems = isFunctionWithQueryArgument(initialItems);
|
|
1950
1969
|
if (shouldRefetchItems) fetchItems(inputValue != null ? inputValue : EMPTY_INPUT);
|
|
1951
1970
|
filterListItems({
|
|
1952
1971
|
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
@@ -2050,6 +2069,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2050
2069
|
// reset input value when leaving input field
|
|
2051
2070
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
2052
2071
|
{
|
|
2072
|
+
updateListItems({
|
|
2073
|
+
inputValue: EMPTY_INPUT
|
|
2074
|
+
});
|
|
2053
2075
|
return _extends({}, changes, {
|
|
2054
2076
|
inputValue: EMPTY_INPUT
|
|
2055
2077
|
});
|
|
@@ -2142,16 +2164,16 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2142
2164
|
label: label,
|
|
2143
2165
|
labelId: getLabelProps().id,
|
|
2144
2166
|
labelProps: getLabelProps(),
|
|
2145
|
-
readOnly: readOnly,
|
|
2146
|
-
variant: variant
|
|
2147
|
-
}, rest), React.createElement("div", {
|
|
2148
|
-
className: classNames('eds-dropdown__selected-items-and-input', {
|
|
2149
|
-
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
2150
|
-
}),
|
|
2151
2167
|
onClick: function onClick(e) {
|
|
2152
2168
|
var _inputRef$current4;
|
|
2153
2169
|
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
2154
|
-
}
|
|
2170
|
+
},
|
|
2171
|
+
readOnly: readOnly,
|
|
2172
|
+
variant: variant
|
|
2173
|
+
}, rest), React.createElement("div", {
|
|
2174
|
+
className: classNames('eds-dropdown--multiselect__selected-items-and-input', {
|
|
2175
|
+
'eds-dropdown--multiselect__selected-items-and-input--filled': hasSelectedItems
|
|
2176
|
+
})
|
|
2155
2177
|
}, selectedItems.length < maxChips ? React.createElement(React.Fragment, null, selectedItems.length > 1 ? React.createElement(a11y.VisuallyHidden, {
|
|
2156
2178
|
onClick: function onClick() {
|
|
2157
2179
|
var _inputRef$current5;
|
|
@@ -2188,14 +2210,22 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2188
2210
|
placeholder: placeholder,
|
|
2189
2211
|
className: "eds-dropdown__input eds-form-control",
|
|
2190
2212
|
disabled: readOnly || disabled
|
|
2191
|
-
}, getInputProps(
|
|
2213
|
+
}, getInputProps(_extends({
|
|
2214
|
+
onKeyDown: function onKeyDown(e) {
|
|
2215
|
+
if (selectOnTab && e.key === 'Tab') handleListItemClicked({
|
|
2216
|
+
clickedItem: listItems[highlightedIndex],
|
|
2217
|
+
onChange: onChange,
|
|
2218
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2219
|
+
});
|
|
2220
|
+
}
|
|
2221
|
+
}, getDropdownProps({
|
|
2192
2222
|
onClick: function onClick(e) {
|
|
2193
2223
|
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
2194
2224
|
},
|
|
2195
2225
|
preventKeyAction: isOpen,
|
|
2196
2226
|
ref: inputRef,
|
|
2197
2227
|
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2198
|
-
})))))), React.createElement(DropdownList, {
|
|
2228
|
+
}))))))), React.createElement(DropdownList, {
|
|
2199
2229
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2200
2230
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2201
2231
|
getItemProps: getItemProps,
|
|
@@ -2213,7 +2243,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2213
2243
|
}));
|
|
2214
2244
|
};
|
|
2215
2245
|
|
|
2216
|
-
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
|
|
2246
|
+
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
|
|
2217
2247
|
var Dropdown = function Dropdown(_ref) {
|
|
2218
2248
|
var _ref3, _selectedItem$label;
|
|
2219
2249
|
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
@@ -2239,6 +2269,8 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2239
2269
|
selectedItem = _ref.selectedItem,
|
|
2240
2270
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
2241
2271
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
2272
|
+
_ref$selectOnTab = _ref.selectOnTab,
|
|
2273
|
+
selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
|
|
2242
2274
|
style = _ref.style,
|
|
2243
2275
|
_ref$variant = _ref.variant,
|
|
2244
2276
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
@@ -2308,12 +2340,15 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2308
2340
|
readOnly: readOnly,
|
|
2309
2341
|
variant: variant
|
|
2310
2342
|
}, rest), React.createElement("div", _extends({
|
|
2311
|
-
className: "eds-dropdown__selected-item
|
|
2343
|
+
className: "eds-dropdown__selected-item"
|
|
2312
2344
|
}, getToggleButtonProps({
|
|
2313
|
-
id: undefined
|
|
2345
|
+
id: undefined,
|
|
2346
|
+
onKeyDown: function onKeyDown(e) {
|
|
2347
|
+
if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(normalizedItems[highlightedIndex]);
|
|
2348
|
+
}
|
|
2314
2349
|
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
|
|
2315
|
-
className: classNames('eds-dropdown__selected-
|
|
2316
|
-
'eds-dropdown__selected-
|
|
2350
|
+
className: classNames('eds-dropdown__selected-item__placeholder', {
|
|
2351
|
+
'eds-dropdown__selected-item__placeholder--readonly': readOnly
|
|
2317
2352
|
})
|
|
2318
2353
|
}, placeholder)) != null ? _ref3 : '')), React.createElement(DropdownList, {
|
|
2319
2354
|
getItemProps: getItemProps,
|