@entur/dropdown 7.3.2-beta.1 → 7.3.2-beta.11

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.
@@ -0,0 +1,91 @@
1
+ import React, { Dispatch, SetStateAction } from 'react';
2
+ import { VariantType } from '@entur/utils';
3
+ import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
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 DropdownProps<ValueType> = {
10
+ /** Tilgjengelige valg i dropdown-en */
11
+ items: PotentiallyAsyncDropdownItemType<ValueType>;
12
+ /** Valgt verdi. Bruk null for ingen verdi. */
13
+ selectedItem: NormalizedDropdownItemType<ValueType> | null;
14
+ /** Callback ved valg som skal oppdatere selectedItem */
15
+ onChange?: (selectedItem: NormalizedDropdownItemType<ValueType> | null) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType> | null>>;
16
+ /** Beskrivende tekst som forklarer feltet */
17
+ label: string;
18
+ /** Placeholder-tekst når ingenting er satt */
19
+ placeholder?: string;
20
+ /** Om man skal ha mulighet for å nullstille Dropdown-en
21
+ * @default false
22
+ */
23
+ clearable?: boolean;
24
+ /** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
25
+ selectOnTab?: boolean;
26
+ /**
27
+ * @deprecated
28
+ * Bruk selectOnTab i stedet
29
+ *
30
+ * Lar brukeren velge ved å "tab-e" seg ut av komponenten */
31
+ selectOnBlur?: boolean;
32
+ /** Deaktiver dropdown-en */
33
+ disabled?: boolean;
34
+ /** Setter dropdown-en i read-only modus */
35
+ readOnly?: boolean;
36
+ /** Hvilken valideringsvariant som gjelder */
37
+ variant?: VariantType | typeof error | typeof info;
38
+ /** Valideringsmelding, brukes sammen med `variant` */
39
+ feedback?: string;
40
+ /** Tekst eller ikon som kommer først i dropdown-feltet */
41
+ prepend?: React.ReactNode;
42
+ /** */
43
+ loading?: boolean;
44
+ /** En tekst som beskriver hva som skjer når man venter på items
45
+ * @default 'Laster inn …'
46
+ */
47
+ loadingText?: string;
48
+ /** Tekst som kommer opp når det ikke er noe elementer å vise
49
+ * @default "Ingen tilgjengelige valg …"
50
+ */
51
+ noMatchesText?: string;
52
+ /** Om man skal ha mulighet for å nullstille Dropdown-en
53
+ * @default "fjern valgt"
54
+ */
55
+ labelClearSelectedItem?: string;
56
+ /** En tooltip som gir ekstra info om inputfeltet */
57
+ labelTooltip?: React.ReactNode;
58
+ /** Plasserer labelen statisk på toppen av inputfeltet
59
+ * @default false
60
+ */
61
+ disableLabelAnimation?: boolean;
62
+ /** Ekstra klassenavn */
63
+ className?: string;
64
+ /** Styling som sendes ned til Dropdown-lista */
65
+ listStyle?: {
66
+ [key: string]: any;
67
+ };
68
+ /** Styling for Dropdown-en */
69
+ style?: {
70
+ [key: string]: any;
71
+ };
72
+ /** Tekst for skjemleser for knapp som lukker listen med valg
73
+ * @default "Lukk liste med valg"
74
+ */
75
+ ariaLabelCloseList?: string;
76
+ /** Tekst for skjemleser for knapp som åpner listen med valg
77
+ * @default "Åpne liste med valg"
78
+ */
79
+ ariaLabelOpenList?: string;
80
+ /** Ord for at et element er valgt i entall
81
+ * eks. 'Element 1, _valgt_'
82
+ * @default 'valgt'
83
+ */
84
+ ariaLabelChosenSingular?: string;
85
+ /** Tekst for skjermleser som beskriver statusen til et element som valgt
86
+ * @default ', valgt element, trykk for å fjerne'
87
+ */
88
+ ariaLabelSelectedItem?: string;
89
+ };
90
+ export declare const Dropdown: <ValueType extends unknown>(props: DropdownProps<ValueType> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
91
+ export {};
@@ -0,0 +1,108 @@
1
+ import React, { Dispatch, SetStateAction } from 'react';
2
+ import { DropdownProps } from './Dropdown';
3
+ import { NormalizedDropdownItemType } from './types';
4
+ import './Dropdown.scss';
5
+ export type MultiSelectProps<ValueType> = Omit<DropdownProps<ValueType>, 'selectedItem' | 'onChange'> & {
6
+ /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte
7
+ */
8
+ selectedItems: NormalizedDropdownItemType<ValueType>[];
9
+ /** Callback med alle valgte verdier.
10
+ * Bruk denne til å oppdatere selectedItems-listen */
11
+ onChange?: (selectedItems: NormalizedDropdownItemType<ValueType>[]) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType>[]>>;
12
+ /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
13
+ * @default Regex-test som sjekker om item.label inneholder input-teksten
14
+ */
15
+ itemFilter?: (item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean;
16
+ /** Skjuler «Velg alle» fra listen med valg
17
+ * @default false
18
+ */
19
+ hideSelectAll?: boolean;
20
+ /** Antall millisekunder man venter før man kaller en potensiell items-funksjon
21
+ * @default 250
22
+ */
23
+ debounceTimeout?: number;
24
+ /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag
25
+ * @default 10
26
+ */
27
+ maxChips?: number;
28
+ /** Resetter input etter at et element er valgt i listen
29
+ * @default false
30
+ */
31
+ clearInputOnSelect?: boolean;
32
+ /** Teksten som vises for «Velg alle»-elementet i listen
33
+ * @default "Velg alle"
34
+ */
35
+ labelSelectAll?: string;
36
+ /** Teksten som vises for «Velg alle»-elementet i listen
37
+ * @default "Alle valgt"
38
+ */
39
+ labelAllItemsSelected?: string;
40
+ /** Skjermleser-tekst som for å fjerne alle valg
41
+ * @default "Fjern valgte"
42
+ */
43
+ labelClearAllItems?: string;
44
+ /** Tekst for skjemleser på knapper for å fjerne valgt element
45
+ * @default "trykk for å fjerne valg"
46
+ */
47
+ ariaLabelRemoveSelected?: string;
48
+ /** Tekst for skjemleser for å indikere at et element er valgt
49
+ * @default "valgte"
50
+ */
51
+ ariaLabelChosenPlural?: string;
52
+ /** Tekst for skjemleser for å hoppe til input-feltet
53
+ * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`
54
+ */
55
+ ariaLabelJumpToInput?: string;
56
+ };
57
+ export declare const MultiSelect: <ValueType extends unknown>(props: Omit<DropdownProps<ValueType>, "selectedItem" | "onChange"> & {
58
+ /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte
59
+ */
60
+ selectedItems: NormalizedDropdownItemType<ValueType>[];
61
+ /** Callback med alle valgte verdier.
62
+ * Bruk denne til å oppdatere selectedItems-listen */
63
+ onChange?: ((selectedItems: NormalizedDropdownItemType<ValueType>[]) => void | React.Dispatch<React.SetStateAction<NormalizedDropdownItemType<ValueType>[]>>) | undefined;
64
+ /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
65
+ * @default Regex-test som sjekker om item.label inneholder input-teksten
66
+ */
67
+ itemFilter?: ((item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean) | undefined;
68
+ /** Skjuler «Velg alle» fra listen med valg
69
+ * @default false
70
+ */
71
+ hideSelectAll?: boolean;
72
+ /** Antall millisekunder man venter før man kaller en potensiell items-funksjon
73
+ * @default 250
74
+ */
75
+ debounceTimeout?: number;
76
+ /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag
77
+ * @default 10
78
+ */
79
+ maxChips?: number;
80
+ /** Resetter input etter at et element er valgt i listen
81
+ * @default false
82
+ */
83
+ clearInputOnSelect?: boolean;
84
+ /** Teksten som vises for «Velg alle»-elementet i listen
85
+ * @default "Velg alle"
86
+ */
87
+ labelSelectAll?: string;
88
+ /** Teksten som vises for «Velg alle»-elementet i listen
89
+ * @default "Alle valgt"
90
+ */
91
+ labelAllItemsSelected?: string;
92
+ /** Skjermleser-tekst som for å fjerne alle valg
93
+ * @default "Fjern valgte"
94
+ */
95
+ labelClearAllItems?: string;
96
+ /** Tekst for skjemleser på knapper for å fjerne valgt element
97
+ * @default "trykk for å fjerne valg"
98
+ */
99
+ ariaLabelRemoveSelected?: string;
100
+ /** Tekst for skjemleser for å indikere at et element er valgt
101
+ * @default "valgte"
102
+ */
103
+ ariaLabelChosenPlural?: string;
104
+ /** Tekst for skjemleser for å hoppe til input-feltet
105
+ * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`
106
+ */
107
+ ariaLabelJumpToInput?: string;
108
+ } & React.RefAttributes<HTMLInputElement>) => React.ReactElement | null;
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ import { VariantType } from '@entur/utils';
3
+ import { NormalizedDropdownItemType, PotentiallyAsyncDropdownItemType } from './types';
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 NativeDropdownProps<ValueType> = {
10
+ /** Ekstra klassenavn */
11
+ className?: string;
12
+ /**
13
+ * For å deaktivere dropdow-nen
14
+ * @default false
15
+ **/
16
+ disabled?: boolean;
17
+ /** Valideringsmelding, brukes sammen med `variant` */
18
+ feedback?: string;
19
+ /** Alle valg for dropdown-en å ha */
20
+ items: PotentiallyAsyncDropdownItemType<ValueType>;
21
+ /** Beskrivende tekst som forklarer feltet */
22
+ label: string;
23
+ /** En callback for endringer av value
24
+ * Obs: merk at parameter her denne ikke er samme som i en HTML select.
25
+ * Bruk { target } hvis du trenger info om select-elementet som ble trykket på
26
+ */
27
+ onChange?: ({ value, selectedItem, target, }: {
28
+ value: string;
29
+ selectedItem: NormalizedDropdownItemType<ValueType> | null;
30
+ target: EventTarget & HTMLSelectElement;
31
+ }) => void;
32
+ /** Tekst eller ikon som kommer før dropdown-en */
33
+ prepend?: React.ReactNode;
34
+ /**
35
+ * Setter dropdown-en i read-only modus
36
+ * @default false
37
+ **/
38
+ readOnly?: boolean;
39
+ /** Den valgte verdien som NormalizedDropdownItemType
40
+ * (Brukes når komponenten er 'controlled')
41
+ */
42
+ selectedItem?: NormalizedDropdownItemType<ValueType> | null;
43
+ /** Den valgte verdien som sting
44
+ * (Brukes når komponenten er 'controlled)
45
+ */
46
+ value?: string;
47
+ /** Hvilken valideringsvariant som gjelder*/
48
+ variant?: VariantType | typeof error | typeof info;
49
+ /** Plasserer labelen statisk på toppen av inputfeltet
50
+ * @default false
51
+ */
52
+ disableLabelAnimation?: boolean;
53
+ [key: string]: any;
54
+ };
55
+ export declare const NativeDropdown: <ValueType extends string | number>(props: NativeDropdownProps<ValueType> & React.RefAttributes<HTMLSelectElement>) => React.ReactElement | null;
56
+ export {};
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { DropdownProps } from './Dropdown';
3
+ import { NormalizedDropdownItemType } from './types';
4
+ import './Dropdown.scss';
5
+ export type SearchableDropdownProps<ValueType> = DropdownProps<ValueType> & {
6
+ /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
7
+ * @default Regex-test som sjekker om item.label inneholder input-teksten
8
+ */
9
+ itemFilter?: (item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean;
10
+ /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items
11
+ * Denne er kun relevant hvis du sender inn en funksjon som items.
12
+ */
13
+ debounceTimeout?: number;
14
+ /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket
15
+ * @default "Ingen treff for søket"
16
+ */
17
+ noMatchesText?: string;
18
+ };
19
+ export declare const SearchableDropdown: <ValueType extends unknown>(props: DropdownProps<ValueType> & {
20
+ /** Filtreringen som brukes når man skriver inn tekst i inputfeltet
21
+ * @default Regex-test som sjekker om item.label inneholder input-teksten
22
+ */
23
+ itemFilter?: ((item: NormalizedDropdownItemType<ValueType>, inputValue: string | undefined) => boolean) | undefined;
24
+ /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items
25
+ * Denne er kun relevant hvis du sender inn en funksjon som items.
26
+ */
27
+ debounceTimeout?: number;
28
+ /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket
29
+ * @default "Ingen treff for søket"
30
+ */
31
+ noMatchesText?: string;
32
+ } & React.RefAttributes<HTMLInputElement>) => React.ReactElement | null;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { UseComboboxPropGetters, UseSelectPropGetters } from 'downshift';
3
+ import { NormalizedDropdownItemType } from '../types';
4
+ import './DropdownList.scss';
5
+ type DropdownListProps<ValueType> = {
6
+ ariaLabelChosenSingular?: string;
7
+ ariaLabelSelectedItem?: string;
8
+ getMenuProps: UseComboboxPropGetters<ValueType>['getMenuProps'] | UseSelectPropGetters<ValueType>['getMenuProps'];
9
+ getItemProps: UseComboboxPropGetters<ValueType>['getItemProps'] | UseSelectPropGetters<ValueType>['getItemProps'];
10
+ highlightedIndex: number;
11
+ isOpen: boolean;
12
+ listItems: NormalizedDropdownItemType<ValueType | string>[];
13
+ floatingStyles: {
14
+ [key: string]: any;
15
+ } | undefined;
16
+ setListRef: (node: HTMLElement | null) => void;
17
+ loading?: boolean;
18
+ loadingText?: string;
19
+ noMatchesText?: string;
20
+ selectAllCheckboxState?: () => boolean | 'indeterminate';
21
+ selectAllItem?: NormalizedDropdownItemType<string>;
22
+ selectedItems: NormalizedDropdownItemType<ValueType>[];
23
+ style?: React.CSSProperties;
24
+ readOnly?: boolean;
25
+ };
26
+ export declare const DropdownList: <ValueType extends unknown>({ ariaLabelChosenSingular, ariaLabelSelectedItem, getItemProps, getMenuProps, isOpen, highlightedIndex, listItems, floatingStyles, setListRef, loading, loadingText, noMatchesText, selectAllCheckboxState, selectAllItem, selectedItems, readOnly, ...rest }: DropdownListProps<ValueType>) => React.JSX.Element;
27
+ export {};
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { UseComboboxGetToggleButtonPropsReturnValue, UseMultipleSelectionGetSelectedItemPropsOptions } from 'downshift';
3
+ import { NormalizedDropdownItemType } from '../types';
4
+ import './FieldComponents.scss';
5
+ export declare const SelectedItemTag: <ValueType extends unknown>({ ariaLabelRemoveSelected, ariaLabelChosen, disabled, getSelectedItemProps, index, readOnly, removeSelectedItem, selectedItem, }: {
6
+ ariaLabelRemoveSelected: string;
7
+ ariaLabelChosen?: string;
8
+ disabled?: boolean;
9
+ getSelectedItemProps?: (options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType<ValueType>>) => any;
10
+ index?: number;
11
+ readOnly?: boolean;
12
+ removeSelectedItem: (item: NormalizedDropdownItemType<ValueType>) => void;
13
+ selectedItem: NormalizedDropdownItemType<ValueType>;
14
+ }) => React.JSX.Element;
15
+ export declare const DropdownFieldAppendix: (props: Partial<UseComboboxGetToggleButtonPropsReturnValue> & {
16
+ ariaLabelCloseList: string;
17
+ ariaLabelOpenList: string;
18
+ clearable?: boolean;
19
+ labelClearSelected: string;
20
+ disabled?: boolean;
21
+ focusable?: boolean;
22
+ isOpen: boolean;
23
+ loading: boolean;
24
+ loadingText: string | undefined;
25
+ onClear: () => void;
26
+ itemIsSelected: boolean;
27
+ } & React.RefAttributes<HTMLButtonElement>) => React.ReactElement | null;
28
+ export declare const ClearableButton: ({ onClear, labelClearSelectedItems, focusable, }: {
29
+ onClear: () => void;
30
+ labelClearSelectedItems?: string;
31
+ focusable?: boolean;
32
+ ariaLabelClearItems?: string;
33
+ }) => React.JSX.Element;