@entur/dropdown 7.0.3 → 7.1.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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This package contains the different Dropdown components.
4
4
 
5
- > 💡 Looking for the [documentation](https://design.entur.no/komponenter/skjemaelementer/dropdown)?
5
+ > 💡 Looking for the [documentation](https://linje.entur.no/komponenter/skjemaelementer/dropdown)?
6
6
 
7
7
  ## Installation
8
8
 
@@ -14,4 +14,4 @@ yarn add @entur/dropdown
14
14
 
15
15
  ## Usage
16
16
 
17
- Please refer to the [documentation](https://design.entur.no/komponenter/skjemaelementer/dropdown) for usage information.
17
+ Please refer to the [documentation](https://linje.entur.no/komponenter/skjemaelementer/dropdown) for usage information.
@@ -39,6 +39,8 @@ export type DropdownProps<ValueType> = {
39
39
  feedback?: string;
40
40
  /** Tekst eller ikon som kommer før dropdown-en */
41
41
  prepend?: React.ReactNode;
42
+ /** */
43
+ loading?: boolean;
42
44
  /** En tekst som beskriver hva som skjer når man venter på items
43
45
  * @default 'Laster inn …'
44
46
  */
@@ -85,5 +87,5 @@ export type DropdownProps<ValueType> = {
85
87
  */
86
88
  ariaLabelSelectedItem?: string;
87
89
  };
88
- export declare const Dropdown: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, labelTooltip, listStyle, loadingText, noMatchesText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, selectOnTab, style, variant, ...rest }: DropdownProps<ValueType>) => React.JSX.Element;
90
+ export declare const Dropdown: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, labelTooltip, listStyle, loading, loadingText, noMatchesText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, selectOnTab, style, variant, ...rest }: DropdownProps<ValueType>) => React.JSX.Element;
89
91
  export {};
@@ -1,16 +1,8 @@
1
1
  import React, { Dispatch, SetStateAction } from 'react';
2
- import { VariantType } from '@entur/utils';
3
- import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
2
+ import { DropdownProps } from './Dropdown';
3
+ import { NormalizedDropdownItemType } from './types';
4
4
  import './Dropdown.scss';
5
- /** @deprecated use variant="information" instead */
6
- declare const info = "info";
7
- /** @deprecated use variant="negative" instead */
8
- declare const error = "error";
9
- export type MultiSelectProps<ValueType> = {
10
- /** Beskrivende tekst som forklarer feltet */
11
- label: string;
12
- /** Tilgjengelige valg i MultiSelect */
13
- items: PotentiallyAsyncDropdownItemType<ValueType>;
5
+ export type MultiSelectProps<ValueType> = Omit<DropdownProps<ValueType>, 'selectedItem' | 'onChange'> & {
14
6
  /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte
15
7
  */
16
8
  selectedItems: NormalizedDropdownItemType<ValueType>[];
@@ -21,30 +13,6 @@ export type MultiSelectProps<ValueType> = {
21
13
  * @default Regex-test som sjekker om item.label inneholder input-teksten
22
14
  */
23
15
  itemFilter?: (item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean;
24
- /** Hvilken valideringsvariant som gjelder */
25
- variant?: VariantType | typeof error | typeof info;
26
- /** Valideringsmelding, brukes sammen med `variant` */
27
- feedback?: string;
28
- /** Om dropdown-en er deaktivert */
29
- disabled?: boolean;
30
- /** Om dropdown-en er i read-only modus */
31
- readOnly?: boolean;
32
- /** Om en knapp for å fjerne alle valg skal vises
33
- * @default true
34
- */
35
- clearable?: boolean;
36
- /** Plasserer ledeteksten statisk på toppen av inputfeltet */
37
- disableLabelAnimation?: boolean;
38
- /** Placeholder-tekst når ingenting er satt */
39
- placeholder?: string;
40
- /** En tekst som beskriver hva som skjer når man venter på items
41
- * @default "Laster inn …"
42
- */
43
- loadingText?: string;
44
- /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket
45
- * @default "Ingen treff for søket"
46
- */
47
- noMatchesText?: string;
48
16
  /** Skjuler «Velg alle» fra listen med valg
49
17
  * @default false
50
18
  */
@@ -57,27 +25,10 @@ export type MultiSelectProps<ValueType> = {
57
25
  * @default 10
58
26
  */
59
27
  maxChips?: number;
60
- /** Tekst eller ikon som kommer før MultiSelect */
61
- prepend?: React.ReactNode;
62
28
  /** Resetter input etter at et element er valgt i listen
63
29
  * @default false
64
30
  */
65
31
  clearInputOnSelect?: boolean;
66
- /** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
67
- selectOnTab?: boolean;
68
- /**
69
- * @deprecated
70
- * Bruk selectOnTab i stedet
71
- *
72
- * Lar brukeren velge ved å "tab-e" seg ut av komponenten */
73
- selectOnBlur?: boolean;
74
- style?: React.CSSProperties;
75
- /** Styling som sendes ned til MultiSelect-lista */
76
- listStyle?: {
77
- [key: string]: any;
78
- };
79
- /** Ekstra klassenavn */
80
- className?: string;
81
32
  /** Teksten som vises for «Velg alle»-elementet i listen
82
33
  * @default "Velg alle"
83
34
  */
@@ -90,8 +41,6 @@ export type MultiSelectProps<ValueType> = {
90
41
  * @default "Fjern valgte"
91
42
  */
92
43
  labelClearAllItems?: string;
93
- /** En tooltip som gir ekstra info om inputfeltet */
94
- labelTooltip?: React.ReactNode;
95
44
  /** Tekst for skjemleser på knapper for å fjerne valgt element
96
45
  * @default "trykk for å fjerne valg"
97
46
  */
@@ -100,27 +49,9 @@ export type MultiSelectProps<ValueType> = {
100
49
  * @default "valgte"
101
50
  */
102
51
  ariaLabelChosenPlural?: string;
103
- /** Tekst for skjemleser for knapp som lukker listen med valg
104
- * @default "Lukk liste med valg"
105
- */
106
- ariaLabelCloseList?: string;
107
- /** Tekst for skjemleser for knapp som åpner listen med valg
108
- * @default "Åpne liste med valg"
109
- */
110
- ariaLabelOpenList?: string;
111
52
  /** Tekst for skjemleser for å hoppe til input-feltet
112
53
  * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`
113
54
  */
114
55
  ariaLabelJumpToInput?: string;
115
- /** Ord for at et element er valgt i entall
116
- * eks. 'Element 1, _valgt_'
117
- * @default 'valgt'
118
- */
119
- ariaLabelChosenSingular?: string;
120
- /** Tekst for skjermleser som beskriver statusen til et element som valgt
121
- * @default ', valgt element, trykk for å fjerne'
122
- */
123
- ariaLabelSelectedItem?: string;
124
56
  };
125
- export declare const MultiSelect: <ValueType extends unknown>({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, disableLabelAnimation, feedback, hideSelectAll, items: initialItems, itemFilter, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, labelTooltip, 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;
126
- export {};
57
+ export declare const MultiSelect: <ValueType extends unknown>({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, disableLabelAnimation, feedback, hideSelectAll, items: initialItems, itemFilter, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, labelTooltip, listStyle, loading, 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,95 +1,19 @@
1
- import React, { Dispatch, SetStateAction } from 'react';
2
- import { VariantType } from '@entur/utils';
3
- import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
1
+ import React from 'react';
2
+ import { DropdownProps } from './Dropdown';
3
+ import { NormalizedDropdownItemType } from './types';
4
4
  import './Dropdown.scss';
5
- /** @deprecated use variant="information" instead */
6
- declare const info = "info";
7
- /** @deprecated use variant="negative" instead */
8
- declare const error = "error";
9
- export type SearchableDropdownProps<ValueType> = {
10
- /** Tilgjengelige valg i dropdown-en */
11
- items: PotentiallyAsyncDropdownItemType<ValueType>;
12
- /** Valgt element. Bruk null for ingen verdi */
13
- selectedItem: NormalizedDropdownItemType<ValueType> | null;
14
- /** Callback ved valg som skal brukes til å oppdatere selectedItem */
15
- onChange?: (selectedItem: NormalizedDropdownItemType<ValueType> | null) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType> | null>>;
5
+ export type SearchableDropdownProps<ValueType> = DropdownProps<ValueType> & {
16
6
  /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
17
7
  * @default Regex-test som sjekker om item.label inneholder input-teksten
18
8
  */
19
9
  itemFilter?: (item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean;
20
- /** Beskrivende tekst som forklarer feltet */
21
- label: string;
22
- /** Placeholder-tekst når ingenting er satt */
23
- placeholder?: string;
24
- /** Vis knapp for å nullstille Dropdown-en skal vises
25
- * @default true
26
- */
27
- clearable?: boolean;
28
- /** Plasserer labelen statisk på toppen av inputfeltet
29
- * @default false
30
- */
31
- disableLabelAnimation?: boolean;
32
10
  /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items
33
11
  * Denne er kun relevant hvis du sender inn en funksjon som items.
34
12
  */
35
13
  debounceTimeout?: number;
36
- /** Deaktiver dropdown-en */
37
- disabled?: boolean;
38
- /** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
39
- selectOnTab?: boolean;
40
- /**
41
- * @deprecated
42
- * Bruk selectOnTab i stedet
43
- *
44
- * Lar brukeren velge ved å "tab-e" seg ut av komponenten */
45
- selectOnBlur?: boolean;
46
14
  /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket
47
15
  * @default "Ingen treff for søket"
48
16
  */
49
17
  noMatchesText?: string;
50
- /** Gjør dropdown-en til å kun kunne leses
51
- * @default false
52
- */
53
- readOnly?: boolean;
54
- /** Tekst eller ikon som kommer før dropdown-en */
55
- prepend?: React.ReactNode;
56
- /** En tekst som beskriver hva som skjer når man venter på items */
57
- loadingText?: string;
58
- /** Hvilken valideringsvariant som gjelder*/
59
- variant?: VariantType | typeof error | typeof info;
60
- /** Valideringsmelding, brukes sammen med `variant` */
61
- feedback?: string;
62
- className?: string;
63
- style?: {
64
- [key: string]: any;
65
- };
66
- /** Style som kun påføres listeelementet */
67
- listStyle?: {
68
- [key: string]: any;
69
- };
70
- /** Tekst som beskriver at man fjerner valget sitt
71
- * @default "fjern valgt"
72
- */
73
- labelClearSelectedItem?: string;
74
- /** En tooltip som gir ekstra info om inputfeltet */
75
- labelTooltip?: React.ReactNode;
76
- /** Tekst for skjemleser for knapp som lukker listen med valg
77
- * @default "Lukk liste med valg"
78
- */
79
- ariaLabelCloseList?: string;
80
- /** Tekst for skjemleser for knapp som åpner listen med valg
81
- * @default "Åpne liste med valg"
82
- */
83
- ariaLabelOpenList?: string;
84
- /** Ord for at et element er valgt i entall
85
- * eks. 'Element 1, _valgt_'
86
- * @default "valgt"
87
- */
88
- ariaLabelChosenSingular?: string;
89
- /** Tekst for skjermleser som beskriver statusen til et element som valgt
90
- * @default ", valgt element, trykk for å fjerne"
91
- */
92
- ariaLabelSelectedItem?: string;
93
18
  };
94
- export declare const SearchableDropdown: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback, items: initialItems, itemFilter, label, labelClearSelectedItem, labelTooltip, listStyle, loadingText, noMatchesText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, selectOnTab, style, variant, ...rest }: SearchableDropdownProps<ValueType>) => React.JSX.Element;
95
- export {};
19
+ export declare const SearchableDropdown: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelCloseList, ariaLabelOpenList, ariaLabelSelectedItem, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback, items: initialItems, itemFilter, label, labelClearSelectedItem, labelTooltip, listStyle, loading, loadingText, noMatchesText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, selectOnTab, style, variant, ...rest }: SearchableDropdownProps<ValueType>) => React.JSX.Element;
@@ -691,7 +691,7 @@ debounceTimeout) {
691
691
  _context.next = 11;
692
692
  break;
693
693
  }
694
- console.warn('Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.', 'Funksjonen bør kaste en DOMException med navnet "AbortError" når den avbrytes.', '', '\n\nSe eksempel her: https://design.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput', '\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController');
694
+ console.warn('Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.', 'Funksjonen bør kaste en DOMException med navnet "AbortError" når den avbrytes.', '', '\n\nSe eksempel her: https://linje.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput', '\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController');
695
695
  return _context.abrupt("return");
696
696
  case 11:
697
697
  setLoading(false);
@@ -871,7 +871,7 @@ function getA11yStatusMessage(options) {
871
871
  }
872
872
  /* end a11y utils */
873
873
 
874
- var _excluded$3 = ["ariaLabelChosenSingular", "ariaLabelCloseList", "ariaLabelOpenList", "ariaLabelSelectedItem", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "items", "itemFilter", "label", "labelClearSelectedItem", "labelTooltip", "listStyle", "loadingText", "noMatchesText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
874
+ var _excluded$3 = ["ariaLabelChosenSingular", "ariaLabelCloseList", "ariaLabelOpenList", "ariaLabelSelectedItem", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "items", "itemFilter", "label", "labelClearSelectedItem", "labelTooltip", "listStyle", "loading", "loadingText", "noMatchesText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
875
875
  var SearchableDropdown = function SearchableDropdown(_ref) {
876
876
  var _document, _selectedItem$label;
877
877
  var ariaLabelChosenSingular = _ref.ariaLabelChosenSingular,
@@ -895,6 +895,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
895
895
  labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
896
896
  labelTooltip = _ref.labelTooltip,
897
897
  listStyle = _ref.listStyle,
898
+ loading = _ref.loading,
898
899
  loadingText = _ref.loadingText,
899
900
  noMatchesText = _ref.noMatchesText,
900
901
  _ref$onChange = _ref.onChange,
@@ -923,7 +924,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
923
924
  var inputRef = React.useRef(null);
924
925
  var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
925
926
  normalizedItems = _useResolvedItems.items,
926
- loading = _useResolvedItems.loading,
927
+ resolvedItemsLoading = _useResolvedItems.loading,
927
928
  fetchItems = _useResolvedItems.fetchItems;
928
929
  var _useState3 = React.useState(normalizedItems),
929
930
  listItems = _useState3[0],
@@ -1088,7 +1089,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1088
1089
  focusable: false,
1089
1090
  getToggleButtonProps: getToggleButtonProps,
1090
1091
  isOpen: isOpen,
1091
- loading: loading,
1092
+ loading: loading != null ? loading : resolvedItemsLoading,
1092
1093
  loadingText: loadingText,
1093
1094
  onClear: handleOnClear,
1094
1095
  selectedItems: [selectedItem]
@@ -1151,14 +1152,14 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1151
1152
  listItems: listItems,
1152
1153
  style: listStyle,
1153
1154
  setListRef: refs.setFloating,
1154
- loading: loading,
1155
+ loading: loading != null ? loading : resolvedItemsLoading,
1155
1156
  loadingText: loadingText,
1156
1157
  noMatchesText: noMatchesText,
1157
1158
  selectedItems: selectedItem !== null ? [selectedItem] : []
1158
1159
  }));
1159
1160
  };
1160
1161
 
1161
- var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "hideSelectAll", "items", "itemFilter", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "labelTooltip", "listStyle", "loadingText", "maxChips", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "selectOnTab", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
1162
+ var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "hideSelectAll", "items", "itemFilter", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "labelTooltip", "listStyle", "loading", "loadingText", "maxChips", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "selectOnTab", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
1162
1163
  var MultiSelect = function MultiSelect(_ref) {
1163
1164
  var className = _ref.className,
1164
1165
  _ref$clearable = _ref.clearable,
@@ -1184,6 +1185,7 @@ var MultiSelect = function MultiSelect(_ref) {
1184
1185
  labelSelectAll = _ref$labelSelectAll === void 0 ? 'Velg alle' : _ref$labelSelectAll,
1185
1186
  labelTooltip = _ref.labelTooltip,
1186
1187
  listStyle = _ref.listStyle,
1188
+ loading = _ref.loading,
1187
1189
  loadingText = _ref.loadingText,
1188
1190
  _ref$maxChips = _ref.maxChips,
1189
1191
  maxChips = _ref$maxChips === void 0 ? 10 : _ref$maxChips,
@@ -1226,7 +1228,7 @@ var MultiSelect = function MultiSelect(_ref) {
1226
1228
  }, [rest.selectedItem]);
1227
1229
  var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
1228
1230
  normalizedItems = _useResolvedItems.items,
1229
- loading = _useResolvedItems.loading,
1231
+ resolvedItemsLoading = _useResolvedItems.loading,
1230
1232
  fetchItems = _useResolvedItems.fetchItems;
1231
1233
  var isAllNonAsyncItemsSelected = typeof initialItems !== 'function' && selectedItems.length === normalizedItems.length;
1232
1234
  // special 'item' used as Select All entry in the dropdown list
@@ -1447,7 +1449,7 @@ var MultiSelect = function MultiSelect(_ref) {
1447
1449
  clearable: clearable,
1448
1450
  labelClearSelectedItems: labelClearAllItems,
1449
1451
  focusable: false,
1450
- loading: loading,
1452
+ loading: loading != null ? loading : resolvedItemsLoading,
1451
1453
  loadingText: loadingText,
1452
1454
  disabled: readOnly || disabled,
1453
1455
  onClear: handleOnClear,
@@ -1543,7 +1545,7 @@ var MultiSelect = function MultiSelect(_ref) {
1543
1545
  listItems: listItems,
1544
1546
  style: listStyle,
1545
1547
  setListRef: refs.setFloating,
1546
- loading: loading,
1548
+ loading: loading != null ? loading : resolvedItemsLoading,
1547
1549
  loadingText: loadingText,
1548
1550
  noMatchesText: noMatchesText,
1549
1551
  selectAllCheckboxState: selectAllCheckboxState,
@@ -1552,7 +1554,7 @@ var MultiSelect = function MultiSelect(_ref) {
1552
1554
  }));
1553
1555
  };
1554
1556
 
1555
- var _excluded$1 = ["ariaLabelChosenSingular", "ariaLabelCloseList", "ariaLabelOpenList", "ariaLabelSelectedItem", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "labelTooltip", "listStyle", "loadingText", "noMatchesText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
1557
+ var _excluded$1 = ["ariaLabelChosenSingular", "ariaLabelCloseList", "ariaLabelOpenList", "ariaLabelSelectedItem", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "labelTooltip", "listStyle", "loading", "loadingText", "noMatchesText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "selectOnTab", "style", "variant"];
1556
1558
  var Dropdown = function Dropdown(_ref) {
1557
1559
  var _ref3, _selectedItem$label;
1558
1560
  var ariaLabelChosenSingular = _ref.ariaLabelChosenSingular,
@@ -1572,6 +1574,7 @@ var Dropdown = function Dropdown(_ref) {
1572
1574
  labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
1573
1575
  labelTooltip = _ref.labelTooltip,
1574
1576
  listStyle = _ref.listStyle,
1577
+ loading = _ref.loading,
1575
1578
  loadingText = _ref.loadingText,
1576
1579
  _ref$noMatchesText = _ref.noMatchesText,
1577
1580
  noMatchesText = _ref$noMatchesText === void 0 ? 'Ingen tilgjengelige valg …' : _ref$noMatchesText,
@@ -1591,7 +1594,7 @@ var Dropdown = function Dropdown(_ref) {
1591
1594
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1592
1595
  var _useResolvedItems = useResolvedItems(initialItems),
1593
1596
  normalizedItems = _useResolvedItems.items,
1594
- loading = _useResolvedItems.loading;
1597
+ resolvedItemsLoading = _useResolvedItems.loading;
1595
1598
  var toggleButtonRef = React.useRef(null);
1596
1599
  var isFilled = selectedItem !== null || placeholder !== undefined;
1597
1600
  var _useSelect = downshift.useSelect({
@@ -1651,7 +1654,7 @@ var Dropdown = function Dropdown(_ref) {
1651
1654
  focusable: false,
1652
1655
  getToggleButtonProps: getToggleButtonProps,
1653
1656
  isOpen: isOpen,
1654
- loading: loading,
1657
+ loading: loading != null ? loading : resolvedItemsLoading,
1655
1658
  loadingText: loadingText,
1656
1659
  onClear: function onClear() {
1657
1660
  var _toggleButtonRef$curr;
@@ -1714,7 +1717,7 @@ var Dropdown = function Dropdown(_ref) {
1714
1717
  noMatchesText: noMatchesText,
1715
1718
  style: listStyle,
1716
1719
  setListRef: refs.setFloating,
1717
- loading: loading,
1720
+ loading: loading != null ? loading : resolvedItemsLoading,
1718
1721
  loadingText: loadingText,
1719
1722
  selectedItems: selectedItem !== null ? [selectedItem] : []
1720
1723
  }));