@entur/dropdown 6.0.3-beta.3 → 6.0.3
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/components/DropdownList.d.ts +5 -5
- package/dist/dropdown.cjs.development.js +23 -40
- 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 +23 -40
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +68 -62
- package/dist/utils.d.ts +1 -2
- package/package.json +10 -10
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { UseComboboxPropGetters, UseSelectPropGetters } from 'downshift';
|
|
3
3
|
import { NormalizedDropdownItemType } from '../types';
|
|
4
4
|
import './DropdownList.scss';
|
|
5
5
|
type DropdownListProps<ValueType> = {
|
|
6
6
|
ariaLabelChosenSingular?: string;
|
|
7
7
|
ariaLabelSelectedItem?: string;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
getMenuProps: UseComboboxPropGetters<ValueType>['getMenuProps'] | UseSelectPropGetters<ValueType>['getMenuProps'];
|
|
9
|
+
getItemProps: UseComboboxPropGetters<ValueType>['getItemProps'] | UseSelectPropGetters<ValueType>['getItemProps'];
|
|
10
10
|
highlightedIndex: number;
|
|
11
11
|
isOpen: boolean;
|
|
12
12
|
listItems: NormalizedDropdownItemType<ValueType | string>[];
|
|
13
13
|
listStyle: {
|
|
14
14
|
[key: string]: any;
|
|
15
15
|
} | undefined;
|
|
16
|
-
|
|
16
|
+
setListRef: (node: HTMLElement | null) => void;
|
|
17
17
|
loading?: boolean;
|
|
18
18
|
loadingText?: string;
|
|
19
19
|
noMatchesText?: string;
|
|
@@ -22,5 +22,5 @@ type DropdownListProps<ValueType> = {
|
|
|
22
22
|
selectedItems: NormalizedDropdownItemType<ValueType>[];
|
|
23
23
|
[key: string]: any;
|
|
24
24
|
};
|
|
25
|
-
export declare const DropdownList: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelSelectedItem, getItemProps, getMenuProps, inputValue, isOpen, highlightedIndex, listItems, listStyle,
|
|
25
|
+
export declare const DropdownList: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelSelectedItem, getItemProps, getMenuProps, inputValue, isOpen, highlightedIndex, listItems, listStyle, setListRef, loading, loadingText, noMatchesText, selectAllCheckboxState, selectAllItem, selectedItems, showSelectAllInList, ...rest }: DropdownListProps<ValueType>) => React.JSX.Element;
|
|
26
26
|
export {};
|
|
@@ -1239,7 +1239,7 @@ function SelectedItemsLabel(items) {
|
|
|
1239
1239
|
}).toString() : items.length + " elementer valgt";
|
|
1240
1240
|
}
|
|
1241
1241
|
|
|
1242
|
-
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "
|
|
1242
|
+
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "setListRef", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
|
|
1243
1243
|
var DropdownList = function DropdownList(_ref) {
|
|
1244
1244
|
var _listItems$;
|
|
1245
1245
|
var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
@@ -1252,7 +1252,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1252
1252
|
highlightedIndex = _ref.highlightedIndex,
|
|
1253
1253
|
listItems = _ref.listItems,
|
|
1254
1254
|
listStyle = _ref.listStyle,
|
|
1255
|
-
|
|
1255
|
+
setListRef = _ref.setListRef,
|
|
1256
1256
|
_ref$loading = _ref.loading,
|
|
1257
1257
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1258
1258
|
_ref$loadingText = _ref.loadingText,
|
|
@@ -1339,7 +1339,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1339
1339
|
}, {
|
|
1340
1340
|
suppressRefError: true
|
|
1341
1341
|
}), {
|
|
1342
|
-
ref:
|
|
1342
|
+
ref: setListRef,
|
|
1343
1343
|
className: "eds-dropdown__list",
|
|
1344
1344
|
style: _extends({
|
|
1345
1345
|
display: isOpen ? 'inline-block' : 'none'
|
|
@@ -1348,14 +1348,13 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1348
1348
|
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1349
1349
|
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1350
1350
|
return React.createElement("li", _extends({
|
|
1351
|
-
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1352
1351
|
className: classNames('eds-dropdown__list__item', {
|
|
1353
1352
|
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1354
1353
|
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1355
1354
|
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1356
|
-
})
|
|
1355
|
+
}),
|
|
1356
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value)
|
|
1357
1357
|
}, getItemProps({
|
|
1358
|
-
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1359
1358
|
// @ts-expect-error Since getItemProps expects the same item type
|
|
1360
1359
|
// here as items, it throws error when selectAllItem is a string.
|
|
1361
1360
|
// This does, however, not cause any functional issues.
|
|
@@ -1405,7 +1404,8 @@ var SelectedItemTag = function SelectedItemTag(_ref) {
|
|
|
1405
1404
|
key: selectedItem.value,
|
|
1406
1405
|
"aria-live": "polite"
|
|
1407
1406
|
}), React.createElement("span", {
|
|
1408
|
-
"aria-hidden": "true"
|
|
1407
|
+
"aria-hidden": "true",
|
|
1408
|
+
className: "eds-dropdown__selected-item-tag__text"
|
|
1409
1409
|
}, selectedItem.label));
|
|
1410
1410
|
};
|
|
1411
1411
|
var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
@@ -1561,17 +1561,14 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1561
1561
|
};
|
|
1562
1562
|
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1563
1563
|
var clickedItem = _ref2.clickedItem,
|
|
1564
|
-
onChange = _ref2.onChange
|
|
1565
|
-
setLastRemovedItem = _ref2.setLastClickedItem;
|
|
1564
|
+
onChange = _ref2.onChange;
|
|
1566
1565
|
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1567
1566
|
if (allListItemsAreSelected) {
|
|
1568
|
-
setLastRemovedItem(selectAll);
|
|
1569
1567
|
return unselectAllListItems(onChange);
|
|
1570
1568
|
}
|
|
1571
1569
|
return selectAllUnselectedItemsInListItems(onChange);
|
|
1572
1570
|
}
|
|
1573
1571
|
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1574
|
-
setLastRemovedItem(clickedItem);
|
|
1575
1572
|
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1576
1573
|
}
|
|
1577
1574
|
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
@@ -1891,12 +1888,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1891
1888
|
},
|
|
1892
1889
|
onKeyDown: function onKeyDown(e) {
|
|
1893
1890
|
if (selectOnTab && isOpen && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
|
|
1894
|
-
}
|
|
1895
|
-
}, {
|
|
1896
|
-
suppressRefError: true
|
|
1897
|
-
}), {
|
|
1891
|
+
},
|
|
1898
1892
|
ref: inputRef
|
|
1899
|
-
})), React.createElement(DropdownList, {
|
|
1893
|
+
}))), React.createElement(DropdownList, {
|
|
1900
1894
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
1901
1895
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
1902
1896
|
getItemProps: getItemProps,
|
|
@@ -1905,7 +1899,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1905
1899
|
isOpen: isOpen,
|
|
1906
1900
|
listItems: listItems,
|
|
1907
1901
|
listStyle: _extends({}, floatingStyles, listStyle),
|
|
1908
|
-
|
|
1902
|
+
setListRef: refs.setFloating,
|
|
1909
1903
|
loading: loading,
|
|
1910
1904
|
loadingText: loadingText,
|
|
1911
1905
|
noMatchesText: noMatchesText,
|
|
@@ -1972,13 +1966,12 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1972
1966
|
var _React$useState = React.useState(0),
|
|
1973
1967
|
lastHighlightedIndex = _React$useState[0],
|
|
1974
1968
|
setLastHighlightedIndex = _React$useState[1];
|
|
1975
|
-
var _React$useState2 = React.useState(undefined),
|
|
1976
|
-
setLastClickedItem = _React$useState2[1];
|
|
1977
1969
|
var inputRef = React.useRef(null);
|
|
1978
1970
|
React.useEffect(function () {
|
|
1979
1971
|
//@ts-expect-error this is done to aid developers debug wrong prop usage
|
|
1980
1972
|
if (rest.selectedItem !== undefined) console.warn("Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?");
|
|
1981
|
-
|
|
1973
|
+
//@ts-expect-error selectedItem should not actually exist in rest
|
|
1974
|
+
}, [rest.selectedItem]);
|
|
1982
1975
|
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1983
1976
|
normalizedItems = _useResolvedItems.items,
|
|
1984
1977
|
loading = _useResolvedItems.loading,
|
|
@@ -2092,8 +2085,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2092
2085
|
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
2093
2086
|
handleListItemClicked({
|
|
2094
2087
|
clickedItem: listItems[changes.highlightedIndex],
|
|
2095
|
-
onChange: onChange
|
|
2096
|
-
setLastClickedItem: setLastClickedItem
|
|
2088
|
+
onChange: onChange
|
|
2097
2089
|
});
|
|
2098
2090
|
}
|
|
2099
2091
|
}
|
|
@@ -2143,8 +2135,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2143
2135
|
{
|
|
2144
2136
|
handleListItemClicked({
|
|
2145
2137
|
clickedItem: clickedItem,
|
|
2146
|
-
onChange: onChange
|
|
2147
|
-
setLastClickedItem: setLastClickedItem
|
|
2138
|
+
onChange: onChange
|
|
2148
2139
|
});
|
|
2149
2140
|
}
|
|
2150
2141
|
}
|
|
@@ -2244,8 +2235,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2244
2235
|
var _inputRef$current6;
|
|
2245
2236
|
handleListItemClicked({
|
|
2246
2237
|
clickedItem: selectedItem,
|
|
2247
|
-
onChange: onChange
|
|
2248
|
-
setLastClickedItem: setLastClickedItem
|
|
2238
|
+
onChange: onChange
|
|
2249
2239
|
});
|
|
2250
2240
|
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2251
2241
|
},
|
|
@@ -2270,20 +2260,16 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2270
2260
|
if (highlitedItem) {
|
|
2271
2261
|
handleListItemClicked({
|
|
2272
2262
|
clickedItem: highlitedItem,
|
|
2273
|
-
onChange: onChange
|
|
2274
|
-
setLastClickedItem: setLastClickedItem
|
|
2263
|
+
onChange: onChange
|
|
2275
2264
|
});
|
|
2276
2265
|
}
|
|
2277
2266
|
}
|
|
2278
2267
|
}
|
|
2279
2268
|
}, getDropdownProps({
|
|
2280
2269
|
preventKeyAction: isOpen,
|
|
2281
|
-
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2282
|
-
})), {
|
|
2283
|
-
suppressRefError: true
|
|
2284
|
-
}), {
|
|
2270
|
+
value: inputValue != null ? inputValue : EMPTY_INPUT,
|
|
2285
2271
|
ref: inputRef
|
|
2286
|
-
}))), React.createElement(DropdownList, {
|
|
2272
|
+
})))))), React.createElement(DropdownList, {
|
|
2287
2273
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2288
2274
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2289
2275
|
getItemProps: getItemProps,
|
|
@@ -2293,7 +2279,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2293
2279
|
isOpen: isOpen,
|
|
2294
2280
|
listItems: listItems,
|
|
2295
2281
|
listStyle: _extends({}, floatingStyles, listStyle),
|
|
2296
|
-
|
|
2282
|
+
setListRef: refs.setFloating,
|
|
2297
2283
|
loading: loading,
|
|
2298
2284
|
loadingText: loadingText,
|
|
2299
2285
|
noMatchesText: noMatchesText,
|
|
@@ -2433,12 +2419,9 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2433
2419
|
onChange == null ? void 0 : onChange(highlitedItem);
|
|
2434
2420
|
}
|
|
2435
2421
|
}
|
|
2436
|
-
}
|
|
2437
|
-
}, {
|
|
2438
|
-
suppressRefError: true
|
|
2439
|
-
}), {
|
|
2422
|
+
},
|
|
2440
2423
|
ref: toggleButtonRef
|
|
2441
|
-
}), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("div", {
|
|
2424
|
+
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("div", {
|
|
2442
2425
|
className: classNames('eds-dropdown__selected-item__placeholder', {
|
|
2443
2426
|
'eds-dropdown__selected-item__placeholder--readonly': readOnly
|
|
2444
2427
|
})
|
|
@@ -2451,7 +2434,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2451
2434
|
isOpen: isOpen,
|
|
2452
2435
|
listItems: normalizedItems,
|
|
2453
2436
|
listStyle: _extends({}, floatingStyles, listStyle),
|
|
2454
|
-
|
|
2437
|
+
setListRef: refs.setFloating,
|
|
2455
2438
|
loading: loading,
|
|
2456
2439
|
loadingText: loadingText,
|
|
2457
2440
|
selectedItems: selectedItem !== null ? [selectedItem] : []
|