@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 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
- value: NormalizedDropdownItemType;
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", "value", "onChange", "label", "placeholder", "clearable", "openOnFocus", "className"];
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.value,
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
- return item ? item.value : '';
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", null, React__default["default"].createElement(form.BaseFormControl, _extends({
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-dropdown-list', {
1916
- 'eds-dropdown-list--open': isOpen
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(), rest), isOpen ? filteredItems.map(function (item, index) {
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-dropdown-list__item', {
1922
- 'eds-dropdown-list__item--highlighted': highlightedIndex === index,
1923
- 'eds-dropdown-list__item--selected': selectedItem === item
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-dropdown-list__item-icon"
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",