@entur/dropdown 6.0.1 → 6.0.3-RC.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/components/DropdownList.d.ts +3 -3
- package/dist/dropdown.cjs.development.js +43 -72
- 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 +43 -72
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +130 -119
- package/dist/utils.d.ts +6 -16
- package/package.json +12 -12
package/dist/dropdown.esm.js
CHANGED
|
@@ -1331,9 +1331,11 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1331
1331
|
return (
|
|
1332
1332
|
// use popover from @entur/tooltip when that package upgrades to floating-ui
|
|
1333
1333
|
React.createElement("ul", _extends({}, getMenuProps({
|
|
1334
|
-
'aria-multiselectable': isMultiselect
|
|
1335
|
-
|
|
1334
|
+
'aria-multiselectable': isMultiselect
|
|
1335
|
+
}, {
|
|
1336
|
+
suppressRefError: true
|
|
1336
1337
|
}), {
|
|
1338
|
+
ref: mergeRefs(listRef, getMenuProps().ref),
|
|
1337
1339
|
className: "eds-dropdown__list",
|
|
1338
1340
|
style: _extends({
|
|
1339
1341
|
display: isOpen ? 'inline-block' : 'none'
|
|
@@ -1342,14 +1344,13 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1342
1344
|
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1343
1345
|
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1344
1346
|
return React.createElement("li", _extends({
|
|
1345
|
-
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1346
1347
|
className: classNames('eds-dropdown__list__item', {
|
|
1347
1348
|
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1348
1349
|
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1349
1350
|
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1350
|
-
})
|
|
1351
|
+
}),
|
|
1352
|
+
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value)
|
|
1351
1353
|
}, getItemProps({
|
|
1352
|
-
key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
|
|
1353
1354
|
// @ts-expect-error Since getItemProps expects the same item type
|
|
1354
1355
|
// here as items, it throws error when selectAllItem is a string.
|
|
1355
1356
|
// This does, however, not cause any functional issues.
|
|
@@ -1399,7 +1400,8 @@ var SelectedItemTag = function SelectedItemTag(_ref) {
|
|
|
1399
1400
|
key: selectedItem.value,
|
|
1400
1401
|
"aria-live": "polite"
|
|
1401
1402
|
}), React.createElement("span", {
|
|
1402
|
-
"aria-hidden": "true"
|
|
1403
|
+
"aria-hidden": "true",
|
|
1404
|
+
className: "eds-dropdown__selected-item-tag__text"
|
|
1403
1405
|
}, selectedItem.label));
|
|
1404
1406
|
};
|
|
1405
1407
|
var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
@@ -1513,6 +1515,9 @@ input) {
|
|
|
1513
1515
|
var itemToString = function itemToString(item) {
|
|
1514
1516
|
return item ? item.label : '';
|
|
1515
1517
|
};
|
|
1518
|
+
var itemToKey = function itemToKey(item) {
|
|
1519
|
+
return (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value);
|
|
1520
|
+
};
|
|
1516
1521
|
var isFunctionWithQueryArgument = function isFunctionWithQueryArgument(object) {
|
|
1517
1522
|
return typeof object === 'function' && object.length > 0;
|
|
1518
1523
|
};
|
|
@@ -1552,17 +1557,14 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1552
1557
|
};
|
|
1553
1558
|
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1554
1559
|
var clickedItem = _ref2.clickedItem,
|
|
1555
|
-
onChange = _ref2.onChange
|
|
1556
|
-
setLastRemovedItem = _ref2.setLastRemovedItem;
|
|
1560
|
+
onChange = _ref2.onChange;
|
|
1557
1561
|
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1558
1562
|
if (allListItemsAreSelected) {
|
|
1559
|
-
setLastRemovedItem(selectAll);
|
|
1560
1563
|
return unselectAllListItems(onChange);
|
|
1561
1564
|
}
|
|
1562
1565
|
return selectAllUnselectedItemsInListItems(onChange);
|
|
1563
1566
|
}
|
|
1564
1567
|
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1565
|
-
setLastRemovedItem(clickedItem);
|
|
1566
1568
|
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1567
1569
|
}
|
|
1568
1570
|
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
@@ -1603,40 +1605,23 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1603
1605
|
unselectAllListItems: unselectAllListItems
|
|
1604
1606
|
};
|
|
1605
1607
|
};
|
|
1608
|
+
/* end multiselect utils */
|
|
1609
|
+
/* start a11y utils */
|
|
1610
|
+
// called when the state changes:
|
|
1611
|
+
// selectedItem, highlightedIndex, inputValue or isOpen.
|
|
1606
1612
|
function getA11yStatusMessage(options) {
|
|
1607
1613
|
var isOpen = options.isOpen,
|
|
1608
|
-
resultCount = options.resultCount,
|
|
1609
|
-
previousResultCount = options.previousResultCount,
|
|
1610
1614
|
_options$selectAllIte = options.selectAllItemIncluded,
|
|
1611
1615
|
selectAllItemIncluded = _options$selectAllIte === void 0 ? false : _options$selectAllIte,
|
|
1612
|
-
|
|
1613
|
-
ariaLabelNoResults = _options$ariaLabelNoR === void 0 ? 'Ingen resultater' : _options$ariaLabelNoR;
|
|
1616
|
+
resultCount = options.resultCount;
|
|
1614
1617
|
if (!isOpen) {
|
|
1615
1618
|
return '';
|
|
1616
1619
|
}
|
|
1617
1620
|
var resultCountWithoutSelectAll = selectAllItemIncluded ? resultCount - 1 : resultCount;
|
|
1618
1621
|
if (resultCountWithoutSelectAll === 0) {
|
|
1619
|
-
return
|
|
1622
|
+
return 'Ingen resultater';
|
|
1620
1623
|
}
|
|
1621
|
-
|
|
1622
|
-
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.";
|
|
1623
|
-
}
|
|
1624
|
-
return '';
|
|
1625
|
-
}
|
|
1626
|
-
function getA11ySelectionMessage(options) {
|
|
1627
|
-
var selectedItem = options.selectedItem,
|
|
1628
|
-
itemToStringLocal = options.itemToString,
|
|
1629
|
-
selectAllItem = options.selectAllItem;
|
|
1630
|
-
if ((selectedItem == null ? void 0 : selectedItem.value) === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen valgt.';
|
|
1631
|
-
return selectedItem ? itemToStringLocal(selectedItem) + " er valgt." : '';
|
|
1632
|
-
}
|
|
1633
|
-
function getA11yRemovalMessage(options) {
|
|
1634
|
-
var itemToString = options.itemToString,
|
|
1635
|
-
selectAllItem = options.selectAllItem,
|
|
1636
|
-
removedItem = options.removedItem;
|
|
1637
|
-
if (removedItem === undefined) return '';
|
|
1638
|
-
if (removedItem.value === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen fjernet fra valgte.';
|
|
1639
|
-
return itemToString(removedItem) + " fjernet fra valgte.";
|
|
1624
|
+
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.";
|
|
1640
1625
|
}
|
|
1641
1626
|
/* end a11y utils */
|
|
1642
1627
|
|
|
@@ -1801,11 +1786,10 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1801
1786
|
}
|
|
1802
1787
|
},
|
|
1803
1788
|
// Accessibility
|
|
1804
|
-
getA11yStatusMessage: getA11yStatusMessage
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
return getA11ySelectionMessage(options);
|
|
1789
|
+
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
1790
|
+
return getA11yStatusMessage(_extends({}, options, {
|
|
1791
|
+
resultCount: listItems.length
|
|
1792
|
+
}));
|
|
1809
1793
|
}
|
|
1810
1794
|
}, rest)),
|
|
1811
1795
|
isOpen = _useCombobox.isOpen,
|
|
@@ -1905,6 +1889,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1905
1889
|
}))), React.createElement(DropdownList, {
|
|
1906
1890
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
1907
1891
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
1892
|
+
getItemProps: getItemProps,
|
|
1893
|
+
getMenuProps: getMenuProps,
|
|
1894
|
+
highlightedIndex: highlightedIndex,
|
|
1908
1895
|
isOpen: isOpen,
|
|
1909
1896
|
listItems: listItems,
|
|
1910
1897
|
listStyle: _extends({}, floatingStyles, listStyle),
|
|
@@ -1912,9 +1899,6 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1912
1899
|
loading: loading,
|
|
1913
1900
|
loadingText: loadingText,
|
|
1914
1901
|
noMatchesText: noMatchesText,
|
|
1915
|
-
getItemProps: getItemProps,
|
|
1916
|
-
getMenuProps: getMenuProps,
|
|
1917
|
-
highlightedIndex: highlightedIndex,
|
|
1918
1902
|
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
1919
1903
|
}));
|
|
1920
1904
|
};
|
|
@@ -1978,14 +1962,12 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1978
1962
|
var _React$useState = React.useState(0),
|
|
1979
1963
|
lastHighlightedIndex = _React$useState[0],
|
|
1980
1964
|
setLastHighlightedIndex = _React$useState[1];
|
|
1981
|
-
var _React$useState2 = React.useState(undefined),
|
|
1982
|
-
lastRemovedItem = _React$useState2[0],
|
|
1983
|
-
setLastRemovedItem = _React$useState2[1];
|
|
1984
1965
|
var inputRef = useRef(null);
|
|
1985
1966
|
useEffect(function () {
|
|
1986
1967
|
//@ts-expect-error this is done to aid developers debug wrong prop usage
|
|
1987
1968
|
if (rest.selectedItem !== undefined) console.warn("Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?");
|
|
1988
|
-
|
|
1969
|
+
//@ts-expect-error selectedItem should not actually exist in rest
|
|
1970
|
+
}, [rest.selectedItem]);
|
|
1989
1971
|
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1990
1972
|
normalizedItems = _useResolvedItems.items,
|
|
1991
1973
|
loading = _useResolvedItems.loading,
|
|
@@ -2036,7 +2018,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2036
2018
|
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
|
|
2037
2019
|
var _useMultipleSelection = useMultipleSelection({
|
|
2038
2020
|
selectedItems: selectedItems,
|
|
2021
|
+
// @ts-expect-error prop missing from library types
|
|
2039
2022
|
itemToString: itemToString,
|
|
2023
|
+
itemToKey: itemToKey,
|
|
2040
2024
|
onStateChange: function onStateChange(_ref4) {
|
|
2041
2025
|
var newSelectedItems = _ref4.selectedItems,
|
|
2042
2026
|
type = _ref4.type;
|
|
@@ -2050,13 +2034,6 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2050
2034
|
break;
|
|
2051
2035
|
}
|
|
2052
2036
|
}
|
|
2053
|
-
},
|
|
2054
|
-
// Accessibility
|
|
2055
|
-
getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
|
|
2056
|
-
return getA11yRemovalMessage(_extends({}, options, {
|
|
2057
|
-
selectAllItem: selectAll,
|
|
2058
|
-
removedItem: lastRemovedItem
|
|
2059
|
-
}));
|
|
2060
2037
|
}
|
|
2061
2038
|
}),
|
|
2062
2039
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
@@ -2104,8 +2081,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2104
2081
|
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
2105
2082
|
handleListItemClicked({
|
|
2106
2083
|
clickedItem: listItems[changes.highlightedIndex],
|
|
2107
|
-
onChange: onChange
|
|
2108
|
-
setLastRemovedItem: setLastRemovedItem
|
|
2084
|
+
onChange: onChange
|
|
2109
2085
|
});
|
|
2110
2086
|
}
|
|
2111
2087
|
}
|
|
@@ -2155,8 +2131,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2155
2131
|
{
|
|
2156
2132
|
handleListItemClicked({
|
|
2157
2133
|
clickedItem: clickedItem,
|
|
2158
|
-
onChange: onChange
|
|
2159
|
-
setLastRemovedItem: setLastRemovedItem
|
|
2134
|
+
onChange: onChange
|
|
2160
2135
|
});
|
|
2161
2136
|
}
|
|
2162
2137
|
}
|
|
@@ -2164,14 +2139,8 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2164
2139
|
// Accessibility
|
|
2165
2140
|
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
2166
2141
|
return getA11yStatusMessage(_extends({}, options, {
|
|
2167
|
-
selectAllItemIncluded: !hideSelectAll
|
|
2168
|
-
|
|
2169
|
-
},
|
|
2170
|
-
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
2171
|
-
// but is left here for when it is fixed
|
|
2172
|
-
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
2173
|
-
return getA11ySelectionMessage(_extends({}, options, {
|
|
2174
|
-
selectAllItem: selectAll
|
|
2142
|
+
selectAllItemIncluded: !hideSelectAll,
|
|
2143
|
+
resultCount: listItems.length
|
|
2175
2144
|
}));
|
|
2176
2145
|
}
|
|
2177
2146
|
}, rest)),
|
|
@@ -2262,8 +2231,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2262
2231
|
var _inputRef$current6;
|
|
2263
2232
|
handleListItemClicked({
|
|
2264
2233
|
clickedItem: selectedItem,
|
|
2265
|
-
onChange: onChange
|
|
2266
|
-
setLastRemovedItem: setLastRemovedItem
|
|
2234
|
+
onChange: onChange
|
|
2267
2235
|
});
|
|
2268
2236
|
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2269
2237
|
},
|
|
@@ -2288,17 +2256,16 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2288
2256
|
if (highlitedItem) {
|
|
2289
2257
|
handleListItemClicked({
|
|
2290
2258
|
clickedItem: highlitedItem,
|
|
2291
|
-
onChange: onChange
|
|
2292
|
-
setLastRemovedItem: setLastRemovedItem
|
|
2259
|
+
onChange: onChange
|
|
2293
2260
|
});
|
|
2294
2261
|
}
|
|
2295
2262
|
}
|
|
2296
2263
|
}
|
|
2297
2264
|
}, getDropdownProps({
|
|
2298
2265
|
preventKeyAction: isOpen,
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
})))))), React.createElement(DropdownList, {
|
|
2266
|
+
value: inputValue != null ? inputValue : EMPTY_INPUT,
|
|
2267
|
+
ref: inputRef
|
|
2268
|
+
}))))), "; ;"), React.createElement(DropdownList, {
|
|
2302
2269
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2303
2270
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2304
2271
|
getItemProps: getItemProps,
|
|
@@ -2381,6 +2348,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2381
2348
|
itemToString: itemToString
|
|
2382
2349
|
}),
|
|
2383
2350
|
isOpen = _useSelect.isOpen,
|
|
2351
|
+
openMenu = _useSelect.openMenu,
|
|
2384
2352
|
getItemProps = _useSelect.getItemProps,
|
|
2385
2353
|
getLabelProps = _useSelect.getLabelProps,
|
|
2386
2354
|
getMenuProps = _useSelect.getMenuProps,
|
|
@@ -2427,6 +2395,9 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2427
2395
|
labelId: getLabelProps().id,
|
|
2428
2396
|
labelProps: getLabelProps(),
|
|
2429
2397
|
labelTooltip: labelTooltip,
|
|
2398
|
+
onClick: function onClick(e) {
|
|
2399
|
+
if (e.target === e.currentTarget) openMenu();
|
|
2400
|
+
},
|
|
2430
2401
|
prepend: prepend,
|
|
2431
2402
|
readOnly: readOnly,
|
|
2432
2403
|
ref: refs.setReference,
|