@entur/dropdown 4.0.0-beta.0 → 4.0.0-beta.1
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/CHANGELOG.md +7 -0
- package/dist/beta/SearchableDropdown.d.ts +8 -2
- package/dist/dropdown.cjs.development.js +27 -20
- 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 +27 -20
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +121 -63
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.0.0-beta.1](https://bitbucket.org/enturas/design-system/compare/@entur/dropdown@3.0.15...@entur/dropdown@4.0.0-beta.1) (2022-09-27)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **searchable dropdown:** fixes from beta testing ([f88405f](https://bitbucket.org/enturas/design-system/commits/f88405fd45353163bcd0b202b538a470d86e5d8c))
|
|
11
|
+
- **searchable dropdown:** mvp new controlled searchable dropdown component (alpha) ([b8b2d05](https://bitbucket.org/enturas/design-system/commits/b8b2d051461406de0544b92b5169b066c91386ce))
|
|
12
|
+
|
|
6
13
|
## [3.0.14](https://bitbucket.org/enturas/design-system/compare/@entur/dropdown@3.0.13...@entur/dropdown@3.0.14) (2022-08-31)
|
|
7
14
|
|
|
8
15
|
**Note:** Version bump only for package @entur/dropdown
|
|
@@ -3,12 +3,18 @@ import { NormalizedDropdownItemType } from '../useNormalizedItems';
|
|
|
3
3
|
import './dropdown.scss';
|
|
4
4
|
export declare type SearchableDropdownProps = {
|
|
5
5
|
items: NormalizedDropdownItemType[];
|
|
6
|
-
|
|
6
|
+
selectedItem: NormalizedDropdownItemType | null;
|
|
7
7
|
onChange: (value: NormalizedDropdownItemType | undefined | null) => void;
|
|
8
8
|
label: string;
|
|
9
9
|
placeholder?: string;
|
|
10
10
|
clearable?: boolean;
|
|
11
11
|
openOnFocus?: boolean;
|
|
12
12
|
className?: string;
|
|
13
|
+
style?: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
};
|
|
16
|
+
listStyle?: {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
};
|
|
13
19
|
};
|
|
14
|
-
export declare const SearchableDropdownBeta: ({ items, value, onChange, label, placeholder, clearable, openOnFocus, className, ...rest }: SearchableDropdownProps) => JSX.Element;
|
|
20
|
+
export declare const SearchableDropdownBeta: ({ items, selectedItem: value, onChange, label, placeholder, clearable, openOnFocus, className, listStyle, ...rest }: SearchableDropdownProps) => JSX.Element;
|
|
@@ -1785,7 +1785,7 @@ function SelectedItemsLabel(items) {
|
|
|
1785
1785
|
}).toString() : items.length + " elementer valgt";
|
|
1786
1786
|
}
|
|
1787
1787
|
|
|
1788
|
-
var _excluded = ["items", "
|
|
1788
|
+
var _excluded = ["items", "selectedItem", "onChange", "label", "placeholder", "clearable", "openOnFocus", "className", "listStyle"];
|
|
1789
1789
|
|
|
1790
1790
|
function lowerCaseFilterTest(item, input) {
|
|
1791
1791
|
if (!input) {
|
|
@@ -1795,13 +1795,14 @@ function lowerCaseFilterTest(item, input) {
|
|
|
1795
1795
|
var sanitizeEscapeCharacters = input.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
1796
1796
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
1797
1797
|
return inputRegex.test(item.label);
|
|
1798
|
-
}
|
|
1798
|
+
} // TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
1799
|
+
|
|
1799
1800
|
|
|
1800
1801
|
var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
1801
1802
|
var _selectedItem$label;
|
|
1802
1803
|
|
|
1803
1804
|
var items = _ref.items,
|
|
1804
|
-
value = _ref.
|
|
1805
|
+
value = _ref.selectedItem,
|
|
1805
1806
|
onChange = _ref.onChange,
|
|
1806
1807
|
_ref$label = _ref.label,
|
|
1807
1808
|
label = _ref$label === void 0 ? '!MANGLER LABEL!' : _ref$label,
|
|
@@ -1811,6 +1812,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1811
1812
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1812
1813
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1813
1814
|
className = _ref.className,
|
|
1815
|
+
listStyle = _ref.listStyle,
|
|
1814
1816
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
1815
1817
|
|
|
1816
1818
|
var _React$useState = React__default["default"].useState(items),
|
|
@@ -1849,7 +1851,8 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1849
1851
|
},
|
|
1850
1852
|
items: filteredItems,
|
|
1851
1853
|
itemToString: function itemToString(item) {
|
|
1852
|
-
|
|
1854
|
+
if (item) return item.value;
|
|
1855
|
+
return '';
|
|
1853
1856
|
},
|
|
1854
1857
|
stateReducer: stateReducer,
|
|
1855
1858
|
selectedItem: value,
|
|
@@ -1869,12 +1872,15 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1869
1872
|
selectedItem = _useCombobox.selectedItem,
|
|
1870
1873
|
openMenu = _useCombobox.openMenu,
|
|
1871
1874
|
inputValue = _useCombobox.inputValue,
|
|
1872
|
-
setInputValue = _useCombobox.setInputValue;
|
|
1875
|
+
setInputValue = _useCombobox.setInputValue; // TODO Husk å generelt legge inn støtte for typeof value === string
|
|
1876
|
+
|
|
1873
1877
|
|
|
1874
1878
|
React.useEffect(function () {
|
|
1875
1879
|
if (inputValue.toLowerCase() === (value == null ? void 0 : value.label.toLowerCase()) || inputValue.toLowerCase() === (value == null ? void 0 : value.value.toLowerCase())) setInputValue('');
|
|
1876
1880
|
}, [value]);
|
|
1877
|
-
return React__default["default"].createElement("div",
|
|
1881
|
+
return React__default["default"].createElement("div", {
|
|
1882
|
+
className: "eds-searchable-dropdown__wrapper"
|
|
1883
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1878
1884
|
append: React__default["default"].createElement(Appendix, {
|
|
1879
1885
|
selectedItem: selectedItem,
|
|
1880
1886
|
isOpen: isOpen,
|
|
@@ -1905,22 +1911,23 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1905
1911
|
onFocus: function onFocus() {
|
|
1906
1912
|
if (!isOpen && openOnFocus) openMenu();
|
|
1907
1913
|
setHideSelectedItem(true);
|
|
1908
|
-
}
|
|
1909
|
-
}), {
|
|
1914
|
+
},
|
|
1910
1915
|
onBlur: function onBlur() {
|
|
1911
1916
|
setHideSelectedItem(false);
|
|
1912
1917
|
},
|
|
1913
1918
|
ref: inputRef
|
|
1914
|
-
}))), React__default["default"].createElement("ul", _extends({
|
|
1915
|
-
className: classNames__default["default"]('eds-
|
|
1916
|
-
'eds-
|
|
1919
|
+
})))), React__default["default"].createElement("ul", _extends({
|
|
1920
|
+
className: classNames__default["default"]('eds-searchable-dropdown__list', {
|
|
1921
|
+
'eds-searchable-dropdown__list--open': isOpen
|
|
1917
1922
|
})
|
|
1918
|
-
}, getMenuProps(),
|
|
1923
|
+
}, getMenuProps(), {
|
|
1924
|
+
style: _extends({}, rest.style, listStyle)
|
|
1925
|
+
}), isOpen ? filteredItems.map(function (item, index) {
|
|
1919
1926
|
return (// eslint-disable-next-line react/jsx-key
|
|
1920
1927
|
React__default["default"].createElement("li", _extends({
|
|
1921
|
-
className: classNames__default["default"]('eds-
|
|
1922
|
-
'eds-
|
|
1923
|
-
'eds-
|
|
1928
|
+
className: classNames__default["default"]('eds-searchable-dropdown__list__item', {
|
|
1929
|
+
'eds-searchable-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1930
|
+
'eds-searchable-dropdown__list__item--selected': selectedItem === item
|
|
1924
1931
|
})
|
|
1925
1932
|
}, getItemProps({
|
|
1926
1933
|
key: "" + index + item.value,
|
|
@@ -1930,7 +1937,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1930
1937
|
return React__default["default"].createElement(Icon, {
|
|
1931
1938
|
key: index,
|
|
1932
1939
|
inline: true,
|
|
1933
|
-
className: "eds-
|
|
1940
|
+
className: "eds-searchable-dropdown__list__item-icon"
|
|
1934
1941
|
});
|
|
1935
1942
|
})), selectedItem === item && React__default["default"].createElement(icons.CheckIcon, null))
|
|
1936
1943
|
);
|
|
@@ -1961,17 +1968,17 @@ var Appendix = function Appendix(_ref4) {
|
|
|
1961
1968
|
alignItems: 'center'
|
|
1962
1969
|
}
|
|
1963
1970
|
}, clearable && selectedItem && React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("button", {
|
|
1964
|
-
className: "eds-dropdown__clear-button",
|
|
1971
|
+
className: "eds-searchable-dropdown__clear-button",
|
|
1965
1972
|
type: "button",
|
|
1966
1973
|
tabIndex: -1,
|
|
1967
1974
|
onClick: function onClick() {
|
|
1968
1975
|
return onChange(null);
|
|
1969
1976
|
}
|
|
1970
1977
|
}, React__default["default"].createElement(icons.CloseSmallIcon, null)), React__default["default"].createElement("div", {
|
|
1971
|
-
className: "eds-dropdown__divider"
|
|
1978
|
+
className: "eds-searchable-dropdown__divider"
|
|
1972
1979
|
})), React__default["default"].createElement("button", _extends({}, getToggleButtonProps({
|
|
1973
|
-
className: classNames__default["default"]('eds-dropdown__toggle-button', {
|
|
1974
|
-
'eds-dropdown__toggle-button--open': isOpen
|
|
1980
|
+
className: classNames__default["default"]('eds-searchable-dropdown__toggle-button', {
|
|
1981
|
+
'eds-searchable-dropdown__toggle-button--open': isOpen
|
|
1975
1982
|
})
|
|
1976
1983
|
}), {
|
|
1977
1984
|
tabIndex: "-1",
|