@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.
@@ -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;
@@ -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, items: initialItems, itemFilter, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, listStyle, loadingText, maxChips, noMatchesText, onChange, placeholder, readOnly, selectedItems, selectOnBlur, style, variant, ariaLabelChosenSingular, ariaLabelChosenPlural, ariaLabelCloseList, ariaLabelJumpToInput, ariaLabelOpenList, ariaLabelRemoveSelected, ariaLabelSelectedItem, ...rest }: MultiSelectProps) => React.JSX.Element;
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, items: initialItems, itemFilter, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, style, variant, ...rest }: SearchableDropdownProps) => React.JSX.Element;
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;
@@ -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
  });
@@ -1642,7 +1642,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
1642
1642
  };
1643
1643
  /* end a11y utils */
1644
1644
 
1645
- 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"];
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"];
1646
1646
  var SearchableDropdown = function SearchableDropdown(_ref) {
1647
1647
  var _selectedItem$label;
1648
1648
  var ariaLabelCloseList = _ref.ariaLabelCloseList,
@@ -1672,6 +1672,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1672
1672
  value = _ref.selectedItem,
1673
1673
  _ref$selectOnBlur = _ref.selectOnBlur,
1674
1674
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
1675
+ _ref$selectOnTab = _ref.selectOnTab,
1676
+ selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
1675
1677
  style = _ref.style,
1676
1678
  _ref$variant = _ref.variant,
1677
1679
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
@@ -1850,6 +1852,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1850
1852
  onFocus: function onFocus() {
1851
1853
  setHideSelectedItem(true);
1852
1854
  },
1855
+ onKeyDown: function onKeyDown(e) {
1856
+ if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
1857
+ },
1853
1858
  ref: inputRef
1854
1859
  })))), React.createElement(DropdownList, {
1855
1860
  isOpen: isOpen,
@@ -1864,7 +1869,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1864
1869
  }));
1865
1870
  };
1866
1871
 
1867
- 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"];
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"];
1868
1873
  var MultiSelect = function MultiSelect(_ref) {
1869
1874
  var className = _ref.className,
1870
1875
  _ref$clearable = _ref.clearable,
@@ -1902,6 +1907,8 @@ var MultiSelect = function MultiSelect(_ref) {
1902
1907
  selectedItems = _ref$selectedItems === void 0 ? [] : _ref$selectedItems,
1903
1908
  _ref$selectOnBlur = _ref.selectOnBlur,
1904
1909
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
1910
+ _ref$selectOnTab = _ref.selectOnTab,
1911
+ selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
1905
1912
  style = _ref.style,
1906
1913
  _ref$variant = _ref.variant,
1907
1914
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
@@ -2203,14 +2210,22 @@ var MultiSelect = function MultiSelect(_ref) {
2203
2210
  placeholder: placeholder,
2204
2211
  className: "eds-dropdown__input eds-form-control",
2205
2212
  disabled: readOnly || disabled
2206
- }, getInputProps(getDropdownProps({
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({
2207
2222
  onClick: function onClick(e) {
2208
2223
  if (!isOpen && isVoiceOverClick(e)) openMenu();
2209
2224
  },
2210
2225
  preventKeyAction: isOpen,
2211
2226
  ref: inputRef,
2212
2227
  value: inputValue != null ? inputValue : EMPTY_INPUT
2213
- })))))), React.createElement(DropdownList, {
2228
+ }))))))), React.createElement(DropdownList, {
2214
2229
  ariaLabelChosenSingular: ariaLabelChosenSingular,
2215
2230
  ariaLabelSelectedItem: ariaLabelSelectedItem,
2216
2231
  getItemProps: getItemProps,
@@ -2228,7 +2243,7 @@ var MultiSelect = function MultiSelect(_ref) {
2228
2243
  }));
2229
2244
  };
2230
2245
 
2231
- 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"];
2232
2247
  var Dropdown = function Dropdown(_ref) {
2233
2248
  var _ref3, _selectedItem$label;
2234
2249
  var ariaLabelCloseList = _ref.ariaLabelCloseList,
@@ -2254,6 +2269,8 @@ var Dropdown = function Dropdown(_ref) {
2254
2269
  selectedItem = _ref.selectedItem,
2255
2270
  _ref$selectOnBlur = _ref.selectOnBlur,
2256
2271
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
2272
+ _ref$selectOnTab = _ref.selectOnTab,
2273
+ selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
2257
2274
  style = _ref.style,
2258
2275
  _ref$variant = _ref.variant,
2259
2276
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
@@ -2325,7 +2342,10 @@ var Dropdown = function Dropdown(_ref) {
2325
2342
  }, rest), React.createElement("div", _extends({
2326
2343
  className: "eds-dropdown__selected-item"
2327
2344
  }, getToggleButtonProps({
2328
- id: undefined
2345
+ id: undefined,
2346
+ onKeyDown: function onKeyDown(e) {
2347
+ if (selectOnTab && e.key === 'Tab') onChange == null ? void 0 : onChange(normalizedItems[highlightedIndex]);
2348
+ }
2329
2349
  })), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
2330
2350
  className: classNames('eds-dropdown__selected-item__placeholder', {
2331
2351
  'eds-dropdown__selected-item__placeholder--readonly': readOnly