@entur/dropdown 6.0.3-beta.1 → 6.0.3-beta.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/dropdown.cjs.development.js +50 -62
- 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 -62
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +120 -114
- package/dist/utils.d.ts +7 -16
- package/package.json +10 -10
|
@@ -1335,9 +1335,11 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1335
1335
|
return (
|
|
1336
1336
|
// use popover from @entur/tooltip when that package upgrades to floating-ui
|
|
1337
1337
|
React.createElement("ul", _extends({}, getMenuProps({
|
|
1338
|
-
'aria-multiselectable': isMultiselect
|
|
1339
|
-
|
|
1338
|
+
'aria-multiselectable': isMultiselect
|
|
1339
|
+
}, {
|
|
1340
|
+
suppressRefError: true
|
|
1340
1341
|
}), {
|
|
1342
|
+
ref: listRef,
|
|
1341
1343
|
className: "eds-dropdown__list",
|
|
1342
1344
|
style: _extends({
|
|
1343
1345
|
display: isOpen ? 'inline-block' : 'none'
|
|
@@ -1517,6 +1519,9 @@ input) {
|
|
|
1517
1519
|
var itemToString = function itemToString(item) {
|
|
1518
1520
|
return item ? item.label : '';
|
|
1519
1521
|
};
|
|
1522
|
+
var itemToKey = function itemToKey(item) {
|
|
1523
|
+
return (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value);
|
|
1524
|
+
};
|
|
1520
1525
|
var isFunctionWithQueryArgument = function isFunctionWithQueryArgument(object) {
|
|
1521
1526
|
return typeof object === 'function' && object.length > 0;
|
|
1522
1527
|
};
|
|
@@ -1557,7 +1562,7 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1557
1562
|
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1558
1563
|
var clickedItem = _ref2.clickedItem,
|
|
1559
1564
|
onChange = _ref2.onChange,
|
|
1560
|
-
setLastRemovedItem = _ref2.
|
|
1565
|
+
setLastRemovedItem = _ref2.setLastClickedItem;
|
|
1561
1566
|
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1562
1567
|
if (allListItemsAreSelected) {
|
|
1563
1568
|
setLastRemovedItem(selectAll);
|
|
@@ -1607,40 +1612,23 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1607
1612
|
unselectAllListItems: unselectAllListItems
|
|
1608
1613
|
};
|
|
1609
1614
|
};
|
|
1615
|
+
/* end multiselect utils */
|
|
1616
|
+
/* start a11y utils */
|
|
1617
|
+
// called when the state changes:
|
|
1618
|
+
// selectedItem, highlightedIndex, inputValue or isOpen.
|
|
1610
1619
|
function getA11yStatusMessage(options) {
|
|
1611
1620
|
var isOpen = options.isOpen,
|
|
1612
|
-
resultCount = options.resultCount,
|
|
1613
|
-
previousResultCount = options.previousResultCount,
|
|
1614
1621
|
_options$selectAllIte = options.selectAllItemIncluded,
|
|
1615
1622
|
selectAllItemIncluded = _options$selectAllIte === void 0 ? false : _options$selectAllIte,
|
|
1616
|
-
|
|
1617
|
-
ariaLabelNoResults = _options$ariaLabelNoR === void 0 ? 'Ingen resultater' : _options$ariaLabelNoR;
|
|
1623
|
+
resultCount = options.resultCount;
|
|
1618
1624
|
if (!isOpen) {
|
|
1619
1625
|
return '';
|
|
1620
1626
|
}
|
|
1621
1627
|
var resultCountWithoutSelectAll = selectAllItemIncluded ? resultCount - 1 : resultCount;
|
|
1622
1628
|
if (resultCountWithoutSelectAll === 0) {
|
|
1623
|
-
return
|
|
1624
|
-
}
|
|
1625
|
-
if (resultCount !== previousResultCount) {
|
|
1626
|
-
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.";
|
|
1629
|
+
return 'Ingen resultater';
|
|
1627
1630
|
}
|
|
1628
|
-
return '';
|
|
1629
|
-
}
|
|
1630
|
-
function getA11ySelectionMessage(options) {
|
|
1631
|
-
var selectedItem = options.selectedItem,
|
|
1632
|
-
itemToStringLocal = options.itemToString,
|
|
1633
|
-
selectAllItem = options.selectAllItem;
|
|
1634
|
-
if ((selectedItem == null ? void 0 : selectedItem.value) === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen valgt.';
|
|
1635
|
-
return selectedItem ? itemToStringLocal(selectedItem) + " er valgt." : '';
|
|
1636
|
-
}
|
|
1637
|
-
function getA11yRemovalMessage(options) {
|
|
1638
|
-
var itemToString = options.itemToString,
|
|
1639
|
-
selectAllItem = options.selectAllItem,
|
|
1640
|
-
removedItem = options.removedItem;
|
|
1641
|
-
if (removedItem === undefined) return '';
|
|
1642
|
-
if (removedItem.value === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen fjernet fra valgte.';
|
|
1643
|
-
return itemToString(removedItem) + " fjernet fra valgte.";
|
|
1631
|
+
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.";
|
|
1644
1632
|
}
|
|
1645
1633
|
/* end a11y utils */
|
|
1646
1634
|
|
|
@@ -1805,11 +1793,10 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1805
1793
|
}
|
|
1806
1794
|
},
|
|
1807
1795
|
// Accessibility
|
|
1808
|
-
getA11yStatusMessage: getA11yStatusMessage
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
return getA11ySelectionMessage(options);
|
|
1796
|
+
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
1797
|
+
return getA11yStatusMessage(_extends({}, options, {
|
|
1798
|
+
resultCount: listItems.length
|
|
1799
|
+
}));
|
|
1813
1800
|
}
|
|
1814
1801
|
}, rest)),
|
|
1815
1802
|
isOpen = _useCombobox.isOpen,
|
|
@@ -1904,11 +1891,17 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1904
1891
|
},
|
|
1905
1892
|
onKeyDown: function onKeyDown(e) {
|
|
1906
1893
|
if (selectOnTab && isOpen && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
|
|
1907
|
-
}
|
|
1894
|
+
}
|
|
1895
|
+
}, {
|
|
1896
|
+
suppressRefError: true
|
|
1897
|
+
}), {
|
|
1908
1898
|
ref: inputRef
|
|
1909
|
-
}))
|
|
1899
|
+
})), React.createElement(DropdownList, {
|
|
1910
1900
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
1911
1901
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
1902
|
+
getItemProps: getItemProps,
|
|
1903
|
+
getMenuProps: getMenuProps,
|
|
1904
|
+
highlightedIndex: highlightedIndex,
|
|
1912
1905
|
isOpen: isOpen,
|
|
1913
1906
|
listItems: listItems,
|
|
1914
1907
|
listStyle: _extends({}, floatingStyles, listStyle),
|
|
@@ -1916,9 +1909,6 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1916
1909
|
loading: loading,
|
|
1917
1910
|
loadingText: loadingText,
|
|
1918
1911
|
noMatchesText: noMatchesText,
|
|
1919
|
-
getItemProps: getItemProps,
|
|
1920
|
-
getMenuProps: getMenuProps,
|
|
1921
|
-
highlightedIndex: highlightedIndex,
|
|
1922
1912
|
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
1923
1913
|
}));
|
|
1924
1914
|
};
|
|
@@ -1983,8 +1973,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1983
1973
|
lastHighlightedIndex = _React$useState[0],
|
|
1984
1974
|
setLastHighlightedIndex = _React$useState[1];
|
|
1985
1975
|
var _React$useState2 = React.useState(undefined),
|
|
1986
|
-
|
|
1987
|
-
setLastRemovedItem = _React$useState2[1];
|
|
1976
|
+
setLastClickedItem = _React$useState2[1];
|
|
1988
1977
|
var inputRef = React.useRef(null);
|
|
1989
1978
|
React.useEffect(function () {
|
|
1990
1979
|
//@ts-expect-error this is done to aid developers debug wrong prop usage
|
|
@@ -2040,7 +2029,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2040
2029
|
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
|
|
2041
2030
|
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
2042
2031
|
selectedItems: selectedItems,
|
|
2032
|
+
// @ts-expect-error prop missing from library types
|
|
2043
2033
|
itemToString: itemToString,
|
|
2034
|
+
itemToKey: itemToKey,
|
|
2044
2035
|
onStateChange: function onStateChange(_ref4) {
|
|
2045
2036
|
var newSelectedItems = _ref4.selectedItems,
|
|
2046
2037
|
type = _ref4.type;
|
|
@@ -2054,13 +2045,6 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2054
2045
|
break;
|
|
2055
2046
|
}
|
|
2056
2047
|
}
|
|
2057
|
-
},
|
|
2058
|
-
// Accessibility
|
|
2059
|
-
getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
|
|
2060
|
-
return getA11yRemovalMessage(_extends({}, options, {
|
|
2061
|
-
selectAllItem: selectAll,
|
|
2062
|
-
removedItem: lastRemovedItem
|
|
2063
|
-
}));
|
|
2064
2048
|
}
|
|
2065
2049
|
}),
|
|
2066
2050
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
@@ -2109,7 +2093,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2109
2093
|
handleListItemClicked({
|
|
2110
2094
|
clickedItem: listItems[changes.highlightedIndex],
|
|
2111
2095
|
onChange: onChange,
|
|
2112
|
-
|
|
2096
|
+
setLastClickedItem: setLastClickedItem
|
|
2113
2097
|
});
|
|
2114
2098
|
}
|
|
2115
2099
|
}
|
|
@@ -2160,7 +2144,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2160
2144
|
handleListItemClicked({
|
|
2161
2145
|
clickedItem: clickedItem,
|
|
2162
2146
|
onChange: onChange,
|
|
2163
|
-
|
|
2147
|
+
setLastClickedItem: setLastClickedItem
|
|
2164
2148
|
});
|
|
2165
2149
|
}
|
|
2166
2150
|
}
|
|
@@ -2168,14 +2152,8 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2168
2152
|
// Accessibility
|
|
2169
2153
|
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
2170
2154
|
return getA11yStatusMessage(_extends({}, options, {
|
|
2171
|
-
selectAllItemIncluded: !hideSelectAll
|
|
2172
|
-
|
|
2173
|
-
},
|
|
2174
|
-
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
2175
|
-
// but is left here for when it is fixed
|
|
2176
|
-
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
2177
|
-
return getA11ySelectionMessage(_extends({}, options, {
|
|
2178
|
-
selectAllItem: selectAll
|
|
2155
|
+
selectAllItemIncluded: !hideSelectAll,
|
|
2156
|
+
resultCount: listItems.length
|
|
2179
2157
|
}));
|
|
2180
2158
|
}
|
|
2181
2159
|
}, rest)),
|
|
@@ -2267,7 +2245,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2267
2245
|
handleListItemClicked({
|
|
2268
2246
|
clickedItem: selectedItem,
|
|
2269
2247
|
onChange: onChange,
|
|
2270
|
-
|
|
2248
|
+
setLastClickedItem: setLastClickedItem
|
|
2271
2249
|
});
|
|
2272
2250
|
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2273
2251
|
},
|
|
@@ -2293,16 +2271,19 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2293
2271
|
handleListItemClicked({
|
|
2294
2272
|
clickedItem: highlitedItem,
|
|
2295
2273
|
onChange: onChange,
|
|
2296
|
-
|
|
2274
|
+
setLastClickedItem: setLastClickedItem
|
|
2297
2275
|
});
|
|
2298
2276
|
}
|
|
2299
2277
|
}
|
|
2300
2278
|
}
|
|
2301
2279
|
}, getDropdownProps({
|
|
2302
2280
|
preventKeyAction: isOpen,
|
|
2303
|
-
ref: inputRef,
|
|
2304
2281
|
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2305
|
-
}))
|
|
2282
|
+
})), {
|
|
2283
|
+
suppressRefError: true
|
|
2284
|
+
}), {
|
|
2285
|
+
ref: inputRef
|
|
2286
|
+
}))), React.createElement(DropdownList, {
|
|
2306
2287
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2307
2288
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2308
2289
|
getItemProps: getItemProps,
|
|
@@ -2385,6 +2366,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2385
2366
|
itemToString: itemToString
|
|
2386
2367
|
}),
|
|
2387
2368
|
isOpen = _useSelect.isOpen,
|
|
2369
|
+
openMenu = _useSelect.openMenu,
|
|
2388
2370
|
getItemProps = _useSelect.getItemProps,
|
|
2389
2371
|
getLabelProps = _useSelect.getLabelProps,
|
|
2390
2372
|
getMenuProps = _useSelect.getMenuProps,
|
|
@@ -2431,6 +2413,9 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2431
2413
|
labelId: getLabelProps().id,
|
|
2432
2414
|
labelProps: getLabelProps(),
|
|
2433
2415
|
labelTooltip: labelTooltip,
|
|
2416
|
+
onClick: function onClick(e) {
|
|
2417
|
+
if (e.target === e.currentTarget) openMenu();
|
|
2418
|
+
},
|
|
2434
2419
|
prepend: prepend,
|
|
2435
2420
|
readOnly: readOnly,
|
|
2436
2421
|
ref: refs.setReference,
|
|
@@ -2448,9 +2433,12 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2448
2433
|
onChange == null ? void 0 : onChange(highlitedItem);
|
|
2449
2434
|
}
|
|
2450
2435
|
}
|
|
2451
|
-
}
|
|
2436
|
+
}
|
|
2437
|
+
}, {
|
|
2438
|
+
suppressRefError: true
|
|
2439
|
+
}), {
|
|
2452
2440
|
ref: toggleButtonRef
|
|
2453
|
-
})
|
|
2441
|
+
}), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("div", {
|
|
2454
2442
|
className: classNames('eds-dropdown__selected-item__placeholder', {
|
|
2455
2443
|
'eds-dropdown__selected-item__placeholder--readonly': readOnly
|
|
2456
2444
|
})
|