@entur/dropdown 5.0.17 → 5.0.19
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 +64 -38
- 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 +64 -38
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +240 -239
- package/package.json +2 -2
|
@@ -1244,6 +1244,7 @@ function SelectedItemsLabel(items) {
|
|
|
1244
1244
|
|
|
1245
1245
|
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
|
|
1246
1246
|
var DropdownList = function DropdownList(_ref) {
|
|
1247
|
+
var _listItems$;
|
|
1247
1248
|
var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1248
1249
|
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1249
1250
|
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
@@ -1265,10 +1266,10 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1265
1266
|
selectedItems = _ref.selectedItems,
|
|
1266
1267
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
1267
1268
|
var isMultiselect = selectAllItem !== undefined;
|
|
1268
|
-
var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0]
|
|
1269
|
+
var isNoMatches = !loading && (listItems.length === 0 || (listItems == null ? void 0 : listItems.length) === 1 && (listItems == null ? void 0 : (_listItems$ = listItems[0]) == null ? void 0 : _listItems$.value) === (selectAllItem == null ? void 0 : selectAllItem.value));
|
|
1269
1270
|
var isItemSelected = function isItemSelected(item) {
|
|
1270
1271
|
return selectedItems.some(function (selectedItem) {
|
|
1271
|
-
return selectedItem.value === item.value && selectedItem.label === item.label;
|
|
1272
|
+
return (selectedItem == null ? void 0 : selectedItem.value) === (item == null ? void 0 : item.value) && (selectedItem == null ? void 0 : selectedItem.label) === (item == null ? void 0 : item.label);
|
|
1272
1273
|
});
|
|
1273
1274
|
};
|
|
1274
1275
|
var ariaLabelSelectAll = function ariaLabelSelectAll() {
|
|
@@ -1317,7 +1318,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1317
1318
|
className: "eds-dropdown__list__item__text"
|
|
1318
1319
|
}, item.label, React.createElement(a11y.VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React.createElement("span", null, item.icons.map(function (Icon) {
|
|
1319
1320
|
return React.createElement(Icon, {
|
|
1320
|
-
key: item.label + item.value + Icon.displayName,
|
|
1321
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value) + (Icon == null ? void 0 : Icon.displayName),
|
|
1321
1322
|
inline: true,
|
|
1322
1323
|
className: "eds-dropdown__list__item__icon"
|
|
1323
1324
|
});
|
|
@@ -1334,14 +1335,14 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1334
1335
|
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1335
1336
|
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1336
1337
|
return React.createElement("li", _extends({
|
|
1337
|
-
key: item.label + item.value,
|
|
1338
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1338
1339
|
className: classNames('eds-dropdown__list__item', {
|
|
1339
1340
|
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1340
1341
|
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1341
1342
|
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1342
1343
|
})
|
|
1343
1344
|
}, getItemProps({
|
|
1344
|
-
key: item.label + item.value,
|
|
1345
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1345
1346
|
item: item,
|
|
1346
1347
|
index: index
|
|
1347
1348
|
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
@@ -1409,13 +1410,6 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1409
1410
|
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1410
1411
|
onClear = _ref3.onClear,
|
|
1411
1412
|
selectedItems = _ref3.selectedItems;
|
|
1412
|
-
if (loading) {
|
|
1413
|
-
return React.createElement("div", {
|
|
1414
|
-
className: 'eds-dropdown__appendix__toggle-button--loading-dots'
|
|
1415
|
-
}, React.createElement(loader.LoadingDots, {
|
|
1416
|
-
"aria-label": loadingText
|
|
1417
|
-
}));
|
|
1418
|
-
}
|
|
1419
1413
|
if (disabled) {
|
|
1420
1414
|
return null;
|
|
1421
1415
|
}
|
|
@@ -1427,14 +1421,18 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1427
1421
|
labelClearSelectedItems: labelClearSelectedItems
|
|
1428
1422
|
}), React.createElement("div", {
|
|
1429
1423
|
className: "eds-dropdown__appendix__divider"
|
|
1430
|
-
})), React.createElement(ToggleButton, {
|
|
1424
|
+
})), !loading ? React.createElement(ToggleButton, {
|
|
1431
1425
|
"aria-hidden": ariaHiddenToggleButton,
|
|
1432
1426
|
ariaLabelCloseList: ariaLabelCloseList,
|
|
1433
1427
|
ariaLabelOpenList: ariaLabelOpenList,
|
|
1434
1428
|
getToggleButtonProps: getToggleButtonProps,
|
|
1435
1429
|
isOpen: isOpen,
|
|
1436
1430
|
focusable: focusable
|
|
1437
|
-
})
|
|
1431
|
+
}) : React.createElement("div", {
|
|
1432
|
+
className: 'eds-dropdown__appendix__toggle-button--loading-dots'
|
|
1433
|
+
}, React.createElement(loader.LoadingDots, {
|
|
1434
|
+
"aria-label": loadingText
|
|
1435
|
+
})));
|
|
1438
1436
|
};
|
|
1439
1437
|
var ClearableButton = function ClearableButton(_ref4) {
|
|
1440
1438
|
var onClear = _ref4.onClear,
|
|
@@ -1644,7 +1642,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
|
1644
1642
|
|
|
1645
1643
|
var _excluded$3 = ["ariaLabelChosenSingular", "ariaLabelCloseList", "ariaLabelOpenList", "ariaLabelSelectedItem", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "items", "itemFilter", "label", "labelClearSelectedItem", "listStyle", "loadingText", "noMatchesText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
|
|
1646
1644
|
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1647
|
-
var _selectedItem$label;
|
|
1645
|
+
var _document, _selectedItem$label;
|
|
1648
1646
|
var ariaLabelChosenSingular = _ref.ariaLabelChosenSingular,
|
|
1649
1647
|
ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1650
1648
|
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
@@ -1717,6 +1715,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1717
1715
|
inputValue: inputValue
|
|
1718
1716
|
});
|
|
1719
1717
|
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1718
|
+
var inputHasFocus = typeof document !== 'undefined' ? (inputRef == null ? void 0 : inputRef.current) === ((_document = document) == null ? void 0 : _document.activeElement) : false;
|
|
1720
1719
|
var stateReducer = React.useCallback(function (_, _ref4) {
|
|
1721
1720
|
var type = _ref4.type,
|
|
1722
1721
|
changes = _ref4.changes;
|
|
@@ -1728,7 +1727,6 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1728
1727
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1729
1728
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1730
1729
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1731
|
-
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1732
1730
|
{
|
|
1733
1731
|
updateListItems({
|
|
1734
1732
|
inputValue: EMPTY_INPUT
|
|
@@ -1737,6 +1735,14 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1737
1735
|
inputValue: EMPTY_INPUT
|
|
1738
1736
|
});
|
|
1739
1737
|
}
|
|
1738
|
+
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1739
|
+
if (!inputHasFocus) setShowSelectedItem(true);
|
|
1740
|
+
updateListItems({
|
|
1741
|
+
inputValue: EMPTY_INPUT
|
|
1742
|
+
});
|
|
1743
|
+
return _extends({}, changes, {
|
|
1744
|
+
inputValue: EMPTY_INPUT
|
|
1745
|
+
});
|
|
1740
1746
|
// remove leading whitespace, select element with spacebar on empty input, and filter list based on input
|
|
1741
1747
|
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1742
1748
|
{
|
|
@@ -1807,11 +1813,24 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1807
1813
|
updateListItems({
|
|
1808
1814
|
inputValue: inputValue
|
|
1809
1815
|
});
|
|
1816
|
+
setShowSelectedItem(false);
|
|
1810
1817
|
};
|
|
1811
1818
|
return React.createElement("div", {
|
|
1812
1819
|
className: classNames('eds-dropdown__wrapper', className),
|
|
1813
1820
|
style: style
|
|
1814
1821
|
}, React.createElement(form.BaseFormControl, _extends({
|
|
1822
|
+
className: "eds-dropdown",
|
|
1823
|
+
disabled: disabled,
|
|
1824
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1825
|
+
feedback: feedback,
|
|
1826
|
+
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1827
|
+
label: label,
|
|
1828
|
+
labelId: getLabelProps().id,
|
|
1829
|
+
labelProps: getLabelProps(),
|
|
1830
|
+
prepend: prepend,
|
|
1831
|
+
readOnly: readOnly,
|
|
1832
|
+
variant: variant
|
|
1833
|
+
}, rest, {
|
|
1815
1834
|
append: React.createElement(FieldAppend$1, {
|
|
1816
1835
|
ariaLabelCloseList: ariaLabelCloseList,
|
|
1817
1836
|
ariaLabelOpenList: ariaLabelOpenList,
|
|
@@ -1825,19 +1844,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1825
1844
|
loadingText: loadingText,
|
|
1826
1845
|
onClear: handleOnClear,
|
|
1827
1846
|
selectedItems: [selectedItem]
|
|
1828
|
-
})
|
|
1829
|
-
|
|
1830
|
-
disabled: disabled,
|
|
1831
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
1832
|
-
feedback: feedback,
|
|
1833
|
-
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1834
|
-
label: label,
|
|
1835
|
-
labelId: getLabelProps().id,
|
|
1836
|
-
labelProps: getLabelProps(),
|
|
1837
|
-
prepend: prepend,
|
|
1838
|
-
readOnly: readOnly,
|
|
1839
|
-
variant: variant
|
|
1840
|
-
}, rest), React.createElement("span", {
|
|
1847
|
+
})
|
|
1848
|
+
}), React.createElement("span", {
|
|
1841
1849
|
className: classNames('eds-dropdown--searchable__selected-item', {
|
|
1842
1850
|
'eds-dropdown--searchable__selected-item--hidden': !showSelectedItem
|
|
1843
1851
|
}),
|
|
@@ -1846,7 +1854,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1846
1854
|
var _inputRef$current2;
|
|
1847
1855
|
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1848
1856
|
}
|
|
1849
|
-
}, selectedItem == null ? void 0 : selectedItem.label), React.createElement("input", _extends({
|
|
1857
|
+
}, showSelectedItem ? selectedItem == null ? void 0 : selectedItem.label : ''), React.createElement("input", _extends({
|
|
1850
1858
|
className: classNames('eds-dropdown__input eds-form-control', {
|
|
1851
1859
|
'eds-dropdown__input--hidden': showSelectedItem
|
|
1852
1860
|
}),
|
|
@@ -1863,7 +1871,13 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1863
1871
|
setShowSelectedItem(false);
|
|
1864
1872
|
},
|
|
1865
1873
|
onKeyDown: function onKeyDown(e) {
|
|
1866
|
-
if (selectOnTab && e.key === 'Tab')
|
|
1874
|
+
if (selectOnTab && e.key === 'Tab') {
|
|
1875
|
+
var highlitedItem = listItems[highlightedIndex];
|
|
1876
|
+
if (highlitedItem) {
|
|
1877
|
+
// we don't want to clear selection with tab
|
|
1878
|
+
onChange == null ? void 0 : onChange(highlitedItem);
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1867
1881
|
},
|
|
1868
1882
|
ref: inputRef
|
|
1869
1883
|
})))), React.createElement(DropdownList, {
|
|
@@ -2198,7 +2212,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2198
2212
|
disabled: disabled,
|
|
2199
2213
|
getSelectedItemProps: getSelectedItemProps,
|
|
2200
2214
|
index: index,
|
|
2201
|
-
key: selectedItem.value,
|
|
2215
|
+
key: selectedItem == null ? void 0 : selectedItem.value,
|
|
2202
2216
|
readOnly: readOnly,
|
|
2203
2217
|
removeSelectedItem: function removeSelectedItem() {
|
|
2204
2218
|
var _inputRef$current6;
|
|
@@ -2224,11 +2238,17 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2224
2238
|
disabled: readOnly || disabled
|
|
2225
2239
|
}, getInputProps(_extends({
|
|
2226
2240
|
onKeyDown: function onKeyDown(e) {
|
|
2227
|
-
if (selectOnTab && e.key === 'Tab')
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2241
|
+
if (selectOnTab && e.key === 'Tab') {
|
|
2242
|
+
var highlitedItem = listItems[highlightedIndex];
|
|
2243
|
+
// we don't want to clear selection with tab
|
|
2244
|
+
if (highlitedItem) {
|
|
2245
|
+
handleListItemClicked({
|
|
2246
|
+
clickedItem: highlitedItem,
|
|
2247
|
+
onChange: onChange,
|
|
2248
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2249
|
+
});
|
|
2250
|
+
}
|
|
2251
|
+
}
|
|
2232
2252
|
}
|
|
2233
2253
|
}, getDropdownProps({
|
|
2234
2254
|
onClick: function onClick(e) {
|
|
@@ -2359,7 +2379,13 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2359
2379
|
}, getToggleButtonProps({
|
|
2360
2380
|
id: undefined,
|
|
2361
2381
|
onKeyDown: function onKeyDown(e) {
|
|
2362
|
-
if (selectOnTab && e.key === 'Tab')
|
|
2382
|
+
if (selectOnTab && e.key === 'Tab') {
|
|
2383
|
+
// we don't want to clear selection with tab
|
|
2384
|
+
var highlitedItem = normalizedItems[highlightedIndex];
|
|
2385
|
+
if (highlitedItem) {
|
|
2386
|
+
onChange == null ? void 0 : onChange(highlitedItem);
|
|
2387
|
+
}
|
|
2388
|
+
}
|
|
2363
2389
|
}
|
|
2364
2390
|
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
|
|
2365
2391
|
className: classNames('eds-dropdown__selected-item__placeholder', {
|