@entur/dropdown 4.0.10 → 5.0.0-RC.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.
Files changed (33) hide show
  1. package/dist/Dropdown.d.ts +37 -36
  2. package/dist/MultiSelect.d.ts +86 -29
  3. package/dist/NativeDropdown.d.ts +23 -9
  4. package/dist/SearchableDropdown.d.ts +62 -16
  5. package/dist/components/DropdownList.d.ts +25 -0
  6. package/dist/components/FieldComponents.d.ts +29 -0
  7. package/dist/{BaseDropdown.d.ts → deprecated/BaseDropdown.d.ts} +3 -3
  8. package/dist/{DownshiftProvider.d.ts → deprecated/DownshiftProvider.d.ts} +1 -1
  9. package/dist/deprecated/Dropdown.d.ts +72 -0
  10. package/dist/{DropdownInputGroup.d.ts → deprecated/DropdownInputGroup.d.ts} +2 -2
  11. package/dist/deprecated/DropdownList.d.ts +8 -0
  12. package/dist/{DropdownLoadingDots.d.ts → deprecated/DropdownLoadingDots.d.ts} +1 -1
  13. package/dist/deprecated/DropdownToggleButton.d.ts +3 -0
  14. package/dist/deprecated/MultiSelect.d.ts +64 -0
  15. package/dist/{RegularDropdown.d.ts → deprecated/RegularDropdown.d.ts} +3 -3
  16. package/dist/deprecated/SearchableDropdown.d.ts +34 -0
  17. package/dist/deprecated/index.d.ts +2 -0
  18. package/dist/dropdown.cjs.development.js +1171 -261
  19. package/dist/dropdown.cjs.development.js.map +1 -1
  20. package/dist/dropdown.cjs.production.min.js +1 -1
  21. package/dist/dropdown.cjs.production.min.js.map +1 -1
  22. package/dist/dropdown.esm.js +1171 -263
  23. package/dist/dropdown.esm.js.map +1 -1
  24. package/dist/index.d.ts +4 -3
  25. package/dist/styles.css +308 -142
  26. package/dist/useNormalizedItems.d.ts +5 -6
  27. package/dist/utils.d.ts +48 -0
  28. package/package.json +12 -12
  29. package/dist/DropdownList.d.ts +0 -8
  30. package/dist/DropdownToggleButton.d.ts +0 -3
  31. package/dist/beta/DropdownList.d.ts +0 -17
  32. package/dist/beta/SearchableDropdown.d.ts +0 -42
  33. package/dist/beta/index.d.ts +0 -1
@@ -2,60 +2,61 @@ import React from 'react';
2
2
  import { VariantType } from '@entur/form';
3
3
  import { NormalizedDropdownItemType } from './useNormalizedItems';
4
4
  import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
5
+ import './Dropdown.scss';
5
6
  export type DropdownProps = {
6
- /** Beskrivende tekst som forklarer feltet */
7
- label: string;
8
- /** Tilgjengelige valg i dropdownen */
7
+ /** Tilgjengelige valg i dropdown-en */
9
8
  items: PotentiallyAsyncDropdownItemType;
10
9
  /** Valgt verdi. Bruk null for ingen verdi. */
11
- value?: string | null;
12
- /** Om man skal kunne søke i dropdownen eller ikke */
13
- searchable?: boolean;
14
- /** Tooltip for labelen */
15
- labelTooltip?: string;
10
+ selectedItem: NormalizedDropdownItemType | null;
11
+ /** Callback ved valg som skal oppdatere selectedItem */
12
+ onChange?: (selectedItem: NormalizedDropdownItemType | null) => void;
13
+ /** Beskrivende tekst som forklarer feltet */
14
+ label: string;
15
+ /** Placeholder-tekst når ingenting er satt */
16
+ placeholder?: string;
17
+ /** Om man skal ha mulighet for å nullstille Dropdown-en
18
+ * @default false
19
+ */
20
+ clearable?: boolean;
21
+ /** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
22
+ selectOnBlur?: boolean;
23
+ /** Deaktiver dropdown-en */
24
+ disabled?: boolean;
25
+ /** Setter dropdown-en i read-only modus */
26
+ readOnly?: boolean;
16
27
  /** Hvilken valideringsvariant som gjelder */
17
28
  variant?: VariantType;
18
29
  /** Valideringsmelding, brukes sammen med `variant` */
19
30
  feedback?: string;
20
- /** Tekst eller ikon som kommer før dropdownen */
31
+ /** Tekst eller ikon som kommer før dropdown-en */
21
32
  prepend?: React.ReactNode;
22
- /** Deaktiver dropdownen */
23
- disabled?: boolean;
24
- /** Setter dropdownen i read-only modus */
25
- readOnly?: boolean;
26
- /** Placeholder-tekst når ingenting er satt */
27
- placeholder?: string;
28
33
  /** En tekst som beskriver hva som skjer når man venter på items */
29
34
  loadingText?: string;
30
- /** Callback når brukeren endrer valg */
31
- onChange?: (selectedItem: NormalizedDropdownItemType | null) => void;
32
- /** Lar brukeren velge ved å "tæbbe" seg ut av komponenten */
33
- selectOnTab?: boolean;
34
- /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe */
35
- openOnFocus?: boolean;
36
- /** Antall millisekunder man venter før man kaller en potensiell items-funksjon */
37
- debounceTimeout?: number;
38
- /** Om man skal ha muliget for å nullstille Dropdownen
35
+ /** Om man skal ha mulighet for å nullstille Dropdown-en
36
+ * @default "fjern valgt"
37
+ */
38
+ labelClearSelectedItem?: string;
39
+ /** Plasserer labelen statisk toppen av inputfeltet
39
40
  * @default false
40
41
  */
41
- clearable?: boolean;
42
+ disableLabelAnimation?: boolean;
42
43
  /** Ekstra klassenavn */
43
44
  className?: string;
44
- /** Marker første valgmulighet automatisk */
45
- highlightFirstItemOnOpen?: boolean;
46
45
  /** Styling som sendes ned til Dropdown-lista */
47
46
  listStyle?: {
48
47
  [key: string]: any;
49
48
  };
50
- /** Filtreringen som blir brukt dersom man har en searchable Dropdown
51
- * @default Enkel tekstsammenligning
49
+ /** Styling for Dropdown-en */
50
+ style?: {
51
+ [key: string]: any;
52
+ };
53
+ /** Tekst for skjemleser for knapp som lukker listen med valg
54
+ * @default "Lukk liste med valg"
52
55
  */
53
- itemFilter?: (item: NormalizedDropdownItemType) => boolean;
54
- /** Plasserer labelen statisk toppen av inputfeltet
55
- * @default false
56
+ ariaLabelCloseList?: string;
57
+ /** Tekst for skjemleser for knapp som åpner listen med valg
58
+ * @default "Åpne liste med valg"
56
59
  */
57
- disableLabelAnimation?: boolean;
58
- /** Alle ekstra props videresendes til Downshift */
59
- [key: string]: any;
60
+ ariaLabelOpenList?: string;
60
61
  };
61
- export declare const Dropdown: React.FC<DropdownProps>;
62
+ export declare const Dropdown: ({ ariaLabelCloseList, ariaLabelOpenList, className, clearable, disabled, disableLabelAnimation, feedback, items: initialItems, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem, selectOnBlur, style, variant, ...rest }: DropdownProps) => JSX.Element;
@@ -1,54 +1,111 @@
1
1
  import React from 'react';
2
- import { UseSelectProps } from 'downshift';
3
- import { NormalizedDropdownItemType } from './useNormalizedItems';
4
2
  import { VariantType } from '@entur/form';
3
+ import { NormalizedDropdownItemType } from './useNormalizedItems';
5
4
  import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
6
- import './MultiSelect.scss';
7
- import './DropdownList.scss';
8
- type MultiSelectProps = {
5
+ import './Dropdown.scss';
6
+ export type MultiSelectProps = {
9
7
  /** Tilgjengelige valg i MultiSelect */
10
8
  items: PotentiallyAsyncDropdownItemType;
11
- /** Tekst som vises i boksen når elementer er valgt */
12
- itemsSelectedLabel?: (selectedItems: NormalizedDropdownItemType[], numberOfItems?: number) => string;
9
+ /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte
10
+ */
11
+ selectedItems: NormalizedDropdownItemType[];
12
+ /** Callback med alle valgte verdier.
13
+ * Bruk denne til å oppdatere selectedItems-listen */
14
+ onChange?: (selectedItems: NormalizedDropdownItemType[]) => void;
15
+ /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
16
+ * @default Regex-test som sjekker om item.label inneholder input-teksten
17
+ */
18
+ itemFilter?: (item: NormalizedDropdownItemType, inputValue: string | undefined) => boolean;
13
19
  /** Beskrivende tekst som forklarer feltet */
14
20
  label?: string;
15
21
  /** Hvilken valideringsvariant som gjelder */
16
22
  variant?: VariantType;
17
23
  /** Valideringsmelding, brukes sammen med `variant` */
18
24
  feedback?: string;
19
- /** Tekst eller ikon som kommer før MultiSelect */
20
- prepend?: React.ReactNode;
21
- /** Deaktiver dropdownen */
25
+ /** Om dropdown-en er deaktivert */
22
26
  disabled?: boolean;
23
- /** Setter dropdownen i read-only modus */
27
+ /** Om dropdown-en er i read-only modus */
24
28
  readOnly?: boolean;
29
+ /** Om en knapp for å fjerne alle valg skal vises
30
+ * @default true
31
+ */
32
+ clearable?: boolean;
25
33
  /** Placeholder-tekst når ingenting er satt */
26
34
  placeholder?: string;
27
- /** En tekst som beskriver hva som skjer når man venter på items */
35
+ /** En tekst som beskriver hva som skjer når man venter på items
36
+ * @default "Laster inn …"
37
+ */
28
38
  loadingText?: string;
29
- /** Callback når brukeren endrer valg */
30
- onChange?: (e: any) => void;
31
- /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe
39
+ /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket
40
+ * @default "Ingen treff for søket"
41
+ */
42
+ noMatchesText?: string;
43
+ /** Skjuler «Velg alle» fra listen med valg
32
44
  * @default false
33
45
  */
34
- openOnFocus?: boolean;
35
- /** Ekstra klassenavn */
36
- className?: string;
37
- /** Styling som sendes ned til MultiSelect-lista */
38
- listStyle?: {
39
- [key: string]: any;
40
- };
46
+ hideSelectAll?: boolean;
41
47
  /** Antall millisekunder man venter før man kaller en potensiell items-funksjon
42
48
  * @default 250
43
49
  */
44
50
  debounceTimeout?: number;
45
- /** Om man skal ha muliget for å nullstille Dropdownen
51
+ /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag
52
+ * @default 10
53
+ */
54
+ maxTags?: number;
55
+ /** Tekst eller ikon som kommer før MultiSelect */
56
+ prepend?: React.ReactNode;
57
+ /** Resetter input etter at et element er valgt i listen
46
58
  * @default false
47
59
  */
48
- clearable?: boolean;
49
- loading?: boolean;
60
+ clearInputOnSelect?: boolean;
61
+ /** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
62
+ selectOnBlur?: boolean;
50
63
  style?: React.CSSProperties;
51
- initialSelectedItems?: NormalizedDropdownItemType[];
52
- } & Omit<UseSelectProps<NormalizedDropdownItemType>, 'initialSelectedItem' | 'items'>;
53
- export declare const MultiSelect: React.FC<MultiSelectProps>;
54
- export {};
64
+ /** Styling som sendes ned til MultiSelect-lista */
65
+ listStyle?: {
66
+ [key: string]: any;
67
+ };
68
+ /** Ekstra klassenavn */
69
+ className?: string;
70
+ /** Teksten som vises for «Velg alle»-elementet i listen
71
+ * @default "Velg alle"
72
+ */
73
+ labelSelectAll?: string;
74
+ /** Teksten som vises for «Velg alle»-elementet i listen
75
+ * @default "Alle valgt"
76
+ */
77
+ labelAllItemsSelected?: string;
78
+ /** Skjermleser-tekst som for å fjerne alle valg
79
+ * @default "Fjern valgte"
80
+ */
81
+ labelClearAllItems?: string;
82
+ /** Tekst for skjemleser på knapper for å fjerne valgt element
83
+ * @default "trykk for å fjerne valg"
84
+ */
85
+ ariaLabelRemoveSelected?: string;
86
+ /** Tekst for skjemleser for å indikere at et element er valgt
87
+ * @default "valgt"
88
+ */
89
+ ariaLabelChosenSingular?: string;
90
+ /** Tekst for skjemleser for å indikere at et element er valgt
91
+ * @default "valgte"
92
+ */
93
+ ariaLabelChosenPlural?: string;
94
+ /** Tekst for skjemleser for knapp som lukker listen med valg
95
+ * @default "Lukk liste med valg"
96
+ */
97
+ ariaLabelCloseList?: string;
98
+ /** Tekst for skjemleser for knapp som åpner listen med valg
99
+ * @default "Åpne liste med valg"
100
+ */
101
+ ariaLabelOpenList?: string;
102
+ /** Tekst for skjemleser for å hoppe til input-feltet
103
+ * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`
104
+ */
105
+ ariaLabelJumpToInput?: string;
106
+ /** Tekst for skjemleser for å indikere at et element i listen er valgt
107
+ * @default ", valgt element, trykk for å fjerne"
108
+ */
109
+ ariaLabelSelectedItem?: string;
110
+ };
111
+ export declare const MultiSelect: ({ className, clearable, clearInputOnSelect, debounceTimeout, disabled, feedback, hideSelectAll, itemFilter, items: initialItems, label, labelAllItemsSelected, labelClearAllItems, labelSelectAll, listStyle, loadingText, maxTags, noMatchesText, onChange, placeholder, readOnly, selectedItems, selectOnBlur, style, variant, ariaLabelChosenSingular, ariaLabelChosenPlural, ariaLabelCloseList, ariaLabelJumpToInput, ariaLabelOpenList, ariaLabelRemoveSelected, ariaLabelSelectedItem, ...rest }: MultiSelectProps) => JSX.Element;
@@ -1,31 +1,45 @@
1
- import { VariantType } from '@entur/form';
2
1
  import React from 'react';
3
- import './NativeDropdown.scss';
2
+ import { VariantType } from '@entur/form';
4
3
  import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
4
+ import { NormalizedDropdownItemType } from './useNormalizedItems';
5
+ import './Dropdown.scss';
5
6
  export type NativeDropdownProps = {
6
7
  /** Ekstra klassenavn */
7
8
  className?: string;
8
9
  /**
9
- * For å deaktivere dropdownen
10
+ * For å deaktivere dropdow-nen
10
11
  * @default false
11
12
  **/
12
13
  disabled?: boolean;
13
14
  /** Valideringsmelding, brukes sammen med `variant` */
14
15
  feedback?: string;
15
- /** Alle valg for dropdownen å ha */
16
+ /** Alle valg for dropdown-en å ha */
16
17
  items: PotentiallyAsyncDropdownItemType;
17
18
  /** Beskrivende tekst som forklarer feltet */
18
19
  label: string;
19
- /** En callback for endringer av value */
20
- onChange?: (e: React.ChangeEvent<HTMLSelectElement>) => void;
21
- /** Tekst eller ikon som kommer før dropdownen */
20
+ /** En callback for endringer av value
21
+ * Obs: merk at parameter her denne ikke er samme som i en HTML select.
22
+ * Bruk { target } hvis du trenger info om select-elementet som ble trykket
23
+ */
24
+ onChange?: ({ value, selectedItem, target, }: {
25
+ value: string;
26
+ selectedItem: NormalizedDropdownItemType | null;
27
+ target: EventTarget & HTMLSelectElement;
28
+ }) => void;
29
+ /** Tekst eller ikon som kommer før dropdown-en */
22
30
  prepend?: React.ReactNode;
23
31
  /**
24
- * Setter dropdownen i read-only modus
32
+ * Setter dropdown-en i read-only modus
25
33
  * @default false
26
34
  **/
27
35
  readOnly?: boolean;
28
- /** Den valgte verdien */
36
+ /** Den valgte verdien som NormalizedDropdownItemType
37
+ * (Brukes når komponenten er 'controlled')
38
+ */
39
+ selectedItem?: NormalizedDropdownItemType | null;
40
+ /** Den valgte verdien som sting
41
+ * (Brukes når komponenten er 'controlled)
42
+ */
29
43
  value?: string;
30
44
  /** Hvilken valideringsvariant som gjelder */
31
45
  variant?: VariantType;
@@ -1,24 +1,70 @@
1
1
  import React from 'react';
2
+ import { VariantType } from '@entur/form';
2
3
  import { NormalizedDropdownItemType } from './useNormalizedItems';
3
- import './SearchableDropdown.scss';
4
- type SearchableDropdownProps = {
5
- className?: string;
6
- disabled?: boolean;
7
- items: NormalizedDropdownItemType[];
8
- loading?: boolean;
9
- loadingText?: string;
4
+ import { PotentiallyAsyncDropdownItemType } from './useResolvedItems';
5
+ import './Dropdown.scss';
6
+ export type SearchableDropdownProps = {
7
+ /** Tilgjengelige valg i dropdown-en */
8
+ items: PotentiallyAsyncDropdownItemType;
9
+ /** Valgt element. Bruk null for ingen verdi */
10
+ selectedItem: NormalizedDropdownItemType | null;
11
+ /** Callback ved valg som skal brukes til å oppdatere selectedItem */
12
+ onChange?: (value: NormalizedDropdownItemType | null) => void;
13
+ /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
14
+ * @default Regex-test som sjekker om item.label inneholder input-teksten
15
+ */
16
+ itemFilter?: (item: NormalizedDropdownItemType, inputValue: string | undefined) => boolean;
17
+ /** Beskrivende tekst som forklarer feltet */
18
+ label: string;
19
+ /** Placeholder-tekst når ingenting er satt */
10
20
  placeholder?: string;
11
- prepend?: React.ReactNode;
21
+ /** Vis knapp for å nullstille Dropdown-en skal vises
22
+ * @default true
23
+ */
24
+ clearable?: boolean;
25
+ /** Plasserer labelen statisk på toppen av inputfeltet
26
+ * @default false
27
+ */
28
+ disableLabelAnimation?: boolean;
29
+ /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items
30
+ * Denne er kun relevant hvis du sender inn en funksjon som items.
31
+ */
32
+ debounceTimeout?: number;
33
+ /** Deaktiver dropdown-en */
34
+ disabled?: boolean;
35
+ /** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
36
+ selectOnBlur?: boolean;
37
+ /** Gjør dropdown-en til å kun kunne leses
38
+ * @default false
39
+ */
12
40
  readOnly?: boolean;
13
- selectOnTab?: boolean;
14
- openOnFocus?: boolean;
41
+ /** Tekst eller ikon som kommer før dropdown-en */
42
+ prepend?: React.ReactNode;
43
+ /** En tekst som beskriver hva som skjer når man venter på items */
44
+ loadingText?: string;
45
+ /** Hvilken valideringsvariant som gjelder */
46
+ variant?: VariantType;
47
+ /** Valideringsmelding, brukes sammen med `variant` */
48
+ feedback?: string;
49
+ className?: string;
50
+ style?: {
51
+ [key: string]: any;
52
+ };
53
+ /** Style som kun påføres listeelementet */
15
54
  listStyle?: {
16
55
  [key: string]: any;
17
56
  };
18
- clearable: boolean;
19
- itemFilter?: (item: NormalizedDropdownItemType) => boolean;
20
- disableLabelAnimation?: boolean;
21
- [key: string]: any;
57
+ /** Tekst som beskriver at man fjerner valget sitt
58
+ * @default "fjern valgt"
59
+ */
60
+ labelClearSelectedItem?: string;
61
+ /** Tekst for skjemleser for knapp som lukker listen med valg
62
+ * @default "Lukk liste med valg"
63
+ */
64
+ ariaLabelCloseList?: string;
65
+ /** Tekst for skjemleser for knapp som åpner listen med valg
66
+ * @default "Åpne liste med valg"
67
+ */
68
+ ariaLabelOpenList?: string;
22
69
  };
23
- export declare const SearchableDropdown: React.FC<SearchableDropdownProps>;
24
- export {};
70
+ export declare const SearchableDropdown: ({ ariaLabelCloseList, ariaLabelOpenList, className, clearable, debounceTimeout, disabled, disableLabelAnimation, feedback, itemFilter, items: initialItems, label, labelClearSelectedItem, listStyle, loadingText, onChange, placeholder, prepend, readOnly, selectedItem: value, selectOnBlur, style, variant, ...rest }: SearchableDropdownProps) => JSX.Element;
@@ -0,0 +1,25 @@
1
+ /// <reference types="react" />
2
+ import { UseComboboxGetMenuPropsOptions, GetPropsCommonOptions, UseComboboxGetItemPropsOptions } from 'downshift';
3
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
+ import './DropdownList.scss';
5
+ type DropdownListProps = {
6
+ ariaLabelChosenSingular?: string;
7
+ ariaLabelSelectedItem?: string;
8
+ getItemProps: (options: UseComboboxGetItemPropsOptions<NormalizedDropdownItemType>) => any;
9
+ getMenuProps: (options?: UseComboboxGetMenuPropsOptions | undefined, otherOptions?: GetPropsCommonOptions | undefined) => any;
10
+ highlightedIndex: number;
11
+ isOpen: boolean;
12
+ listItems: NormalizedDropdownItemType[];
13
+ listStyle: {
14
+ [key: string]: any;
15
+ } | undefined;
16
+ loading?: boolean;
17
+ loadingText?: string;
18
+ noMatchesText?: string;
19
+ selectAllCheckboxState?: () => boolean | 'indeterminate';
20
+ selectAllItem?: NormalizedDropdownItemType;
21
+ selectedItems: NormalizedDropdownItemType[];
22
+ [key: string]: any;
23
+ };
24
+ export declare const DropdownList: ({ ariaLabelChosenSingular, ariaLabelSelectedItem, getItemProps, getMenuProps, inputValue, isOpen, highlightedIndex, listItems, listStyle, loading, loadingText, noMatchesText, selectAllCheckboxState, selectAllItem, selectedItems, showSelectAllInList, ...rest }: DropdownListProps) => JSX.Element;
25
+ export {};
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { UseComboboxGetToggleButtonPropsOptions, UseMultipleSelectionGetSelectedItemPropsOptions } from 'downshift';
3
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
+ import './FieldComponents.scss';
5
+ export declare const SelectedItemTag: ({ ariaLabelRemoveSelected, ariaLabelChosen, disabled, getSelectedItemProps, index, readOnly, removeSelectedItem, selectedItem, }: {
6
+ ariaLabelRemoveSelected: string;
7
+ ariaLabelChosen?: string | undefined;
8
+ disabled?: boolean | undefined;
9
+ getSelectedItemProps?: ((options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType>) => any) | undefined;
10
+ index?: number | undefined;
11
+ readOnly?: boolean | undefined;
12
+ removeSelectedItem: (item: NormalizedDropdownItemType) => void;
13
+ selectedItem: NormalizedDropdownItemType;
14
+ }) => JSX.Element;
15
+ export declare const FieldAppend: React.FC<{
16
+ ariaHiddenToggleButton?: boolean;
17
+ ariaLabelCloseList?: string;
18
+ ariaLabelOpenList?: string;
19
+ clearable?: boolean;
20
+ labelClearSelectedItems?: string;
21
+ disabled?: boolean;
22
+ focusable?: boolean;
23
+ getToggleButtonProps: (options?: UseComboboxGetToggleButtonPropsOptions | undefined) => any;
24
+ isOpen: boolean;
25
+ loading?: boolean;
26
+ loadingText?: string;
27
+ onClear: () => void;
28
+ selectedItems: (NormalizedDropdownItemType | null)[];
29
+ }>;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { NormalizedDropdownItemType } from './useNormalizedItems';
2
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
3
  import './BaseDropdown.scss';
4
- type BaseDropdownProps = {
4
+ type BaseDropdownDeprecatedProps = {
5
5
  className?: string;
6
6
  disabled?: boolean;
7
7
  items: NormalizedDropdownItemType[];
@@ -18,5 +18,5 @@ type BaseDropdownProps = {
18
18
  disableLabelAnimation?: boolean;
19
19
  [key: string]: any;
20
20
  };
21
- export declare const BaseDropdown: React.FC<BaseDropdownProps>;
21
+ export declare const BaseDropdownDeprecated: React.FC<BaseDropdownDeprecatedProps>;
22
22
  export {};
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ControllerStateAndHelpers } from 'downshift';
3
- import { NormalizedDropdownItemType } from './useNormalizedItems';
3
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
4
  export type DownshiftProviderProps = {
5
5
  onChange?: (selectedItem: NormalizedDropdownItemType, stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemType>) => void;
6
6
  onInputValueChange?: (value: string) => void;
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import { VariantType } from '@entur/form';
3
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
+ import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
5
+ export type DropdownDeprecatedProps = {
6
+ /** Beskrivende tekst som forklarer feltet */
7
+ label: string;
8
+ /** Tilgjengelige valg i dropdownen */
9
+ items: PotentiallyAsyncDropdownItemType;
10
+ /** Valgt verdi. Bruk null for ingen verdi. */
11
+ value?: string | null;
12
+ /** Om man skal kunne søke i dropdownen eller ikke */
13
+ searchable?: boolean;
14
+ /** Tooltip for labelen */
15
+ labelTooltip?: string;
16
+ /** Hvilken valideringsvariant som gjelder */
17
+ variant?: VariantType;
18
+ /** Valideringsmelding, brukes sammen med `variant` */
19
+ feedback?: string;
20
+ /** Tekst eller ikon som kommer før dropdownen */
21
+ prepend?: React.ReactNode;
22
+ /** Deaktiver dropdownen */
23
+ disabled?: boolean;
24
+ /** Setter dropdownen i read-only modus */
25
+ readOnly?: boolean;
26
+ /** Placeholder-tekst når ingenting er satt */
27
+ placeholder?: string;
28
+ /** En tekst som beskriver hva som skjer når man venter på items */
29
+ loadingText?: string;
30
+ /** Callback når brukeren endrer valg */
31
+ onChange?: (selectedItem: NormalizedDropdownItemType | null) => void;
32
+ /** Lar brukeren velge ved å "tæbbe" seg ut av komponenten */
33
+ selectOnTab?: boolean;
34
+ /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe */
35
+ openOnFocus?: boolean;
36
+ /** Antall millisekunder man venter før man kaller en potensiell items-funksjon */
37
+ debounceTimeout?: number;
38
+ /** Om man skal ha muliget for å nullstille Dropdownen
39
+ * @default false
40
+ */
41
+ clearable?: boolean;
42
+ /** Ekstra klassenavn */
43
+ className?: string;
44
+ /** Marker første valgmulighet automatisk */
45
+ highlightFirstItemOnOpen?: boolean;
46
+ /** Styling som sendes ned til Dropdown-lista */
47
+ listStyle?: {
48
+ [key: string]: any;
49
+ };
50
+ /** Filtreringen som blir brukt dersom man har en searchable Dropdown
51
+ * @default Enkel tekstsammenligning
52
+ */
53
+ itemFilter?: (item: NormalizedDropdownItemType) => boolean;
54
+ /** Plasserer labelen statisk på toppen av inputfeltet
55
+ * @default false
56
+ */
57
+ disableLabelAnimation?: boolean;
58
+ /** Alle ekstra props videresendes til Downshift */
59
+ [key: string]: any;
60
+ };
61
+ /**
62
+ * @deprecated
63
+ * New Dropdown available
64
+ *
65
+ * migration guide to new dropdown:
66
+ * - change import from 'DropdownOld' to 'Dropdown'
67
+ * + if 'searchable', switch to 'SearchableDropdown'
68
+ * - change from 'value' to 'selectedItem'
69
+ * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
70
+ * - 'onChange' must update value of 'selectedItem'
71
+ */
72
+ export declare const DropdownDeprecated: React.FC<DropdownDeprecatedProps>;
@@ -1,6 +1,6 @@
1
1
  import { VariantType } from '@entur/form';
2
2
  import React from 'react';
3
- export type DropdownInputGroupProps = {
3
+ export type DropdownInputGroupDeprecatedProps = {
4
4
  feedback?: string;
5
5
  variant?: VariantType;
6
6
  className?: string;
@@ -8,4 +8,4 @@ export type DropdownInputGroupProps = {
8
8
  [key: string]: any;
9
9
  };
10
10
  };
11
- export declare const DropdownInputGroup: React.FC<DropdownInputGroupProps>;
11
+ export declare const DropdownInputGroupDeprecated: React.FC<DropdownInputGroupDeprecatedProps>;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
+ import './DropdownList.scss';
4
+ export type DropdownListDeprecatedProps = {
5
+ items: NormalizedDropdownItemType[];
6
+ [key: string]: any;
7
+ };
8
+ export declare const DropdownListDeprecated: React.FC<DropdownListDeprecatedProps>;
@@ -7,4 +7,4 @@ export type InlineSpinnerType = {
7
7
  children: string;
8
8
  [key: string]: any;
9
9
  };
10
- export declare const DropdownLoadingDots: React.FC<InlineSpinnerType>;
10
+ export declare const DropdownDeprecatedLoadingDots: React.FC<InlineSpinnerType>;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import './DropdownToggleButton.scss';
3
+ export declare const DropdownDeprecatedToggleButton: () => JSX.Element;
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { UseSelectProps } from 'downshift';
3
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
4
+ import { VariantType } from '@entur/form';
5
+ import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
6
+ import './MultiSelect.scss';
7
+ import './DropdownList.scss';
8
+ type MultiSelectDeprecatedProps = {
9
+ /** Tilgjengelige valg i MultiSelect */
10
+ items: PotentiallyAsyncDropdownItemType;
11
+ /** Tekst som vises i boksen når elementer er valgt */
12
+ itemsSelectedLabel?: (selectedItems: NormalizedDropdownItemType[], numberOfItems?: number) => string;
13
+ /** Beskrivende tekst som forklarer feltet */
14
+ label?: string;
15
+ /** Hvilken valideringsvariant som gjelder */
16
+ variant?: VariantType;
17
+ /** Valideringsmelding, brukes sammen med `variant` */
18
+ feedback?: string;
19
+ /** Tekst eller ikon som kommer før MultiSelect */
20
+ prepend?: React.ReactNode;
21
+ /** Deaktiver dropdownen */
22
+ disabled?: boolean;
23
+ /** Setter dropdownen i read-only modus */
24
+ readOnly?: boolean;
25
+ /** Placeholder-tekst når ingenting er satt */
26
+ placeholder?: string;
27
+ /** En tekst som beskriver hva som skjer når man venter på items */
28
+ loadingText?: string;
29
+ /** Callback når brukeren endrer valg */
30
+ onChange?: (e: any) => void;
31
+ /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe
32
+ * @default false
33
+ */
34
+ openOnFocus?: boolean;
35
+ /** Ekstra klassenavn */
36
+ className?: string;
37
+ /** Styling som sendes ned til MultiSelect-lista */
38
+ listStyle?: {
39
+ [key: string]: any;
40
+ };
41
+ /** Antall millisekunder man venter før man kaller en potensiell items-funksjon
42
+ * @default 250
43
+ */
44
+ debounceTimeout?: number;
45
+ /** Om man skal ha muliget for å nullstille Dropdownen
46
+ * @default false
47
+ */
48
+ clearable?: boolean;
49
+ loading?: boolean;
50
+ style?: React.CSSProperties;
51
+ initialSelectedItems?: NormalizedDropdownItemType[];
52
+ } & Omit<UseSelectProps<NormalizedDropdownItemType>, 'initialSelectedItem' | 'items'>;
53
+ /**
54
+ * @deprecated
55
+ * New MultiSelect available
56
+ *
57
+ * migration guide to new dropdown:
58
+ * - change import from 'DropdownOld' to 'Dropdown'
59
+ * - change from 'value' to 'selectedItem'
60
+ * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
61
+ * - 'onChange' must update value of 'selectedItem'
62
+ */
63
+ export declare const MultiSelectDeprecated: React.FC<MultiSelectDeprecatedProps>;
64
+ export {};
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { NormalizedDropdownItemType } from './useNormalizedItems';
3
- type RegularDropdownProps = {
2
+ import { NormalizedDropdownItemType } from '../useNormalizedItems';
3
+ type RegularDropdownDeprecatedProps = {
4
4
  items: NormalizedDropdownItemType[];
5
5
  disabled?: boolean;
6
6
  placeholder?: string;
@@ -16,5 +16,5 @@ type RegularDropdownProps = {
16
16
  clearable?: boolean;
17
17
  [key: string]: any;
18
18
  };
19
- export declare const RegularDropdown: React.FC<RegularDropdownProps>;
19
+ export declare const RegularDropdownDeprecated: React.FC<RegularDropdownDeprecatedProps>;
20
20
  export {};