@entur/dropdown 7.2.3-beta.0 → 7.3.1
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/dropdown.cjs.development.js +45 -53
- 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 +45 -53
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/package.json +4 -4
package/dist/dropdown.esm.js
CHANGED
|
@@ -421,7 +421,9 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
421
421
|
checked: selectAllCheckboxState == null ? void 0 : selectAllCheckboxState(),
|
|
422
422
|
className: "eds-dropdown__list__item__checkbox",
|
|
423
423
|
tabIndex: -1,
|
|
424
|
-
|
|
424
|
+
onChange: function onChange() {
|
|
425
|
+
return undefined;
|
|
426
|
+
}
|
|
425
427
|
}), React.createElement("span", {
|
|
426
428
|
className: "eds-dropdown__list__item__text",
|
|
427
429
|
"aria-label": ariaValuesSelectAll().label
|
|
@@ -436,7 +438,9 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
436
438
|
checked: isItemSelected(item),
|
|
437
439
|
className: "eds-dropdown__list__item__checkbox",
|
|
438
440
|
tabIndex: -1,
|
|
439
|
-
|
|
441
|
+
onChange: function onChange() {
|
|
442
|
+
return undefined;
|
|
443
|
+
}
|
|
440
444
|
}), React.createElement("span", {
|
|
441
445
|
className: "eds-dropdown__list__item__text"
|
|
442
446
|
}, item.label, React.createElement(VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), Array.isArray(item.icons) ? item.icons.filter(isReactComponent).map(function (Icon, index) {
|
|
@@ -1035,9 +1039,8 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1035
1039
|
inputValue: changes.inputValue
|
|
1036
1040
|
});
|
|
1037
1041
|
},
|
|
1038
|
-
|
|
1042
|
+
onSelectedItemChange: function onSelectedItemChange(_ref6) {
|
|
1039
1043
|
var newSelectedItem = _ref6.selectedItem;
|
|
1040
|
-
if (newSelectedItem === undefined) return;
|
|
1041
1044
|
onChange(newSelectedItem);
|
|
1042
1045
|
},
|
|
1043
1046
|
// Accessibility
|
|
@@ -1047,7 +1050,6 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1047
1050
|
}));
|
|
1048
1051
|
}
|
|
1049
1052
|
}),
|
|
1050
|
-
closeMenu = _useCombobox.closeMenu,
|
|
1051
1053
|
isOpen = _useCombobox.isOpen,
|
|
1052
1054
|
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1053
1055
|
getLabelProps = _useCombobox.getLabelProps,
|
|
@@ -1057,7 +1059,9 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1057
1059
|
getItemProps = _useCombobox.getItemProps,
|
|
1058
1060
|
selectedItem = _useCombobox.selectedItem,
|
|
1059
1061
|
inputValue = _useCombobox.inputValue,
|
|
1060
|
-
setInputValue = _useCombobox.setInputValue
|
|
1062
|
+
setInputValue = _useCombobox.setInputValue,
|
|
1063
|
+
selectItem = _useCombobox.selectItem,
|
|
1064
|
+
reset = _useCombobox.reset;
|
|
1061
1065
|
// calculations for floating-UI popover position
|
|
1062
1066
|
var _useFloating = useFloating({
|
|
1063
1067
|
open: isOpen,
|
|
@@ -1094,13 +1098,8 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1094
1098
|
}, [isOpen, refs.reference, refs.floating, update]);
|
|
1095
1099
|
var handleOnClear = function handleOnClear() {
|
|
1096
1100
|
var _inputRef$current;
|
|
1097
|
-
onChange(null);
|
|
1098
|
-
setInputValue(EMPTY_INPUT);
|
|
1099
1101
|
(_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
1100
|
-
|
|
1101
|
-
inputValue: inputValue
|
|
1102
|
-
});
|
|
1103
|
-
setShowSelectedItem(false);
|
|
1102
|
+
reset();
|
|
1104
1103
|
};
|
|
1105
1104
|
return React.createElement(BaseFormControl, _extends({
|
|
1106
1105
|
className: classNames('eds-dropdown', 'eds-dropdown--searchable', className, {
|
|
@@ -1168,10 +1167,8 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1168
1167
|
var highlitedItem = listItems[highlightedIndex];
|
|
1169
1168
|
// we don't want to clear selection with tab
|
|
1170
1169
|
if ((selectOnTab || selectOnBlur) && highlitedItem && highlitedItem !== selectedItem) {
|
|
1171
|
-
|
|
1170
|
+
selectItem(highlitedItem);
|
|
1172
1171
|
}
|
|
1173
|
-
closeMenu();
|
|
1174
|
-
e.preventDefault();
|
|
1175
1172
|
}
|
|
1176
1173
|
},
|
|
1177
1174
|
onBlur: function onBlur() {
|
|
@@ -1206,7 +1203,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1206
1203
|
|
|
1207
1204
|
var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "hideSelectAll", "items", "itemFilter", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "labelTooltip", "listStyle", "loading", "loadingText", "maxChips", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "selectOnTab", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
|
|
1208
1205
|
var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
1209
|
-
var _inputRef$
|
|
1206
|
+
var _inputRef$current4;
|
|
1210
1207
|
var className = _ref.className,
|
|
1211
1208
|
_ref$clearable = _ref.clearable,
|
|
1212
1209
|
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
@@ -1320,21 +1317,25 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1320
1317
|
}),
|
|
1321
1318
|
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1322
1319
|
handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
|
|
1323
|
-
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState
|
|
1320
|
+
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState,
|
|
1321
|
+
clickedItemIsInSelectedItems = _useMultiselectUtils.clickedItemIsInSelectedItems,
|
|
1322
|
+
clickedItemIsSelectAll = _useMultiselectUtils.clickedItemIsSelectAll;
|
|
1324
1323
|
var _useMultipleSelection = useMultipleSelection({
|
|
1325
1324
|
selectedItems: selectedItems,
|
|
1326
1325
|
// @ts-expect-error prop missing from library types
|
|
1327
1326
|
itemToString: itemToString,
|
|
1328
1327
|
itemToKey: itemToKey,
|
|
1329
|
-
|
|
1328
|
+
onSelectedItemsChange: function onSelectedItemsChange(_ref4) {
|
|
1330
1329
|
var newSelectedItems = _ref4.selectedItems;
|
|
1331
|
-
|
|
1330
|
+
onChange(newSelectedItems);
|
|
1332
1331
|
}
|
|
1333
1332
|
}),
|
|
1334
1333
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1335
|
-
getDropdownProps = _useMultipleSelection.getDropdownProps
|
|
1334
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1335
|
+
reset = _useMultipleSelection.reset,
|
|
1336
|
+
_removeSelectedItem = _useMultipleSelection.removeSelectedItem,
|
|
1337
|
+
setSelectedItems = _useMultipleSelection.setSelectedItems;
|
|
1336
1338
|
var stateReducer = React.useCallback(function (state, _ref5) {
|
|
1337
|
-
var _inputRef$current;
|
|
1338
1339
|
var changes = _ref5.changes,
|
|
1339
1340
|
type = _ref5.type;
|
|
1340
1341
|
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
@@ -1343,7 +1344,6 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1343
1344
|
switch (type) {
|
|
1344
1345
|
// reset input value when leaving input field
|
|
1345
1346
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
1346
|
-
if (state.isOpen) (_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
1347
1347
|
return _extends({}, changes, {
|
|
1348
1348
|
inputValue: EMPTY_INPUT
|
|
1349
1349
|
});
|
|
@@ -1351,18 +1351,18 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1351
1351
|
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1352
1352
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1353
1353
|
{
|
|
1354
|
-
var _inputRef$current$val, _inputRef$
|
|
1354
|
+
var _inputRef$current$val, _inputRef$current;
|
|
1355
1355
|
return _extends({}, changes, {
|
|
1356
1356
|
isOpen: true,
|
|
1357
|
-
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null || (_inputRef$
|
|
1357
|
+
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null || (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : EMPTY_INPUT
|
|
1358
1358
|
});
|
|
1359
1359
|
}
|
|
1360
1360
|
// edit input value when selected items is updated outside component
|
|
1361
1361
|
case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1362
1362
|
{
|
|
1363
|
-
var _inputRef$current$val2, _inputRef$
|
|
1363
|
+
var _inputRef$current$val2, _inputRef$current2;
|
|
1364
1364
|
return _extends({}, changes, {
|
|
1365
|
-
inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$
|
|
1365
|
+
inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
|
|
1366
1366
|
});
|
|
1367
1367
|
}
|
|
1368
1368
|
// remove leading whitespace, select item with spacebar if input is empty and filter list items
|
|
@@ -1407,13 +1407,13 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1407
1407
|
setHighlightedIndex(hideSelectAll ? 0 : 1);
|
|
1408
1408
|
setLastHighlightedIndex(hideSelectAll ? 0 : 1);
|
|
1409
1409
|
},
|
|
1410
|
-
|
|
1410
|
+
onSelectedItemChange: function onSelectedItemChange(_ref6) {
|
|
1411
1411
|
var clickedItem = _ref6.selectedItem;
|
|
1412
1412
|
// clickedItem means item chosen either via mouse or keyboard
|
|
1413
1413
|
if (!clickedItem) return;
|
|
1414
1414
|
handleListItemClicked({
|
|
1415
1415
|
clickedItem: clickedItem,
|
|
1416
|
-
onChange:
|
|
1416
|
+
onChange: setSelectedItems
|
|
1417
1417
|
});
|
|
1418
1418
|
},
|
|
1419
1419
|
// Accessibility
|
|
@@ -1469,13 +1469,9 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1469
1469
|
}
|
|
1470
1470
|
}, [isOpen, refs.reference, refs.floating, update]);
|
|
1471
1471
|
var handleOnClear = function handleOnClear() {
|
|
1472
|
-
var _inputRef$
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
(_inputRef$current4 = inputRef.current) == null || _inputRef$current4.focus();
|
|
1476
|
-
updateListItems({
|
|
1477
|
-
inputValue: inputValue
|
|
1478
|
-
});
|
|
1472
|
+
var _inputRef$current3;
|
|
1473
|
+
(_inputRef$current3 = inputRef.current) == null || _inputRef$current3.focus();
|
|
1474
|
+
reset();
|
|
1479
1475
|
};
|
|
1480
1476
|
return React.createElement(BaseFormControl, _extends({
|
|
1481
1477
|
className: classNames('eds-dropdown', 'eds-dropdown--multiselect', className, {
|
|
@@ -1526,7 +1522,7 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1526
1522
|
'eds-dropdown--multiselect__selected-items-and-input--filled': hasSelectedItems
|
|
1527
1523
|
})
|
|
1528
1524
|
}, selectedItems.length > 1 ? React.createElement(VisuallyHidden, {
|
|
1529
|
-
onClick: (_inputRef$
|
|
1525
|
+
onClick: (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus
|
|
1530
1526
|
}, ariaLabelJumpToInput) : null, selectedItems.length <= maxChips ? selectedItems.map(function (selectedItem, index) {
|
|
1531
1527
|
return React.createElement(SelectedItemTag, {
|
|
1532
1528
|
ariaLabelChosen: ariaLabelChosenSingular,
|
|
@@ -1537,12 +1533,9 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1537
1533
|
key: (selectedItem == null ? void 0 : selectedItem.label) + (typeof (selectedItem == null ? void 0 : selectedItem.value) === 'string' ? selectedItem.value : ''),
|
|
1538
1534
|
readOnly: readOnly,
|
|
1539
1535
|
removeSelectedItem: function removeSelectedItem() {
|
|
1540
|
-
var _inputRef$
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
onChange: onChange
|
|
1544
|
-
});
|
|
1545
|
-
inputRef == null || (_inputRef$current6 = inputRef.current) == null || _inputRef$current6.focus();
|
|
1536
|
+
var _inputRef$current5;
|
|
1537
|
+
_removeSelectedItem(selectedItem);
|
|
1538
|
+
inputRef == null || (_inputRef$current5 = inputRef.current) == null || _inputRef$current5.focus();
|
|
1546
1539
|
},
|
|
1547
1540
|
selectedItem: selectedItem
|
|
1548
1541
|
});
|
|
@@ -1557,13 +1550,14 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1557
1550
|
onKeyDown: function onKeyDown(e) {
|
|
1558
1551
|
if (selectOnTab && isOpen && e.key === 'Tab') {
|
|
1559
1552
|
var highlitedItem = listItems[highlightedIndex];
|
|
1560
|
-
|
|
1561
|
-
if
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1553
|
+
if (!highlitedItem) return;
|
|
1554
|
+
// Skip tab selection for select all or if item already is selected
|
|
1555
|
+
var shouldSkipTabSelection = clickedItemIsSelectAll(highlitedItem) || !clickedItemIsSelectAll(highlitedItem) && clickedItemIsInSelectedItems(highlitedItem);
|
|
1556
|
+
if (shouldSkipTabSelection) return;
|
|
1557
|
+
handleListItemClicked({
|
|
1558
|
+
clickedItem: highlitedItem,
|
|
1559
|
+
onChange: setSelectedItems
|
|
1560
|
+
});
|
|
1567
1561
|
}
|
|
1568
1562
|
}
|
|
1569
1563
|
}, getDropdownProps({
|
|
@@ -1666,13 +1660,13 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1666
1660
|
},
|
|
1667
1661
|
itemToString: itemToString
|
|
1668
1662
|
}),
|
|
1669
|
-
closeMenu = _useSelect.closeMenu,
|
|
1670
1663
|
isOpen = _useSelect.isOpen,
|
|
1671
1664
|
getItemProps = _useSelect.getItemProps,
|
|
1672
1665
|
getLabelProps = _useSelect.getLabelProps,
|
|
1673
1666
|
getMenuProps = _useSelect.getMenuProps,
|
|
1674
1667
|
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
1675
1668
|
highlightedIndex = _useSelect.highlightedIndex,
|
|
1669
|
+
selectItem = _useSelect.selectItem,
|
|
1676
1670
|
reset = _useSelect.reset;
|
|
1677
1671
|
// calculations for floating-UI popover position
|
|
1678
1672
|
var _useFloating = useFloating({
|
|
@@ -1740,10 +1734,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1740
1734
|
var highlitedItem = normalizedItems[highlightedIndex];
|
|
1741
1735
|
// we don't want to clear selection with tab
|
|
1742
1736
|
if ((selectOnTab || selectOnBlur) && highlitedItem && highlitedItem !== selectedItem) {
|
|
1743
|
-
|
|
1737
|
+
selectItem(highlitedItem);
|
|
1744
1738
|
}
|
|
1745
|
-
closeMenu();
|
|
1746
|
-
e.preventDefault();
|
|
1747
1739
|
}
|
|
1748
1740
|
}
|
|
1749
1741
|
}), {
|