@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
|
@@ -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
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
'eds-dropdown__list__item
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
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
|
|
1440
|
-
|
|
1441
|
-
|
|
1460
|
+
var ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected,
|
|
1461
|
+
disabled = _ref.disabled,
|
|
1462
|
+
getSelectedItemProps = _ref.getSelectedItemProps,
|
|
1442
1463
|
index = _ref.index,
|
|
1443
|
-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
1507
|
+
if (disabled) {
|
|
1481
1508
|
return null;
|
|
1482
1509
|
}
|
|
1483
|
-
return
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
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":
|
|
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", "
|
|
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
|
-
|
|
1564
|
-
|
|
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$
|
|
1580
|
-
listItems = _React$
|
|
1581
|
-
setListItems = _React$
|
|
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 (_,
|
|
1594
|
-
var type =
|
|
1595
|
-
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:
|
|
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
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
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(
|
|
1633
|
-
var type =
|
|
1634
|
-
clickedItem =
|
|
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
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
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
|
-
|
|
1679
|
-
|
|
1733
|
+
disabled: disabled,
|
|
1734
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1680
1735
|
feedback: feedback,
|
|
1681
|
-
|
|
1682
|
-
|
|
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
|
-
|
|
1694
|
-
|
|
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
|
-
|
|
1768
|
+
loading: loading,
|
|
1769
|
+
loadingText: loadingText,
|
|
1711
1770
|
getItemProps: getItemProps,
|
|
1712
|
-
|
|
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", "
|
|
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$
|
|
1740
|
-
|
|
1741
|
-
_ref$
|
|
1742
|
-
|
|
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,
|
|
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(
|
|
1781
|
-
|
|
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
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
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
|
-
|
|
1825
|
-
|
|
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
|
-
|
|
1833
|
-
|
|
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: (
|
|
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
|
-
|
|
1844
|
-
|
|
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
|
-
|
|
1847
|
-
|
|
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(
|
|
1860
|
-
var type =
|
|
1861
|
-
clickedItem =
|
|
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
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
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(
|
|
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:
|
|
1991
|
+
clearSelectedItemsLabel: clearAllItemsAriaLabel,
|
|
1992
|
+
focusable: false,
|
|
1913
1993
|
loading: loading,
|
|
1914
|
-
loadingText:
|
|
1915
|
-
|
|
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
|
-
|
|
1921
|
-
isFilled: hasSelectedItems || inputValue !== '',
|
|
2000
|
+
disabled: disabled,
|
|
1922
2001
|
feedback: feedback,
|
|
1923
|
-
|
|
1924
|
-
|
|
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
|
-
|
|
1942
|
-
selectedItem: selectedItem,
|
|
2025
|
+
readOnly: readOnly,
|
|
1943
2026
|
removeSelectedItem: removeSelectedItem,
|
|
1944
|
-
|
|
2027
|
+
selectedItem: selectedItem
|
|
1945
2028
|
});
|
|
1946
2029
|
}) : React__default["default"].createElement(SelectedItemTag, {
|
|
1947
|
-
|
|
2030
|
+
ariaLabelRemoveSelected: clearAllItemsAriaLabel,
|
|
2031
|
+
disabled: disabled,
|
|
2032
|
+
readOnly: readOnly,
|
|
1948
2033
|
removeSelectedItem: handleOnClear,
|
|
1949
|
-
|
|
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
|
-
|
|
1963
|
-
|
|
2048
|
+
getItemProps: getItemProps,
|
|
2049
|
+
getMenuProps: getMenuProps,
|
|
2050
|
+
highlightedIndex: highlightedIndex,
|
|
1964
2051
|
inputValue: inputValue,
|
|
1965
2052
|
isOpen: isOpen,
|
|
1966
|
-
|
|
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", "
|
|
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
|
-
|
|
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
|
-
|
|
1987
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2111
|
+
getItemProps = _useSelect.getItemProps,
|
|
2016
2112
|
getLabelProps = _useSelect.getLabelProps,
|
|
2017
2113
|
getMenuProps = _useSelect.getMenuProps,
|
|
2018
|
-
|
|
2019
|
-
|
|
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
|
-
|
|
2034
|
-
|
|
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':
|
|
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
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
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 :
|
|
2052
|
-
|
|
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
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2161
|
+
loading: loading,
|
|
2162
|
+
loadingText: loadingText,
|
|
2163
|
+
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
2060
2164
|
}));
|
|
2061
2165
|
};
|
|
2062
2166
|
|