@entur/dropdown 5.0.9-beta.0 → 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.
@@ -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
  });
@@ -1638,7 +1638,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
1638
1638
  };
1639
1639
  /* end a11y utils */
1640
1640
 
1641
- var _excluded$3 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "items", "itemFilter", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
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"];
1642
1642
  var SearchableDropdown = function SearchableDropdown(_ref) {
1643
1643
  var _selectedItem$label;
1644
1644
  var ariaLabelCloseList = _ref.ariaLabelCloseList,
@@ -1668,6 +1668,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1668
1668
  value = _ref.selectedItem,
1669
1669
  _ref$selectOnBlur = _ref.selectOnBlur,
1670
1670
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
1671
+ _ref$selectOnTab = _ref.selectOnTab,
1672
+ selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
1671
1673
  style = _ref.style,
1672
1674
  _ref$variant = _ref.variant,
1673
1675
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
@@ -1846,6 +1848,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1846
1848
  onFocus: function onFocus() {
1847
1849
  setHideSelectedItem(true);
1848
1850
  },
1851
+ onKeyDown: function onKeyDown(e) {
1852
+ if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
1853
+ },
1849
1854
  ref: inputRef
1850
1855
  })))), React.createElement(DropdownList, {
1851
1856
  isOpen: isOpen,
@@ -1860,7 +1865,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1860
1865
  }));
1861
1866
  };
1862
1867
 
1863
- 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", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
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"];
1864
1869
  var MultiSelect = function MultiSelect(_ref) {
1865
1870
  var className = _ref.className,
1866
1871
  _ref$clearable = _ref.clearable,
@@ -1898,6 +1903,8 @@ var MultiSelect = function MultiSelect(_ref) {
1898
1903
  selectedItems = _ref$selectedItems === void 0 ? [] : _ref$selectedItems,
1899
1904
  _ref$selectOnBlur = _ref.selectOnBlur,
1900
1905
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
1906
+ _ref$selectOnTab = _ref.selectOnTab,
1907
+ selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
1901
1908
  style = _ref.style,
1902
1909
  _ref$variant = _ref.variant,
1903
1910
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
@@ -2199,14 +2206,22 @@ var MultiSelect = function MultiSelect(_ref) {
2199
2206
  placeholder: placeholder,
2200
2207
  className: "eds-dropdown__input eds-form-control",
2201
2208
  disabled: readOnly || disabled
2202
- }, getInputProps(getDropdownProps({
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({
2203
2218
  onClick: function onClick(e) {
2204
2219
  if (!isOpen && isVoiceOverClick(e)) openMenu();
2205
2220
  },
2206
2221
  preventKeyAction: isOpen,
2207
2222
  ref: inputRef,
2208
2223
  value: inputValue != null ? inputValue : EMPTY_INPUT
2209
- })))))), React.createElement(DropdownList, {
2224
+ }))))))), React.createElement(DropdownList, {
2210
2225
  ariaLabelChosenSingular: ariaLabelChosenSingular,
2211
2226
  ariaLabelSelectedItem: ariaLabelSelectedItem,
2212
2227
  getItemProps: getItemProps,
@@ -2224,7 +2239,7 @@ var MultiSelect = function MultiSelect(_ref) {
2224
2239
  }));
2225
2240
  };
2226
2241
 
2227
- 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"];
2228
2243
  var Dropdown = function Dropdown(_ref) {
2229
2244
  var _ref3, _selectedItem$label;
2230
2245
  var ariaLabelCloseList = _ref.ariaLabelCloseList,
@@ -2250,6 +2265,8 @@ var Dropdown = function Dropdown(_ref) {
2250
2265
  selectedItem = _ref.selectedItem,
2251
2266
  _ref$selectOnBlur = _ref.selectOnBlur,
2252
2267
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
2268
+ _ref$selectOnTab = _ref.selectOnTab,
2269
+ selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
2253
2270
  style = _ref.style,
2254
2271
  _ref$variant = _ref.variant,
2255
2272
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
@@ -2321,7 +2338,10 @@ var Dropdown = function Dropdown(_ref) {
2321
2338
  }, rest), React.createElement("div", _extends({
2322
2339
  className: "eds-dropdown__selected-item"
2323
2340
  }, getToggleButtonProps({
2324
- id: undefined
2341
+ id: undefined,
2342
+ onKeyDown: function onKeyDown(e) {
2343
+ if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(normalizedItems[highlightedIndex]);
2344
+ }
2325
2345
  })), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
2326
2346
  className: classNames('eds-dropdown__selected-item__placeholder', {
2327
2347
  'eds-dropdown__selected-item__placeholder--readonly': readOnly