@entur/dropdown 4.0.0-beta.1 → 4.0.0-beta.2

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,12 @@
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.2](https://bitbucket.org/enturas/design-system/compare/@entur/dropdown@4.0.0-beta.1...@entur/dropdown@4.0.0-beta.2) (2022-09-30)
7
+
8
+ ### Features
9
+
10
+ - **searchable dropdown:** fixes from beta testing ([c460e94](https://bitbucket.org/enturas/design-system/commits/c460e947b2f39fd486b79d433d43a4ac3cdc9bdc))
11
+
6
12
  # [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
13
 
8
14
  ### Features
@@ -1,14 +1,30 @@
1
1
  /// <reference types="react" />
2
+ import { VariantType } from '@entur/form';
2
3
  import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
4
  import './dropdown.scss';
4
5
  export declare type SearchableDropdownProps = {
6
+ /** Tilgjengelige valg i dropdown-en */
5
7
  items: NormalizedDropdownItemType[];
8
+ /** Valgt element. Bruk null for ingen verdi. */
6
9
  selectedItem: NormalizedDropdownItemType | null;
7
- onChange: (value: NormalizedDropdownItemType | undefined | null) => void;
10
+ /** Callback for når brukeren endrer valg */
11
+ onChange: (value: NormalizedDropdownItemType | null) => void;
12
+ /** Beskrivende tekst som forklarer feltet */
8
13
  label: string;
14
+ /** Placeholder-tekst når ingenting er satt */
9
15
  placeholder?: string;
16
+ /** Vis knapp for å nullstille Dropdown-en skal vises
17
+ * @default false
18
+ */
10
19
  clearable?: boolean;
20
+ /** Vis listen med valg skal vises på fokus av inputfeltet
21
+ * @default false
22
+ */
11
23
  openOnFocus?: boolean;
24
+ /** Gjør dropdown-en til å kun kunne leses */
25
+ readonly?: boolean;
26
+ feedback?: string;
27
+ variant?: VariantType;
12
28
  className?: string;
13
29
  style?: {
14
30
  [key: string]: any;
@@ -16,5 +32,6 @@ export declare type SearchableDropdownProps = {
16
32
  listStyle?: {
17
33
  [key: string]: any;
18
34
  };
35
+ [key: string]: any;
19
36
  };
20
- export declare const SearchableDropdownBeta: ({ items, selectedItem: value, onChange, label, placeholder, clearable, openOnFocus, className, listStyle, ...rest }: SearchableDropdownProps) => JSX.Element;
37
+ export declare const SearchableDropdownBeta: ({ items, selectedItem: value, onChange, label, placeholder, clearable, openOnFocus, readonly, feedback, variant, 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", "selectedItem", "onChange", "label", "placeholder", "clearable", "openOnFocus", "className", "listStyle"];
1788
+ var _excluded = ["items", "selectedItem", "onChange", "label", "placeholder", "clearable", "openOnFocus", "readonly", "feedback", "variant", "className", "listStyle"];
1789
1789
 
1790
1790
  function lowerCaseFilterTest(item, input) {
1791
1791
  if (!input) {
@@ -1804,13 +1804,17 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1804
1804
  var items = _ref.items,
1805
1805
  value = _ref.selectedItem,
1806
1806
  onChange = _ref.onChange,
1807
- _ref$label = _ref.label,
1808
- label = _ref$label === void 0 ? '!MANGLER LABEL!' : _ref$label,
1807
+ label = _ref.label,
1809
1808
  placeholder = _ref.placeholder,
1810
1809
  _ref$clearable = _ref.clearable,
1811
1810
  clearable = _ref$clearable === void 0 ? false : _ref$clearable,
1812
1811
  _ref$openOnFocus = _ref.openOnFocus,
1813
1812
  openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
1813
+ _ref$readonly = _ref.readonly,
1814
+ readonly = _ref$readonly === void 0 ? false : _ref$readonly,
1815
+ feedback = _ref.feedback,
1816
+ _ref$variant = _ref.variant,
1817
+ variant = _ref$variant === void 0 ? 'info' : _ref$variant,
1814
1818
  className = _ref.className,
1815
1819
  listStyle = _ref.listStyle,
1816
1820
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
@@ -1858,7 +1862,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1858
1862
  selectedItem: value,
1859
1863
  onSelectedItemChange: function onSelectedItemChange(_ref3) {
1860
1864
  var newSelectedItem = _ref3.selectedItem;
1861
- return onChange(newSelectedItem);
1865
+ return onChange(newSelectedItem != null ? newSelectedItem : null);
1862
1866
  }
1863
1867
  }, rest)),
1864
1868
  isOpen = _useCombobox.isOpen,
@@ -1871,13 +1875,9 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1871
1875
  getItemProps = _useCombobox.getItemProps,
1872
1876
  selectedItem = _useCombobox.selectedItem,
1873
1877
  openMenu = _useCombobox.openMenu,
1874
- inputValue = _useCombobox.inputValue,
1875
- setInputValue = _useCombobox.setInputValue; // TODO Husk å generelt legge inn støtte for typeof value === string
1878
+ inputValue = _useCombobox.inputValue; // TODO Husk å generelt legge inn støtte for typeof value === string
1876
1879
 
1877
1880
 
1878
- React.useEffect(function () {
1879
- if (inputValue.toLowerCase() === (value == null ? void 0 : value.label.toLowerCase()) || inputValue.toLowerCase() === (value == null ? void 0 : value.value.toLowerCase())) setInputValue('');
1880
- }, [value]);
1881
1881
  return React__default["default"].createElement("div", {
1882
1882
  className: "eds-searchable-dropdown__wrapper"
1883
1883
  }, React__default["default"].createElement(form.BaseFormControl, _extends({
@@ -1887,13 +1887,16 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1887
1887
  clearable: clearable,
1888
1888
  loading: false,
1889
1889
  loadingText: '',
1890
- readOnly: false,
1890
+ readOnly: readonly,
1891
1891
  onChange: onChange,
1892
1892
  getToggleButtonProps: getToggleButtonProps
1893
1893
  }),
1894
1894
  className: classNames__default["default"]('eds-searchable-dropdown', className),
1895
1895
  label: label,
1896
1896
  isFilled: selectedItem ? true : false,
1897
+ feedback: feedback,
1898
+ variant: variant,
1899
+ readOnly: readonly,
1897
1900
  labelProps: getLabelProps()
1898
1901
  }, getComboboxProps(), rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
1899
1902
  className: "eds-searchable-dropdown__selected-item__wrapper"
@@ -1927,7 +1930,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1927
1930
  React__default["default"].createElement("li", _extends({
1928
1931
  className: classNames__default["default"]('eds-searchable-dropdown__list__item', {
1929
1932
  'eds-searchable-dropdown__list__item--highlighted': highlightedIndex === index,
1930
- 'eds-searchable-dropdown__list__item--selected': selectedItem === item
1933
+ 'eds-searchable-dropdown__list__item--selected': (selectedItem == null ? void 0 : selectedItem.value) === item.value
1931
1934
  })
1932
1935
  }, getItemProps({
1933
1936
  key: "" + index + item.value,
@@ -1939,25 +1942,23 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1939
1942
  inline: true,
1940
1943
  className: "eds-searchable-dropdown__list__item-icon"
1941
1944
  });
1942
- })), selectedItem === item && React__default["default"].createElement(icons.CheckIcon, null))
1945
+ })), (selectedItem == null ? void 0 : selectedItem.value) === item.value && React__default["default"].createElement(icons.CheckIcon, null))
1943
1946
  );
1944
1947
  }) : null));
1945
1948
  };
1946
1949
 
1947
1950
  var Appendix = function Appendix(_ref4) {
1948
1951
  var clearable = _ref4.clearable,
1949
- loading = _ref4.loading,
1950
- loadingText = _ref4.loadingText,
1951
1952
  readOnly = _ref4.readOnly,
1952
1953
  getToggleButtonProps = _ref4.getToggleButtonProps,
1953
1954
  selectedItem = _ref4.selectedItem,
1954
1955
  isOpen = _ref4.isOpen,
1955
1956
  onChange = _ref4.onChange;
1956
1957
 
1957
- if (loading) {
1958
- return React__default["default"].createElement(DropdownLoadingDots, null, loadingText);
1959
- }
1960
-
1958
+ // TODO implement loading / async
1959
+ // if (loading) {
1960
+ // return <DropdownLoadingDots>{loadingText}</DropdownLoadingDots>;
1961
+ // }
1961
1962
  if (readOnly) {
1962
1963
  return null;
1963
1964
  }
@@ -1968,17 +1969,17 @@ var Appendix = function Appendix(_ref4) {
1968
1969
  alignItems: 'center'
1969
1970
  }
1970
1971
  }, clearable && selectedItem && React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("button", {
1971
- className: "eds-searchable-dropdown__clear-button",
1972
+ className: "eds-searchable-dropdown-appendix__clear-button",
1972
1973
  type: "button",
1973
1974
  tabIndex: -1,
1974
1975
  onClick: function onClick() {
1975
1976
  return onChange(null);
1976
1977
  }
1977
1978
  }, React__default["default"].createElement(icons.CloseSmallIcon, null)), React__default["default"].createElement("div", {
1978
- className: "eds-searchable-dropdown__divider"
1979
+ className: "eds-searchable-dropdown-appendix__divider"
1979
1980
  })), React__default["default"].createElement("button", _extends({}, getToggleButtonProps({
1980
- className: classNames__default["default"]('eds-searchable-dropdown__toggle-button', {
1981
- 'eds-searchable-dropdown__toggle-button--open': isOpen
1981
+ className: classNames__default["default"]('eds-searchable-dropdown-appendix__toggle-button', {
1982
+ 'eds-searchable-dropdown-appendix__toggle-button--open': isOpen
1982
1983
  })
1983
1984
  }), {
1984
1985
  tabIndex: "-1",