@entur/dropdown 7.2.3-beta.0 → 7.3.0
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 +50 -61
- 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 +50 -61
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +77 -77
- 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) {
|
|
@@ -876,7 +880,7 @@ function getA11yStatusMessage(options) {
|
|
|
876
880
|
|
|
877
881
|
var _excluded$3 = ["ariaLabelChosenSingular", "ariaLabelCloseList", "ariaLabelOpenList", "ariaLabelSelectedItem", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "items", "itemFilter", "label", "labelClearSelectedItem", "labelTooltip", "listStyle", "loading", "loadingText", "noMatchesText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
|
|
878
882
|
var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
879
|
-
var _document, _selectedItem$label;
|
|
883
|
+
var _document, _getInputProps2, _selectedItem$label;
|
|
880
884
|
var ariaLabelChosenSingular = _ref.ariaLabelChosenSingular,
|
|
881
885
|
_ref$ariaLabelCloseLi = _ref.ariaLabelCloseList,
|
|
882
886
|
ariaLabelCloseList = _ref$ariaLabelCloseLi === void 0 ? 'Lukk liste med valg' : _ref$ariaLabelCloseLi,
|
|
@@ -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, {
|
|
@@ -1114,6 +1113,9 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1114
1113
|
labelId: getLabelProps().id,
|
|
1115
1114
|
labelProps: getLabelProps(),
|
|
1116
1115
|
labelTooltip: labelTooltip,
|
|
1116
|
+
onBlur: function onBlur() {
|
|
1117
|
+
return setInputValue('');
|
|
1118
|
+
},
|
|
1117
1119
|
onClick: function onClick(e) {
|
|
1118
1120
|
if (e.target === e.currentTarget) {
|
|
1119
1121
|
var _getInputProps;
|
|
@@ -1150,13 +1152,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1150
1152
|
className: classNames('eds-dropdown--searchable__selected-item', {
|
|
1151
1153
|
'eds-dropdown--searchable__selected-item--hidden': !showSelectedItem
|
|
1152
1154
|
}),
|
|
1153
|
-
onClick:
|
|
1154
|
-
if (!disabled && !readOnly) {
|
|
1155
|
-
var _inputRef$current2, _getInputProps2;
|
|
1156
|
-
(_inputRef$current2 = inputRef.current) == null || _inputRef$current2.focus();
|
|
1157
|
-
(_getInputProps2 = getInputProps()) == null || _getInputProps2.onClick == null || _getInputProps2.onClick(event);
|
|
1158
|
-
}
|
|
1159
|
-
},
|
|
1155
|
+
onClick: readOnly ? undefined : (_getInputProps2 = getInputProps()) == null ? void 0 : _getInputProps2.onClick,
|
|
1160
1156
|
tabIndex: readOnly ? 0 : -1
|
|
1161
1157
|
}, showSelectedItem ? selectedItem == null ? void 0 : selectedItem.label : ''), React.createElement("input", _extends({
|
|
1162
1158
|
className: classNames('eds-dropdown__input eds-form-control', {
|
|
@@ -1168,10 +1164,8 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1168
1164
|
var highlitedItem = listItems[highlightedIndex];
|
|
1169
1165
|
// we don't want to clear selection with tab
|
|
1170
1166
|
if ((selectOnTab || selectOnBlur) && highlitedItem && highlitedItem !== selectedItem) {
|
|
1171
|
-
|
|
1167
|
+
selectItem(highlitedItem);
|
|
1172
1168
|
}
|
|
1173
|
-
closeMenu();
|
|
1174
|
-
e.preventDefault();
|
|
1175
1169
|
}
|
|
1176
1170
|
},
|
|
1177
1171
|
onBlur: function onBlur() {
|
|
@@ -1206,7 +1200,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1206
1200
|
|
|
1207
1201
|
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
1202
|
var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
1209
|
-
var _inputRef$
|
|
1203
|
+
var _inputRef$current4;
|
|
1210
1204
|
var className = _ref.className,
|
|
1211
1205
|
_ref$clearable = _ref.clearable,
|
|
1212
1206
|
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
@@ -1320,21 +1314,25 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1320
1314
|
}),
|
|
1321
1315
|
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1322
1316
|
handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
|
|
1323
|
-
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState
|
|
1317
|
+
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState,
|
|
1318
|
+
clickedItemIsInSelectedItems = _useMultiselectUtils.clickedItemIsInSelectedItems,
|
|
1319
|
+
clickedItemIsSelectAll = _useMultiselectUtils.clickedItemIsSelectAll;
|
|
1324
1320
|
var _useMultipleSelection = useMultipleSelection({
|
|
1325
1321
|
selectedItems: selectedItems,
|
|
1326
1322
|
// @ts-expect-error prop missing from library types
|
|
1327
1323
|
itemToString: itemToString,
|
|
1328
1324
|
itemToKey: itemToKey,
|
|
1329
|
-
|
|
1325
|
+
onSelectedItemsChange: function onSelectedItemsChange(_ref4) {
|
|
1330
1326
|
var newSelectedItems = _ref4.selectedItems;
|
|
1331
|
-
|
|
1327
|
+
onChange(newSelectedItems);
|
|
1332
1328
|
}
|
|
1333
1329
|
}),
|
|
1334
1330
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1335
|
-
getDropdownProps = _useMultipleSelection.getDropdownProps
|
|
1331
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1332
|
+
reset = _useMultipleSelection.reset,
|
|
1333
|
+
_removeSelectedItem = _useMultipleSelection.removeSelectedItem,
|
|
1334
|
+
setSelectedItems = _useMultipleSelection.setSelectedItems;
|
|
1336
1335
|
var stateReducer = React.useCallback(function (state, _ref5) {
|
|
1337
|
-
var _inputRef$current;
|
|
1338
1336
|
var changes = _ref5.changes,
|
|
1339
1337
|
type = _ref5.type;
|
|
1340
1338
|
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
@@ -1343,7 +1341,6 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1343
1341
|
switch (type) {
|
|
1344
1342
|
// reset input value when leaving input field
|
|
1345
1343
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
1346
|
-
if (state.isOpen) (_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
1347
1344
|
return _extends({}, changes, {
|
|
1348
1345
|
inputValue: EMPTY_INPUT
|
|
1349
1346
|
});
|
|
@@ -1351,18 +1348,18 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1351
1348
|
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1352
1349
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1353
1350
|
{
|
|
1354
|
-
var _inputRef$current$val, _inputRef$
|
|
1351
|
+
var _inputRef$current$val, _inputRef$current;
|
|
1355
1352
|
return _extends({}, changes, {
|
|
1356
1353
|
isOpen: true,
|
|
1357
|
-
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null || (_inputRef$
|
|
1354
|
+
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
1355
|
});
|
|
1359
1356
|
}
|
|
1360
1357
|
// edit input value when selected items is updated outside component
|
|
1361
1358
|
case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1362
1359
|
{
|
|
1363
|
-
var _inputRef$current$val2, _inputRef$
|
|
1360
|
+
var _inputRef$current$val2, _inputRef$current2;
|
|
1364
1361
|
return _extends({}, changes, {
|
|
1365
|
-
inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$
|
|
1362
|
+
inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
|
|
1366
1363
|
});
|
|
1367
1364
|
}
|
|
1368
1365
|
// remove leading whitespace, select item with spacebar if input is empty and filter list items
|
|
@@ -1407,13 +1404,13 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1407
1404
|
setHighlightedIndex(hideSelectAll ? 0 : 1);
|
|
1408
1405
|
setLastHighlightedIndex(hideSelectAll ? 0 : 1);
|
|
1409
1406
|
},
|
|
1410
|
-
|
|
1407
|
+
onSelectedItemChange: function onSelectedItemChange(_ref6) {
|
|
1411
1408
|
var clickedItem = _ref6.selectedItem;
|
|
1412
1409
|
// clickedItem means item chosen either via mouse or keyboard
|
|
1413
1410
|
if (!clickedItem) return;
|
|
1414
1411
|
handleListItemClicked({
|
|
1415
1412
|
clickedItem: clickedItem,
|
|
1416
|
-
onChange:
|
|
1413
|
+
onChange: setSelectedItems
|
|
1417
1414
|
});
|
|
1418
1415
|
},
|
|
1419
1416
|
// Accessibility
|
|
@@ -1469,13 +1466,9 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1469
1466
|
}
|
|
1470
1467
|
}, [isOpen, refs.reference, refs.floating, update]);
|
|
1471
1468
|
var handleOnClear = function handleOnClear() {
|
|
1472
|
-
var _inputRef$
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
(_inputRef$current4 = inputRef.current) == null || _inputRef$current4.focus();
|
|
1476
|
-
updateListItems({
|
|
1477
|
-
inputValue: inputValue
|
|
1478
|
-
});
|
|
1469
|
+
var _inputRef$current3;
|
|
1470
|
+
(_inputRef$current3 = inputRef.current) == null || _inputRef$current3.focus();
|
|
1471
|
+
reset();
|
|
1479
1472
|
};
|
|
1480
1473
|
return React.createElement(BaseFormControl, _extends({
|
|
1481
1474
|
className: classNames('eds-dropdown', 'eds-dropdown--multiselect', className, {
|
|
@@ -1526,7 +1519,7 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1526
1519
|
'eds-dropdown--multiselect__selected-items-and-input--filled': hasSelectedItems
|
|
1527
1520
|
})
|
|
1528
1521
|
}, selectedItems.length > 1 ? React.createElement(VisuallyHidden, {
|
|
1529
|
-
onClick: (_inputRef$
|
|
1522
|
+
onClick: (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus
|
|
1530
1523
|
}, ariaLabelJumpToInput) : null, selectedItems.length <= maxChips ? selectedItems.map(function (selectedItem, index) {
|
|
1531
1524
|
return React.createElement(SelectedItemTag, {
|
|
1532
1525
|
ariaLabelChosen: ariaLabelChosenSingular,
|
|
@@ -1537,12 +1530,9 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1537
1530
|
key: (selectedItem == null ? void 0 : selectedItem.label) + (typeof (selectedItem == null ? void 0 : selectedItem.value) === 'string' ? selectedItem.value : ''),
|
|
1538
1531
|
readOnly: readOnly,
|
|
1539
1532
|
removeSelectedItem: function removeSelectedItem() {
|
|
1540
|
-
var _inputRef$
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
onChange: onChange
|
|
1544
|
-
});
|
|
1545
|
-
inputRef == null || (_inputRef$current6 = inputRef.current) == null || _inputRef$current6.focus();
|
|
1533
|
+
var _inputRef$current5;
|
|
1534
|
+
_removeSelectedItem(selectedItem);
|
|
1535
|
+
inputRef == null || (_inputRef$current5 = inputRef.current) == null || _inputRef$current5.focus();
|
|
1546
1536
|
},
|
|
1547
1537
|
selectedItem: selectedItem
|
|
1548
1538
|
});
|
|
@@ -1557,13 +1547,14 @@ var MultiSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1557
1547
|
onKeyDown: function onKeyDown(e) {
|
|
1558
1548
|
if (selectOnTab && isOpen && e.key === 'Tab') {
|
|
1559
1549
|
var highlitedItem = listItems[highlightedIndex];
|
|
1560
|
-
|
|
1561
|
-
if
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1550
|
+
if (!highlitedItem) return;
|
|
1551
|
+
// Skip tab selection for select all or if item already is selected
|
|
1552
|
+
var shouldSkipTabSelection = clickedItemIsSelectAll(highlitedItem) || !clickedItemIsSelectAll(highlitedItem) && clickedItemIsInSelectedItems(highlitedItem);
|
|
1553
|
+
if (shouldSkipTabSelection) return;
|
|
1554
|
+
handleListItemClicked({
|
|
1555
|
+
clickedItem: highlitedItem,
|
|
1556
|
+
onChange: setSelectedItems
|
|
1557
|
+
});
|
|
1567
1558
|
}
|
|
1568
1559
|
}
|
|
1569
1560
|
}, getDropdownProps({
|
|
@@ -1666,13 +1657,13 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1666
1657
|
},
|
|
1667
1658
|
itemToString: itemToString
|
|
1668
1659
|
}),
|
|
1669
|
-
closeMenu = _useSelect.closeMenu,
|
|
1670
1660
|
isOpen = _useSelect.isOpen,
|
|
1671
1661
|
getItemProps = _useSelect.getItemProps,
|
|
1672
1662
|
getLabelProps = _useSelect.getLabelProps,
|
|
1673
1663
|
getMenuProps = _useSelect.getMenuProps,
|
|
1674
1664
|
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
1675
1665
|
highlightedIndex = _useSelect.highlightedIndex,
|
|
1666
|
+
selectItem = _useSelect.selectItem,
|
|
1676
1667
|
reset = _useSelect.reset;
|
|
1677
1668
|
// calculations for floating-UI popover position
|
|
1678
1669
|
var _useFloating = useFloating({
|
|
@@ -1740,10 +1731,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1740
1731
|
var highlitedItem = normalizedItems[highlightedIndex];
|
|
1741
1732
|
// we don't want to clear selection with tab
|
|
1742
1733
|
if ((selectOnTab || selectOnBlur) && highlitedItem && highlitedItem !== selectedItem) {
|
|
1743
|
-
|
|
1734
|
+
selectItem(highlitedItem);
|
|
1744
1735
|
}
|
|
1745
|
-
closeMenu();
|
|
1746
|
-
e.preventDefault();
|
|
1747
1736
|
}
|
|
1748
1737
|
}
|
|
1749
1738
|
}), {
|