@entur/dropdown 5.0.0-beta.1 → 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 +11 -2
- package/dist/beta/SearchableDropdown.d.ts +9 -3
- package/dist/beta/components/FieldComponents.d.ts +13 -12
- package/dist/beta/utils.d.ts +5 -0
- package/dist/dropdown.cjs.development.js +388 -258
- 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 +388 -258
- 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,
|
|
@@ -1434,19 +1455,25 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1434
1455
|
};
|
|
1435
1456
|
|
|
1436
1457
|
var _excluded$3 = ["tabIndex"];
|
|
1437
|
-
var
|
|
1438
|
-
var
|
|
1439
|
-
|
|
1440
|
-
|
|
1458
|
+
var SelectedItemTag = function SelectedItemTag(_ref) {
|
|
1459
|
+
var _getSelectedItemProps;
|
|
1460
|
+
var ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected,
|
|
1461
|
+
disabled = _ref.disabled,
|
|
1462
|
+
getSelectedItemProps = _ref.getSelectedItemProps,
|
|
1441
1463
|
index = _ref.index,
|
|
1442
|
-
|
|
1443
|
-
|
|
1464
|
+
readOnly = _ref.readOnly,
|
|
1465
|
+
removeSelectedItem = _ref.removeSelectedItem,
|
|
1466
|
+
selectedItem = _ref.selectedItem;
|
|
1467
|
+
var _ref2 = (_getSelectedItemProps = getSelectedItemProps == null ? void 0 : getSelectedItemProps({
|
|
1444
1468
|
selectedItem: selectedItem,
|
|
1445
1469
|
index: index
|
|
1446
|
-
}),
|
|
1447
|
-
selectedItemProps = _objectWithoutPropertiesLoose(
|
|
1470
|
+
})) != null ? _getSelectedItemProps : {},
|
|
1471
|
+
selectedItemProps = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
|
|
1448
1472
|
return React__default["default"].createElement(chip.TagChip, _extends({
|
|
1449
|
-
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
|
+
})
|
|
1450
1477
|
}, selectedItemProps, {
|
|
1451
1478
|
onClose: function onClose(e) {
|
|
1452
1479
|
e.stopPropagation();
|
|
@@ -1458,50 +1485,51 @@ var SelectedElementsTag = function SelectedElementsTag(_ref) {
|
|
|
1458
1485
|
"aria-hidden": "true"
|
|
1459
1486
|
}, selectedItem.label));
|
|
1460
1487
|
};
|
|
1461
|
-
var FieldAppend = function FieldAppend(
|
|
1462
|
-
var clearable =
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1488
|
+
var FieldAppend = function FieldAppend(_ref3) {
|
|
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,
|
|
1496
|
+
getToggleButtonProps = _ref3.getToggleButtonProps,
|
|
1497
|
+
isOpen = _ref3.isOpen,
|
|
1498
|
+
_ref3$loading = _ref3.loading,
|
|
1499
|
+
loading = _ref3$loading === void 0 ? false : _ref3$loading,
|
|
1500
|
+
_ref3$loadingText = _ref3.loadingText,
|
|
1501
|
+
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1502
|
+
onClear = _ref3.onClear,
|
|
1503
|
+
selectedItems = _ref3.selectedItems;
|
|
1476
1504
|
if (loading) {
|
|
1477
1505
|
return React__default["default"].createElement(DropdownLoadingDots, null, loadingText);
|
|
1478
1506
|
}
|
|
1479
|
-
if (
|
|
1507
|
+
if (disabled) {
|
|
1480
1508
|
return null;
|
|
1481
1509
|
}
|
|
1482
|
-
return
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
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
|
+
);
|
|
1496
1526
|
};
|
|
1497
|
-
var ClearableButton = function ClearableButton(
|
|
1498
|
-
var onClear =
|
|
1499
|
-
|
|
1500
|
-
clearSelectedItemsLabel =
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
_ref3$focusable = _ref3.focusable,
|
|
1504
|
-
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable;
|
|
1527
|
+
var ClearableButton = function ClearableButton(_ref4) {
|
|
1528
|
+
var onClear = _ref4.onClear,
|
|
1529
|
+
_ref4$clearSelectedIt = _ref4.clearSelectedItemsLabel,
|
|
1530
|
+
clearSelectedItemsLabel = _ref4$clearSelectedIt === void 0 ? 'Fjern valgte' : _ref4$clearSelectedIt,
|
|
1531
|
+
_ref4$focusable = _ref4.focusable,
|
|
1532
|
+
focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
|
|
1505
1533
|
return React__default["default"].createElement(tooltip.Tooltip, {
|
|
1506
1534
|
"aria-hidden": "true",
|
|
1507
1535
|
placement: "right",
|
|
@@ -1511,42 +1539,42 @@ var ClearableButton = function ClearableButton(_ref3) {
|
|
|
1511
1539
|
type: "button",
|
|
1512
1540
|
tabIndex: focusable ? 0 : 1,
|
|
1513
1541
|
onClick: onClear,
|
|
1514
|
-
"aria-label":
|
|
1542
|
+
"aria-label": clearSelectedItemsLabel
|
|
1515
1543
|
}, React__default["default"].createElement(icons.CloseSmallIcon, {
|
|
1516
1544
|
"aria-hidden": "true"
|
|
1517
1545
|
})));
|
|
1518
1546
|
};
|
|
1519
|
-
var ToggleButton = function ToggleButton(
|
|
1520
|
-
var getToggleButtonProps =
|
|
1521
|
-
isOpen =
|
|
1522
|
-
|
|
1523
|
-
closeAriaLabel =
|
|
1524
|
-
|
|
1525
|
-
openAriaLabel =
|
|
1526
|
-
|
|
1527
|
-
focusable =
|
|
1547
|
+
var ToggleButton = function ToggleButton(_ref5) {
|
|
1548
|
+
var getToggleButtonProps = _ref5.getToggleButtonProps,
|
|
1549
|
+
isOpen = _ref5.isOpen,
|
|
1550
|
+
_ref5$closeAriaLabel = _ref5.closeAriaLabel,
|
|
1551
|
+
closeAriaLabel = _ref5$closeAriaLabel === void 0 ? 'Lukk liste med valg' : _ref5$closeAriaLabel,
|
|
1552
|
+
_ref5$openAriaLabel = _ref5.openAriaLabel,
|
|
1553
|
+
openAriaLabel = _ref5$openAriaLabel === void 0 ? 'Åpne liste med valg' : _ref5$openAriaLabel,
|
|
1554
|
+
_ref5$focusable = _ref5.focusable,
|
|
1555
|
+
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1528
1556
|
return React__default["default"].createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1529
1557
|
className: classNames__default["default"]('eds-dropdown-appendix__toggle-button', {
|
|
1530
1558
|
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1531
1559
|
})
|
|
1532
1560
|
}), {
|
|
1533
1561
|
"aria-label": isOpen ? closeAriaLabel : openAriaLabel,
|
|
1534
|
-
tabIndex: focusable ? 0 : 1,
|
|
1562
|
+
tabIndex: focusable ? 0 : -1,
|
|
1535
1563
|
type: "button"
|
|
1536
1564
|
}), React__default["default"].createElement(icons.DownArrowIcon, {
|
|
1537
1565
|
"aria-hidden": "true"
|
|
1538
1566
|
}));
|
|
1539
1567
|
};
|
|
1540
1568
|
|
|
1541
|
-
var _excluded$2 = ["className", "clearable", "debounceTimeout", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "
|
|
1542
|
-
// TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
1543
|
-
// 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"];
|
|
1544
1570
|
var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
1545
1571
|
var _selectedItem$label;
|
|
1546
1572
|
var className = _ref.className,
|
|
1547
1573
|
_ref$clearable = _ref.clearable,
|
|
1548
1574
|
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1549
1575
|
debounceTimeout = _ref.debounceTimeout,
|
|
1576
|
+
_ref$disabled = _ref.disabled,
|
|
1577
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1550
1578
|
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
1551
1579
|
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
1552
1580
|
feedback = _ref.feedback,
|
|
@@ -1555,43 +1583,59 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1555
1583
|
initialItems = _ref.items,
|
|
1556
1584
|
label = _ref.label,
|
|
1557
1585
|
listStyle = _ref.listStyle,
|
|
1586
|
+
loadingText = _ref.loadingText,
|
|
1558
1587
|
onChange = _ref.onChange,
|
|
1559
1588
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1560
1589
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1561
1590
|
placeholder = _ref.placeholder,
|
|
1562
|
-
|
|
1563
|
-
|
|
1591
|
+
prepend = _ref.prepend,
|
|
1592
|
+
_ref$readOnly = _ref.readOnly,
|
|
1593
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1564
1594
|
value = _ref.selectedItem,
|
|
1565
1595
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1566
1596
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1597
|
+
style = _ref.style,
|
|
1567
1598
|
_ref$variant = _ref.variant,
|
|
1568
1599
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1569
1600
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1570
1601
|
var _useState = React.useState(false),
|
|
1571
1602
|
hideSelectedItem = _useState[0],
|
|
1572
1603
|
setHideSelectedItem = _useState[1];
|
|
1604
|
+
var _React$useState = React__default["default"].useState(0),
|
|
1605
|
+
lastHighlightedIndex = _React$useState[0],
|
|
1606
|
+
setLastHighlightedIndex = _React$useState[1];
|
|
1573
1607
|
var inputRef = React.useRef(null);
|
|
1574
1608
|
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1575
1609
|
normalizedItems = _useResolvedItems.items,
|
|
1576
1610
|
loading = _useResolvedItems.loading,
|
|
1577
1611
|
fetchItems = _useResolvedItems.fetchItems;
|
|
1578
|
-
var _React$
|
|
1579
|
-
listItems = _React$
|
|
1580
|
-
setListItems = _React$
|
|
1612
|
+
var _React$useState2 = React__default["default"].useState(normalizedItems),
|
|
1613
|
+
listItems = _React$useState2[0],
|
|
1614
|
+
setListItems = _React$useState2[1];
|
|
1581
1615
|
var filterListItems = function filterListItems(_ref2) {
|
|
1582
1616
|
var inputValue = _ref2.inputValue;
|
|
1583
1617
|
return setListItems(normalizedItems.filter(function (item) {
|
|
1584
1618
|
return itemFilter(item, inputValue);
|
|
1585
1619
|
}));
|
|
1586
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
|
+
};
|
|
1587
1628
|
React__default["default"].useEffect(function () {
|
|
1588
1629
|
filterListItems({
|
|
1589
1630
|
inputValue: inputValue
|
|
1590
1631
|
});
|
|
1591
1632
|
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1592
|
-
var stateReducer = React__default["default"].useCallback(function (_,
|
|
1593
|
-
var type =
|
|
1594
|
-
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
|
+
}
|
|
1595
1639
|
switch (type) {
|
|
1596
1640
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1597
1641
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
@@ -1599,10 +1643,10 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1599
1643
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1600
1644
|
{
|
|
1601
1645
|
filterListItems({
|
|
1602
|
-
inputValue:
|
|
1646
|
+
inputValue: EMPTY_INPUT
|
|
1603
1647
|
});
|
|
1604
1648
|
return _extends({}, changes, {
|
|
1605
|
-
inputValue:
|
|
1649
|
+
inputValue: EMPTY_INPUT // reset input value to show placeholder on focus
|
|
1606
1650
|
});
|
|
1607
1651
|
}
|
|
1608
1652
|
|
|
@@ -1610,11 +1654,18 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1610
1654
|
{
|
|
1611
1655
|
var _changes$inputValue;
|
|
1612
1656
|
var leadingWhitespaceTest = /^\s+/g;
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
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
|
|
1618
1669
|
});
|
|
1619
1670
|
}
|
|
1620
1671
|
return changes;
|
|
@@ -1624,13 +1675,14 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1624
1675
|
}
|
|
1625
1676
|
}, [fetchItems, filterListItems]);
|
|
1626
1677
|
var _useCombobox = Downshift.useCombobox(_extends({
|
|
1678
|
+
defaultHighlightedIndex: lastHighlightedIndex,
|
|
1627
1679
|
items: listItems,
|
|
1628
|
-
selectedItem: value,
|
|
1629
1680
|
itemToString: itemToString,
|
|
1681
|
+
selectedItem: value,
|
|
1630
1682
|
stateReducer: stateReducer,
|
|
1631
|
-
onStateChange: function onStateChange(
|
|
1632
|
-
var type =
|
|
1633
|
-
clickedItem =
|
|
1683
|
+
onStateChange: function onStateChange(_ref5) {
|
|
1684
|
+
var type = _ref5.type,
|
|
1685
|
+
clickedItem = _ref5.selectedItem;
|
|
1634
1686
|
switch (type) {
|
|
1635
1687
|
// @ts-expect-error This falltrough is wanted
|
|
1636
1688
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
@@ -1653,33 +1705,41 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1653
1705
|
selectedItem = _useCombobox.selectedItem,
|
|
1654
1706
|
inputValue = _useCombobox.inputValue,
|
|
1655
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
|
+
};
|
|
1656
1717
|
return React__default["default"].createElement("div", {
|
|
1657
1718
|
className: "eds-dropdown__wrapper"
|
|
1658
1719
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1659
1720
|
append: React__default["default"].createElement(FieldAppend, {
|
|
1660
|
-
selectedItems: [selectedItem],
|
|
1661
|
-
isOpen: isOpen,
|
|
1662
1721
|
clearable: clearable,
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
},
|
|
1673
|
-
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]
|
|
1674
1731
|
}),
|
|
1675
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
1676
1732
|
className: classNames__default["default"]('eds-dropdown', className),
|
|
1677
|
-
|
|
1678
|
-
|
|
1733
|
+
disabled: disabled,
|
|
1734
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1679
1735
|
feedback: feedback,
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
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
|
|
1683
1743
|
}, getComboboxProps(), rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
|
|
1684
1744
|
className: "eds-dropdown__selected-item__wrapper"
|
|
1685
1745
|
}, React__default["default"].createElement("span", {
|
|
@@ -1689,48 +1749,61 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1689
1749
|
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1690
1750
|
}
|
|
1691
1751
|
}, selectedItem.label)), React__default["default"].createElement("input", _extends({
|
|
1692
|
-
|
|
1693
|
-
|
|
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
|
|
1694
1755
|
}, getInputProps({
|
|
1756
|
+
onBlur: function onBlur() {
|
|
1757
|
+
setHideSelectedItem(false);
|
|
1758
|
+
},
|
|
1695
1759
|
onFocus: function onFocus() {
|
|
1696
1760
|
if (!isOpen && openOnFocus) openMenu();
|
|
1697
1761
|
setHideSelectedItem(true);
|
|
1698
1762
|
},
|
|
1699
|
-
onBlur: function onBlur() {
|
|
1700
|
-
setHideSelectedItem(false);
|
|
1701
|
-
},
|
|
1702
1763
|
ref: inputRef
|
|
1703
1764
|
})))), React__default["default"].createElement(DropdownList, {
|
|
1704
|
-
selectedItems: selectedItem !== null ? [selectedItem] : [],
|
|
1705
1765
|
isOpen: isOpen,
|
|
1706
1766
|
listItems: listItems,
|
|
1707
|
-
highlightedIndex: highlightedIndex,
|
|
1708
1767
|
listStyle: listStyle,
|
|
1709
|
-
|
|
1768
|
+
loading: loading,
|
|
1769
|
+
loadingText: loadingText,
|
|
1710
1770
|
getItemProps: getItemProps,
|
|
1711
|
-
|
|
1771
|
+
getMenuProps: getMenuProps,
|
|
1772
|
+
highlightedIndex: highlightedIndex,
|
|
1773
|
+
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
1712
1774
|
}));
|
|
1713
1775
|
};
|
|
1714
1776
|
|
|
1715
|
-
var _excluded$1 = ["ariaLabelRemoveSelected", "className", "clearable", "debounceTimeout", "feedback", "hideSelectAll", "items", "label", "listStyle", "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"];
|
|
1716
1778
|
var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
1717
|
-
var _ref$
|
|
1779
|
+
var _ref$allItemsSelected = _ref.allItemsSelectedLabel,
|
|
1780
|
+
allItemsSelectedLabel = _ref$allItemsSelected === void 0 ? 'Alle valgt' : _ref$allItemsSelected,
|
|
1781
|
+
_ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1718
1782
|
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1719
1783
|
className = _ref.className,
|
|
1720
1784
|
_ref$clearable = _ref.clearable,
|
|
1721
1785
|
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1786
|
+
_ref$clearInputOnSele = _ref.clearInputOnSelect,
|
|
1787
|
+
clearInputOnSelect = _ref$clearInputOnSele === void 0 ? false : _ref$clearInputOnSele,
|
|
1788
|
+
_ref$disabled = _ref.disabled,
|
|
1789
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1722
1790
|
feedback = _ref.feedback,
|
|
1723
1791
|
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1724
1792
|
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1725
1793
|
initialItems = _ref.items,
|
|
1726
1794
|
label = _ref.label,
|
|
1727
1795
|
listStyle = _ref.listStyle,
|
|
1796
|
+
loadingText = _ref.loadingText,
|
|
1797
|
+
_ref$maxTags = _ref.maxTags,
|
|
1798
|
+
maxTags = _ref$maxTags === void 0 ? 10 : _ref$maxTags,
|
|
1728
1799
|
onChange = _ref.onChange,
|
|
1729
1800
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1730
1801
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1731
1802
|
placeholder = _ref.placeholder,
|
|
1732
|
-
_ref$
|
|
1733
|
-
|
|
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,
|
|
1734
1807
|
_ref$selectAllLabel = _ref.selectAllLabel,
|
|
1735
1808
|
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Velg alle' : _ref$selectAllLabel,
|
|
1736
1809
|
selectedItems = _ref.selectedItems,
|
|
@@ -1748,10 +1821,17 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1748
1821
|
normalizedItems = _useResolvedItems.items,
|
|
1749
1822
|
loading = _useResolvedItems.loading,
|
|
1750
1823
|
fetchItems = _useResolvedItems.fetchItems;
|
|
1824
|
+
var isAllNonAsyncItemsSelected = typeof initialItems !== 'function' && selectedItems.length === normalizedItems.length;
|
|
1751
1825
|
var selectAll = {
|
|
1752
1826
|
value: utils.useRandomId('select-all'),
|
|
1753
1827
|
label: selectAllLabel
|
|
1754
1828
|
};
|
|
1829
|
+
var summarySelectedItems = React__default["default"].useMemo(function () {
|
|
1830
|
+
return {
|
|
1831
|
+
value: EMPTY_INPUT,
|
|
1832
|
+
label: isAllNonAsyncItemsSelected ? allItemsSelectedLabel : selectedItems.length + ' valgte'
|
|
1833
|
+
};
|
|
1834
|
+
}, [isAllNonAsyncItemsSelected, selectedItems, allItemsSelectedLabel]);
|
|
1755
1835
|
var _useState = React.useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
|
|
1756
1836
|
listItems = _useState[0],
|
|
1757
1837
|
setListItems = _useState[1];
|
|
@@ -1761,25 +1841,18 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1761
1841
|
return lowerCaseFilterTest(item, inputValue);
|
|
1762
1842
|
})));
|
|
1763
1843
|
};
|
|
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
|
|
1847
|
+
filterListItems({
|
|
1848
|
+
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
1849
|
+
});
|
|
1850
|
+
};
|
|
1764
1851
|
React__default["default"].useEffect(function () {
|
|
1765
1852
|
filterListItems({
|
|
1766
1853
|
inputValue: inputValue
|
|
1767
1854
|
});
|
|
1768
1855
|
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1769
|
-
var _useMultiselectUtils = useMultiselectUtils({
|
|
1770
|
-
listItems: listItems,
|
|
1771
|
-
selectAllValue: selectAll.value,
|
|
1772
|
-
selectedItems: selectedItems
|
|
1773
|
-
}),
|
|
1774
|
-
addClickedItemToSelectedItems = _useMultiselectUtils.addClickedItemToSelectedItems,
|
|
1775
|
-
allListItemsAreSelected = _useMultiselectUtils.allListItemsAreSelected,
|
|
1776
|
-
clickedItemIsInSelectedItems = _useMultiselectUtils.clickedItemIsInSelectedItems,
|
|
1777
|
-
clickedItemIsSelectAll = _useMultiselectUtils.clickedItemIsSelectAll,
|
|
1778
|
-
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1779
|
-
removeClickedItemFromSelectedItems = _useMultiselectUtils.removeClickedItemFromSelectedItems,
|
|
1780
|
-
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState,
|
|
1781
|
-
selectAllUnselectedItemsInListItems = _useMultiselectUtils.selectAllUnselectedItemsInListItems,
|
|
1782
|
-
unselectAllListItems = _useMultiselectUtils.unselectAllListItems;
|
|
1783
1856
|
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
1784
1857
|
selectedItems: selectedItems,
|
|
1785
1858
|
itemToString: itemToString,
|
|
@@ -1791,41 +1864,71 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1791
1864
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1792
1865
|
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1793
1866
|
removeSelectedItem = _useMultipleSelection.removeSelectedItem;
|
|
1794
|
-
var
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
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
|
+
}
|
|
1799
1881
|
switch (type) {
|
|
1800
1882
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1801
1883
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
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
|
+
});
|
|
1895
|
+
}
|
|
1807
1896
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
});
|
|
1811
|
-
|
|
1812
|
-
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1813
|
-
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(/^\s+/g)) {
|
|
1814
|
-
var _changes$inputValue$r;
|
|
1815
|
-
// remove leading whitespace if it exists
|
|
1897
|
+
{
|
|
1898
|
+
var _inputRef$current$val2, _inputRef$current2;
|
|
1816
1899
|
return _extends({}, changes, {
|
|
1817
|
-
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
|
|
1818
1901
|
});
|
|
1819
1902
|
}
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
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
|
+
}
|
|
1825
1926
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1927
|
+
{
|
|
1928
|
+
return _extends({}, changes, {
|
|
1929
|
+
inputValue: EMPTY_INPUT
|
|
1930
|
+
});
|
|
1931
|
+
}
|
|
1829
1932
|
default:
|
|
1830
1933
|
return changes;
|
|
1831
1934
|
}
|
|
@@ -1836,9 +1939,9 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1836
1939
|
itemToString: itemToString,
|
|
1837
1940
|
selectedItem: null,
|
|
1838
1941
|
stateReducer: stateReducer,
|
|
1839
|
-
onStateChange: function onStateChange(
|
|
1840
|
-
var type =
|
|
1841
|
-
clickedItem =
|
|
1942
|
+
onStateChange: function onStateChange(_ref5) {
|
|
1943
|
+
var type = _ref5.type,
|
|
1944
|
+
clickedItem = _ref5.selectedItem;
|
|
1842
1945
|
// clickedItem means item chosen either via mouse or keyboard
|
|
1843
1946
|
if (!clickedItem) return;
|
|
1844
1947
|
switch (type) {
|
|
@@ -1847,16 +1950,10 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1847
1950
|
if (!selectOnBlur) break;
|
|
1848
1951
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1849
1952
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
return selectAllUnselectedItemsInListItems(onChange);
|
|
1855
|
-
}
|
|
1856
|
-
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1857
|
-
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1858
|
-
}
|
|
1859
|
-
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
1953
|
+
handleListItemClicked({
|
|
1954
|
+
clickedItem: clickedItem,
|
|
1955
|
+
onChange: onChange
|
|
1956
|
+
});
|
|
1860
1957
|
}
|
|
1861
1958
|
}
|
|
1862
1959
|
}, rest)),
|
|
@@ -1871,6 +1968,15 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1871
1968
|
isOpen = _useCombobox.isOpen,
|
|
1872
1969
|
openMenu = _useCombobox.openMenu,
|
|
1873
1970
|
setInputValue = _useCombobox.setInputValue;
|
|
1971
|
+
var handleOnClear = function handleOnClear() {
|
|
1972
|
+
var _inputRef$current3;
|
|
1973
|
+
onChange([]);
|
|
1974
|
+
setInputValue(EMPTY_INPUT);
|
|
1975
|
+
(_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
|
|
1976
|
+
updateListItems({
|
|
1977
|
+
inputValue: inputValue
|
|
1978
|
+
});
|
|
1979
|
+
};
|
|
1874
1980
|
// role=combobox leads to strange VoiceOver behavior and is therefor omitted
|
|
1875
1981
|
// const { role: _, ...comboboxProps } = getComboboxProps();
|
|
1876
1982
|
var _getComboboxProps = getComboboxProps(),
|
|
@@ -1882,28 +1988,25 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1882
1988
|
selectedItems: selectedItems,
|
|
1883
1989
|
isOpen: isOpen,
|
|
1884
1990
|
clearable: clearable,
|
|
1991
|
+
clearSelectedItemsLabel: clearAllItemsAriaLabel,
|
|
1992
|
+
focusable: false,
|
|
1885
1993
|
loading: loading,
|
|
1886
|
-
loadingText:
|
|
1887
|
-
|
|
1888
|
-
onClear:
|
|
1889
|
-
var _inputRef$current3;
|
|
1890
|
-
onChange([]);
|
|
1891
|
-
setInputValue('');
|
|
1892
|
-
(_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
|
|
1893
|
-
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : '');
|
|
1894
|
-
},
|
|
1994
|
+
loadingText: loadingText,
|
|
1995
|
+
disabled: readOnly || disabled,
|
|
1996
|
+
onClear: handleOnClear,
|
|
1895
1997
|
getToggleButtonProps: getToggleButtonProps
|
|
1896
1998
|
}),
|
|
1897
1999
|
className: classNames__default["default"]('eds-dropdown', className),
|
|
1898
|
-
|
|
1899
|
-
isFilled: hasSelectedItems || inputValue !== '',
|
|
2000
|
+
disabled: disabled,
|
|
1900
2001
|
feedback: feedback,
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
style: style,
|
|
2002
|
+
isFilled: hasSelectedItems || inputValue !== EMPTY_INPUT,
|
|
2003
|
+
label: label,
|
|
1904
2004
|
labelProps: _extends({
|
|
1905
2005
|
'aria-label': label + ", multiselect, " + selectedItems.length + " valgte elementer"
|
|
1906
|
-
}, getLabelProps())
|
|
2006
|
+
}, getLabelProps()),
|
|
2007
|
+
readOnly: readOnly,
|
|
2008
|
+
style: style,
|
|
2009
|
+
variant: variant
|
|
1907
2010
|
}, comboboxProps, rest), React__default["default"].createElement("div", {
|
|
1908
2011
|
className: classNames__default["default"]('eds-dropdown__selected-items-and-input', {
|
|
1909
2012
|
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
@@ -1912,18 +2015,27 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1912
2015
|
var _inputRef$current4;
|
|
1913
2016
|
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
1914
2017
|
}
|
|
1915
|
-
}, selectedItems.map(function (selectedItem, index) {
|
|
1916
|
-
return React__default["default"].createElement(
|
|
2018
|
+
}, selectedItems.length < maxTags ? selectedItems.map(function (selectedItem, index) {
|
|
2019
|
+
return React__default["default"].createElement(SelectedItemTag, {
|
|
2020
|
+
ariaLabelRemoveSelected: ariaLabelRemoveSelected,
|
|
2021
|
+
disabled: disabled,
|
|
2022
|
+
getSelectedItemProps: getSelectedItemProps,
|
|
1917
2023
|
index: index,
|
|
1918
2024
|
key: selectedItem.value,
|
|
1919
|
-
|
|
1920
|
-
selectedItem: selectedItem,
|
|
2025
|
+
readOnly: readOnly,
|
|
1921
2026
|
removeSelectedItem: removeSelectedItem,
|
|
1922
|
-
|
|
2027
|
+
selectedItem: selectedItem
|
|
1923
2028
|
});
|
|
2029
|
+
}) : React__default["default"].createElement(SelectedItemTag, {
|
|
2030
|
+
ariaLabelRemoveSelected: clearAllItemsAriaLabel,
|
|
2031
|
+
disabled: disabled,
|
|
2032
|
+
readOnly: readOnly,
|
|
2033
|
+
removeSelectedItem: handleOnClear,
|
|
2034
|
+
selectedItem: summarySelectedItems
|
|
1924
2035
|
}), React__default["default"].createElement("input", _extends({
|
|
1925
2036
|
placeholder: placeholder,
|
|
1926
2037
|
className: "eds-dropdown__input eds-form-control",
|
|
2038
|
+
disabled: readOnly || disabled,
|
|
1927
2039
|
role: "combobox" // eslint-disable-line jsx-a11y/role-has-required-aria-props
|
|
1928
2040
|
}, getInputProps(getDropdownProps({
|
|
1929
2041
|
preventKeyAction: isOpen,
|
|
@@ -1931,43 +2043,53 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1931
2043
|
if (!isOpen && openOnFocus) openMenu();
|
|
1932
2044
|
},
|
|
1933
2045
|
ref: inputRef,
|
|
1934
|
-
value: inputValue != null ? inputValue :
|
|
2046
|
+
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
1935
2047
|
})))))), React__default["default"].createElement(DropdownList, {
|
|
1936
|
-
|
|
1937
|
-
|
|
2048
|
+
getItemProps: getItemProps,
|
|
2049
|
+
getMenuProps: getMenuProps,
|
|
2050
|
+
highlightedIndex: highlightedIndex,
|
|
1938
2051
|
inputValue: inputValue,
|
|
1939
2052
|
isOpen: isOpen,
|
|
1940
|
-
|
|
1941
|
-
getMenuProps: getMenuProps,
|
|
1942
|
-
getItemProps: getItemProps,
|
|
1943
|
-
selectAllItem: selectAll,
|
|
1944
|
-
selectAllCheckboxState: selectAllCheckboxState,
|
|
2053
|
+
listItems: listItems,
|
|
1945
2054
|
listStyle: listStyle,
|
|
1946
|
-
loading: loading
|
|
2055
|
+
loading: loading,
|
|
2056
|
+
loadingText: loadingText,
|
|
2057
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
2058
|
+
selectAllItem: selectAll,
|
|
2059
|
+
selectedItems: selectedItems
|
|
1947
2060
|
}));
|
|
1948
2061
|
};
|
|
1949
2062
|
|
|
1950
|
-
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"];
|
|
1951
2064
|
var DropdownBeta = function DropdownBeta(_ref) {
|
|
1952
|
-
var _selectedItem$label;
|
|
2065
|
+
var _ref3, _selectedItem$label;
|
|
1953
2066
|
var className = _ref.className,
|
|
1954
|
-
|
|
2067
|
+
_ref$disabled = _ref.disabled,
|
|
2068
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2069
|
+
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
1955
2070
|
feedback = _ref.feedback,
|
|
1956
2071
|
initialItems = _ref.items,
|
|
1957
2072
|
label = _ref.label,
|
|
2073
|
+
labelTooltip = _ref.labelTooltip,
|
|
1958
2074
|
listStyle = _ref.listStyle,
|
|
2075
|
+
loadingText = _ref.loadingText,
|
|
1959
2076
|
onChange = _ref.onChange,
|
|
1960
|
-
|
|
1961
|
-
|
|
2077
|
+
placeholder = _ref.placeholder,
|
|
2078
|
+
prepend = _ref.prepend,
|
|
2079
|
+
_ref$readOnly = _ref.readOnly,
|
|
2080
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1962
2081
|
selectedItem = _ref.selectedItem,
|
|
1963
2082
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1964
2083
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
2084
|
+
style = _ref.style,
|
|
1965
2085
|
_ref$variant = _ref.variant,
|
|
1966
2086
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1967
2087
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
1968
|
-
|
|
2088
|
+
// TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
2089
|
+
var _useResolvedItems = useResolvedItems(initialItems),
|
|
1969
2090
|
normalizedItems = _useResolvedItems.items,
|
|
1970
2091
|
loading = _useResolvedItems.loading;
|
|
2092
|
+
var isFilled = selectedItem !== null || placeholder !== undefined;
|
|
1971
2093
|
var _useSelect = Downshift.useSelect({
|
|
1972
2094
|
items: normalizedItems,
|
|
1973
2095
|
selectedItem: selectedItem,
|
|
@@ -1986,51 +2108,59 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
1986
2108
|
itemToString: itemToString
|
|
1987
2109
|
}),
|
|
1988
2110
|
isOpen = _useSelect.isOpen,
|
|
1989
|
-
|
|
2111
|
+
getItemProps = _useSelect.getItemProps,
|
|
1990
2112
|
getLabelProps = _useSelect.getLabelProps,
|
|
1991
2113
|
getMenuProps = _useSelect.getMenuProps,
|
|
1992
|
-
|
|
1993
|
-
|
|
2114
|
+
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
2115
|
+
highlightedIndex = _useSelect.highlightedIndex;
|
|
1994
2116
|
return React__default["default"].createElement("div", {
|
|
1995
2117
|
className: "eds-dropdown__wrapper"
|
|
1996
2118
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1997
2119
|
append: React__default["default"].createElement(FieldAppend, {
|
|
1998
|
-
selectedItems: [selectedItem],
|
|
1999
|
-
isOpen: isOpen,
|
|
2000
2120
|
clearable: true,
|
|
2121
|
+
clearSelectedItemsLabel: "Fjern valgt",
|
|
2122
|
+
focusable: true,
|
|
2123
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
2124
|
+
isOpen: isOpen,
|
|
2001
2125
|
loading: loading,
|
|
2002
|
-
loadingText:
|
|
2003
|
-
readOnly: readonly,
|
|
2126
|
+
loadingText: loadingText,
|
|
2004
2127
|
onClear: function onClear() {
|
|
2005
2128
|
onChange == null ? void 0 : onChange(null);
|
|
2006
2129
|
},
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
ariaLabelClearItems: (selectedItem == null ? void 0 : selectedItem.label) + " valgt, trykk for \xE5 fjerne valget",
|
|
2010
|
-
focusable: true
|
|
2130
|
+
disabled: readOnly || disabled,
|
|
2131
|
+
selectedItems: [selectedItem]
|
|
2011
2132
|
}),
|
|
2012
2133
|
className: classNames__default["default"]('eds-dropdown', className, {
|
|
2013
|
-
'eds-dropdown--not-filled':
|
|
2134
|
+
'eds-dropdown--not-filled': !isFilled
|
|
2014
2135
|
}),
|
|
2136
|
+
disabled: disabled,
|
|
2137
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
2138
|
+
feedback: feedback,
|
|
2139
|
+
isFilled: isFilled,
|
|
2015
2140
|
label: label,
|
|
2016
2141
|
labelId: getLabelProps().id,
|
|
2017
2142
|
labelProps: getLabelProps(),
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2143
|
+
labelTooltip: labelTooltip,
|
|
2144
|
+
prepend: prepend,
|
|
2145
|
+
readOnly: readOnly,
|
|
2146
|
+
style: style,
|
|
2147
|
+
variant: variant
|
|
2023
2148
|
}, rest), React__default["default"].createElement("div", _extends({
|
|
2024
2149
|
className: "eds-dropdown__selected-item-button"
|
|
2025
|
-
}, getToggleButtonProps()), (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label :
|
|
2026
|
-
|
|
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,
|
|
2027
2158
|
isOpen: isOpen,
|
|
2028
2159
|
listItems: normalizedItems,
|
|
2029
|
-
highlightedIndex: highlightedIndex,
|
|
2030
2160
|
listStyle: listStyle,
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2161
|
+
loading: loading,
|
|
2162
|
+
loadingText: loadingText,
|
|
2163
|
+
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
2034
2164
|
}));
|
|
2035
2165
|
};
|
|
2036
2166
|
|