@entur/dropdown 4.0.10 → 5.0.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.
- package/dist/beta/Dropdown.d.ts +56 -0
- package/dist/beta/MultiSelect.d.ts +67 -0
- package/dist/beta/SearchableDropdown.d.ts +18 -5
- package/dist/beta/components/DropdownList.d.ts +24 -0
- package/dist/beta/components/FieldComponents.d.ts +24 -0
- package/dist/beta/index.d.ts +2 -0
- package/dist/beta/utils.d.ts +22 -0
- package/dist/dropdown.cjs.development.js +707 -155
- package/dist/dropdown.cjs.development.js.map +1 -1
- package/dist/dropdown.cjs.production.min.js +1 -1
- package/dist/dropdown.cjs.production.min.js.map +1 -1
- package/dist/dropdown.esm.js +708 -158
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +160 -87
- package/package.json +7 -7
- package/dist/beta/DropdownList.d.ts +0 -17
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { VariantType } from '@entur/form';
|
|
3
|
+
import { NormalizedDropdownItemType } from '../useNormalizedItems';
|
|
4
|
+
import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
|
|
5
|
+
import './Dropdown.scss';
|
|
6
|
+
export type DropdownBetaProps = {
|
|
7
|
+
/** Tilgjengelige valg i dropdown-en */
|
|
8
|
+
items: PotentiallyAsyncDropdownItemType;
|
|
9
|
+
/** Valgt verdi. Bruk null for ingen verdi. */
|
|
10
|
+
selectedItem: NormalizedDropdownItemType | null;
|
|
11
|
+
/** Beskrivende tekst som forklarer feltet */
|
|
12
|
+
label: string;
|
|
13
|
+
/** Tooltip for labelen */
|
|
14
|
+
labelTooltip?: 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 dropdown-en */
|
|
20
|
+
prepend?: React.ReactNode;
|
|
21
|
+
/** Deaktiver dropdown-en */
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/** Setter dropdown-en 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?: (selectedItem: NormalizedDropdownItemType | null) => void;
|
|
31
|
+
/** Lar brukeren velge ved å "tab-e" seg ut av komponenten */
|
|
32
|
+
selectOnTab?: boolean;
|
|
33
|
+
/** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe */
|
|
34
|
+
openOnFocus?: boolean;
|
|
35
|
+
/** Antall millisekunder man venter før man kaller en potensiell items-funksjon */
|
|
36
|
+
debounceTimeout?: number;
|
|
37
|
+
/** Om man skal ha mulighet for å nullstille Dropdown-en
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
clearable?: boolean;
|
|
41
|
+
/** Ekstra klassenavn */
|
|
42
|
+
className?: string;
|
|
43
|
+
/** Marker første valgmulighet automatisk */
|
|
44
|
+
highlightFirstItemOnOpen?: boolean;
|
|
45
|
+
/** Styling som sendes ned til Dropdown-lista */
|
|
46
|
+
listStyle?: {
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
};
|
|
49
|
+
/** Plasserer labelen statisk på toppen av inputfeltet
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
disableLabelAnimation?: boolean;
|
|
53
|
+
/** Alle ekstra props videresendes til Downshift */
|
|
54
|
+
[key: string]: any;
|
|
55
|
+
};
|
|
56
|
+
export declare const DropdownBeta: ({ className, clearable, debounceTimeout, feedback, items: initialItems, label, listStyle, onChange, openOnFocus, placeholder, readonly, selectedItem, selectOnBlur, selectOnTab, variant, ...rest }: DropdownBetaProps) => JSX.Element;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { VariantType } from '@entur/form';
|
|
3
|
+
import { NormalizedDropdownItemType } from '../useNormalizedItems';
|
|
4
|
+
import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
|
|
5
|
+
import './Dropdown.scss';
|
|
6
|
+
export type MultiSelectBetaProps = {
|
|
7
|
+
/** Tilgjengelige valg i MultiSelect */
|
|
8
|
+
items: PotentiallyAsyncDropdownItemType;
|
|
9
|
+
/** Elementer som er valgt blant 'items'.
|
|
10
|
+
* Denne skal oppdateres av onChange.
|
|
11
|
+
*/
|
|
12
|
+
selectedItems: NormalizedDropdownItemType[];
|
|
13
|
+
/** Callback med alle valgte verdier.
|
|
14
|
+
* Bruk denne til å oppdatere selectedItems-listen */
|
|
15
|
+
onChange: (selectedItems: NormalizedDropdownItemType[]) => void;
|
|
16
|
+
/** Beskrivende tekst som forklarer feltet */
|
|
17
|
+
label?: string;
|
|
18
|
+
/** Hvilken valideringsvariant som gjelder */
|
|
19
|
+
variant?: VariantType;
|
|
20
|
+
/** Valideringsmelding, brukes sammen med `variant` */
|
|
21
|
+
feedback?: string;
|
|
22
|
+
/** Tekst eller ikon som kommer før MultiSelect */
|
|
23
|
+
prepend?: React.ReactNode;
|
|
24
|
+
/** Om dropdown-en er deaktivert */
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/** Om dropdown-en er i read-only modus */
|
|
27
|
+
readOnly?: boolean;
|
|
28
|
+
/** Placeholder-tekst når ingenting er satt */
|
|
29
|
+
placeholder?: string;
|
|
30
|
+
/** En tekst som beskriver hva som skjer når man venter på items */
|
|
31
|
+
loadingText?: string;
|
|
32
|
+
/** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
openOnFocus?: boolean;
|
|
36
|
+
/** Skjuler «Velg alle» fra listen med valg
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
hideSelectAll?: boolean;
|
|
40
|
+
/** Teksten som vises for «Velg alle»-elementet i listen
|
|
41
|
+
* @default "Velg alle"
|
|
42
|
+
*/
|
|
43
|
+
selectAllLabel?: string;
|
|
44
|
+
/** Ekstra klassenavn */
|
|
45
|
+
className?: string;
|
|
46
|
+
/** Tekst for skjemleser på knapper for å fjerne valgt element
|
|
47
|
+
* @default "trykk for å fjerne valg"
|
|
48
|
+
*/
|
|
49
|
+
ariaLabelRemoveSelected?: string;
|
|
50
|
+
/** Styling som sendes ned til MultiSelect-lista */
|
|
51
|
+
listStyle?: {
|
|
52
|
+
[key: string]: any;
|
|
53
|
+
};
|
|
54
|
+
/** Antall millisekunder man venter før man kaller en potensiell items-funksjon
|
|
55
|
+
* @default 250
|
|
56
|
+
*/
|
|
57
|
+
debounceTimeout?: number;
|
|
58
|
+
/** Om en knapp for å fjerne alle valg skal vises
|
|
59
|
+
* @default false
|
|
60
|
+
*/
|
|
61
|
+
clearable?: boolean;
|
|
62
|
+
selectOnBlur?: boolean;
|
|
63
|
+
readonly?: boolean;
|
|
64
|
+
loading?: boolean;
|
|
65
|
+
style?: React.CSSProperties;
|
|
66
|
+
};
|
|
67
|
+
export declare const MultiSelectBeta: ({ ariaLabelRemoveSelected, className, clearable, debounceTimeout, feedback, hideSelectAll, items: initialItems, label, listStyle, onChange, openOnFocus, placeholder, readonly, selectAllLabel, selectedItems, selectOnBlur, style, variant, ...rest }: MultiSelectBetaProps) => JSX.Element;
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { VariantType } from '@entur/form';
|
|
3
3
|
import { NormalizedDropdownItemType } from '../useNormalizedItems';
|
|
4
|
-
import '
|
|
4
|
+
import { PotentiallyAsyncDropdownItemType } from '../useResolvedItems';
|
|
5
|
+
import './Dropdown.scss';
|
|
5
6
|
export type SearchableDropdownProps = {
|
|
6
7
|
/** Tilgjengelige valg i dropdown-en */
|
|
7
|
-
items:
|
|
8
|
-
/** Valgt element. Bruk null for ingen verdi.
|
|
8
|
+
items: PotentiallyAsyncDropdownItemType;
|
|
9
|
+
/** Valgt element. Bruk null for ingen verdi.
|
|
10
|
+
* Det er denne som skal oppdateres av onChange
|
|
11
|
+
*/
|
|
9
12
|
selectedItem: NormalizedDropdownItemType | null;
|
|
10
13
|
/** Callback for når brukeren endrer valg */
|
|
11
14
|
onChange: (value: NormalizedDropdownItemType | null) => void;
|
|
15
|
+
/** Filtreringen som blir brukt dersom man har en searchable Dropdown
|
|
16
|
+
* @default Enkel tekstsammenligning
|
|
17
|
+
*/
|
|
18
|
+
itemFilter?: (item: NormalizedDropdownItemType, inputValue: string | undefined) => boolean;
|
|
12
19
|
/** Beskrivende tekst som forklarer feltet */
|
|
13
20
|
label: string;
|
|
14
21
|
/** Placeholder-tekst når ingenting er satt */
|
|
@@ -21,10 +28,17 @@ export type SearchableDropdownProps = {
|
|
|
21
28
|
* @default false
|
|
22
29
|
*/
|
|
23
30
|
openOnFocus?: boolean;
|
|
31
|
+
/** Plasserer labelen statisk på toppen av inputfeltet
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
disableLabelAnimation?: boolean;
|
|
35
|
+
/** Antall millisekunder man venter før man kaller en potensiell items-funksjon */
|
|
36
|
+
debounceTimeout?: number;
|
|
24
37
|
/** Gjør dropdown-en til å kun kunne leses
|
|
25
38
|
* @default false
|
|
26
39
|
*/
|
|
27
40
|
readonly?: boolean;
|
|
41
|
+
selectOnBlur?: boolean;
|
|
28
42
|
/** Hvilken valideringsvariant som gjelder */
|
|
29
43
|
variant?: VariantType;
|
|
30
44
|
/** Valideringsmelding, brukes sammen med `variant` */
|
|
@@ -37,6 +51,5 @@ export type SearchableDropdownProps = {
|
|
|
37
51
|
listStyle?: {
|
|
38
52
|
[key: string]: any;
|
|
39
53
|
};
|
|
40
|
-
[key: string]: any;
|
|
41
54
|
};
|
|
42
|
-
export declare const SearchableDropdownBeta: ({
|
|
55
|
+
export declare const SearchableDropdownBeta: ({ className, clearable, debounceTimeout, disableLabelAnimation, feedback, itemFilter, items: initialItems, label, listStyle, onChange, openOnFocus, placeholder, readonly, selectedItem: value, selectOnBlur, variant, ...rest }: SearchableDropdownProps) => JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { UseComboboxGetMenuPropsOptions, GetPropsCommonOptions, UseComboboxGetItemPropsOptions } from 'downshift';
|
|
3
|
+
import { NormalizedDropdownItemType } from '../../useNormalizedItems';
|
|
4
|
+
import './DropdownList.scss';
|
|
5
|
+
type DropdownListProps = {
|
|
6
|
+
selectedItems: NormalizedDropdownItemType[];
|
|
7
|
+
isOpen: boolean;
|
|
8
|
+
listItems: NormalizedDropdownItemType[];
|
|
9
|
+
highlightedIndex: number;
|
|
10
|
+
listStyle: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
} | undefined;
|
|
13
|
+
getMenuProps: (options?: UseComboboxGetMenuPropsOptions | undefined, otherOptions?: GetPropsCommonOptions | undefined) => any;
|
|
14
|
+
getItemProps: (options: UseComboboxGetItemPropsOptions<NormalizedDropdownItemType>) => any;
|
|
15
|
+
selectAllCheckboxState?: () => boolean | 'indeterminate';
|
|
16
|
+
noMatchesText?: string;
|
|
17
|
+
loadingText?: string;
|
|
18
|
+
selectedItemAriaLabel?: string;
|
|
19
|
+
loading?: boolean;
|
|
20
|
+
selectAllItem?: NormalizedDropdownItemType;
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
};
|
|
23
|
+
export declare const DropdownList: ({ selectedItems, listItems, inputValue, isOpen, getMenuProps, getItemProps, highlightedIndex, showSelectAllInList, loading, selectAllCheckboxState, selectAllItem, listStyle, noMatchesText, loadingText, selectedItemAriaLabel, ...rest }: DropdownListProps) => JSX.Element;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { UseComboboxGetToggleButtonPropsOptions, UseMultipleSelectionGetSelectedItemPropsOptions } from 'downshift';
|
|
2
|
+
import { NormalizedDropdownItemType } from '../../useNormalizedItems';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import './FieldComponents.scss';
|
|
5
|
+
export declare const SelectedElementsTag: ({ getSelectedItemProps, removeSelectedItem, selectedItem, index, ariaLabelRemoveSelected, }: {
|
|
6
|
+
getSelectedItemProps: (options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType>) => any;
|
|
7
|
+
removeSelectedItem: (item: NormalizedDropdownItemType) => void;
|
|
8
|
+
selectedItem: NormalizedDropdownItemType;
|
|
9
|
+
index: number;
|
|
10
|
+
ariaLabelRemoveSelected: string;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export declare const FieldAppend: React.FC<{
|
|
13
|
+
selectedItems: (NormalizedDropdownItemType | null)[];
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
clearable: boolean;
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
loadingText?: string;
|
|
18
|
+
ariaLabelClearItems?: string;
|
|
19
|
+
clearSelectedItemsLabel?: string;
|
|
20
|
+
readOnly: boolean;
|
|
21
|
+
focusable?: boolean;
|
|
22
|
+
onClear: () => void;
|
|
23
|
+
getToggleButtonProps: (options?: UseComboboxGetToggleButtonPropsOptions | undefined) => any;
|
|
24
|
+
}>;
|
package/dist/beta/index.d.ts
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NormalizedDropdownItemType } from '../useNormalizedItems';
|
|
2
|
+
export declare function lowerCaseFilterTest(item: NormalizedDropdownItemType, input: string | undefined): boolean;
|
|
3
|
+
export declare const itemToString: (item: NormalizedDropdownItemType | null) => string;
|
|
4
|
+
type useMultiselectUtilsType = {
|
|
5
|
+
selectedItems: NormalizedDropdownItemType[];
|
|
6
|
+
listItems: NormalizedDropdownItemType[];
|
|
7
|
+
selectAllValue: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const useMultiselectUtils: ({ listItems, selectedItems, selectAllValue, }: useMultiselectUtilsType) => {
|
|
10
|
+
addClickedItemToSelectedItems: (clickedItem: NormalizedDropdownItemType, onChange: (value: NormalizedDropdownItemType[]) => void) => void;
|
|
11
|
+
allListItemsAreSelected: boolean;
|
|
12
|
+
clickedItemIsInSelectedItems: (clickedItem: NormalizedDropdownItemType) => boolean;
|
|
13
|
+
clickedItemIsSelectAll: (clickedItem: NormalizedDropdownItemType) => boolean;
|
|
14
|
+
hasSelectedItems: boolean;
|
|
15
|
+
listItemsWithoutSelectAll: NormalizedDropdownItemType[];
|
|
16
|
+
removeClickedItemFromSelectedItems: (clickedItem: NormalizedDropdownItemType, onChange: (value: NormalizedDropdownItemType[]) => void) => void;
|
|
17
|
+
selectAllCheckboxState: () => boolean | "indeterminate";
|
|
18
|
+
selectAllUnselectedItemsInListItems: (onChange: (value: NormalizedDropdownItemType[]) => void) => void;
|
|
19
|
+
someListItemsAreSelected: boolean;
|
|
20
|
+
unselectAllListItems: (onChange: (value: NormalizedDropdownItemType[]) => void) => void;
|
|
21
|
+
};
|
|
22
|
+
export {};
|