@entur/dropdown 5.0.0-beta.2 → 5.0.0-beta.3

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.
@@ -1304,27 +1304,29 @@ var DropdownList = function DropdownList(_ref) {
1304
1304
  };
1305
1305
  var selectAllListItemContent = function selectAllListItemContent() {
1306
1306
  return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
1307
- className: "eds-dropdown__list__item__checkbox",
1308
- checked: selectAllCheckboxState == null ? void 0 : selectAllCheckboxState(),
1309
1307
  "aria-hidden": "true",
1308
+ checked: selectAllCheckboxState == null ? void 0 : selectAllCheckboxState(),
1309
+ className: "eds-dropdown__list__item__checkbox",
1310
1310
  onChange: function onChange() {
1311
1311
  return;
1312
- }
1312
+ },
1313
+ tabIndex: -1
1313
1314
  }), React__default["default"].createElement("span", {
1314
1315
  className: "eds-dropdown__list__item__text"
1315
1316
  }, selectAllItem == null ? void 0 : selectAllItem.label));
1316
1317
  };
1317
1318
  var listItemContent = function listItemContent(item) {
1318
1319
  return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
1319
- style: !isMultiselect ? {
1320
- display: 'none'
1321
- } : {},
1322
- className: "eds-dropdown__list__item__checkbox",
1323
- checked: itemIsSelected(item),
1324
1320
  "aria-hidden": "true",
1321
+ checked: itemIsSelected(item),
1322
+ className: "eds-dropdown__list__item__checkbox",
1325
1323
  onChange: function onChange() {
1326
1324
  return;
1327
- }
1325
+ },
1326
+ style: !isMultiselect ? {
1327
+ display: 'none'
1328
+ } : {},
1329
+ tabIndex: -1
1328
1330
  }), React__default["default"].createElement("span", {
1329
1331
  className: "eds-dropdown__list__item__text"
1330
1332
  }, item.label, React__default["default"].createElement(a11y.VisuallyHidden, null, selectedItemAriaLabel)), item.icons && React__default["default"].createElement("span", null, item.icons.map(function (Icon, index) {
@@ -1335,33 +1337,37 @@ var DropdownList = function DropdownList(_ref) {
1335
1337
  });
1336
1338
  })));
1337
1339
  };
1338
- return React__default["default"].createElement("ul", _extends({}, getMenuProps(), {
1339
- className: classNames__default["default"]('eds-dropdown__list', {
1340
- 'eds-dropdown__list--open': isOpen
1341
- }),
1342
- style: _extends({}, rest.style, listStyle)
1343
- }), isOpen && listItems.length > 0 && listItems.map(function (item, index) {
1344
- var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
1345
- if (itemIsSelectAll && listItems.length <= 2) return React__default["default"].createElement(React__default["default"].Fragment, null);
1346
- return React__default["default"].createElement("li", _extends({
1347
- key: item.value,
1348
- className: classNames__default["default"]('eds-dropdown__list__item', {
1349
- 'eds-dropdown__list__item--select-all': itemIsSelectAll,
1350
- 'eds-dropdown__list__item--highlighted': highlightedIndex === index,
1351
- 'eds-dropdown__list__item--selected': !isMultiselect && itemIsSelected(item)
1352
- })
1353
- }, getItemProps({
1354
- key: "" + index + item.value,
1355
- item: item,
1356
- index: index
1357
- })), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
1358
- }), isOpen && isNoMatches && React__default["default"].createElement("li", {
1359
- className: "eds-dropdown__list__item"
1360
- }, noMatchesText), isOpen && loading && React__default["default"].createElement("li", {
1361
- className: "eds-dropdown__list__item"
1362
- }, loadingText));
1340
+ return (
1341
+ // use popover from @entur/tooltip when the package uses floating-ui
1342
+ React__default["default"].createElement("ul", _extends({}, getMenuProps(), {
1343
+ className: classNames__default["default"]('eds-dropdown__list', {
1344
+ 'eds-dropdown__list--open': isOpen
1345
+ }),
1346
+ style: _extends({}, rest.style, listStyle)
1347
+ }), isOpen && listItems.length > 0 && listItems.map(function (item, index) {
1348
+ var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
1349
+ if (itemIsSelectAll && listItems.length <= 2) return React__default["default"].createElement(React__default["default"].Fragment, null);
1350
+ return React__default["default"].createElement("li", _extends({
1351
+ key: item.value,
1352
+ className: classNames__default["default"]('eds-dropdown__list__item', {
1353
+ 'eds-dropdown__list__item--select-all': itemIsSelectAll,
1354
+ 'eds-dropdown__list__item--highlighted': highlightedIndex === index,
1355
+ 'eds-dropdown__list__item--selected': !isMultiselect && itemIsSelected(item)
1356
+ })
1357
+ }, getItemProps({
1358
+ key: "" + index + item.value,
1359
+ item: item,
1360
+ index: index
1361
+ })), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
1362
+ }), isOpen && isNoMatches && React__default["default"].createElement("li", {
1363
+ className: "eds-dropdown__list__item"
1364
+ }, noMatchesText), isOpen && loading && React__default["default"].createElement("li", {
1365
+ className: "eds-dropdown__list__item"
1366
+ }, loadingText))
1367
+ );
1363
1368
  };
1364
1369
 
1370
+ var EMPTY_INPUT = '';
1365
1371
  function lowerCaseFilterTest(item, input) {
1366
1372
  if (!input) {
1367
1373
  return true;
@@ -1398,6 +1404,20 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
1398
1404
  var clickedItemIsSelectAll = function clickedItemIsSelectAll(clickedItem) {
1399
1405
  return clickedItem.value === selectAllValue;
1400
1406
  };
1407
+ var handleListItemClicked = function handleListItemClicked(_ref2) {
1408
+ var clickedItem = _ref2.clickedItem,
1409
+ onChange = _ref2.onChange;
1410
+ if (clickedItemIsSelectAll(clickedItem)) {
1411
+ if (allListItemsAreSelected) {
1412
+ return unselectAllListItems(onChange);
1413
+ }
1414
+ return selectAllUnselectedItemsInListItems(onChange);
1415
+ }
1416
+ if (clickedItemIsInSelectedItems(clickedItem)) {
1417
+ return removeClickedItemFromSelectedItems(clickedItem, onChange);
1418
+ }
1419
+ addClickedItemToSelectedItems(clickedItem, onChange);
1420
+ };
1401
1421
  var removeClickedItemFromSelectedItems = function removeClickedItemFromSelectedItems(clickedItem, onChange) {
1402
1422
  return onChange(selectedItems.filter(function (selectedItem) {
1403
1423
  return selectedItem.value !== clickedItem.value;
@@ -1423,6 +1443,7 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
1423
1443
  allListItemsAreSelected: allListItemsAreSelected,
1424
1444
  clickedItemIsInSelectedItems: clickedItemIsInSelectedItems,
1425
1445
  clickedItemIsSelectAll: clickedItemIsSelectAll,
1446
+ handleListItemClicked: handleListItemClicked,
1426
1447
  hasSelectedItems: hasSelectedItems,
1427
1448
  listItemsWithoutSelectAll: listItemsWithoutSelectAll,
1428
1449
  removeClickedItemFromSelectedItems: removeClickedItemFromSelectedItems,
@@ -1436,18 +1457,23 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
1436
1457
  var _excluded$3 = ["tabIndex"];
1437
1458
  var SelectedItemTag = function SelectedItemTag(_ref) {
1438
1459
  var _getSelectedItemProps;
1439
- var getSelectedItemProps = _ref.getSelectedItemProps,
1440
- removeSelectedItem = _ref.removeSelectedItem,
1441
- selectedItem = _ref.selectedItem,
1460
+ var ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected,
1461
+ disabled = _ref.disabled,
1462
+ getSelectedItemProps = _ref.getSelectedItemProps,
1442
1463
  index = _ref.index,
1443
- ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected;
1464
+ readOnly = _ref.readOnly,
1465
+ removeSelectedItem = _ref.removeSelectedItem,
1466
+ selectedItem = _ref.selectedItem;
1444
1467
  var _ref2 = (_getSelectedItemProps = getSelectedItemProps == null ? void 0 : getSelectedItemProps({
1445
1468
  selectedItem: selectedItem,
1446
1469
  index: index
1447
1470
  })) != null ? _getSelectedItemProps : {},
1448
1471
  selectedItemProps = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
1449
1472
  return React__default["default"].createElement(chip.TagChip, _extends({
1450
- className: classNames__default["default"]('eds-dropdown__selected-element-tag')
1473
+ className: classNames__default["default"]('eds-dropdown__selected-item-tag', {
1474
+ 'eds-dropdown__selected-item-tag--readonly': readOnly,
1475
+ 'eds-dropdown__selected-item-tag--disabled': disabled
1476
+ })
1451
1477
  }, selectedItemProps, {
1452
1478
  onClose: function onClose(e) {
1453
1479
  e.stopPropagation();
@@ -1460,47 +1486,48 @@ var SelectedItemTag = function SelectedItemTag(_ref) {
1460
1486
  }, selectedItem.label));
1461
1487
  };
1462
1488
  var FieldAppend = function FieldAppend(_ref3) {
1463
- var clearable = _ref3.clearable,
1464
- readOnly = _ref3.readOnly,
1489
+ var _ref3$clearable = _ref3.clearable,
1490
+ clearable = _ref3$clearable === void 0 ? false : _ref3$clearable,
1491
+ clearSelectedItemsLabel = _ref3.clearSelectedItemsLabel,
1492
+ _ref3$disabled = _ref3.disabled,
1493
+ disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
1494
+ _ref3$focusable = _ref3.focusable,
1495
+ focusable = _ref3$focusable === void 0 ? false : _ref3$focusable,
1465
1496
  getToggleButtonProps = _ref3.getToggleButtonProps,
1466
- selectedItems = _ref3.selectedItems,
1497
+ isOpen = _ref3.isOpen,
1467
1498
  _ref3$loading = _ref3.loading,
1468
1499
  loading = _ref3$loading === void 0 ? false : _ref3$loading,
1469
1500
  _ref3$loadingText = _ref3.loadingText,
1470
1501
  loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
1471
- ariaLabelClearItems = _ref3.ariaLabelClearItems,
1472
- clearSelectedItemsLabel = _ref3.clearSelectedItemsLabel,
1473
- isOpen = _ref3.isOpen,
1474
1502
  onClear = _ref3.onClear,
1475
- _ref3$focusable = _ref3.focusable,
1476
- focusable = _ref3$focusable === void 0 ? false : _ref3$focusable;
1503
+ selectedItems = _ref3.selectedItems;
1477
1504
  if (loading) {
1478
1505
  return React__default["default"].createElement(DropdownLoadingDots, null, loadingText);
1479
1506
  }
1480
- if (readOnly) {
1507
+ if (disabled) {
1481
1508
  return null;
1482
1509
  }
1483
- return React__default["default"].createElement("div", {
1484
- className: "eds-dropdown-appendix"
1485
- }, clearable && (selectedItems == null ? void 0 : selectedItems.length) > 0 && selectedItems[0] !== null && React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ClearableButton, {
1486
- onClear: onClear,
1487
- focusable: focusable,
1488
- clearSelectedItemsLabel: clearSelectedItemsLabel,
1489
- ariaLabelClearItems: ariaLabelClearItems
1490
- }), React__default["default"].createElement("div", {
1491
- className: "eds-dropdown-appendix__divider"
1492
- })), React__default["default"].createElement(ToggleButton, {
1493
- getToggleButtonProps: getToggleButtonProps,
1494
- isOpen: isOpen,
1495
- focusable: focusable
1496
- }));
1510
+ return (
1511
+ // to have a natural tab order, these elements are ordered opposite of how they are displayed
1512
+ React__default["default"].createElement("div", {
1513
+ className: "eds-dropdown-appendix"
1514
+ }, React__default["default"].createElement(ToggleButton, {
1515
+ getToggleButtonProps: getToggleButtonProps,
1516
+ isOpen: isOpen,
1517
+ focusable: focusable
1518
+ }), clearable && (selectedItems == null ? void 0 : selectedItems.length) > 0 && selectedItems[0] !== null && React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("div", {
1519
+ className: "eds-dropdown-appendix__divider"
1520
+ }), React__default["default"].createElement(ClearableButton, {
1521
+ onClear: onClear,
1522
+ focusable: true,
1523
+ clearSelectedItemsLabel: clearSelectedItemsLabel
1524
+ })))
1525
+ );
1497
1526
  };
1498
1527
  var ClearableButton = function ClearableButton(_ref4) {
1499
1528
  var onClear = _ref4.onClear,
1500
1529
  _ref4$clearSelectedIt = _ref4.clearSelectedItemsLabel,
1501
1530
  clearSelectedItemsLabel = _ref4$clearSelectedIt === void 0 ? 'Fjern valgte' : _ref4$clearSelectedIt,
1502
- _ref4$ariaLabelClearI = _ref4.ariaLabelClearItems,
1503
- ariaLabelClearItems = _ref4$ariaLabelClearI === void 0 ? 'Fjern valgte' : _ref4$ariaLabelClearI,
1504
1531
  _ref4$focusable = _ref4.focusable,
1505
1532
  focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
1506
1533
  return React__default["default"].createElement(tooltip.Tooltip, {
@@ -1512,7 +1539,7 @@ var ClearableButton = function ClearableButton(_ref4) {
1512
1539
  type: "button",
1513
1540
  tabIndex: focusable ? 0 : 1,
1514
1541
  onClick: onClear,
1515
- "aria-label": ariaLabelClearItems
1542
+ "aria-label": clearSelectedItemsLabel
1516
1543
  }, React__default["default"].createElement(icons.CloseSmallIcon, {
1517
1544
  "aria-hidden": "true"
1518
1545
  })));
@@ -1532,22 +1559,22 @@ var ToggleButton = function ToggleButton(_ref5) {
1532
1559
  })
1533
1560
  }), {
1534
1561
  "aria-label": isOpen ? closeAriaLabel : openAriaLabel,
1535
- tabIndex: focusable ? 0 : 1,
1562
+ tabIndex: focusable ? 0 : -1,
1536
1563
  type: "button"
1537
1564
  }), React__default["default"].createElement(icons.DownArrowIcon, {
1538
1565
  "aria-hidden": "true"
1539
1566
  }));
1540
1567
  };
1541
1568
 
1542
- var _excluded$2 = ["className", "clearable", "debounceTimeout", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectedItem", "selectOnBlur", "variant"];
1543
- // TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
1544
- // TODO Husk å generelt legge inn støtte for typeof value === string
1569
+ var _excluded$2 = ["className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "listStyle", "loadingText", "onChange", "openOnFocus", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
1545
1570
  var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1546
1571
  var _selectedItem$label;
1547
1572
  var className = _ref.className,
1548
1573
  _ref$clearable = _ref.clearable,
1549
1574
  clearable = _ref$clearable === void 0 ? false : _ref$clearable,
1550
1575
  debounceTimeout = _ref.debounceTimeout,
1576
+ _ref$disabled = _ref.disabled,
1577
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1551
1578
  _ref$disableLabelAnim = _ref.disableLabelAnimation,
1552
1579
  disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
1553
1580
  feedback = _ref.feedback,
@@ -1556,43 +1583,59 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1556
1583
  initialItems = _ref.items,
1557
1584
  label = _ref.label,
1558
1585
  listStyle = _ref.listStyle,
1586
+ loadingText = _ref.loadingText,
1559
1587
  onChange = _ref.onChange,
1560
1588
  _ref$openOnFocus = _ref.openOnFocus,
1561
1589
  openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
1562
1590
  placeholder = _ref.placeholder,
1563
- _ref$readonly = _ref.readonly,
1564
- readonly = _ref$readonly === void 0 ? false : _ref$readonly,
1591
+ prepend = _ref.prepend,
1592
+ _ref$readOnly = _ref.readOnly,
1593
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
1565
1594
  value = _ref.selectedItem,
1566
1595
  _ref$selectOnBlur = _ref.selectOnBlur,
1567
1596
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
1597
+ style = _ref.style,
1568
1598
  _ref$variant = _ref.variant,
1569
1599
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
1570
1600
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
1571
1601
  var _useState = React.useState(false),
1572
1602
  hideSelectedItem = _useState[0],
1573
1603
  setHideSelectedItem = _useState[1];
1604
+ var _React$useState = React__default["default"].useState(0),
1605
+ lastHighlightedIndex = _React$useState[0],
1606
+ setLastHighlightedIndex = _React$useState[1];
1574
1607
  var inputRef = React.useRef(null);
1575
1608
  var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
1576
1609
  normalizedItems = _useResolvedItems.items,
1577
1610
  loading = _useResolvedItems.loading,
1578
1611
  fetchItems = _useResolvedItems.fetchItems;
1579
- var _React$useState = React__default["default"].useState(normalizedItems),
1580
- listItems = _React$useState[0],
1581
- setListItems = _React$useState[1];
1612
+ var _React$useState2 = React__default["default"].useState(normalizedItems),
1613
+ listItems = _React$useState2[0],
1614
+ setListItems = _React$useState2[1];
1582
1615
  var filterListItems = function filterListItems(_ref2) {
1583
1616
  var inputValue = _ref2.inputValue;
1584
1617
  return setListItems(normalizedItems.filter(function (item) {
1585
1618
  return itemFilter(item, inputValue);
1586
1619
  }));
1587
1620
  };
1621
+ var updateListItems = function updateListItems(_ref3) {
1622
+ var inputValue = _ref3.inputValue;
1623
+ if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : EMPTY_INPUT); // fetch items only if user provides a function as items
1624
+ filterListItems({
1625
+ inputValue: inputValue != null ? inputValue : EMPTY_INPUT
1626
+ });
1627
+ };
1588
1628
  React__default["default"].useEffect(function () {
1589
1629
  filterListItems({
1590
1630
  inputValue: inputValue
1591
1631
  });
1592
1632
  }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
1593
- var stateReducer = React__default["default"].useCallback(function (_, _ref3) {
1594
- var type = _ref3.type,
1595
- changes = _ref3.changes;
1633
+ var stateReducer = React__default["default"].useCallback(function (_, _ref4) {
1634
+ var type = _ref4.type,
1635
+ changes = _ref4.changes;
1636
+ if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
1637
+ setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
1638
+ }
1596
1639
  switch (type) {
1597
1640
  case Downshift.useCombobox.stateChangeTypes.ItemClick:
1598
1641
  case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
@@ -1600,10 +1643,10 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1600
1643
  case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
1601
1644
  {
1602
1645
  filterListItems({
1603
- inputValue: ''
1646
+ inputValue: EMPTY_INPUT
1604
1647
  });
1605
1648
  return _extends({}, changes, {
1606
- inputValue: '' // reset input value to show placeholder on focus
1649
+ inputValue: EMPTY_INPUT // reset input value to show placeholder on focus
1607
1650
  });
1608
1651
  }
1609
1652
 
@@ -1611,11 +1654,18 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1611
1654
  {
1612
1655
  var _changes$inputValue;
1613
1656
  var leadingWhitespaceTest = /^\s+/g;
1614
- if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) setInputValue(changes.inputValue.replace(leadingWhitespaceTest, ''));else {
1615
- var _changes$inputValue2, _changes$inputValue3;
1616
- fetchItems((_changes$inputValue2 = changes.inputValue) != null ? _changes$inputValue2 : '');
1617
- filterListItems({
1618
- inputValue: (_changes$inputValue3 = changes.inputValue) != null ? _changes$inputValue3 : ''
1657
+ var isSpacePressedOnEmptyInput = changes.inputValue == ' ';
1658
+ if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
1659
+ setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
1660
+ if (isSpacePressedOnEmptyInput) {
1661
+ openMenu();
1662
+ if (isOpen && changes.highlightedIndex !== undefined) {
1663
+ onChange(listItems[changes.highlightedIndex]);
1664
+ }
1665
+ }
1666
+ } else {
1667
+ updateListItems({
1668
+ inputValue: changes.inputValue
1619
1669
  });
1620
1670
  }
1621
1671
  return changes;
@@ -1625,13 +1675,14 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1625
1675
  }
1626
1676
  }, [fetchItems, filterListItems]);
1627
1677
  var _useCombobox = Downshift.useCombobox(_extends({
1678
+ defaultHighlightedIndex: lastHighlightedIndex,
1628
1679
  items: listItems,
1629
- selectedItem: value,
1630
1680
  itemToString: itemToString,
1681
+ selectedItem: value,
1631
1682
  stateReducer: stateReducer,
1632
- onStateChange: function onStateChange(_ref4) {
1633
- var type = _ref4.type,
1634
- clickedItem = _ref4.selectedItem;
1683
+ onStateChange: function onStateChange(_ref5) {
1684
+ var type = _ref5.type,
1685
+ clickedItem = _ref5.selectedItem;
1635
1686
  switch (type) {
1636
1687
  // @ts-expect-error This falltrough is wanted
1637
1688
  case Downshift.useCombobox.stateChangeTypes.InputBlur:
@@ -1654,33 +1705,41 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1654
1705
  selectedItem = _useCombobox.selectedItem,
1655
1706
  inputValue = _useCombobox.inputValue,
1656
1707
  setInputValue = _useCombobox.setInputValue;
1708
+ var handleOnClear = function handleOnClear() {
1709
+ var _inputRef$current;
1710
+ onChange(null);
1711
+ setInputValue(EMPTY_INPUT);
1712
+ (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
1713
+ updateListItems({
1714
+ inputValue: inputValue
1715
+ });
1716
+ };
1657
1717
  return React__default["default"].createElement("div", {
1658
1718
  className: "eds-dropdown__wrapper"
1659
1719
  }, React__default["default"].createElement(form.BaseFormControl, _extends({
1660
1720
  append: React__default["default"].createElement(FieldAppend, {
1661
- selectedItems: [selectedItem],
1662
- isOpen: isOpen,
1663
1721
  clearable: clearable,
1664
- loading: false,
1665
- loadingText: '',
1666
- readOnly: readonly,
1667
- onClear: function onClear() {
1668
- var _inputRef$current;
1669
- onChange(null);
1670
- setInputValue('');
1671
- (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
1672
- if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : '');
1673
- },
1674
- getToggleButtonProps: getToggleButtonProps
1722
+ clearSelectedItemsLabel: "Fjern valgt",
1723
+ disabled: readOnly || disabled,
1724
+ focusable: false,
1725
+ getToggleButtonProps: getToggleButtonProps,
1726
+ isOpen: isOpen,
1727
+ loading: loading,
1728
+ loadingText: loadingText,
1729
+ onClear: handleOnClear,
1730
+ selectedItems: [selectedItem]
1675
1731
  }),
1676
- disableLabelAnimation: disableLabelAnimation,
1677
1732
  className: classNames__default["default"]('eds-dropdown', className),
1678
- label: label,
1679
- isFilled: selectedItem || inputValue !== '',
1733
+ disabled: disabled,
1734
+ disableLabelAnimation: disableLabelAnimation,
1680
1735
  feedback: feedback,
1681
- variant: variant,
1682
- readOnly: readonly,
1683
- labelProps: getLabelProps()
1736
+ isFilled: selectedItem || inputValue !== EMPTY_INPUT,
1737
+ label: label,
1738
+ labelProps: getLabelProps(),
1739
+ prepend: prepend,
1740
+ readOnly: readOnly,
1741
+ style: style,
1742
+ variant: variant
1684
1743
  }, getComboboxProps(), rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
1685
1744
  className: "eds-dropdown__selected-item__wrapper"
1686
1745
  }, React__default["default"].createElement("span", {
@@ -1690,30 +1749,32 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1690
1749
  return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
1691
1750
  }
1692
1751
  }, selectedItem.label)), React__default["default"].createElement("input", _extends({
1693
- placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder,
1694
- className: "eds-dropdown__input eds-form-control"
1752
+ className: "eds-dropdown__input eds-form-control",
1753
+ disabled: readOnly || disabled,
1754
+ placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder
1695
1755
  }, getInputProps({
1756
+ onBlur: function onBlur() {
1757
+ setHideSelectedItem(false);
1758
+ },
1696
1759
  onFocus: function onFocus() {
1697
1760
  if (!isOpen && openOnFocus) openMenu();
1698
1761
  setHideSelectedItem(true);
1699
1762
  },
1700
- onBlur: function onBlur() {
1701
- setHideSelectedItem(false);
1702
- },
1703
1763
  ref: inputRef
1704
1764
  })))), React__default["default"].createElement(DropdownList, {
1705
- selectedItems: selectedItem !== null ? [selectedItem] : [],
1706
1765
  isOpen: isOpen,
1707
1766
  listItems: listItems,
1708
- highlightedIndex: highlightedIndex,
1709
1767
  listStyle: listStyle,
1710
- getMenuProps: getMenuProps,
1768
+ loading: loading,
1769
+ loadingText: loadingText,
1711
1770
  getItemProps: getItemProps,
1712
- loading: loading
1771
+ getMenuProps: getMenuProps,
1772
+ highlightedIndex: highlightedIndex,
1773
+ selectedItems: selectedItem !== null ? [selectedItem] : []
1713
1774
  }));
1714
1775
  };
1715
1776
 
1716
- var _excluded$1 = ["allItemsSelectedLabel", "ariaLabelRemoveSelected", "className", "clearable", "clearInputOnSelect", "debounceTimeout", "feedback", "hideSelectAll", "items", "label", "listStyle", "maxTags", "onChange", "openOnFocus", "placeholder", "readonly", "removeAllItemsAriaLabel", "selectAllLabel", "selectedItems", "selectOnBlur", "style", "variant"];
1777
+ var _excluded$1 = ["allItemsSelectedLabel", "ariaLabelRemoveSelected", "className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "items", "label", "listStyle", "loadingText", "maxTags", "onChange", "openOnFocus", "placeholder", "readOnly", "clearAllItemsAriaLabel", "selectAllLabel", "selectedItems", "selectOnBlur", "style", "variant"];
1717
1778
  var MultiSelectBeta = function MultiSelectBeta(_ref) {
1718
1779
  var _ref$allItemsSelected = _ref.allItemsSelectedLabel,
1719
1780
  allItemsSelectedLabel = _ref$allItemsSelected === void 0 ? 'Alle valgt' : _ref$allItemsSelected,
@@ -1724,22 +1785,25 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1724
1785
  clearable = _ref$clearable === void 0 ? false : _ref$clearable,
1725
1786
  _ref$clearInputOnSele = _ref.clearInputOnSelect,
1726
1787
  clearInputOnSelect = _ref$clearInputOnSele === void 0 ? false : _ref$clearInputOnSele,
1788
+ _ref$disabled = _ref.disabled,
1789
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1727
1790
  feedback = _ref.feedback,
1728
1791
  _ref$hideSelectAll = _ref.hideSelectAll,
1729
1792
  hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
1730
1793
  initialItems = _ref.items,
1731
1794
  label = _ref.label,
1732
1795
  listStyle = _ref.listStyle,
1796
+ loadingText = _ref.loadingText,
1733
1797
  _ref$maxTags = _ref.maxTags,
1734
1798
  maxTags = _ref$maxTags === void 0 ? 10 : _ref$maxTags,
1735
1799
  onChange = _ref.onChange,
1736
1800
  _ref$openOnFocus = _ref.openOnFocus,
1737
1801
  openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
1738
1802
  placeholder = _ref.placeholder,
1739
- _ref$readonly = _ref.readonly,
1740
- readonly = _ref$readonly === void 0 ? false : _ref$readonly,
1741
- _ref$removeAllItemsAr = _ref.removeAllItemsAriaLabel,
1742
- removeAllItemsAriaLabel = _ref$removeAllItemsAr === void 0 ? 'Fjern valgte' : _ref$removeAllItemsAr,
1803
+ _ref$readOnly = _ref.readOnly,
1804
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
1805
+ _ref$clearAllItemsAri = _ref.clearAllItemsAriaLabel,
1806
+ clearAllItemsAriaLabel = _ref$clearAllItemsAri === void 0 ? 'Fjern valgte' : _ref$clearAllItemsAri,
1743
1807
  _ref$selectAllLabel = _ref.selectAllLabel,
1744
1808
  selectAllLabel = _ref$selectAllLabel === void 0 ? 'Velg alle' : _ref$selectAllLabel,
1745
1809
  selectedItems = _ref.selectedItems,
@@ -1764,10 +1828,10 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1764
1828
  };
1765
1829
  var summarySelectedItems = React__default["default"].useMemo(function () {
1766
1830
  return {
1767
- value: '',
1831
+ value: EMPTY_INPUT,
1768
1832
  label: isAllNonAsyncItemsSelected ? allItemsSelectedLabel : selectedItems.length + ' valgte'
1769
1833
  };
1770
- }, [isAllNonAsyncItemsSelected, selectedItems, normalizedItems, allItemsSelectedLabel]);
1834
+ }, [isAllNonAsyncItemsSelected, selectedItems, allItemsSelectedLabel]);
1771
1835
  var _useState = React.useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
1772
1836
  listItems = _useState[0],
1773
1837
  setListItems = _useState[1];
@@ -1777,10 +1841,11 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1777
1841
  return lowerCaseFilterTest(item, inputValue);
1778
1842
  })));
1779
1843
  };
1780
- var updateListItems = function updateListItems(inputValue) {
1781
- if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : ''); // fetch items only if user provides a function as items
1844
+ var updateListItems = function updateListItems(_ref3) {
1845
+ var inputValue = _ref3.inputValue;
1846
+ if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : EMPTY_INPUT); // fetch items only if user provides a function as items
1782
1847
  filterListItems({
1783
- inputValue: inputValue != null ? inputValue : ''
1848
+ inputValue: inputValue != null ? inputValue : EMPTY_INPUT
1784
1849
  });
1785
1850
  };
1786
1851
  React__default["default"].useEffect(function () {
@@ -1788,20 +1853,6 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1788
1853
  inputValue: inputValue
1789
1854
  });
1790
1855
  }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
1791
- var _useMultiselectUtils = useMultiselectUtils({
1792
- listItems: listItems,
1793
- selectAllValue: selectAll.value,
1794
- selectedItems: selectedItems
1795
- }),
1796
- addClickedItemToSelectedItems = _useMultiselectUtils.addClickedItemToSelectedItems,
1797
- allListItemsAreSelected = _useMultiselectUtils.allListItemsAreSelected,
1798
- clickedItemIsInSelectedItems = _useMultiselectUtils.clickedItemIsInSelectedItems,
1799
- clickedItemIsSelectAll = _useMultiselectUtils.clickedItemIsSelectAll,
1800
- hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
1801
- removeClickedItemFromSelectedItems = _useMultiselectUtils.removeClickedItemFromSelectedItems,
1802
- selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState,
1803
- selectAllUnselectedItemsInListItems = _useMultiselectUtils.selectAllUnselectedItemsInListItems,
1804
- unselectAllListItems = _useMultiselectUtils.unselectAllListItems;
1805
1856
  var _useMultipleSelection = Downshift.useMultipleSelection({
1806
1857
  selectedItems: selectedItems,
1807
1858
  itemToString: itemToString,
@@ -1813,39 +1864,71 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1813
1864
  getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
1814
1865
  getDropdownProps = _useMultipleSelection.getDropdownProps,
1815
1866
  removeSelectedItem = _useMultipleSelection.removeSelectedItem;
1816
- var stateReducer = React__default["default"].useCallback(function (_, _ref3) {
1817
- var _inputRef$current$val, _inputRef$current, _inputRef$current$val2, _inputRef$current2, _changes$inputValue;
1818
- var changes = _ref3.changes,
1819
- type = _ref3.type;
1820
- if (changes != null && changes.highlightedIndex && (changes == null ? void 0 : changes.highlightedIndex) >= 0) setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
1867
+ var _useMultiselectUtils = useMultiselectUtils({
1868
+ listItems: listItems,
1869
+ selectAllValue: selectAll.value,
1870
+ selectedItems: selectedItems
1871
+ }),
1872
+ hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
1873
+ handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
1874
+ selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
1875
+ var stateReducer = React__default["default"].useCallback(function (_, _ref4) {
1876
+ var changes = _ref4.changes,
1877
+ type = _ref4.type;
1878
+ if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
1879
+ setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
1880
+ }
1821
1881
  switch (type) {
1822
1882
  case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
1823
1883
  case Downshift.useCombobox.stateChangeTypes.ItemClick:
1824
- if (clearInputOnSelect) {
1825
- updateListItems('');
1884
+ {
1885
+ var _inputRef$current$val, _inputRef$current;
1886
+ if (clearInputOnSelect) {
1887
+ updateListItems({
1888
+ inputValue: EMPTY_INPUT
1889
+ });
1890
+ }
1891
+ return _extends({}, changes, {
1892
+ isOpen: true,
1893
+ inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null ? void 0 : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : EMPTY_INPUT
1894
+ });
1826
1895
  }
1827
- return _extends({}, changes, {
1828
- isOpen: true,
1829
- inputValue: clearInputOnSelect ? '' : (_inputRef$current$val = inputRef == null ? void 0 : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : ''
1830
- });
1831
1896
  case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
1832
- return _extends({}, changes, {
1833
- inputValue: clearInputOnSelect ? '' : (_inputRef$current$val2 = inputRef == null ? void 0 : (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : ''
1834
- });
1835
- case Downshift.useCombobox.stateChangeTypes.InputChange:
1836
- if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(/^\s+/g)) {
1837
- var _changes$inputValue$r;
1838
- // remove leading whitespace if it exists
1897
+ {
1898
+ var _inputRef$current$val2, _inputRef$current2;
1839
1899
  return _extends({}, changes, {
1840
- inputValue: (_changes$inputValue$r = changes.inputValue.replace(/^\s+/g, '')) != null ? _changes$inputValue$r : ''
1900
+ inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val2 = inputRef == null ? void 0 : (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
1841
1901
  });
1842
1902
  }
1843
- updateListItems(changes.inputValue);
1844
- return changes;
1903
+ case Downshift.useCombobox.stateChangeTypes.InputChange:
1904
+ {
1905
+ var _changes$inputValue;
1906
+ var leadingWhitespaceTest = /^\s+/g;
1907
+ var isSpacePressedOnEmptyInput = changes.inputValue === ' ';
1908
+ if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
1909
+ setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
1910
+ if (isSpacePressedOnEmptyInput) {
1911
+ openMenu();
1912
+ if (isOpen && changes.highlightedIndex) {
1913
+ handleListItemClicked({
1914
+ clickedItem: listItems[changes.highlightedIndex],
1915
+ onChange: onChange
1916
+ });
1917
+ }
1918
+ }
1919
+ } else {
1920
+ updateListItems({
1921
+ inputValue: changes.inputValue
1922
+ });
1923
+ }
1924
+ return changes;
1925
+ }
1845
1926
  case Downshift.useCombobox.stateChangeTypes.InputBlur:
1846
- return _extends({}, changes, {
1847
- inputValue: ''
1848
- });
1927
+ {
1928
+ return _extends({}, changes, {
1929
+ inputValue: EMPTY_INPUT
1930
+ });
1931
+ }
1849
1932
  default:
1850
1933
  return changes;
1851
1934
  }
@@ -1856,9 +1939,9 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1856
1939
  itemToString: itemToString,
1857
1940
  selectedItem: null,
1858
1941
  stateReducer: stateReducer,
1859
- onStateChange: function onStateChange(_ref4) {
1860
- var type = _ref4.type,
1861
- clickedItem = _ref4.selectedItem;
1942
+ onStateChange: function onStateChange(_ref5) {
1943
+ var type = _ref5.type,
1944
+ clickedItem = _ref5.selectedItem;
1862
1945
  // clickedItem means item chosen either via mouse or keyboard
1863
1946
  if (!clickedItem) return;
1864
1947
  switch (type) {
@@ -1867,16 +1950,10 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1867
1950
  if (!selectOnBlur) break;
1868
1951
  case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
1869
1952
  case Downshift.useCombobox.stateChangeTypes.ItemClick:
1870
- if (clickedItemIsSelectAll(clickedItem)) {
1871
- if (allListItemsAreSelected) {
1872
- return unselectAllListItems(onChange);
1873
- }
1874
- return selectAllUnselectedItemsInListItems(onChange);
1875
- }
1876
- if (clickedItemIsInSelectedItems(clickedItem)) {
1877
- return removeClickedItemFromSelectedItems(clickedItem, onChange);
1878
- }
1879
- addClickedItemToSelectedItems(clickedItem, onChange);
1953
+ handleListItemClicked({
1954
+ clickedItem: clickedItem,
1955
+ onChange: onChange
1956
+ });
1880
1957
  }
1881
1958
  }
1882
1959
  }, rest)),
@@ -1894,9 +1971,11 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1894
1971
  var handleOnClear = function handleOnClear() {
1895
1972
  var _inputRef$current3;
1896
1973
  onChange([]);
1897
- setInputValue('');
1974
+ setInputValue(EMPTY_INPUT);
1898
1975
  (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
1899
- updateListItems(inputValue);
1976
+ updateListItems({
1977
+ inputValue: inputValue
1978
+ });
1900
1979
  };
1901
1980
  // role=combobox leads to strange VoiceOver behavior and is therefor omitted
1902
1981
  // const { role: _, ...comboboxProps } = getComboboxProps();
@@ -1909,23 +1988,25 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1909
1988
  selectedItems: selectedItems,
1910
1989
  isOpen: isOpen,
1911
1990
  clearable: clearable,
1912
- clearSelectedItemsLabel: removeAllItemsAriaLabel,
1991
+ clearSelectedItemsLabel: clearAllItemsAriaLabel,
1992
+ focusable: false,
1913
1993
  loading: loading,
1914
- loadingText: '',
1915
- readOnly: readonly,
1994
+ loadingText: loadingText,
1995
+ disabled: readOnly || disabled,
1916
1996
  onClear: handleOnClear,
1917
1997
  getToggleButtonProps: getToggleButtonProps
1918
1998
  }),
1919
1999
  className: classNames__default["default"]('eds-dropdown', className),
1920
- label: label,
1921
- isFilled: hasSelectedItems || inputValue !== '',
2000
+ disabled: disabled,
1922
2001
  feedback: feedback,
1923
- variant: variant,
1924
- readOnly: readonly,
1925
- style: style,
2002
+ isFilled: hasSelectedItems || inputValue !== EMPTY_INPUT,
2003
+ label: label,
1926
2004
  labelProps: _extends({
1927
2005
  'aria-label': label + ", multiselect, " + selectedItems.length + " valgte elementer"
1928
- }, getLabelProps())
2006
+ }, getLabelProps()),
2007
+ readOnly: readOnly,
2008
+ style: style,
2009
+ variant: variant
1929
2010
  }, comboboxProps, rest), React__default["default"].createElement("div", {
1930
2011
  className: classNames__default["default"]('eds-dropdown__selected-items-and-input', {
1931
2012
  'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
@@ -1936,20 +2017,25 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1936
2017
  }
1937
2018
  }, selectedItems.length < maxTags ? selectedItems.map(function (selectedItem, index) {
1938
2019
  return React__default["default"].createElement(SelectedItemTag, {
2020
+ ariaLabelRemoveSelected: ariaLabelRemoveSelected,
2021
+ disabled: disabled,
2022
+ getSelectedItemProps: getSelectedItemProps,
1939
2023
  index: index,
1940
2024
  key: selectedItem.value,
1941
- getSelectedItemProps: getSelectedItemProps,
1942
- selectedItem: selectedItem,
2025
+ readOnly: readOnly,
1943
2026
  removeSelectedItem: removeSelectedItem,
1944
- ariaLabelRemoveSelected: ariaLabelRemoveSelected
2027
+ selectedItem: selectedItem
1945
2028
  });
1946
2029
  }) : React__default["default"].createElement(SelectedItemTag, {
1947
- selectedItem: summarySelectedItems,
2030
+ ariaLabelRemoveSelected: clearAllItemsAriaLabel,
2031
+ disabled: disabled,
2032
+ readOnly: readOnly,
1948
2033
  removeSelectedItem: handleOnClear,
1949
- ariaLabelRemoveSelected: removeAllItemsAriaLabel
2034
+ selectedItem: summarySelectedItems
1950
2035
  }), React__default["default"].createElement("input", _extends({
1951
2036
  placeholder: placeholder,
1952
2037
  className: "eds-dropdown__input eds-form-control",
2038
+ disabled: readOnly || disabled,
1953
2039
  role: "combobox" // eslint-disable-line jsx-a11y/role-has-required-aria-props
1954
2040
  }, getInputProps(getDropdownProps({
1955
2041
  preventKeyAction: isOpen,
@@ -1957,43 +2043,53 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1957
2043
  if (!isOpen && openOnFocus) openMenu();
1958
2044
  },
1959
2045
  ref: inputRef,
1960
- value: inputValue != null ? inputValue : ''
2046
+ value: inputValue != null ? inputValue : EMPTY_INPUT
1961
2047
  })))))), React__default["default"].createElement(DropdownList, {
1962
- listItems: listItems,
1963
- selectedItems: selectedItems,
2048
+ getItemProps: getItemProps,
2049
+ getMenuProps: getMenuProps,
2050
+ highlightedIndex: highlightedIndex,
1964
2051
  inputValue: inputValue,
1965
2052
  isOpen: isOpen,
1966
- highlightedIndex: highlightedIndex,
1967
- getMenuProps: getMenuProps,
1968
- getItemProps: getItemProps,
1969
- selectAllItem: selectAll,
1970
- selectAllCheckboxState: selectAllCheckboxState,
2053
+ listItems: listItems,
1971
2054
  listStyle: listStyle,
1972
- loading: loading
2055
+ loading: loading,
2056
+ loadingText: loadingText,
2057
+ selectAllCheckboxState: selectAllCheckboxState,
2058
+ selectAllItem: selectAll,
2059
+ selectedItems: selectedItems
1973
2060
  }));
1974
2061
  };
1975
2062
 
1976
- var _excluded = ["className", "clearable", "debounceTimeout", "feedback", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectedItem", "selectOnBlur", "selectOnTab", "variant"];
2063
+ var _excluded = ["className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelTooltip", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
1977
2064
  var DropdownBeta = function DropdownBeta(_ref) {
1978
- var _selectedItem$label;
2065
+ var _ref3, _selectedItem$label;
1979
2066
  var className = _ref.className,
1980
- debounceTimeout = _ref.debounceTimeout,
2067
+ _ref$disabled = _ref.disabled,
2068
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
2069
+ disableLabelAnimation = _ref.disableLabelAnimation,
1981
2070
  feedback = _ref.feedback,
1982
2071
  initialItems = _ref.items,
1983
2072
  label = _ref.label,
2073
+ labelTooltip = _ref.labelTooltip,
1984
2074
  listStyle = _ref.listStyle,
2075
+ loadingText = _ref.loadingText,
1985
2076
  onChange = _ref.onChange,
1986
- _ref$readonly = _ref.readonly,
1987
- readonly = _ref$readonly === void 0 ? false : _ref$readonly,
2077
+ placeholder = _ref.placeholder,
2078
+ prepend = _ref.prepend,
2079
+ _ref$readOnly = _ref.readOnly,
2080
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
1988
2081
  selectedItem = _ref.selectedItem,
1989
2082
  _ref$selectOnBlur = _ref.selectOnBlur,
1990
2083
  selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
2084
+ style = _ref.style,
1991
2085
  _ref$variant = _ref.variant,
1992
2086
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
1993
2087
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1994
- var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
2088
+ // TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
2089
+ var _useResolvedItems = useResolvedItems(initialItems),
1995
2090
  normalizedItems = _useResolvedItems.items,
1996
2091
  loading = _useResolvedItems.loading;
2092
+ var isFilled = selectedItem !== null || placeholder !== undefined;
1997
2093
  var _useSelect = Downshift.useSelect({
1998
2094
  items: normalizedItems,
1999
2095
  selectedItem: selectedItem,
@@ -2012,51 +2108,59 @@ var DropdownBeta = function DropdownBeta(_ref) {
2012
2108
  itemToString: itemToString
2013
2109
  }),
2014
2110
  isOpen = _useSelect.isOpen,
2015
- getToggleButtonProps = _useSelect.getToggleButtonProps,
2111
+ getItemProps = _useSelect.getItemProps,
2016
2112
  getLabelProps = _useSelect.getLabelProps,
2017
2113
  getMenuProps = _useSelect.getMenuProps,
2018
- highlightedIndex = _useSelect.highlightedIndex,
2019
- getItemProps = _useSelect.getItemProps;
2114
+ getToggleButtonProps = _useSelect.getToggleButtonProps,
2115
+ highlightedIndex = _useSelect.highlightedIndex;
2020
2116
  return React__default["default"].createElement("div", {
2021
2117
  className: "eds-dropdown__wrapper"
2022
2118
  }, React__default["default"].createElement(form.BaseFormControl, _extends({
2023
2119
  append: React__default["default"].createElement(FieldAppend, {
2024
- selectedItems: [selectedItem],
2025
- isOpen: isOpen,
2026
2120
  clearable: true,
2121
+ clearSelectedItemsLabel: "Fjern valgt",
2122
+ focusable: true,
2123
+ getToggleButtonProps: getToggleButtonProps,
2124
+ isOpen: isOpen,
2027
2125
  loading: loading,
2028
- loadingText: '',
2029
- readOnly: readonly,
2126
+ loadingText: loadingText,
2030
2127
  onClear: function onClear() {
2031
2128
  onChange == null ? void 0 : onChange(null);
2032
2129
  },
2033
- getToggleButtonProps: getToggleButtonProps,
2034
- clearSelectedItemsLabel: "Fjern valgt",
2035
- ariaLabelClearItems: (selectedItem == null ? void 0 : selectedItem.label) + " valgt, trykk for \xE5 fjerne valget",
2036
- focusable: true
2130
+ disabled: readOnly || disabled,
2131
+ selectedItems: [selectedItem]
2037
2132
  }),
2038
2133
  className: classNames__default["default"]('eds-dropdown', className, {
2039
- 'eds-dropdown--not-filled': selectedItem === null
2134
+ 'eds-dropdown--not-filled': !isFilled
2040
2135
  }),
2136
+ disabled: disabled,
2137
+ disableLabelAnimation: disableLabelAnimation,
2138
+ feedback: feedback,
2139
+ isFilled: isFilled,
2041
2140
  label: label,
2042
2141
  labelId: getLabelProps().id,
2043
2142
  labelProps: getLabelProps(),
2044
- disableLabelAnimation: true,
2045
- isFilled: selectedItem !== null,
2046
- feedback: feedback,
2047
- variant: variant,
2048
- readOnly: readonly
2143
+ labelTooltip: labelTooltip,
2144
+ prepend: prepend,
2145
+ readOnly: readOnly,
2146
+ style: style,
2147
+ variant: variant
2049
2148
  }, rest), React__default["default"].createElement("div", _extends({
2050
2149
  className: "eds-dropdown__selected-item-button"
2051
- }, getToggleButtonProps()), (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : '')), React__default["default"].createElement(DropdownList, {
2052
- selectedItems: selectedItem !== null ? [selectedItem] : [],
2150
+ }, getToggleButtonProps()), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React__default["default"].createElement("span", {
2151
+ className: classNames__default["default"]('eds-dropdown__selected-item-button__placeholder', {
2152
+ 'eds-dropdown__selected-item-button__placeholder--readonly': readOnly
2153
+ })
2154
+ }, placeholder)) != null ? _ref3 : '')), React__default["default"].createElement(DropdownList, {
2155
+ getItemProps: getItemProps,
2156
+ getMenuProps: getMenuProps,
2157
+ highlightedIndex: highlightedIndex,
2053
2158
  isOpen: isOpen,
2054
2159
  listItems: normalizedItems,
2055
- highlightedIndex: highlightedIndex,
2056
2160
  listStyle: listStyle,
2057
- getMenuProps: getMenuProps,
2058
- getItemProps: getItemProps,
2059
- loading: loading
2161
+ loading: loading,
2162
+ loadingText: loadingText,
2163
+ selectedItems: selectedItem !== null ? [selectedItem] : []
2060
2164
  }));
2061
2165
  };
2062
2166