@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
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: listRef,
|
|
1337
1339
|
className: "eds-dropdown__list",
|
|
1338
1340
|
style: _extends({
|
|
1339
1341
|
display: isOpen ? 'inline-block' : 'none'
|
|
@@ -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
|
};
|
|
@@ -1553,7 +1558,7 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1553
1558
|
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1554
1559
|
var clickedItem = _ref2.clickedItem,
|
|
1555
1560
|
onChange = _ref2.onChange,
|
|
1556
|
-
setLastRemovedItem = _ref2.
|
|
1561
|
+
setLastRemovedItem = _ref2.setLastClickedItem;
|
|
1557
1562
|
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1558
1563
|
if (allListItemsAreSelected) {
|
|
1559
1564
|
setLastRemovedItem(selectAll);
|
|
@@ -1603,40 +1608,23 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1603
1608
|
unselectAllListItems: unselectAllListItems
|
|
1604
1609
|
};
|
|
1605
1610
|
};
|
|
1611
|
+
/* end multiselect utils */
|
|
1612
|
+
/* start a11y utils */
|
|
1613
|
+
// called when the state changes:
|
|
1614
|
+
// selectedItem, highlightedIndex, inputValue or isOpen.
|
|
1606
1615
|
function getA11yStatusMessage(options) {
|
|
1607
1616
|
var isOpen = options.isOpen,
|
|
1608
|
-
resultCount = options.resultCount,
|
|
1609
|
-
previousResultCount = options.previousResultCount,
|
|
1610
1617
|
_options$selectAllIte = options.selectAllItemIncluded,
|
|
1611
1618
|
selectAllItemIncluded = _options$selectAllIte === void 0 ? false : _options$selectAllIte,
|
|
1612
|
-
|
|
1613
|
-
ariaLabelNoResults = _options$ariaLabelNoR === void 0 ? 'Ingen resultater' : _options$ariaLabelNoR;
|
|
1619
|
+
resultCount = options.resultCount;
|
|
1614
1620
|
if (!isOpen) {
|
|
1615
1621
|
return '';
|
|
1616
1622
|
}
|
|
1617
1623
|
var resultCountWithoutSelectAll = selectAllItemIncluded ? resultCount - 1 : resultCount;
|
|
1618
1624
|
if (resultCountWithoutSelectAll === 0) {
|
|
1619
|
-
return
|
|
1620
|
-
}
|
|
1621
|
-
if (resultCount !== previousResultCount) {
|
|
1622
|
-
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.";
|
|
1625
|
+
return 'Ingen resultater';
|
|
1623
1626
|
}
|
|
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.";
|
|
1627
|
+
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.";
|
|
1640
1628
|
}
|
|
1641
1629
|
/* end a11y utils */
|
|
1642
1630
|
|
|
@@ -1801,11 +1789,10 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1801
1789
|
}
|
|
1802
1790
|
},
|
|
1803
1791
|
// Accessibility
|
|
1804
|
-
getA11yStatusMessage: getA11yStatusMessage
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
return getA11ySelectionMessage(options);
|
|
1792
|
+
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
1793
|
+
return getA11yStatusMessage(_extends({}, options, {
|
|
1794
|
+
resultCount: listItems.length
|
|
1795
|
+
}));
|
|
1809
1796
|
}
|
|
1810
1797
|
}, rest)),
|
|
1811
1798
|
isOpen = _useCombobox.isOpen,
|
|
@@ -1900,11 +1887,17 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1900
1887
|
},
|
|
1901
1888
|
onKeyDown: function onKeyDown(e) {
|
|
1902
1889
|
if (selectOnTab && isOpen && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
|
|
1903
|
-
}
|
|
1890
|
+
}
|
|
1891
|
+
}, {
|
|
1892
|
+
suppressRefError: true
|
|
1893
|
+
}), {
|
|
1904
1894
|
ref: inputRef
|
|
1905
|
-
}))
|
|
1895
|
+
})), React.createElement(DropdownList, {
|
|
1906
1896
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
1907
1897
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
1898
|
+
getItemProps: getItemProps,
|
|
1899
|
+
getMenuProps: getMenuProps,
|
|
1900
|
+
highlightedIndex: highlightedIndex,
|
|
1908
1901
|
isOpen: isOpen,
|
|
1909
1902
|
listItems: listItems,
|
|
1910
1903
|
listStyle: _extends({}, floatingStyles, listStyle),
|
|
@@ -1912,9 +1905,6 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
|
1912
1905
|
loading: loading,
|
|
1913
1906
|
loadingText: loadingText,
|
|
1914
1907
|
noMatchesText: noMatchesText,
|
|
1915
|
-
getItemProps: getItemProps,
|
|
1916
|
-
getMenuProps: getMenuProps,
|
|
1917
|
-
highlightedIndex: highlightedIndex,
|
|
1918
1908
|
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
1919
1909
|
}));
|
|
1920
1910
|
};
|
|
@@ -1979,8 +1969,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1979
1969
|
lastHighlightedIndex = _React$useState[0],
|
|
1980
1970
|
setLastHighlightedIndex = _React$useState[1];
|
|
1981
1971
|
var _React$useState2 = React.useState(undefined),
|
|
1982
|
-
|
|
1983
|
-
setLastRemovedItem = _React$useState2[1];
|
|
1972
|
+
setLastClickedItem = _React$useState2[1];
|
|
1984
1973
|
var inputRef = useRef(null);
|
|
1985
1974
|
useEffect(function () {
|
|
1986
1975
|
//@ts-expect-error this is done to aid developers debug wrong prop usage
|
|
@@ -2036,7 +2025,9 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2036
2025
|
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
|
|
2037
2026
|
var _useMultipleSelection = useMultipleSelection({
|
|
2038
2027
|
selectedItems: selectedItems,
|
|
2028
|
+
// @ts-expect-error prop missing from library types
|
|
2039
2029
|
itemToString: itemToString,
|
|
2030
|
+
itemToKey: itemToKey,
|
|
2040
2031
|
onStateChange: function onStateChange(_ref4) {
|
|
2041
2032
|
var newSelectedItems = _ref4.selectedItems,
|
|
2042
2033
|
type = _ref4.type;
|
|
@@ -2050,13 +2041,6 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2050
2041
|
break;
|
|
2051
2042
|
}
|
|
2052
2043
|
}
|
|
2053
|
-
},
|
|
2054
|
-
// Accessibility
|
|
2055
|
-
getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
|
|
2056
|
-
return getA11yRemovalMessage(_extends({}, options, {
|
|
2057
|
-
selectAllItem: selectAll,
|
|
2058
|
-
removedItem: lastRemovedItem
|
|
2059
|
-
}));
|
|
2060
2044
|
}
|
|
2061
2045
|
}),
|
|
2062
2046
|
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
@@ -2105,7 +2089,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2105
2089
|
handleListItemClicked({
|
|
2106
2090
|
clickedItem: listItems[changes.highlightedIndex],
|
|
2107
2091
|
onChange: onChange,
|
|
2108
|
-
|
|
2092
|
+
setLastClickedItem: setLastClickedItem
|
|
2109
2093
|
});
|
|
2110
2094
|
}
|
|
2111
2095
|
}
|
|
@@ -2156,7 +2140,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2156
2140
|
handleListItemClicked({
|
|
2157
2141
|
clickedItem: clickedItem,
|
|
2158
2142
|
onChange: onChange,
|
|
2159
|
-
|
|
2143
|
+
setLastClickedItem: setLastClickedItem
|
|
2160
2144
|
});
|
|
2161
2145
|
}
|
|
2162
2146
|
}
|
|
@@ -2164,14 +2148,8 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2164
2148
|
// Accessibility
|
|
2165
2149
|
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
2166
2150
|
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
|
|
2151
|
+
selectAllItemIncluded: !hideSelectAll,
|
|
2152
|
+
resultCount: listItems.length
|
|
2175
2153
|
}));
|
|
2176
2154
|
}
|
|
2177
2155
|
}, rest)),
|
|
@@ -2263,7 +2241,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2263
2241
|
handleListItemClicked({
|
|
2264
2242
|
clickedItem: selectedItem,
|
|
2265
2243
|
onChange: onChange,
|
|
2266
|
-
|
|
2244
|
+
setLastClickedItem: setLastClickedItem
|
|
2267
2245
|
});
|
|
2268
2246
|
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2269
2247
|
},
|
|
@@ -2289,16 +2267,19 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
2289
2267
|
handleListItemClicked({
|
|
2290
2268
|
clickedItem: highlitedItem,
|
|
2291
2269
|
onChange: onChange,
|
|
2292
|
-
|
|
2270
|
+
setLastClickedItem: setLastClickedItem
|
|
2293
2271
|
});
|
|
2294
2272
|
}
|
|
2295
2273
|
}
|
|
2296
2274
|
}
|
|
2297
2275
|
}, getDropdownProps({
|
|
2298
2276
|
preventKeyAction: isOpen,
|
|
2299
|
-
ref: inputRef,
|
|
2300
2277
|
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2301
|
-
}))
|
|
2278
|
+
})), {
|
|
2279
|
+
suppressRefError: true
|
|
2280
|
+
}), {
|
|
2281
|
+
ref: inputRef
|
|
2282
|
+
}))), React.createElement(DropdownList, {
|
|
2302
2283
|
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2303
2284
|
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2304
2285
|
getItemProps: getItemProps,
|
|
@@ -2381,6 +2362,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2381
2362
|
itemToString: itemToString
|
|
2382
2363
|
}),
|
|
2383
2364
|
isOpen = _useSelect.isOpen,
|
|
2365
|
+
openMenu = _useSelect.openMenu,
|
|
2384
2366
|
getItemProps = _useSelect.getItemProps,
|
|
2385
2367
|
getLabelProps = _useSelect.getLabelProps,
|
|
2386
2368
|
getMenuProps = _useSelect.getMenuProps,
|
|
@@ -2427,6 +2409,9 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2427
2409
|
labelId: getLabelProps().id,
|
|
2428
2410
|
labelProps: getLabelProps(),
|
|
2429
2411
|
labelTooltip: labelTooltip,
|
|
2412
|
+
onClick: function onClick(e) {
|
|
2413
|
+
if (e.target === e.currentTarget) openMenu();
|
|
2414
|
+
},
|
|
2430
2415
|
prepend: prepend,
|
|
2431
2416
|
readOnly: readOnly,
|
|
2432
2417
|
ref: refs.setReference,
|
|
@@ -2444,9 +2429,12 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2444
2429
|
onChange == null ? void 0 : onChange(highlitedItem);
|
|
2445
2430
|
}
|
|
2446
2431
|
}
|
|
2447
|
-
}
|
|
2432
|
+
}
|
|
2433
|
+
}, {
|
|
2434
|
+
suppressRefError: true
|
|
2435
|
+
}), {
|
|
2448
2436
|
ref: toggleButtonRef
|
|
2449
|
-
})
|
|
2437
|
+
}), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("div", {
|
|
2450
2438
|
className: classNames('eds-dropdown__selected-item__placeholder', {
|
|
2451
2439
|
'eds-dropdown__selected-item__placeholder--readonly': readOnly
|
|
2452
2440
|
})
|