@entur/dropdown 7.1.1-beta.0 → 7.1.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 +38 -19
- 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 +38 -19
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +77 -77
- package/package.json +8 -8
|
@@ -573,6 +573,7 @@ var DropdownFieldAppendix = /*#__PURE__*/React.forwardRef(function (_ref3, ref)
|
|
|
573
573
|
ref: ref,
|
|
574
574
|
"aria-label": getToggleAriaLabel()
|
|
575
575
|
}, rest, {
|
|
576
|
+
type: "button",
|
|
576
577
|
tabIndex: focusable ? 0 : -1
|
|
577
578
|
}), !loading ? React.createElement(icons.DownArrowIcon, {
|
|
578
579
|
"aria-hidden": "true"
|
|
@@ -985,22 +986,20 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
985
986
|
case downshift.useCombobox.stateChangeTypes.InputChange:
|
|
986
987
|
{
|
|
987
988
|
var _changes$inputValue;
|
|
988
|
-
setLastHighlightedIndex(0);
|
|
989
989
|
var leadingWhitespaceTest = /^\s+/g;
|
|
990
990
|
var isSpacePressedOnEmptyInput = changes.inputValue === ' ';
|
|
991
|
+
if (!isSpacePressedOnEmptyInput) setLastHighlightedIndex(0);
|
|
991
992
|
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
|
|
992
993
|
var sanitizedInputValue = changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT);
|
|
993
994
|
if (isSpacePressedOnEmptyInput) {
|
|
994
995
|
if (!state.isOpen) return _extends({}, changes, {
|
|
995
996
|
inputValue: sanitizedInputValue,
|
|
996
|
-
isOpen: true
|
|
997
|
-
highlightedIndex: 0
|
|
997
|
+
isOpen: true
|
|
998
998
|
});
|
|
999
999
|
if (changes.highlightedIndex !== undefined) {
|
|
1000
1000
|
return _extends({}, changes, {
|
|
1001
1001
|
inputValue: sanitizedInputValue,
|
|
1002
|
-
selectedItem: listItems[changes.highlightedIndex]
|
|
1003
|
-
highlightedIndex: 0
|
|
1002
|
+
selectedItem: listItems[changes.highlightedIndex]
|
|
1004
1003
|
});
|
|
1005
1004
|
}
|
|
1006
1005
|
}
|
|
@@ -1036,6 +1035,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1036
1035
|
}));
|
|
1037
1036
|
}
|
|
1038
1037
|
}),
|
|
1038
|
+
closeMenu = _useCombobox.closeMenu,
|
|
1039
1039
|
isOpen = _useCombobox.isOpen,
|
|
1040
1040
|
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1041
1041
|
getLabelProps = _useCombobox.getLabelProps,
|
|
@@ -1147,15 +1147,23 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1147
1147
|
'eds-dropdown__input--hidden': showSelectedItem
|
|
1148
1148
|
})
|
|
1149
1149
|
}, getInputProps({
|
|
1150
|
+
onKeyDown: function onKeyDown(e) {
|
|
1151
|
+
if (isOpen && e.key === 'Tab') {
|
|
1152
|
+
var highlitedItem = listItems[highlightedIndex];
|
|
1153
|
+
// we don't want to clear selection with tab
|
|
1154
|
+
if ((selectOnTab || selectOnBlur) && highlitedItem && highlitedItem !== selectedItem) {
|
|
1155
|
+
onChange == null || onChange(highlitedItem);
|
|
1156
|
+
}
|
|
1157
|
+
closeMenu();
|
|
1158
|
+
e.preventDefault();
|
|
1159
|
+
}
|
|
1160
|
+
},
|
|
1150
1161
|
onBlur: function onBlur() {
|
|
1151
1162
|
if (selectedItem !== null) setShowSelectedItem(true);
|
|
1152
1163
|
},
|
|
1153
1164
|
onFocus: function onFocus() {
|
|
1154
1165
|
setShowSelectedItem(false);
|
|
1155
1166
|
},
|
|
1156
|
-
onKeyDown: function onKeyDown(e) {
|
|
1157
|
-
if (isOpen && (selectOnTab || selectOnBlur) && e.key === 'Tab' && highlightedIndex !== undefined) onChange(listItems[highlightedIndex]);
|
|
1158
|
-
},
|
|
1159
1167
|
disabled: disabled,
|
|
1160
1168
|
readOnly: readOnly,
|
|
1161
1169
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder,
|
|
@@ -1180,7 +1188,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1180
1188
|
|
|
1181
1189
|
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"];
|
|
1182
1190
|
var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
1183
|
-
var _inputRef$
|
|
1191
|
+
var _inputRef$current5;
|
|
1184
1192
|
var className = _ref.className,
|
|
1185
1193
|
_ref$clearable = _ref.clearable,
|
|
1186
1194
|
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
@@ -1308,6 +1316,7 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1308
1316
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1309
1317
|
getDropdownProps = _useMultipleSelection.getDropdownProps;
|
|
1310
1318
|
var stateReducer = React.useCallback(function (state, _ref5) {
|
|
1319
|
+
var _inputRef$current;
|
|
1311
1320
|
var changes = _ref5.changes,
|
|
1312
1321
|
type = _ref5.type;
|
|
1313
1322
|
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
@@ -1316,6 +1325,7 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1316
1325
|
switch (type) {
|
|
1317
1326
|
// reset input value when leaving input field
|
|
1318
1327
|
case downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1328
|
+
if (state.isOpen) (_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
1319
1329
|
return _extends({}, changes, {
|
|
1320
1330
|
inputValue: EMPTY_INPUT
|
|
1321
1331
|
});
|
|
@@ -1323,18 +1333,18 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1323
1333
|
case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1324
1334
|
case downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1325
1335
|
{
|
|
1326
|
-
var _inputRef$current$val, _inputRef$
|
|
1336
|
+
var _inputRef$current$val, _inputRef$current2;
|
|
1327
1337
|
return _extends({}, changes, {
|
|
1328
1338
|
isOpen: true,
|
|
1329
|
-
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null || (_inputRef$
|
|
1339
|
+
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null || (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val : EMPTY_INPUT
|
|
1330
1340
|
});
|
|
1331
1341
|
}
|
|
1332
1342
|
// edit input value when selected items is updated outside component
|
|
1333
1343
|
case downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1334
1344
|
{
|
|
1335
|
-
var _inputRef$current$val2, _inputRef$
|
|
1345
|
+
var _inputRef$current$val2, _inputRef$current3;
|
|
1336
1346
|
return _extends({}, changes, {
|
|
1337
|
-
inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$
|
|
1347
|
+
inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
|
|
1338
1348
|
});
|
|
1339
1349
|
}
|
|
1340
1350
|
// remove leading whitespace, select item with spacebar if input is empty and filter list items
|
|
@@ -1441,10 +1451,10 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1441
1451
|
}
|
|
1442
1452
|
}, [isOpen, refs.reference, refs.floating, update]);
|
|
1443
1453
|
var handleOnClear = function handleOnClear() {
|
|
1444
|
-
var _inputRef$
|
|
1454
|
+
var _inputRef$current4;
|
|
1445
1455
|
onChange([]);
|
|
1446
1456
|
setInputValue(EMPTY_INPUT);
|
|
1447
|
-
(_inputRef$
|
|
1457
|
+
(_inputRef$current4 = inputRef.current) == null || _inputRef$current4.focus();
|
|
1448
1458
|
updateListItems({
|
|
1449
1459
|
inputValue: inputValue
|
|
1450
1460
|
});
|
|
@@ -1497,7 +1507,7 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1497
1507
|
'eds-dropdown--multiselect__selected-items-and-input--filled': hasSelectedItems
|
|
1498
1508
|
})
|
|
1499
1509
|
}, selectedItems.length > 1 ? React.createElement(a11y.VisuallyHidden, {
|
|
1500
|
-
onClick: (_inputRef$
|
|
1510
|
+
onClick: (_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.focus
|
|
1501
1511
|
}, ariaLabelJumpToInput) : null, selectedItems.length <= maxChips ? selectedItems.map(function (selectedItem, index) {
|
|
1502
1512
|
return React.createElement(SelectedItemTag, {
|
|
1503
1513
|
ariaLabelChosen: ariaLabelChosenSingular,
|
|
@@ -1508,12 +1518,12 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1508
1518
|
key: (selectedItem == null ? void 0 : selectedItem.label) + (typeof (selectedItem == null ? void 0 : selectedItem.value) === 'string' ? selectedItem.value : ''),
|
|
1509
1519
|
readOnly: readOnly,
|
|
1510
1520
|
removeSelectedItem: function removeSelectedItem() {
|
|
1511
|
-
var _inputRef$
|
|
1521
|
+
var _inputRef$current6;
|
|
1512
1522
|
handleListItemClicked({
|
|
1513
1523
|
clickedItem: selectedItem,
|
|
1514
1524
|
onChange: onChange
|
|
1515
1525
|
});
|
|
1516
|
-
inputRef == null || (_inputRef$
|
|
1526
|
+
inputRef == null || (_inputRef$current6 = inputRef.current) == null || _inputRef$current6.focus();
|
|
1517
1527
|
},
|
|
1518
1528
|
selectedItem: selectedItem
|
|
1519
1529
|
});
|
|
@@ -1624,6 +1634,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1624
1634
|
},
|
|
1625
1635
|
itemToString: itemToString
|
|
1626
1636
|
}),
|
|
1637
|
+
closeMenu = _useSelect.closeMenu,
|
|
1627
1638
|
isOpen = _useSelect.isOpen,
|
|
1628
1639
|
getItemProps = _useSelect.getItemProps,
|
|
1629
1640
|
getLabelProps = _useSelect.getLabelProps,
|
|
@@ -1687,7 +1698,15 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1687
1698
|
children: undefined,
|
|
1688
1699
|
tabIndex: disabled || readOnly ? -1 : 0,
|
|
1689
1700
|
onKeyDown: function onKeyDown(e) {
|
|
1690
|
-
if (isOpen &&
|
|
1701
|
+
if (isOpen && e.key === 'Tab') {
|
|
1702
|
+
var highlitedItem = normalizedItems[highlightedIndex];
|
|
1703
|
+
// we don't want to clear selection with tab
|
|
1704
|
+
if ((selectOnTab || selectOnBlur) && highlitedItem && highlitedItem !== selectedItem) {
|
|
1705
|
+
onChange == null || onChange(highlitedItem);
|
|
1706
|
+
}
|
|
1707
|
+
closeMenu();
|
|
1708
|
+
e.preventDefault();
|
|
1709
|
+
}
|
|
1691
1710
|
}
|
|
1692
1711
|
}), {
|
|
1693
1712
|
after: React.createElement(DropdownList, {
|