@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
package/dist/dropdown.esm.js
CHANGED
|
@@ -1240,6 +1240,7 @@ function SelectedItemsLabel(items) {
|
|
|
1240
1240
|
|
|
1241
1241
|
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
|
|
1242
1242
|
var DropdownList = function DropdownList(_ref) {
|
|
1243
|
+
var _listItems$;
|
|
1243
1244
|
var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1244
1245
|
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1245
1246
|
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
@@ -1261,10 +1262,10 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1261
1262
|
selectedItems = _ref.selectedItems,
|
|
1262
1263
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
1263
1264
|
var isMultiselect = selectAllItem !== undefined;
|
|
1264
|
-
var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0]
|
|
1265
|
+
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));
|
|
1265
1266
|
var isItemSelected = function isItemSelected(item) {
|
|
1266
1267
|
return selectedItems.some(function (selectedItem) {
|
|
1267
|
-
return selectedItem.value === item.value && selectedItem.label === item.label;
|
|
1268
|
+
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);
|
|
1268
1269
|
});
|
|
1269
1270
|
};
|
|
1270
1271
|
var ariaLabelSelectAll = function ariaLabelSelectAll() {
|
|
@@ -1313,7 +1314,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1313
1314
|
className: "eds-dropdown__list__item__text"
|
|
1314
1315
|
}, item.label, React.createElement(VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React.createElement("span", null, item.icons.map(function (Icon) {
|
|
1315
1316
|
return React.createElement(Icon, {
|
|
1316
|
-
key: item.label + item.value + Icon.displayName,
|
|
1317
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value) + (Icon == null ? void 0 : Icon.displayName),
|
|
1317
1318
|
inline: true,
|
|
1318
1319
|
className: "eds-dropdown__list__item__icon"
|
|
1319
1320
|
});
|
|
@@ -1330,14 +1331,14 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1330
1331
|
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1331
1332
|
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1332
1333
|
return React.createElement("li", _extends({
|
|
1333
|
-
key: item.label + item.value,
|
|
1334
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1334
1335
|
className: classNames('eds-dropdown__list__item', {
|
|
1335
1336
|
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1336
1337
|
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1337
1338
|
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1338
1339
|
})
|
|
1339
1340
|
}, getItemProps({
|
|
1340
|
-
key: item.label + item.value,
|
|
1341
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1341
1342
|
item: item,
|
|
1342
1343
|
index: index
|
|
1343
1344
|
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
@@ -1405,13 +1406,6 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1405
1406
|
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1406
1407
|
onClear = _ref3.onClear,
|
|
1407
1408
|
selectedItems = _ref3.selectedItems;
|
|
1408
|
-
if (loading) {
|
|
1409
|
-
return React.createElement("div", {
|
|
1410
|
-
className: 'eds-dropdown__appendix__toggle-button--loading-dots'
|
|
1411
|
-
}, React.createElement(LoadingDots, {
|
|
1412
|
-
"aria-label": loadingText
|
|
1413
|
-
}));
|
|
1414
|
-
}
|
|
1415
1409
|
if (disabled) {
|
|
1416
1410
|
return null;
|
|
1417
1411
|
}
|
|
@@ -1423,14 +1417,18 @@ var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
|
1423
1417
|
labelClearSelectedItems: labelClearSelectedItems
|
|
1424
1418
|
}), React.createElement("div", {
|
|
1425
1419
|
className: "eds-dropdown__appendix__divider"
|
|
1426
|
-
})), React.createElement(ToggleButton, {
|
|
1420
|
+
})), !loading ? React.createElement(ToggleButton, {
|
|
1427
1421
|
"aria-hidden": ariaHiddenToggleButton,
|
|
1428
1422
|
ariaLabelCloseList: ariaLabelCloseList,
|
|
1429
1423
|
ariaLabelOpenList: ariaLabelOpenList,
|
|
1430
1424
|
getToggleButtonProps: getToggleButtonProps,
|
|
1431
1425
|
isOpen: isOpen,
|
|
1432
1426
|
focusable: focusable
|
|
1433
|
-
})
|
|
1427
|
+
}) : React.createElement("div", {
|
|
1428
|
+
className: 'eds-dropdown__appendix__toggle-button--loading-dots'
|
|
1429
|
+
}, React.createElement(LoadingDots, {
|
|
1430
|
+
"aria-label": loadingText
|
|
1431
|
+
})));
|
|
1434
1432
|
};
|
|
1435
1433
|
var ClearableButton = function ClearableButton(_ref4) {
|
|
1436
1434
|
var onClear = _ref4.onClear,
|
|
@@ -1640,7 +1638,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
|
1640
1638
|
|
|
1641
1639
|
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"];
|
|
1642
1640
|
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1643
|
-
var _selectedItem$label;
|
|
1641
|
+
var _document, _selectedItem$label;
|
|
1644
1642
|
var ariaLabelChosenSingular = _ref.ariaLabelChosenSingular,
|
|
1645
1643
|
ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1646
1644
|
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
@@ -1713,6 +1711,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1713
1711
|
inputValue: inputValue
|
|
1714
1712
|
});
|
|
1715
1713
|
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1714
|
+
var inputHasFocus = typeof document !== 'undefined' ? (inputRef == null ? void 0 : inputRef.current) === ((_document = document) == null ? void 0 : _document.activeElement) : false;
|
|
1716
1715
|
var stateReducer = React.useCallback(function (_, _ref4) {
|
|
1717
1716
|
var type = _ref4.type,
|
|
1718
1717
|
changes = _ref4.changes;
|
|
@@ -1724,7 +1723,6 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1724
1723
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1725
1724
|
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1726
1725
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
1727
|
-
case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1728
1726
|
{
|
|
1729
1727
|
updateListItems({
|
|
1730
1728
|
inputValue: EMPTY_INPUT
|
|
@@ -1733,6 +1731,14 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1733
1731
|
inputValue: EMPTY_INPUT
|
|
1734
1732
|
});
|
|
1735
1733
|
}
|
|
1734
|
+
case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1735
|
+
if (!inputHasFocus) setShowSelectedItem(true);
|
|
1736
|
+
updateListItems({
|
|
1737
|
+
inputValue: EMPTY_INPUT
|
|
1738
|
+
});
|
|
1739
|
+
return _extends({}, changes, {
|
|
1740
|
+
inputValue: EMPTY_INPUT
|
|
1741
|
+
});
|
|
1736
1742
|
// remove leading whitespace, select element with spacebar on empty input, and filter list based on input
|
|
1737
1743
|
case useCombobox.stateChangeTypes.InputChange:
|
|
1738
1744
|
{
|
|
@@ -1803,11 +1809,24 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1803
1809
|
updateListItems({
|
|
1804
1810
|
inputValue: inputValue
|
|
1805
1811
|
});
|
|
1812
|
+
setShowSelectedItem(false);
|
|
1806
1813
|
};
|
|
1807
1814
|
return React.createElement("div", {
|
|
1808
1815
|
className: classNames('eds-dropdown__wrapper', className),
|
|
1809
1816
|
style: style
|
|
1810
1817
|
}, React.createElement(BaseFormControl, _extends({
|
|
1818
|
+
className: "eds-dropdown",
|
|
1819
|
+
disabled: disabled,
|
|
1820
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1821
|
+
feedback: feedback,
|
|
1822
|
+
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1823
|
+
label: label,
|
|
1824
|
+
labelId: getLabelProps().id,
|
|
1825
|
+
labelProps: getLabelProps(),
|
|
1826
|
+
prepend: prepend,
|
|
1827
|
+
readOnly: readOnly,
|
|
1828
|
+
variant: variant
|
|
1829
|
+
}, rest, {
|
|
1811
1830
|
append: React.createElement(FieldAppend$1, {
|
|
1812
1831
|
ariaLabelCloseList: ariaLabelCloseList,
|
|
1813
1832
|
ariaLabelOpenList: ariaLabelOpenList,
|
|
@@ -1821,19 +1840,8 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1821
1840
|
loadingText: loadingText,
|
|
1822
1841
|
onClear: handleOnClear,
|
|
1823
1842
|
selectedItems: [selectedItem]
|
|
1824
|
-
})
|
|
1825
|
-
|
|
1826
|
-
disabled: disabled,
|
|
1827
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
1828
|
-
feedback: feedback,
|
|
1829
|
-
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1830
|
-
label: label,
|
|
1831
|
-
labelId: getLabelProps().id,
|
|
1832
|
-
labelProps: getLabelProps(),
|
|
1833
|
-
prepend: prepend,
|
|
1834
|
-
readOnly: readOnly,
|
|
1835
|
-
variant: variant
|
|
1836
|
-
}, rest), React.createElement("span", {
|
|
1843
|
+
})
|
|
1844
|
+
}), React.createElement("span", {
|
|
1837
1845
|
className: classNames('eds-dropdown--searchable__selected-item', {
|
|
1838
1846
|
'eds-dropdown--searchable__selected-item--hidden': !showSelectedItem
|
|
1839
1847
|
}),
|
|
@@ -1842,7 +1850,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1842
1850
|
var _inputRef$current2;
|
|
1843
1851
|
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1844
1852
|
}
|
|
1845
|
-
}, selectedItem == null ? void 0 : selectedItem.label), React.createElement("input", _extends({
|
|
1853
|
+
}, showSelectedItem ? selectedItem == null ? void 0 : selectedItem.label : ''), React.createElement("input", _extends({
|
|
1846
1854
|
className: classNames('eds-dropdown__input eds-form-control', {
|
|
1847
1855
|
'eds-dropdown__input--hidden': showSelectedItem
|
|
1848
1856
|
}),
|
|
@@ -1859,7 +1867,13 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1859
1867
|
setShowSelectedItem(false);
|
|
1860
1868
|
},
|
|
1861
1869
|
onKeyDown: function onKeyDown(e) {
|
|
1862
|
-
if (selectOnTab && e.key === 'Tab')
|
|
1870
|
+
if (selectOnTab && e.key === 'Tab') {
|
|
1871
|
+
var highlitedItem = listItems[highlightedIndex];
|
|
1872
|
+
if (highlitedItem) {
|
|
1873
|
+
// we don't want to clear selection with tab
|
|
1874
|
+
onChange == null ? void 0 : onChange(highlitedItem);
|
|
1875
|
+
}
|
|
1876
|
+
}
|
|
1863
1877
|
},
|
|
1864
1878
|
ref: inputRef
|
|
1865
1879
|
})))), React.createElement(DropdownList, {
|
|
@@ -2194,7 +2208,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2194
2208
|
disabled: disabled,
|
|
2195
2209
|
getSelectedItemProps: getSelectedItemProps,
|
|
2196
2210
|
index: index,
|
|
2197
|
-
key: selectedItem.value,
|
|
2211
|
+
key: selectedItem == null ? void 0 : selectedItem.value,
|
|
2198
2212
|
readOnly: readOnly,
|
|
2199
2213
|
removeSelectedItem: function removeSelectedItem() {
|
|
2200
2214
|
var _inputRef$current6;
|
|
@@ -2220,11 +2234,17 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2220
2234
|
disabled: readOnly || disabled
|
|
2221
2235
|
}, getInputProps(_extends({
|
|
2222
2236
|
onKeyDown: function onKeyDown(e) {
|
|
2223
|
-
if (selectOnTab && e.key === 'Tab')
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2237
|
+
if (selectOnTab && e.key === 'Tab') {
|
|
2238
|
+
var highlitedItem = listItems[highlightedIndex];
|
|
2239
|
+
// we don't want to clear selection with tab
|
|
2240
|
+
if (highlitedItem) {
|
|
2241
|
+
handleListItemClicked({
|
|
2242
|
+
clickedItem: highlitedItem,
|
|
2243
|
+
onChange: onChange,
|
|
2244
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2245
|
+
});
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2228
2248
|
}
|
|
2229
2249
|
}, getDropdownProps({
|
|
2230
2250
|
onClick: function onClick(e) {
|
|
@@ -2355,7 +2375,13 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2355
2375
|
}, getToggleButtonProps({
|
|
2356
2376
|
id: undefined,
|
|
2357
2377
|
onKeyDown: function onKeyDown(e) {
|
|
2358
|
-
if (selectOnTab && e.key === 'Tab')
|
|
2378
|
+
if (selectOnTab && e.key === 'Tab') {
|
|
2379
|
+
// we don't want to clear selection with tab
|
|
2380
|
+
var highlitedItem = normalizedItems[highlightedIndex];
|
|
2381
|
+
if (highlitedItem) {
|
|
2382
|
+
onChange == null ? void 0 : onChange(highlitedItem);
|
|
2383
|
+
}
|
|
2384
|
+
}
|
|
2359
2385
|
}
|
|
2360
2386
|
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
|
|
2361
2387
|
className: classNames('eds-dropdown__selected-item__placeholder', {
|