@entur/dropdown 5.1.3 → 5.2.0-beta.0

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.
@@ -1,15 +1,14 @@
1
1
  import React, { Dispatch, SetStateAction } from 'react';
2
2
  import { VariantType } from '@entur/form';
3
- import { NormalizedDropdownItemType } from './useNormalizedItems';
4
- import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
3
+ import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
5
4
  import './Dropdown.scss';
6
- export type DropdownProps = {
5
+ export type DropdownProps<ValueType> = {
7
6
  /** Tilgjengelige valg i dropdown-en */
8
- items: PotentiallyAsyncDropdownItemType;
7
+ items: PotentiallyAsyncDropdownItemType<ValueType>;
9
8
  /** Valgt verdi. Bruk null for ingen verdi. */
10
- selectedItem: NormalizedDropdownItemType | null;
9
+ selectedItem: NormalizedDropdownItemType<ValueType> | null;
11
10
  /** Callback ved valg som skal oppdatere selectedItem */
12
- onChange?: (selectedItem: NormalizedDropdownItemType | null) => void | Dispatch<SetStateAction<NormalizedDropdownItemType | null>>;
11
+ onChange?: (selectedItem: NormalizedDropdownItemType<ValueType> | null) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType> | null>>;
13
12
  /** Beskrivende tekst som forklarer feltet */
14
13
  label: string;
15
14
  /** Placeholder-tekst når ingenting er satt */
@@ -76,4 +75,4 @@ export type DropdownProps = {
76
75
  */
77
76
  ariaLabelSelectedItem?: string;
78
77
  };
79
- export declare const Dropdown: ({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, selectOnTab, style, variant, ...rest }: DropdownProps) => React.JSX.Element;
78
+ export declare const Dropdown: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, selectOnTab, style, variant, ...rest }: DropdownProps<ValueType>) => React.JSX.Element;
@@ -1,23 +1,22 @@
1
1
  import React, { Dispatch, SetStateAction } from 'react';
2
2
  import { VariantType } from '@entur/form';
3
- import { NormalizedDropdownItemType } from './useNormalizedItems';
4
- import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
3
+ import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
5
4
  import './Dropdown.scss';
6
- export type MultiSelectProps = {
5
+ export type MultiSelectProps<ValueType> = {
7
6
  /** Beskrivende tekst som forklarer feltet */
8
7
  label: string;
9
8
  /** Tilgjengelige valg i MultiSelect */
10
- items: PotentiallyAsyncDropdownItemType;
9
+ items: PotentiallyAsyncDropdownItemType<ValueType>;
11
10
  /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte
12
11
  */
13
- selectedItems: NormalizedDropdownItemType[];
12
+ selectedItems: NormalizedDropdownItemType<ValueType>[];
14
13
  /** Callback med alle valgte verdier.
15
14
  * Bruk denne til å oppdatere selectedItems-listen */
16
- onChange?: (selectedItems: NormalizedDropdownItemType[]) => void | Dispatch<SetStateAction<NormalizedDropdownItemType[]>>;
15
+ onChange?: (selectedItems: NormalizedDropdownItemType<ValueType>[]) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType>[]>>;
17
16
  /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
18
17
  * @default Regex-test som sjekker om item.label inneholder input-teksten
19
18
  */
20
- itemFilter?: (item: NormalizedDropdownItemType, inputValue: string | undefined) => boolean;
19
+ itemFilter?: (item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean;
21
20
  /** Hvilken valideringsvariant som gjelder */
22
21
  variant?: VariantType;
23
22
  /** Valideringsmelding, brukes sammen med `variant` */
@@ -115,4 +114,4 @@ export type MultiSelectProps = {
115
114
  */
116
115
  ariaLabelSelectedItem?: string;
117
116
  };
118
- export declare const MultiSelect: ({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, feedback, hideSelectAll, items: initialItems, itemFilter, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, listStyle, loadingText, maxChips, noMatchesText, onChange, placeholder, readOnly, selectedItems, selectOnBlur, selectOnTab, style, variant, ariaLabelChosenSingular, ariaLabelChosenPlural, ariaLabelCloseList, ariaLabelJumpToInput, ariaLabelOpenList, ariaLabelRemoveSelected, ariaLabelSelectedItem, ...rest }: MultiSelectProps) => React.JSX.Element;
117
+ export declare const MultiSelect: <ValueType extends unknown>({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, feedback, hideSelectAll, items: initialItems, itemFilter, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, listStyle, loadingText, maxChips, noMatchesText, onChange, placeholder, readOnly, selectedItems, selectOnBlur, selectOnTab, style, variant, ariaLabelChosenSingular, ariaLabelChosenPlural, ariaLabelCloseList, ariaLabelJumpToInput, ariaLabelOpenList, ariaLabelRemoveSelected, ariaLabelSelectedItem, ...rest }: MultiSelectProps<ValueType>) => React.JSX.Element;
@@ -1,9 +1,8 @@
1
1
  import React from 'react';
2
2
  import { VariantType } from '@entur/form';
3
- import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
4
- import { NormalizedDropdownItemType } from './useNormalizedItems';
3
+ import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
5
4
  import './Dropdown.scss';
6
- export type NativeDropdownProps = {
5
+ export type NativeDropdownProps<ValueType> = {
7
6
  /** Ekstra klassenavn */
8
7
  className?: string;
9
8
  /**
@@ -14,7 +13,7 @@ export type NativeDropdownProps = {
14
13
  /** Valideringsmelding, brukes sammen med `variant` */
15
14
  feedback?: string;
16
15
  /** Alle valg for dropdown-en å ha */
17
- items: PotentiallyAsyncDropdownItemType;
16
+ items: PotentiallyAsyncDropdownItemType<ValueType>;
18
17
  /** Beskrivende tekst som forklarer feltet */
19
18
  label: string;
20
19
  /** En callback for endringer av value
@@ -23,7 +22,7 @@ export type NativeDropdownProps = {
23
22
  */
24
23
  onChange?: ({ value, selectedItem, target, }: {
25
24
  value: string;
26
- selectedItem: NormalizedDropdownItemType | null;
25
+ selectedItem: NormalizedDropdownItemType<ValueType> | null;
27
26
  target: EventTarget & HTMLSelectElement;
28
27
  }) => void;
29
28
  /** Tekst eller ikon som kommer før dropdown-en */
@@ -36,7 +35,7 @@ export type NativeDropdownProps = {
36
35
  /** Den valgte verdien som NormalizedDropdownItemType
37
36
  * (Brukes når komponenten er 'controlled')
38
37
  */
39
- selectedItem?: NormalizedDropdownItemType | null;
38
+ selectedItem?: NormalizedDropdownItemType<ValueType> | null;
40
39
  /** Den valgte verdien som sting
41
40
  * (Brukes når komponenten er 'controlled)
42
41
  */
@@ -49,4 +48,4 @@ export type NativeDropdownProps = {
49
48
  disableLabelAnimation?: boolean;
50
49
  [key: string]: any;
51
50
  };
52
- export declare const NativeDropdown: React.FC<NativeDropdownProps>;
51
+ export declare const NativeDropdown: <ValueType extends string | number>({ className, disabled, disableLabelAnimation, feedback, items, label, loadingText, onChange, prepend, readOnly, selectedItem, style, value, variant, ...rest }: NativeDropdownProps<ValueType>) => React.JSX.Element;
@@ -1,19 +1,18 @@
1
1
  import React, { Dispatch, SetStateAction } from 'react';
2
2
  import { VariantType } from '@entur/form';
3
- import { NormalizedDropdownItemType } from './useNormalizedItems';
4
- import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
3
+ import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
5
4
  import './Dropdown.scss';
6
- export type SearchableDropdownProps = {
5
+ export type SearchableDropdownProps<ValueType> = {
7
6
  /** Tilgjengelige valg i dropdown-en */
8
- items: PotentiallyAsyncDropdownItemType;
7
+ items: PotentiallyAsyncDropdownItemType<ValueType>;
9
8
  /** Valgt element. Bruk null for ingen verdi */
10
- selectedItem: NormalizedDropdownItemType | null;
9
+ selectedItem: NormalizedDropdownItemType<ValueType> | null;
11
10
  /** Callback ved valg som skal brukes til å oppdatere selectedItem */
12
- onChange?: (selectedItem: NormalizedDropdownItemType | null) => void | Dispatch<SetStateAction<NormalizedDropdownItemType | null>>;
11
+ onChange?: (selectedItem: NormalizedDropdownItemType<ValueType> | null) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType> | null>>;
13
12
  /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
14
13
  * @default Regex-test som sjekker om item.label inneholder input-teksten
15
14
  */
16
- itemFilter?: (item: NormalizedDropdownItemType, inputValue: string | undefined) => boolean;
15
+ itemFilter?: (item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean;
17
16
  /** Beskrivende tekst som forklarer feltet */
18
17
  label: string;
19
18
  /** Placeholder-tekst når ingenting er satt */
@@ -86,4 +85,4 @@ export type SearchableDropdownProps = {
86
85
  */
87
86
  ariaLabelSelectedItem?: string;
88
87
  };
89
- export declare const SearchableDropdown: ({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback, items: initialItems, itemFilter, label, labelClearSelectedItem, listStyle, loadingText, noMatchesText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, selectOnTab, style, variant, ...rest }: SearchableDropdownProps) => React.JSX.Element;
88
+ export declare const SearchableDropdown: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback, items: initialItems, itemFilter, label, labelClearSelectedItem, listStyle, loadingText, noMatchesText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, selectOnTab, style, variant, ...rest }: SearchableDropdownProps<ValueType>) => React.JSX.Element;
@@ -1,15 +1,15 @@
1
1
  import React from 'react';
2
2
  import { UseComboboxGetMenuPropsOptions, GetPropsCommonOptions, UseComboboxGetItemPropsOptions } from 'downshift';
3
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
+ import { NormalizedDropdownItemType } from '../types';
4
4
  import './DropdownList.scss';
5
- type DropdownListProps = {
5
+ type DropdownListProps<ValueType> = {
6
6
  ariaLabelChosenSingular?: string;
7
7
  ariaLabelSelectedItem?: string;
8
- getItemProps: (options: UseComboboxGetItemPropsOptions<NormalizedDropdownItemType>) => any;
8
+ getItemProps: (options: UseComboboxGetItemPropsOptions<NormalizedDropdownItemType<ValueType>>) => any;
9
9
  getMenuProps: (options?: UseComboboxGetMenuPropsOptions | undefined, otherOptions?: GetPropsCommonOptions | undefined) => any;
10
10
  highlightedIndex: number;
11
11
  isOpen: boolean;
12
- listItems: NormalizedDropdownItemType[];
12
+ listItems: NormalizedDropdownItemType<ValueType | string>[];
13
13
  listStyle: {
14
14
  [key: string]: any;
15
15
  } | undefined;
@@ -17,9 +17,9 @@ type DropdownListProps = {
17
17
  loadingText?: string;
18
18
  noMatchesText?: string;
19
19
  selectAllCheckboxState?: () => boolean | 'indeterminate';
20
- selectAllItem?: NormalizedDropdownItemType;
21
- selectedItems: NormalizedDropdownItemType[];
20
+ selectAllItem?: NormalizedDropdownItemType<string>;
21
+ selectedItems: NormalizedDropdownItemType<ValueType>[];
22
22
  [key: string]: any;
23
23
  };
24
- export declare const DropdownList: ({ ariaLabelChosenSingular, ariaLabelSelectedItem, getItemProps, getMenuProps, inputValue, isOpen, highlightedIndex, listItems, listStyle, loading, loadingText, noMatchesText, selectAllCheckboxState, selectAllItem, selectedItems, showSelectAllInList, ...rest }: DropdownListProps) => React.JSX.Element;
24
+ export declare const DropdownList: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelSelectedItem, getItemProps, getMenuProps, inputValue, isOpen, highlightedIndex, listItems, listStyle, loading, loadingText, noMatchesText, selectAllCheckboxState, selectAllItem, selectedItems, showSelectAllInList, ...rest }: DropdownListProps<ValueType>) => React.JSX.Element;
25
25
  export {};
@@ -1,18 +1,18 @@
1
1
  import React from 'react';
2
2
  import { UseComboboxGetToggleButtonPropsOptions, UseMultipleSelectionGetSelectedItemPropsOptions } from 'downshift';
3
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
+ import { NormalizedDropdownItemType } from '../types';
4
4
  import './FieldComponents.scss';
5
- export declare const SelectedItemTag: ({ ariaLabelRemoveSelected, ariaLabelChosen, disabled, getSelectedItemProps, index, readOnly, removeSelectedItem, selectedItem, }: {
5
+ export declare const SelectedItemTag: <ValueType extends unknown>({ ariaLabelRemoveSelected, ariaLabelChosen, disabled, getSelectedItemProps, index, readOnly, removeSelectedItem, selectedItem, }: {
6
6
  ariaLabelRemoveSelected: string;
7
7
  ariaLabelChosen?: string | undefined;
8
8
  disabled?: boolean | undefined;
9
- getSelectedItemProps?: ((options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType>) => any) | undefined;
9
+ getSelectedItemProps?: ((options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType<ValueType>>) => any) | undefined;
10
10
  index?: number | undefined;
11
11
  readOnly?: boolean | undefined;
12
- removeSelectedItem: (item: NormalizedDropdownItemType) => void;
13
- selectedItem: NormalizedDropdownItemType;
12
+ removeSelectedItem: (item: NormalizedDropdownItemType<ValueType>) => void;
13
+ selectedItem: NormalizedDropdownItemType<ValueType>;
14
14
  }) => React.JSX.Element;
15
- export declare const FieldAppend: React.FC<{
15
+ type FieldAppendProps<ValueType> = {
16
16
  ariaHiddenToggleButton?: boolean;
17
17
  ariaLabelCloseList?: string;
18
18
  ariaLabelOpenList?: string;
@@ -25,5 +25,7 @@ export declare const FieldAppend: React.FC<{
25
25
  loading?: boolean;
26
26
  loadingText?: string;
27
27
  onClear: () => void;
28
- selectedItems: (NormalizedDropdownItemType | null)[];
29
- }>;
28
+ selectedItems: (NormalizedDropdownItemType<ValueType> | null)[];
29
+ };
30
+ export declare const FieldAppend: <ValueType extends unknown>({ ariaHiddenToggleButton, ariaLabelCloseList, ariaLabelOpenList, clearable, labelClearSelectedItems, disabled, focusable, getToggleButtonProps, isOpen, loading, loadingText, onClear, selectedItems, }: FieldAppendProps<ValueType>) => React.JSX.Element | null;
31
+ export {};
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
2
  import './BaseDropdown.scss';
3
+ import { NormalizedDropdownItemDeprecatedType } from './types';
4
4
  type BaseDropdownDeprecatedProps = {
5
5
  className?: string;
6
6
  disabled?: boolean;
7
- items: NormalizedDropdownItemType[];
7
+ items: NormalizedDropdownItemDeprecatedType[];
8
8
  loading?: boolean;
9
9
  loadingText?: string;
10
10
  placeholder?: string;
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { ControllerStateAndHelpers } from 'downshift';
3
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
+ import { NormalizedDropdownItemDeprecatedType } from './types';
4
4
  export type DownshiftProviderProps = {
5
- onChange?: (selectedItem: NormalizedDropdownItemType, stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemType>) => void;
5
+ onChange?: (selectedItem: NormalizedDropdownItemDeprecatedType, stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemDeprecatedType>) => void;
6
6
  onInputValueChange?: (value: string) => void;
7
7
  inputValue?: string;
8
- initialSelectedItem?: NormalizedDropdownItemType;
8
+ initialSelectedItem?: NormalizedDropdownItemDeprecatedType;
9
9
  highlightFirstItemOnOpen?: boolean;
10
10
  className?: string;
11
11
  style?: React.CSSProperties;
@@ -13,4 +13,4 @@ export type DownshiftProviderProps = {
13
13
  [key: string]: any;
14
14
  };
15
15
  export declare const DownshiftProvider: React.FC<DownshiftProviderProps>;
16
- export declare const useDownshift: () => ControllerStateAndHelpers<NormalizedDropdownItemType>;
16
+ export declare const useDownshift: () => ControllerStateAndHelpers<NormalizedDropdownItemDeprecatedType>;
@@ -1,12 +1,11 @@
1
1
  import React from 'react';
2
2
  import { VariantType } from '@entur/form';
3
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
- import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
3
+ import { NormalizedDropdownItemDeprecatedType, PotentiallyAsyncDropdownItemDeprecatedType } from './types';
5
4
  export type DropdownDeprecatedProps = {
6
5
  /** Beskrivende tekst som forklarer feltet */
7
6
  label: string;
8
7
  /** Tilgjengelige valg i dropdownen */
9
- items: PotentiallyAsyncDropdownItemType;
8
+ items: PotentiallyAsyncDropdownItemDeprecatedType;
10
9
  /** Valgt verdi. Bruk null for ingen verdi. */
11
10
  value?: string | null;
12
11
  /** Om man skal kunne søke i dropdownen eller ikke */
@@ -28,7 +27,7 @@ export type DropdownDeprecatedProps = {
28
27
  /** En tekst som beskriver hva som skjer når man venter på items */
29
28
  loadingText?: string;
30
29
  /** Callback når brukeren endrer valg */
31
- onChange?: (selectedItem: NormalizedDropdownItemType | null) => void;
30
+ onChange?: (selectedItem: NormalizedDropdownItemDeprecatedType | null) => void;
32
31
  /** Lar brukeren velge ved å "tæbbe" seg ut av komponenten */
33
32
  selectOnTab?: boolean;
34
33
  /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe */
@@ -50,7 +49,7 @@ export type DropdownDeprecatedProps = {
50
49
  /** Filtreringen som blir brukt dersom man har en searchable Dropdown
51
50
  * @default Enkel tekstsammenligning
52
51
  */
53
- itemFilter?: (item: NormalizedDropdownItemType) => boolean;
52
+ itemFilter?: (item: NormalizedDropdownItemDeprecatedType) => boolean;
54
53
  /** Plasserer labelen statisk på toppen av inputfeltet
55
54
  * @default false
56
55
  */
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
2
+ import { NormalizedDropdownItemDeprecatedType } from './types';
3
3
  import './DropdownList.scss';
4
4
  export type DropdownListDeprecatedProps = {
5
- items: NormalizedDropdownItemType[];
5
+ items: NormalizedDropdownItemDeprecatedType[];
6
6
  [key: string]: any;
7
7
  };
8
8
  export declare const DropdownListDeprecated: React.FC<DropdownListDeprecatedProps>;
@@ -1,15 +1,14 @@
1
1
  import React from 'react';
2
2
  import { UseSelectProps } from 'downshift';
3
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
3
  import { VariantType } from '@entur/form';
5
- import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
4
+ import { NormalizedDropdownItemDeprecatedType, PotentiallyAsyncDropdownItemDeprecatedType } from './types';
6
5
  import './MultiSelect.scss';
7
6
  import './DropdownList.scss';
8
7
  type MultiSelectDeprecatedProps = {
9
8
  /** Tilgjengelige valg i MultiSelect */
10
- items: PotentiallyAsyncDropdownItemType;
9
+ items: PotentiallyAsyncDropdownItemDeprecatedType;
11
10
  /** Tekst som vises i boksen når elementer er valgt */
12
- itemsSelectedLabel?: (selectedItems: NormalizedDropdownItemType[], numberOfItems?: number) => string;
11
+ itemsSelectedLabel?: (selectedItems: NormalizedDropdownItemDeprecatedType[], numberOfItems?: number) => string;
13
12
  /** Beskrivende tekst som forklarer feltet */
14
13
  label?: string;
15
14
  /** Hvilken valideringsvariant som gjelder */
@@ -48,8 +47,8 @@ type MultiSelectDeprecatedProps = {
48
47
  clearable?: boolean;
49
48
  loading?: boolean;
50
49
  style?: React.CSSProperties;
51
- initialSelectedItems?: NormalizedDropdownItemType[];
52
- } & Omit<UseSelectProps<NormalizedDropdownItemType>, 'initialSelectedItem' | 'items'>;
50
+ initialSelectedItems?: NormalizedDropdownItemDeprecatedType[];
51
+ } & Omit<UseSelectProps<NormalizedDropdownItemDeprecatedType>, 'initialSelectedItem' | 'items'>;
53
52
  /**
54
53
  * @deprecated
55
54
  * New MultiSelect available
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
2
+ import { NormalizedDropdownItemDeprecatedType } from './types';
3
3
  type RegularDropdownDeprecatedProps = {
4
- items: NormalizedDropdownItemType[];
4
+ items: NormalizedDropdownItemDeprecatedType[];
5
5
  disabled?: boolean;
6
6
  placeholder?: string;
7
7
  loading?: boolean;
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { NormalizedDropdownItemType } from '../useNormalizedItems';
2
+ import { NormalizedDropdownItemDeprecatedType } from './types';
3
3
  import './SearchableDropdown.scss';
4
4
  type SearchableDropdownDeprecatedProps = {
5
5
  className?: string;
6
6
  disabled?: boolean;
7
- items: NormalizedDropdownItemType[];
7
+ items: NormalizedDropdownItemDeprecatedType[];
8
8
  loading?: boolean;
9
9
  loadingText?: string;
10
10
  placeholder?: string;
@@ -16,7 +16,7 @@ type SearchableDropdownDeprecatedProps = {
16
16
  [key: string]: any;
17
17
  };
18
18
  clearable: boolean;
19
- itemFilter?: (item: NormalizedDropdownItemType) => boolean;
19
+ itemFilter?: (item: NormalizedDropdownItemDeprecatedType) => boolean;
20
20
  disableLabelAnimation?: boolean;
21
21
  [key: string]: any;
22
22
  };
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ export type DropdownItemDeprecatedType = {
3
+ value?: string;
4
+ label: string;
5
+ icons?: React.ComponentType<any>[];
6
+ } | string;
7
+ export type NormalizedDropdownItemDeprecatedType = {
8
+ value: string;
9
+ label: string;
10
+ icons?: React.ComponentType<any>[];
11
+ };
12
+ type AsyncDropdownItemDeprecatedType = (inputType: string, abortControllerRef: React.MutableRefObject<AbortController>) => Promise<DropdownItemDeprecatedType[]>;
13
+ type SyncDropdownItemDeprecatedType = (inputType: string, abortControllerRef: React.MutableRefObject<AbortController>) => DropdownItemDeprecatedType[];
14
+ export type PotentiallyAsyncDropdownItemDeprecatedType = DropdownItemDeprecatedType[] | SyncDropdownItemDeprecatedType | AsyncDropdownItemDeprecatedType;
15
+ export {};
@@ -784,6 +784,14 @@ var DropdownInputGroupDeprecated = function DropdownInputGroupDeprecated(_ref) {
784
784
  }, feedback)));
785
785
  };
786
786
 
787
+ // export type DropdownItemType<ValueType> =
788
+ // | { value?: ValueType; label: string; icons?: React.ComponentType<any>[] }
789
+ // | string;
790
+ // export type NormalizedDropdownItemType = {
791
+ // value: string | number | Record<any, any>;
792
+ // label: string;
793
+ // icons?: React.ComponentType<any>[];
794
+ // };
787
795
  var useNormalizedItems = function useNormalizedItems(items) {
788
796
  return React.useMemo(function () {
789
797
  return items.map(function (item) {
@@ -995,7 +1003,7 @@ var useMultiSelectOldContext = function useMultiSelectOldContext() {
995
1003
  return context;
996
1004
  };
997
1005
  function stateReducer(state,
998
- //StateChangeOptions<NormalizedDropdownItemType>,
1006
+ //StateChangeOptions<NormalizedDropdownItemDeprecatedType>,
999
1007
  actionAndChanges) {
1000
1008
  var changes = actionAndChanges.changes,
1001
1009
  type = actionAndChanges.type;
@@ -1338,6 +1346,9 @@ var DropdownList = function DropdownList(_ref) {
1338
1346
  })
1339
1347
  }, getItemProps({
1340
1348
  key: (item == null ? void 0 : item.label) + (item == null ? void 0 : item.value),
1349
+ // @ts-expect-error Since getItemProps expects the same item type
1350
+ // here as items, it throws error when selectAllItem is a string.
1351
+ // This does, however, not cause any functional issues.
1341
1352
  item: item,
1342
1353
  index: index
1343
1354
  })), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
@@ -2213,7 +2224,7 @@ var MultiSelect = function MultiSelect(_ref) {
2213
2224
  disabled: disabled,
2214
2225
  getSelectedItemProps: getSelectedItemProps,
2215
2226
  index: index,
2216
- key: selectedItem == null ? void 0 : selectedItem.value,
2227
+ key: (selectedItem == null ? void 0 : selectedItem.label) + (typeof (selectedItem == null ? void 0 : selectedItem.value) === 'string' ? selectedItem.value : ''),
2217
2228
  readOnly: readOnly,
2218
2229
  removeSelectedItem: function removeSelectedItem() {
2219
2230
  var _inputRef$current6;