@entur/dropdown 5.0.16 → 5.0.18

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.
@@ -1240,6 +1240,7 @@ function SelectedItemsLabel(items) {
1240
1240
 
1241
1241
  var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
1242
1242
  var DropdownList = function DropdownList(_ref) {
1243
+ var _listItems$;
1243
1244
  var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
1244
1245
  ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
1245
1246
  _ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
@@ -1261,10 +1262,10 @@ var DropdownList = function DropdownList(_ref) {
1261
1262
  selectedItems = _ref.selectedItems,
1262
1263
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
1263
1264
  var isMultiselect = selectAllItem !== undefined;
1264
- var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0].value === (selectAllItem == null ? void 0 : selectAllItem.value));
1265
+ var isNoMatches = !loading && (listItems.length === 0 || (listItems == null ? void 0 : listItems.length) === 1 && (listItems == null ? void 0 : (_listItems$ = listItems[0]) == null ? void 0 : _listItems$.value) === (selectAllItem == null ? void 0 : selectAllItem.value));
1265
1266
  var isItemSelected = function isItemSelected(item) {
1266
1267
  return selectedItems.some(function (selectedItem) {
1267
- return selectedItem.value === item.value && selectedItem.label === item.label;
1268
+ return (selectedItem == null ? void 0 : selectedItem.value) === (item == null ? void 0 : item.value) && (selectedItem == null ? void 0 : selectedItem.label) === (item == null ? void 0 : item.label);
1268
1269
  });
1269
1270
  };
1270
1271
  var ariaLabelSelectAll = function ariaLabelSelectAll() {
@@ -1313,7 +1314,7 @@ var DropdownList = function DropdownList(_ref) {
1313
1314
  className: "eds-dropdown__list__item__text"
1314
1315
  }, item.label, React.createElement(VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React.createElement("span", null, item.icons.map(function (Icon) {
1315
1316
  return React.createElement(Icon, {
1316
- key: item.label + item.value + Icon.displayName,
1317
+ key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value) + (Icon == null ? void 0 : Icon.displayName),
1317
1318
  inline: true,
1318
1319
  className: "eds-dropdown__list__item__icon"
1319
1320
  });
@@ -1330,14 +1331,14 @@ var DropdownList = function DropdownList(_ref) {
1330
1331
  var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
1331
1332
  if (itemIsSelectAll && listItems.length <= 2) return null;
1332
1333
  return React.createElement("li", _extends({
1333
- key: item.label + item.value,
1334
+ key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
1334
1335
  className: classNames('eds-dropdown__list__item', {
1335
1336
  'eds-dropdown__list__item--select-all': itemIsSelectAll,
1336
1337
  'eds-dropdown__list__item--highlighted': highlightedIndex === index,
1337
1338
  'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
1338
1339
  })
1339
1340
  }, getItemProps({
1340
- key: item.label + item.value,
1341
+ key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
1341
1342
  item: item,
1342
1343
  index: index
1343
1344
  })), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
@@ -1859,7 +1860,13 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1859
1860
  setShowSelectedItem(false);
1860
1861
  },
1861
1862
  onKeyDown: function onKeyDown(e) {
1862
- if (selectOnTab && e.key === 'Tab') onChange(listItems[highlightedIndex]);
1863
+ if (selectOnTab && e.key === 'Tab') {
1864
+ var highlitedItem = listItems[highlightedIndex];
1865
+ if (highlitedItem) {
1866
+ // we don't want to clear selection with tab
1867
+ onChange == null ? void 0 : onChange(highlitedItem);
1868
+ }
1869
+ }
1863
1870
  },
1864
1871
  ref: inputRef
1865
1872
  })))), React.createElement(DropdownList, {
@@ -2194,7 +2201,7 @@ var MultiSelect = function MultiSelect(_ref) {
2194
2201
  disabled: disabled,
2195
2202
  getSelectedItemProps: getSelectedItemProps,
2196
2203
  index: index,
2197
- key: selectedItem.value,
2204
+ key: selectedItem == null ? void 0 : selectedItem.value,
2198
2205
  readOnly: readOnly,
2199
2206
  removeSelectedItem: function removeSelectedItem() {
2200
2207
  var _inputRef$current6;
@@ -2220,11 +2227,17 @@ var MultiSelect = function MultiSelect(_ref) {
2220
2227
  disabled: readOnly || disabled
2221
2228
  }, getInputProps(_extends({
2222
2229
  onKeyDown: function onKeyDown(e) {
2223
- if (selectOnTab && e.key === 'Tab') handleListItemClicked({
2224
- clickedItem: listItems[highlightedIndex],
2225
- onChange: onChange,
2226
- setLastRemovedItem: setLastRemovedItem
2227
- });
2230
+ if (selectOnTab && e.key === 'Tab') {
2231
+ var highlitedItem = listItems[highlightedIndex];
2232
+ // we don't want to clear selection with tab
2233
+ if (highlitedItem) {
2234
+ handleListItemClicked({
2235
+ clickedItem: highlitedItem,
2236
+ onChange: onChange,
2237
+ setLastRemovedItem: setLastRemovedItem
2238
+ });
2239
+ }
2240
+ }
2228
2241
  }
2229
2242
  }, getDropdownProps({
2230
2243
  onClick: function onClick(e) {
@@ -2355,7 +2368,13 @@ var Dropdown = function Dropdown(_ref) {
2355
2368
  }, getToggleButtonProps({
2356
2369
  id: undefined,
2357
2370
  onKeyDown: function onKeyDown(e) {
2358
- if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(normalizedItems[highlightedIndex]);
2371
+ if (selectOnTab && e.key === 'Tab') {
2372
+ // we don't want to clear selection with tab
2373
+ var highlitedItem = normalizedItems[highlightedIndex];
2374
+ if (highlitedItem) {
2375
+ onChange == null ? void 0 : onChange(highlitedItem);
2376
+ }
2377
+ }
2359
2378
  }
2360
2379
  })), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
2361
2380
  className: classNames('eds-dropdown__selected-item__placeholder', {