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