@entur/dropdown 5.0.23-alpha.0 → 5.0.24
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/dropdown.cjs.development.js +10 -3
- 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 +10 -3
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +67 -67
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.cjs.development.js","sources":["../src/deprecated/DownshiftProvider.tsx","../src/deprecated/DropdownList.tsx","../src/deprecated/DropdownToggleButton.tsx","../src/deprecated/DropdownLoadingDots.tsx","../src/deprecated/BaseDropdown.tsx","../src/deprecated/RegularDropdown.tsx","../src/deprecated/SearchableDropdown.tsx","../src/deprecated/DropdownInputGroup.tsx","../src/useNormalizedItems.ts","../src/useResolvedItems.ts","../src/deprecated/Dropdown.tsx","../src/deprecated/MultiSelect.tsx","../src/components/DropdownList.tsx","../src/components/FieldComponents.tsx","../src/utils.ts","../src/SearchableDropdown.tsx","../src/MultiSelect.tsx","../src/Dropdown.tsx","../src/NativeDropdown.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport Downshift, {\n ControllerStateAndHelpers,\n DownshiftState,\n StateChangeOptions,\n} from 'downshift';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport classNames from 'classnames';\n\nconst DownshiftContext =\n React.createContext<ControllerStateAndHelpers<NormalizedDropdownItemType> | null>(\n null,\n );\n\nexport type DownshiftProviderProps = {\n onChange?: (\n selectedItem: NormalizedDropdownItemType,\n stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemType>,\n ) => void;\n onInputValueChange?: (value: string) => void;\n inputValue?: string;\n initialSelectedItem?: NormalizedDropdownItemType;\n highlightFirstItemOnOpen?: boolean;\n className?: string;\n style?: React.CSSProperties;\n searchable?: boolean;\n [key: string]: any;\n};\nexport const DownshiftProvider: React.FC<DownshiftProviderProps> = ({\n children,\n onChange = () => undefined,\n onInputValueChange = () => undefined,\n highlightFirstItemOnOpen = false,\n className,\n style,\n searchable = false,\n ...rest\n}) => {\n const handleStateChange = (\n changes: any,\n stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemType>,\n ) => {\n if (\n changes.type ===\n Downshift.stateChangeTypes.controlledPropUpdatedSelectedItem\n ) {\n return;\n }\n if ('selectedItem' in changes) {\n onChange(changes.selectedItem, stateAndHelpers);\n } else if ('inputValue' in changes) {\n onInputValueChange(changes.inputValue);\n }\n };\n\n const stateReducer = (\n _: DownshiftState<NormalizedDropdownItemType>,\n changes: StateChangeOptions<NormalizedDropdownItemType>,\n ): Partial<StateChangeOptions<NormalizedDropdownItemType>> => {\n const highlightFirstOnOpen =\n highlightFirstItemOnOpen && 'isOpen' in changes && changes.isOpen;\n const highlightFirstItemIndex: Partial<\n StateChangeOptions<NormalizedDropdownItemType>\n > = highlightFirstOnOpen ? { highlightedIndex: 0 } : {};\n\n if (searchable) {\n const { type } = changes;\n\n switch (type) {\n case '__autocomplete_change_input__':\n return {\n // return normal changes.\n ...changes,\n ...highlightFirstItemIndex,\n };\n case '__autocomplete_click_item__':\n case '__autocomplete_keydown_enter__':\n case '__autocomplete_blur_input__':\n case '__autocomplete_mouseup__':\n return {\n ...changes,\n // if we had an item highlighted in the previous state.\n // we will reset input field value to blank\n inputValue: '',\n ...highlightFirstItemIndex,\n };\n default:\n return {\n ...changes,\n ...highlightFirstItemIndex,\n };\n }\n } else {\n return { ...changes, ...highlightFirstItemIndex };\n }\n };\n\n return (\n <Downshift\n itemToString={item => (item ? item.label : '')}\n onStateChange={handleStateChange}\n stateReducer={stateReducer}\n {...rest}\n >\n {args => (\n <div className={classNames('eds-input-group', className)} style={style}>\n {/* This div is required by Downshift */}\n <DownshiftContext.Provider value={args}>\n {children}\n </DownshiftContext.Provider>\n </div>\n )}\n </Downshift>\n );\n};\n\nexport const useDownshift: () => ControllerStateAndHelpers<NormalizedDropdownItemType> =\n () => {\n const context = React.useContext(DownshiftContext);\n if (!context) {\n throw new Error('You need to wrap your component in a DownshiftProvider');\n }\n return context;\n };\n","import React from 'react';\nimport classNames from 'classnames';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { useDownshift } from './DownshiftProvider';\nimport { CheckIcon } from '@entur/icons';\nimport './DropdownList.scss';\n\nexport type DropdownListDeprecatedProps = {\n items: NormalizedDropdownItemType[];\n [key: string]: any;\n};\n\nexport const DropdownListDeprecated: React.FC<DropdownListDeprecatedProps> = ({\n items,\n ...rest\n}) => {\n const { highlightedIndex, isOpen, selectedItem, getItemProps, getMenuProps } =\n useDownshift();\n\n return (\n <ul\n className={classNames('eds-dropdown-list', {\n 'eds-dropdown-list--open': isOpen,\n })}\n {...getMenuProps()}\n {...rest}\n >\n {isOpen\n ? items.map((item, index) => (\n // eslint-disable-next-line react/jsx-key\n <li\n className={classNames('eds-dropdown-list__item', {\n 'eds-dropdown-list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown-list__item--selected': selectedItem === item,\n })}\n {...getItemProps({ key: `${index}${item.value}`, item, index })}\n >\n <span>{item.label}</span>\n {item.icons && (\n <span>\n {item.icons.map((Icon, index) => (\n <Icon\n key={index}\n inline\n className=\"eds-dropdown-list__item-icon\"\n />\n ))}\n </span>\n )}\n {selectedItem === item && <CheckIcon />}\n </li>\n ))\n : null}\n </ul>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DownArrowIcon } from '@entur/icons';\nimport { useDownshift } from './DownshiftProvider';\nimport './DropdownToggleButton.scss';\n\nexport const DropdownDeprecatedToggleButton: () => JSX.Element = () => {\n const { getToggleButtonProps, isOpen } = useDownshift();\n return (\n <button\n {...getToggleButtonProps({\n className: classNames('eds-dropdown__toggle-button', {\n 'eds-dropdown__toggle-button--open': isOpen,\n }),\n })}\n tabIndex=\"-1\"\n type=\"button\"\n >\n <DownArrowIcon />\n </button>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { LoadingDots } from '@entur/loader';\nimport './InlineSpinner.scss';\n\nexport type InlineSpinnerType = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekst for skjermlesere */\n children: string;\n [key: string]: any;\n};\nexport const DropdownDeprecatedLoadingDots: React.FC<InlineSpinnerType> = ({\n className,\n children,\n ...rest\n}) => (\n <div className={classNames('eds-inline-spinner', className)} {...rest}>\n <LoadingDots />\n <VisuallyHidden>{children}</VisuallyHidden>\n </div>\n);\n","import React from 'react';\nimport { BaseFormControl } from '@entur/form';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { DropdownListDeprecated } from './DropdownList';\nimport { DropdownDeprecatedToggleButton } from './DropdownToggleButton';\nimport { DropdownDeprecatedLoadingDots } from './DropdownLoadingDots';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './BaseDropdown.scss';\nimport { useDownshift } from './DownshiftProvider';\nimport { space } from '@entur/tokens';\n\ntype BaseDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemType[];\n loading?: boolean;\n loadingText?: string;\n placeholder?: string;\n style?: { [key: string]: any };\n listStyle?: { [key: string]: any };\n isFilled?: boolean;\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\nexport const BaseDropdownDeprecated: React.FC<BaseDropdownDeprecatedProps> = ({\n children,\n className,\n items,\n loading = false,\n loadingText = 'Loading...',\n //eslint-disable-next-line\n placeholder,\n style,\n listStyle,\n clearable,\n label,\n isFilled = false,\n disableLabelAnimation,\n ...rest\n}) => {\n const { getLabelProps } = useDownshift();\n return (\n <div className=\"eds-dropdown-wrapper\" style={style}>\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <BaseFormControl\n append={\n <Appendix\n clearable={clearable}\n loading={loading}\n loadingText={loadingText}\n readOnly={...rest.readOnly}\n />\n }\n className={className}\n label={label}\n isFilled={isFilled}\n labelProps={getLabelProps()}\n disableLabelAnimation={disableLabelAnimation}\n {...rest}\n >\n {children}\n </BaseFormControl>\n <DropdownListDeprecated\n items={items}\n style={{\n position: 'absolute',\n top: `${space.extraLarge3 + space.extraSmall}px`,\n ...listStyle,\n }}\n {...rest}\n />\n </div>\n );\n};\n\nconst ClearButton: React.FC<{ [key: string]: any }> = ({ ...props }) => {\n const { clearSelection, selectedItem } = useDownshift();\n return (\n <>\n {selectedItem && (\n <button\n className=\"eds-dropdown__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={() => clearSelection()}\n aria-label=\"Trykk for å fjerne valg\"\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n {selectedItem && <div className=\"eds-dropdown__divider\"></div>}\n </>\n );\n};\n\nconst Appendix: React.FC<{\n clearable: boolean;\n loading: boolean;\n loadingText: string;\n readOnly: boolean;\n}> = ({ clearable, loading, loadingText, readOnly }) => {\n if (loading) {\n return (\n <DropdownDeprecatedLoadingDots>\n {loadingText}\n </DropdownDeprecatedLoadingDots>\n );\n }\n if (readOnly) {\n return null;\n }\n return clearable ? (\n <>\n <ClearButton></ClearButton> <DropdownDeprecatedToggleButton />\n </>\n ) : (\n <DropdownDeprecatedToggleButton />\n );\n};\n","import React from 'react';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { useDownshift } from './DownshiftProvider';\nimport { BaseDropdownDeprecated } from './BaseDropdown';\n\ntype RegularDropdownDeprecatedProps = {\n items: NormalizedDropdownItemType[];\n disabled?: boolean;\n placeholder?: string;\n loading?: boolean;\n loadingText?: string;\n className?: string;\n selectOnTab?: boolean;\n openOnFocus?: boolean;\n listStyle?: { [key: string]: any };\n disableLabelAnimation?: boolean;\n clearable?: boolean;\n [key: string]: any;\n};\nexport const RegularDropdownDeprecated: React.FC<RegularDropdownDeprecatedProps> =\n React.forwardRef<HTMLButtonElement, RegularDropdownDeprecatedProps>(\n (\n {\n disabled,\n placeholder = 'Vennligst velg',\n selectOnTab = false,\n openOnFocus = false,\n listStyle,\n items,\n label,\n disableLabelAnimation,\n loading,\n loadingText,\n className,\n clearable,\n ...rest\n },\n ref,\n ) => {\n const {\n getToggleButtonProps,\n selectedItem,\n selectHighlightedItem,\n openMenu,\n isOpen,\n highlightedIndex,\n setHighlightedIndex,\n } = useDownshift();\n return (\n <BaseDropdownDeprecated\n disabled={disabled}\n listStyle={listStyle}\n items={items}\n label={label}\n isFilled={selectedItem ? true : placeholder.length !== 0}\n disableLabelAnimation={disableLabelAnimation}\n loading={loading}\n loadingText={loadingText}\n className={className}\n clearable={clearable}\n {...rest}\n >\n <button\n {...getToggleButtonProps({\n className: 'eds-form-control eds-dropdown__selected-item',\n style: { textAlign: 'left' },\n disabled,\n type: 'button',\n onKeyDown: e => {\n if (selectOnTab && e.key === 'Tab') {\n selectHighlightedItem();\n }\n\n if (isOpen) {\n const keyDownValue = e.key;\n const matchedItems = items\n .map((item, index) => ({ ...item, index }))\n .filter(item => {\n const firstCharacter = item.label\n .trim()\n .charAt(0)\n .toLowerCase();\n return firstCharacter === keyDownValue;\n });\n\n const nextHighlightItem = matchedItems.find(\n item => item.index > (highlightedIndex ?? 0),\n );\n\n if (nextHighlightItem) {\n setHighlightedIndex(nextHighlightItem.index);\n } else if (matchedItems.length > 0) {\n setHighlightedIndex(matchedItems[0].index);\n }\n }\n },\n onFocus: () => {\n if (openOnFocus) {\n !isOpen && openMenu();\n }\n },\n ...rest,\n })}\n ref={ref}\n >\n {selectedItem ? selectedItem.label : placeholder}\n </button>\n </BaseDropdownDeprecated>\n );\n },\n );\n","import React, { useRef, useState } from 'react';\nimport { mergeRefs } from '@entur/utils';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { BaseDropdownDeprecated } from './BaseDropdown';\nimport { useDownshift } from './DownshiftProvider';\nimport './SearchableDropdown.scss';\n\ntype SearchableDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemType[];\n loading?: boolean;\n loadingText?: string;\n placeholder?: string;\n prepend?: React.ReactNode;\n readOnly?: boolean;\n selectOnTab?: boolean;\n openOnFocus?: boolean;\n listStyle?: { [key: string]: any };\n clearable: boolean;\n itemFilter?: (item: NormalizedDropdownItemType) => boolean;\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nfunction LowerCaseFilterTest(\n item: NormalizedDropdownItemType,\n input: string | null,\n) {\n if (!input) {\n return true;\n }\n const sanitizeEscapeCharacters = input.replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n '\\\\$&',\n );\n const inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');\n return inputRegex.test(item.label);\n}\n\n/**\n * @deprecated\n * New SearchableDropdown available\n *\n * migration guide to new dropdown:\n * - change import from 'DropdownDeprecated' to 'Dropdown'\n * - change from 'value' to 'selectedItem'\n * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'\n * - 'onChange' must update value of 'selectedItem'\n */\nexport const SearchableDropdownDeprecated: React.FC<SearchableDropdownDeprecatedProps> =\n React.forwardRef<HTMLInputElement, SearchableDropdownDeprecatedProps>(\n (\n {\n disabled = false,\n className,\n items,\n loading,\n loadingText,\n readOnly = false,\n prepend,\n selectOnTab = false,\n openOnFocus = false,\n listStyle,\n clearable,\n itemFilter = (\n item: NormalizedDropdownItemType,\n inputValue: string | null,\n ) => LowerCaseFilterTest(item, inputValue),\n label,\n disableLabelAnimation,\n placeholder,\n ...rest\n },\n ref,\n ) => {\n const {\n getInputProps,\n inputValue,\n selectHighlightedItem,\n isOpen,\n openMenu,\n closeMenu,\n selectedItem,\n } = useDownshift();\n\n const [hideSelectedItem, setHideSelectedItem] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const filteredItems = React.useMemo(() => {\n return items.filter(item => itemFilter(item, inputValue));\n }, [inputValue, items, itemFilter]);\n\n return (\n <BaseDropdownDeprecated\n items={filteredItems}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n loading={loading}\n loadingText={loadingText}\n prepend={prepend}\n listStyle={listStyle}\n clearable={clearable}\n label={label}\n isFilled={selectedItem ? true : false}\n disableLabelAnimation={disableLabelAnimation}\n >\n {!hideSelectedItem && selectedItem && !inputValue && (\n <span className=\"eds-dropdown__searchable-selected-item__wrapper\">\n <span\n className=\"eds-dropdown__searchable-selected-item\"\n onClick={() => inputRef.current?.focus()}\n >\n {selectedItem.label}\n </span>\n </span>\n )}\n <input\n {...getInputProps({\n disabled,\n readOnly,\n className: 'eds-form-control eds-dropdown__input',\n onKeyDown: e => {\n if (selectOnTab && e.key === 'Tab') selectHighlightedItem();\n },\n onFocus: () => {\n if (!isOpen && openOnFocus) openMenu();\n setHideSelectedItem(true);\n },\n placeholder: selectedItem ? selectedItem.label : placeholder,\n ...rest,\n })}\n onBlur={() => {\n setHideSelectedItem(false);\n closeMenu();\n }}\n ref={mergeRefs<HTMLInputElement>(ref, inputRef)}\n />\n </BaseDropdownDeprecated>\n );\n },\n );\n","import { FeedbackText, VariantProvider, VariantType } from '@entur/form';\nimport React from 'react';\n\nexport type DropdownInputGroupDeprecatedProps = {\n feedback?: string;\n variant?: VariantType;\n className?: string;\n style?: { [key: string]: any };\n};\nexport const DropdownInputGroupDeprecated: React.FC<DropdownInputGroupDeprecatedProps> =\n ({ children, feedback, variant, className, style }) => {\n return (\n <VariantProvider variant={variant}>\n <div className={className} style={style}>\n {children}\n {feedback && variant && (\n <FeedbackText variant={variant}>{feedback}</FeedbackText>\n )}\n </div>\n </VariantProvider>\n );\n };\n","import React from 'react';\n\nexport type DropdownItemType =\n | { value?: string; label: string; icons?: React.ComponentType<any>[] }\n | string;\n\nexport type NormalizedDropdownItemType = {\n value: string;\n label: string;\n icons?: React.ComponentType<any>[];\n};\n\nexport const useNormalizedItems = (\n items: DropdownItemType[],\n): NormalizedDropdownItemType[] =>\n React.useMemo(\n () =>\n items.map(item => {\n if (typeof item == 'string') {\n return { value: item, label: item };\n }\n\n if (!('value' in item)) {\n return { ...item, value: item.label };\n }\n return item as NormalizedDropdownItemType;\n }),\n [items],\n );\n","import React from 'react';\nimport { debounce } from '@entur/utils';\nimport {\n DropdownItemType,\n NormalizedDropdownItemType,\n useNormalizedItems,\n} from './useNormalizedItems';\n\nconst useIsMounted = () => {\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef.current;\n};\n\ntype AsyncDropdownItemType = (inputType: string) => Promise<DropdownItemType[]>;\ntype SyncDropdownItemType = (inputType: string) => DropdownItemType[];\nexport type PotentiallyAsyncDropdownItemType =\n | DropdownItemType[]\n | SyncDropdownItemType\n | AsyncDropdownItemType;\n\ntype ResolverState = {\n items: DropdownItemType[];\n loading: boolean;\n};\n\ntype ResolverAction =\n | {\n type: 'request results';\n }\n | {\n type: 'received results';\n payload: DropdownItemType[];\n };\n\nconst reducer = (_state: ResolverState, action: ResolverAction) => {\n switch (action.type) {\n case 'request results':\n return { items: [], loading: true };\n case 'received results':\n return { items: action.payload, loading: false };\n }\n};\n\nexport const useResolvedItems = (\n /** The list of items, or an async function that resolves the list of items */\n itemsOrItemsResolver: PotentiallyAsyncDropdownItemType,\n /** The time to wait after the input changes to the fetchItems method is called */\n debounceTimeout = 250,\n): {\n fetchItems: (arg: string) => void;\n loading: boolean;\n items: NormalizedDropdownItemType[];\n} => {\n const isItemsFunction = typeof itemsOrItemsResolver === 'function';\n\n // Here, we normalize the itemsResolver argument to an async function, so we\n // can use it without thinking about the differences later\n const itemsResolver = React.useMemo(\n () =>\n isItemsFunction\n ? (itemsOrItemsResolver as AsyncDropdownItemType)\n : () => Promise.resolve(itemsOrItemsResolver as DropdownItemType[]),\n [itemsOrItemsResolver, isItemsFunction],\n );\n\n const [{ items, loading }, dispatch] = React.useReducer(reducer, {\n items: isItemsFunction ? [] : (itemsOrItemsResolver as DropdownItemType[]),\n loading: false,\n });\n\n // This is a way to check whether or not the dropdown is still in the\n // document. We use it below to make sure we're not updating the state of\n // an unmounted component.\n const isMounted = useIsMounted();\n\n // Next, let's create the fetching function. This should be called whenever\n // the input value changes\n const fetchItems = React.useCallback(\n async (inputValue: string) => {\n if (!isMounted) {\n return;\n }\n dispatch({ type: 'request results' });\n const resolvedItems = await itemsResolver(inputValue);\n if (isMounted) {\n dispatch({ type: 'received results', payload: resolvedItems });\n }\n },\n [itemsResolver, isMounted],\n );\n\n const normalizedItems = useNormalizedItems(items);\n React.useEffect(() => {\n // Let's fetch the list initially if it's specified\n if (isItemsFunction) {\n fetchItems('');\n }\n }, [isItemsFunction, fetchItems]);\n\n return {\n items: normalizedItems,\n loading: isItemsFunction ? loading : false,\n fetchItems: debounce(fetchItems, debounceTimeout),\n };\n};\n","import React from 'react';\nimport { VariantType } from '@entur/form';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { RegularDropdownDeprecated } from './RegularDropdown';\nimport { DownshiftProvider } from './DownshiftProvider';\nimport { SearchableDropdownDeprecated } from './SearchableDropdown';\nimport { DropdownInputGroupDeprecated } from './DropdownInputGroup';\nimport {\n useResolvedItems,\n PotentiallyAsyncDropdownItemType,\n} from '../useResolvedItems';\n\nexport type DropdownDeprecatedProps = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i dropdownen */\n items: PotentiallyAsyncDropdownItemType;\n /** Valgt verdi. Bruk null for ingen verdi. */\n value?: string | null;\n /** Om man skal kunne søke i dropdownen eller ikke */\n searchable?: boolean;\n /** Tooltip for labelen */\n labelTooltip?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer før dropdownen */\n prepend?: React.ReactNode;\n /** Deaktiver dropdownen */\n disabled?: boolean;\n /** Setter dropdownen i read-only modus */\n readOnly?: boolean;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** En tekst som beskriver hva som skjer når man venter på items */\n loadingText?: string;\n /** Callback når brukeren endrer valg */\n onChange?: (selectedItem: NormalizedDropdownItemType | null) => void;\n /** Lar brukeren velge ved å \"tæbbe\" seg ut av komponenten */\n selectOnTab?: boolean;\n /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe */\n openOnFocus?: boolean;\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon */\n debounceTimeout?: number;\n /** Om man skal ha muliget for å nullstille Dropdownen\n * @default false\n */\n clearable?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Marker første valgmulighet automatisk */\n highlightFirstItemOnOpen?: boolean;\n /** Styling som sendes ned til Dropdown-lista */\n listStyle?: { [key: string]: any };\n /** Filtreringen som blir brukt dersom man har en searchable Dropdown\n * @default Enkel tekstsammenligning\n */\n itemFilter?: (item: NormalizedDropdownItemType) => boolean;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Alle ekstra props videresendes til Downshift */\n [key: string]: any;\n};\n\n/**\n * @deprecated\n * New Dropdown available\n *\n * migration guide to new dropdown:\n * - change import from 'DropdownDeprecated' to 'Dropdown'\n * + if 'searchable', switch to 'SearchableDropdown'\n * - change from 'value' to 'selectedItem'\n * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'\n * - 'onChange' must update value of 'selectedItem'\n */\nexport const DropdownDeprecated: React.FC<DropdownDeprecatedProps> =\n React.forwardRef<\n HTMLInputElement | HTMLButtonElement,\n DropdownDeprecatedProps\n >(\n (\n {\n highlightFirstItemOnOpen,\n debounceTimeout,\n disabled,\n feedback,\n items,\n label,\n loadingText,\n onChange = () => undefined,\n placeholder,\n prepend,\n readOnly,\n searchable,\n selectOnTab,\n openOnFocus,\n variant,\n value,\n clearable = false,\n className,\n style,\n listStyle,\n itemFilter,\n disableLabelAnimation,\n ...rest\n },\n ref,\n ) => {\n const {\n items: normalizedItems,\n loading,\n fetchItems,\n } = useResolvedItems(items, debounceTimeout);\n\n const selectedItem =\n value === undefined\n ? undefined\n : normalizedItems.find(item => value === item.value) || null;\n\n const RenderedDropdown = searchable\n ? SearchableDropdownDeprecated\n : RegularDropdownDeprecated;\n const searchAbleProps = searchable\n ? {\n itemFilter: itemFilter,\n name: rest.name,\n 'data-cy': rest['data-cy'],\n }\n : { name: rest.name, 'data-cy': rest['data-cy'] };\n return (\n <DownshiftProvider\n selectedItem={selectedItem}\n onInputValueChange={fetchItems}\n onChange={onChange}\n value={value}\n highlightFirstItemOnOpen={highlightFirstItemOnOpen}\n className={className}\n style={style}\n searchable={searchable}\n {...rest}\n >\n <DropdownInputGroupDeprecated feedback={feedback} variant={variant}>\n <RenderedDropdown\n label={label}\n items={normalizedItems}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n prepend={prepend}\n selectOnTab={selectOnTab}\n openOnFocus={openOnFocus}\n listStyle={listStyle}\n clearable={clearable}\n disableLabelAnimation={disableLabelAnimation}\n ref={ref}\n {...searchAbleProps}\n />\n </DropdownInputGroupDeprecated>\n </DownshiftProvider>\n );\n },\n );\n","import React, { useState } from 'react';\nimport {\n useSelect,\n UseSelectProps,\n // StateChangeOptions,\n // UseSelectStateChangeOptions,\n} from 'downshift';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from '../useResolvedItems';\nimport { DropdownDeprecatedLoadingDots } from './DropdownLoadingDots';\nimport { useRandomId } from '@entur/utils';\nimport classNames from 'classnames';\nimport { CloseIcon, DownArrowIcon } from '@entur/icons';\nimport { space } from '@entur/tokens';\nimport './MultiSelect.scss';\nimport './DropdownList.scss';\n\nconst MultiSelectOldContext = React.createContext<{\n isOpen: boolean;\n reset: () => void;\n getToggleButtonProps: any;\n openMenu: () => void;\n openOnFocus?: boolean;\n} | null>(null);\nconst useMultiSelectOldContext = () => {\n const context = React.useContext(MultiSelectOldContext);\n if (!context) {\n throw new Error('You need to wrap your component in a DownshiftProvider');\n }\n return context;\n};\n\nfunction stateReducer(\n state: any, //StateChangeOptions<NormalizedDropdownItemType>,\n actionAndChanges: any, //UseSelectStateChangeOptions<NormalizedDropdownItemType>,\n) {\n const { changes, type } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick:\n return {\n ...changes,\n isOpen: true, // keep menu open after selection.\n highlightedIndex: state.highlightedIndex,\n };\n default:\n return changes;\n }\n}\ntype MultiSelectDeprecatedProps = {\n /** Tilgjengelige valg i MultiSelect */\n items: PotentiallyAsyncDropdownItemType;\n /** Tekst som vises i boksen når elementer er valgt */\n itemsSelectedLabel?: (\n selectedItems: NormalizedDropdownItemType[],\n numberOfItems?: number,\n ) => string;\n /** Beskrivende tekst som forklarer feltet */\n label?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer før MultiSelect */\n prepend?: React.ReactNode;\n /** Deaktiver dropdownen */\n disabled?: boolean;\n /** Setter dropdownen i read-only modus */\n readOnly?: boolean;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** En tekst som beskriver hva som skjer når man venter på items */\n loadingText?: string;\n /** Callback når brukeren endrer valg */\n onChange?: (e: any) => void;\n /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe\n * @default false\n */\n openOnFocus?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Styling som sendes ned til MultiSelect-lista */\n listStyle?: { [key: string]: any };\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon\n * @default 250\n */\n debounceTimeout?: number;\n /** Om man skal ha muliget for å nullstille Dropdownen\n * @default false\n */\n clearable?: boolean;\n loading?: boolean;\n style?: React.CSSProperties;\n initialSelectedItems?: NormalizedDropdownItemType[];\n} & Omit<\n UseSelectProps<NormalizedDropdownItemType>,\n 'initialSelectedItem' | 'items'\n>;\n\n/**\n * @deprecated\n * New MultiSelect available\n *\n * migration guide to new dropdown:\n * - change import from 'MultiSelectDeprecated' to 'MultiSelect'\n * - add state containing selected items to 'selectedItems' prop\n * + type of 'selectedItems' is 'NormalizedDropdownType[]' and does not include 'string'\n * - 'onChange' must update value of 'selectedItem'\n */\nexport const MultiSelectDeprecated: React.FC<MultiSelectDeprecatedProps> = ({\n className,\n clearable = false,\n debounceTimeout,\n disabled,\n feedback,\n initialSelectedItems = [],\n items: input,\n itemsSelectedLabel = items => SelectedItemsLabel(items),\n label,\n listStyle,\n loading = false,\n loadingText = '',\n onChange = () => undefined,\n openOnFocus = false,\n readOnly = false,\n style,\n variant,\n ...rest\n}) => {\n const { items } = useResolvedItems(input, debounceTimeout);\n const [selectedItems, setSelectedItems] =\n useState<NormalizedDropdownItemType[]>(initialSelectedItems);\n\n const reset = React.useCallback(() => {\n setSelectedItems([]);\n }, []);\n\n function isSelected(selectedCheckboxItem: NormalizedDropdownItemType) {\n return selectedItems.some(\n selected => selected.value === selectedCheckboxItem.value,\n );\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n openMenu,\n } = useSelect<NormalizedDropdownItemType>({\n items,\n stateReducer,\n selectedItem: null,\n onSelectedItemChange: ({ selectedItem }) => {\n if (!selectedItem) {\n return;\n }\n const itemIsFound = isSelected(selectedItem);\n if (itemIsFound) {\n const slicedItemList = selectedItems.filter(\n item => item.value !== selectedItem.value,\n );\n setSelectedItems(slicedItemList);\n onChange(slicedItemList);\n } else {\n const slicedItemList = [...selectedItems, selectedItem];\n setSelectedItems(slicedItemList);\n onChange(slicedItemList);\n }\n },\n ...rest,\n });\n const buttonText = selectedItems.length\n ? itemsSelectedLabel(selectedItems)\n : '';\n const multiSelectId = useRandomId('eds-multiselect');\n\n return (\n <MultiSelectOldContext.Provider\n value={{ isOpen, reset, getToggleButtonProps, openMenu, openOnFocus }}\n >\n <div\n className={classNames(\n 'eds-multiselect',\n 'eds-dropdown-wrapper',\n className,\n )}\n style={style}\n >\n <BaseFormControl\n label={label}\n labelId={multiSelectId}\n labelProps={...getLabelProps()}\n feedback={feedback}\n variant={variant}\n isFilled={selectedItems.length > 0 || isOpen}\n disabled={disabled}\n readOnly={readOnly}\n append={\n <Appendix\n hasSelected={clearable && selectedItems.length > 0}\n loading={loading}\n loadingText={loadingText}\n readOnly={readOnly}\n />\n }\n >\n <button\n {...getToggleButtonProps({\n style: {\n textAlign: 'left',\n },\n type: 'button',\n className: 'eds-form-control eds-multiselect__button',\n })}\n >\n {buttonText}\n </button>\n </BaseFormControl>\n <ul\n className={classNames('eds-dropdown-list', {\n 'eds-dropdown-list--open': isOpen,\n })}\n {...getMenuProps({\n style: {\n position: 'absolute',\n top: `${space.extraLarge3 + space.extraSmall}px`,\n ...listStyle,\n },\n })}\n >\n {isOpen &&\n items.map((item, index) => (\n <li\n className={classNames('eds-dropdown-list__item', {\n 'eds-dropdown-list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown-list__item--selected': isSelected(item),\n })}\n key={`${item.value}${index}`}\n {...getItemProps({\n item,\n index,\n })}\n style={{ display: 'flex' }}\n >\n <span style={{ display: 'flex' }}>\n <span\n className={classNames('eds-multiselect-checkbox', {\n 'eds-multiselect-checkbox--checked': isSelected(item),\n })}\n >\n <CheckboxIcon />\n </span>\n <span className=\"eds-multiselect__item-label\">\n {item.label}\n </span>\n </span>\n {item.icons && (\n <span>\n {item.icons.map((Icon, index) => (\n <Icon\n key={index}\n inline\n className=\"eds-dropdown-list__item-icon\"\n />\n ))}\n </span>\n )}\n </li>\n ))}\n </ul>\n </div>\n </MultiSelectOldContext.Provider>\n );\n};\n\nconst ClearButton: React.FC<{ [key: string]: any }> = ({ ...props }) => {\n const { reset } = useMultiSelectOldContext();\n return (\n <>\n <button\n className=\"eds-dropdown__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={() => reset()}\n {...props}\n >\n <CloseIcon />\n </button>\n <div className=\"eds-dropdown__divider\"></div>\n </>\n );\n};\n\nconst Appendix: React.FC<{\n loading: boolean;\n loadingText: string;\n readOnly: boolean;\n hasSelected: boolean;\n}> = ({ loading, loadingText, readOnly, hasSelected }) => {\n if (loading) {\n return (\n <DropdownDeprecatedLoadingDots>\n {loadingText}\n </DropdownDeprecatedLoadingDots>\n );\n }\n if (readOnly) {\n return null;\n }\n return hasSelected ? (\n <>\n <ClearButton></ClearButton>\n <DropdownToggleButton />\n </>\n ) : (\n <DropdownToggleButton />\n );\n};\n\nconst DropdownToggleButton = () => {\n const { getToggleButtonProps, isOpen, openMenu, openOnFocus } =\n useMultiSelectOldContext();\n return (\n <button\n {...getToggleButtonProps({\n className: classNames('eds-dropdown__toggle-button', {\n 'eds-dropdown__toggle-button--open': isOpen,\n }),\n onFocus: () => {\n if (openOnFocus) {\n openMenu();\n }\n },\n })}\n type=\"button\"\n >\n <DownArrowIcon />\n </button>\n );\n};\n\nconst CheckboxIcon: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n\nfunction SelectedItemsLabel(items: NormalizedDropdownItemType[]) {\n return items.length < 3\n ? items.map(item => item.label).toString()\n : `${items.length} elementer valgt`;\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetMenuPropsOptions,\n GetPropsCommonOptions,\n UseComboboxGetItemPropsOptions,\n} from 'downshift';\n\nimport { Checkbox } from '@entur/form';\nimport { VisuallyHidden } from '@entur/a11y';\n\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<NormalizedDropdownItemType>,\n ) => any;\n getMenuProps: (\n options?: UseComboboxGetMenuPropsOptions | undefined,\n otherOptions?: GetPropsCommonOptions | undefined,\n ) => any;\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType[];\n listStyle: { [key: string]: any } | undefined;\n loading?: boolean;\n loadingText?: string;\n noMatchesText?: string;\n selectAllCheckboxState?: () => boolean | 'indeterminate';\n selectAllItem?: NormalizedDropdownItemType;\n selectedItems: NormalizedDropdownItemType[];\n [key: string]: any;\n};\n\nexport const DropdownList = ({\n ariaLabelChosenSingular = 'valgt',\n ariaLabelSelectedItem = ', valgt element, trykk for å fjerne',\n getItemProps,\n getMenuProps,\n inputValue,\n isOpen,\n highlightedIndex,\n listItems,\n listStyle,\n loading = false,\n loadingText = 'Laster inn …',\n noMatchesText = 'Ingen treff for søket',\n selectAllCheckboxState,\n selectAllItem,\n selectedItems,\n showSelectAllInList = false,\n ...rest\n}: DropdownListProps) => {\n const isMultiselect = selectAllItem !== undefined;\n const isNoMatches =\n !loading &&\n (listItems.length === 0 ||\n (listItems?.length === 1 &&\n listItems?.[0]?.value === selectAllItem?.value));\n const isItemSelected = (item: NormalizedDropdownItemType) =>\n selectedItems.some(\n selectedItem =>\n selectedItem?.value === item?.value &&\n selectedItem?.label === item?.label,\n );\n\n const ariaLabelSelectAll = () => {\n switch (selectAllCheckboxState?.()) {\n case 'indeterminate': {\n return `${selectAllItem?.label}, delvis valgt`;\n }\n case true: {\n return `${selectAllItem?.label}, ${ariaLabelChosenSingular}`;\n }\n default: {\n return `${selectAllItem?.label}`;\n }\n }\n };\n\n const selectAllListItemContent = () => (\n <>\n <Checkbox\n aria-hidden=\"true\"\n checked={selectAllCheckboxState?.()}\n className=\"eds-dropdown__list__item__checkbox\"\n onChange={() => {\n return;\n }}\n tabIndex={-1}\n />\n <span\n className=\"eds-dropdown__list__item__text\"\n aria-label={ariaLabelSelectAll()}\n >\n {selectAllItem?.label}\n </span>\n </>\n );\n\n const listItemContent = (item: NormalizedDropdownItemType) => {\n return (\n <>\n <Checkbox\n aria-hidden=\"true\"\n checked={isItemSelected(item)}\n className=\"eds-dropdown__list__item__checkbox\"\n onChange={() => {\n return;\n }}\n style={!isMultiselect ? { display: 'none' } : {}}\n tabIndex={-1}\n />\n\n <span className=\"eds-dropdown__list__item__text\">\n {item.label}\n <VisuallyHidden>\n {isItemSelected(item) ? ariaLabelSelectedItem : ''}\n </VisuallyHidden>\n </span>\n {item.icons && (\n <span>\n {item.icons.map(Icon => (\n <Icon\n key={\n item?.label + item?.value + (Icon?.displayName ?? Icon?.name)\n }\n inline\n className=\"eds-dropdown__list__item__icon\"\n />\n ))}\n </span>\n )}\n </>\n );\n };\n\n return (\n // use popover from @entur/tooltip when that package upgrades to floating-ui\n <ul\n {...getMenuProps()}\n className=\"eds-dropdown__list\"\n style={{\n display: isOpen ? 'inline-block' : 'none',\n ...rest.style,\n ...listStyle,\n }}\n >\n {listItems.length > 0 &&\n listItems.map((item, index) => {\n const itemIsSelectAll = item.value === selectAllItem?.value;\n if (itemIsSelectAll && listItems.length <= 2) return null;\n\n return (\n <li\n key={item?.label + item?.value}\n className={classNames('eds-dropdown__list__item', {\n 'eds-dropdown__list__item--select-all': itemIsSelectAll,\n 'eds-dropdown__list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown__list__item--selected':\n !isMultiselect && isItemSelected(item),\n })}\n {...getItemProps({\n key: item?.label + item?.value,\n item,\n index,\n })}\n >\n {itemIsSelectAll\n ? selectAllListItemContent()\n : listItemContent(item)}\n </li>\n );\n })}\n\n {isNoMatches && (\n <li key=\"dropdown-list-no-match\" className=\"eds-dropdown__list__item\">\n {noMatchesText}\n </li>\n )}\n {/* Known bug: the debounce of useResolvedItems makes noMatchesText show up before loadingText on fetch.\n To solve this, the dropdownList needs to account for the debounce */}\n {loading && (\n <li key=\"dropdown-list-loading\" className=\"eds-dropdown__list__item\">\n {loadingText}\n </li>\n )}\n </ul>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetToggleButtonPropsOptions,\n UseMultipleSelectionGetSelectedItemPropsOptions,\n} from 'downshift';\n\nimport { IconButton } from '@entur/button';\nimport { TagChip } from '@entur/chip';\nimport { CloseSmallIcon, DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { Tooltip } from '@entur/tooltip';\n\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\n\nimport './FieldComponents.scss';\n\nexport const SelectedItemTag = ({\n ariaLabelRemoveSelected,\n ariaLabelChosen = 'valgt',\n disabled,\n getSelectedItemProps,\n index,\n readOnly,\n removeSelectedItem,\n selectedItem,\n}: {\n ariaLabelRemoveSelected: string;\n ariaLabelChosen?: string;\n disabled?: boolean;\n getSelectedItemProps?: (\n options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType>,\n ) => any;\n index?: number;\n readOnly?: boolean;\n removeSelectedItem: (item: NormalizedDropdownItemType) => void;\n selectedItem: NormalizedDropdownItemType;\n}) => {\n const { tabIndex: _, ...selectedItemProps } =\n getSelectedItemProps?.({\n selectedItem,\n index,\n }) ?? {};\n return (\n <TagChip\n className={classNames('eds-dropdown__selected-item-tag', {\n 'eds-dropdown__selected-item-tag--readonly': readOnly,\n 'eds-dropdown__selected-item-tag--disabled': disabled,\n })}\n {...selectedItemProps}\n onClose={(e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n removeSelectedItem(selectedItem);\n }}\n closeButtonAriaLabel={`${selectedItem.label} ${ariaLabelChosen}, ${ariaLabelRemoveSelected} `}\n key={selectedItem.value}\n aria-live=\"polite\"\n >\n <span aria-hidden=\"true\">{selectedItem.label}</span>\n </TagChip>\n );\n};\n\nexport const FieldAppend: React.FC<{\n ariaHiddenToggleButton?: boolean;\n ariaLabelCloseList?: string;\n ariaLabelOpenList?: string;\n clearable?: boolean;\n labelClearSelectedItems?: string;\n disabled?: boolean;\n focusable?: boolean;\n getToggleButtonProps: (\n options?: UseComboboxGetToggleButtonPropsOptions | undefined,\n ) => any;\n isOpen: boolean;\n loading?: boolean;\n loadingText?: string;\n onClear: () => void;\n selectedItems: (NormalizedDropdownItemType | null)[];\n}> = ({\n ariaHiddenToggleButton = false,\n ariaLabelCloseList,\n ariaLabelOpenList,\n clearable = false,\n labelClearSelectedItems,\n disabled = false,\n focusable = false,\n getToggleButtonProps,\n isOpen,\n loading = false,\n loadingText = 'Laster resultater …',\n onClear,\n selectedItems,\n}) => {\n if (disabled) {\n return null;\n }\n return (\n <div className=\"eds-dropdown__appendix\">\n {clearable && selectedItems?.length > 0 && selectedItems[0] !== null && (\n <>\n <ClearableButton\n onClear={onClear}\n focusable={true}\n labelClearSelectedItems={labelClearSelectedItems}\n />\n <div className=\"eds-dropdown__appendix__divider\" />\n </>\n )}\n {!loading ? (\n <ToggleButton\n aria-hidden={ariaHiddenToggleButton}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n getToggleButtonProps={getToggleButtonProps}\n isOpen={isOpen}\n focusable={focusable}\n />\n ) : (\n <div className={'eds-dropdown__appendix__toggle-button--loading-dots'}>\n <LoadingDots aria-label={loadingText} />\n </div>\n )}\n </div>\n );\n};\n\nconst ClearableButton = ({\n onClear,\n labelClearSelectedItems = 'Fjern valgte',\n focusable = false,\n}: {\n onClear: () => void;\n labelClearSelectedItems?: string;\n focusable?: boolean;\n ariaLabelClearItems?: string;\n}) => {\n return (\n <Tooltip\n aria-hidden=\"true\"\n placement=\"top\"\n content={labelClearSelectedItems}\n className=\"eds-dropdown__appendix__clear-button__tooltip\"\n >\n <IconButton\n className=\"eds-dropdown__appendix__clear-button\"\n type=\"button\"\n tabIndex={focusable ? 0 : 1}\n onClick={onClear}\n aria-label={labelClearSelectedItems}\n >\n <CloseSmallIcon aria-hidden=\"true\" />\n </IconButton>\n </Tooltip>\n );\n};\n\nconst ToggleButton = ({\n getToggleButtonProps,\n isOpen,\n 'aria-hidden': ariaHidden = false,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\n focusable = false,\n}: {\n getToggleButtonProps: (\n options?: UseComboboxGetToggleButtonPropsOptions | undefined,\n ) => any;\n isOpen: boolean;\n 'aria-hidden'?: boolean;\n ariaLabelCloseList?: string;\n ariaLabelOpenList?: string;\n focusable?: boolean;\n}) => {\n return (\n <IconButton\n {...getToggleButtonProps({\n className: classNames('eds-dropdown__appendix__toggle-button', {\n 'eds-dropdown__appendix__toggle-button--open': isOpen,\n }),\n 'aria-labelledby': undefined,\n })}\n aria-hidden={ariaHidden}\n aria-label={\n ariaHidden ? undefined : isOpen ? ariaLabelCloseList : ariaLabelOpenList\n }\n tabIndex={focusable ? 0 : -1}\n type=\"button\"\n >\n <DownArrowIcon aria-hidden=\"true\" />\n </IconButton>\n );\n};\n","import { A11yRemovalMessage, A11yStatusMessageOptions } from 'downshift';\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport React from 'react';\n\n/* start general utils */\nexport const EMPTY_INPUT = '';\n\nexport function lowerCaseFilterTest(\n item: NormalizedDropdownItemType,\n input: string | undefined,\n) {\n if (!input) {\n return true;\n }\n const sanitizeEscapeCharacters = input.replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n '\\\\$&',\n );\n const inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');\n return inputRegex.test(item.label);\n}\n\nexport function noFilter(\n //@ts-expect-error only here to comply with dropdown filter API\n item: NormalizedDropdownItemType,\n //@ts-expect-error only here to comply with dropdown filter API\n input: string | undefined,\n) {\n return true;\n}\n\nexport const itemToString = (item: NormalizedDropdownItemType | null) =>\n item ? item.label : '';\n\nexport const isFunctionWithQueryArgument = (object: any) =>\n typeof object === 'function' && object.length > 0;\n\n/* end general utils */\n/* start multiselect utils */\n\ntype useMultiselectUtilsType = {\n selectedItems: NormalizedDropdownItemType[];\n listItems: NormalizedDropdownItemType[];\n selectAll: NormalizedDropdownItemType;\n};\n\nexport const useMultiselectUtils = ({\n listItems,\n selectedItems,\n selectAll,\n}: useMultiselectUtilsType) => {\n const hasSelectedItems = selectedItems.length > 0;\n\n const listItemsWithoutSelectAll = listItems.filter(\n item => item.value !== selectAll.value,\n );\n\n const unselectedItemsInListItems = listItemsWithoutSelectAll.filter(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const allListItemsAreSelected = !listItemsWithoutSelectAll.some(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const someListItemsAreSelected = listItemsWithoutSelectAll.some(listItem =>\n selectedItems.some(selectedItem => selectedItem.value === listItem.value),\n );\n\n const addClickedItemToSelectedItems = (\n clickedItem: NormalizedDropdownItemType,\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) => onChange([...selectedItems, clickedItem]);\n\n const clickedItemIsInSelectedItems = (\n clickedItem: NormalizedDropdownItemType,\n ) =>\n selectedItems.some(\n selectedItem => selectedItem.value === clickedItem.value,\n );\n\n const clickedItemIsSelectAll = (clickedItem: NormalizedDropdownItemType) =>\n clickedItem.value === selectAll.value;\n\n const handleListItemClicked = ({\n clickedItem,\n onChange,\n setLastRemovedItem,\n }: {\n clickedItem: NormalizedDropdownItemType;\n onChange: (value: NormalizedDropdownItemType[]) => void;\n setLastRemovedItem: any;\n }) => {\n if (clickedItemIsSelectAll(clickedItem)) {\n if (allListItemsAreSelected) {\n setLastRemovedItem(selectAll);\n return unselectAllListItems(onChange);\n }\n return selectAllUnselectedItemsInListItems(onChange);\n }\n\n if (clickedItemIsInSelectedItems(clickedItem)) {\n setLastRemovedItem(clickedItem);\n return removeClickedItemFromSelectedItems(clickedItem, onChange);\n }\n addClickedItemToSelectedItems(clickedItem, onChange);\n };\n\n const removeClickedItemFromSelectedItems = (\n clickedItem: NormalizedDropdownItemType,\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) =>\n onChange(\n selectedItems.filter(\n selectedItem => selectedItem.value !== clickedItem.value,\n ),\n );\n\n const selectAllCheckboxState = () => {\n if (allListItemsAreSelected) return true;\n if (someListItemsAreSelected) return 'indeterminate';\n return false;\n };\n\n const selectAllUnselectedItemsInListItems = (\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) => {\n onChange([...selectedItems, ...unselectedItemsInListItems]);\n };\n\n const unselectAllListItems = (\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) => {\n const selectedItemsWithoutItemsInListItems = selectedItems.filter(\n selectedItem =>\n !listItemsWithoutSelectAll.some(\n listItem => listItem.value === selectedItem.value,\n ),\n );\n onChange(selectedItemsWithoutItemsInListItems);\n };\n\n return {\n addClickedItemToSelectedItems,\n allListItemsAreSelected,\n clickedItemIsInSelectedItems,\n clickedItemIsSelectAll,\n handleListItemClicked,\n hasSelectedItems,\n listItemsWithoutSelectAll,\n removeClickedItemFromSelectedItems,\n selectAllCheckboxState,\n selectAllUnselectedItemsInListItems,\n someListItemsAreSelected,\n unselectAllListItems,\n };\n};\n\n/* end multiselect utils */\n/* start a11y utils */\ntype getA11yStatusMessageType<Item> = A11yStatusMessageOptions<Item> & {\n selectAllItemIncluded?: boolean;\n ariaLabelNoResults?: string;\n};\n\nexport function getA11yStatusMessage<Item>(\n options: getA11yStatusMessageType<Item>,\n): string {\n const {\n isOpen,\n resultCount,\n previousResultCount,\n selectAllItemIncluded = false,\n ariaLabelNoResults = 'Ingen resultater',\n } = options;\n\n if (!isOpen) {\n return '';\n }\n\n const resultCountWithoutSelectAll = selectAllItemIncluded\n ? resultCount - 1\n : resultCount;\n\n if (resultCountWithoutSelectAll === 0) {\n return ariaLabelNoResults;\n }\n\n if (resultCount !== previousResultCount) {\n return `${resultCountWithoutSelectAll} resultat${\n resultCountWithoutSelectAll === 1 ? '' : 'er'\n } tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.`;\n }\n\n return '';\n}\n\ntype getA11ySelectionMessageType<Item> = A11yStatusMessageOptions<Item> & {\n selectAllItem?: NormalizedDropdownItemType;\n};\n\nexport function getA11ySelectionMessage(\n options: getA11ySelectionMessageType<NormalizedDropdownItemType>,\n) {\n const {\n selectedItem,\n itemToString: itemToStringLocal,\n selectAllItem,\n } = options;\n\n if (selectedItem?.value === selectAllItem?.value)\n return 'Alle elementer i listen valgt.';\n\n return selectedItem ? `${itemToStringLocal(selectedItem)} er valgt.` : '';\n}\n\ntype getA11yRemovalMessageType<Item> = A11yRemovalMessage<Item> & {\n selectAllItem?: NormalizedDropdownItemType;\n removedItem?: NormalizedDropdownItemType;\n};\n\nexport function getA11yRemovalMessage(\n options: getA11yRemovalMessageType<NormalizedDropdownItemType>,\n) {\n const { itemToString, selectAllItem, removedItem } = options;\n if (removedItem === undefined) return '';\n if (removedItem.value === selectAllItem?.value)\n return 'Alle elementer i listen fjernet fra valgte.';\n\n return `${itemToString(removedItem)} fjernet fra valgte.`;\n}\n\n/**A VoiceOver click is always preformed in the center of the clicked element.\n This functions expolits that to check if the performed click likely is \n made by VoiceOver. */\nexport const isVoiceOverClick = (clickEvent: React.MouseEvent) => {\n const targetElementRect = clickEvent.currentTarget.getBoundingClientRect();\n const targetElementMiddleX = Math.floor(\n targetElementRect.x + targetElementRect.width / 2,\n );\n const targetElementMiddleY = Math.floor(\n targetElementRect.y + targetElementRect.height / 2,\n );\n\n const clickPositionX = clickEvent.clientX;\n const clickPositionY = clickEvent.clientY;\n\n console.log(\n 'targetX:',\n targetElementMiddleX,\n 'targetY:',\n targetElementMiddleY,\n 'clickX:',\n clickPositionX,\n 'clickY:',\n clickPositionY,\n );\n\n return (\n Math.abs(targetElementMiddleX - clickPositionX) <= 1 &&\n Math.abs(targetElementMiddleY - clickPositionY) <= 1\n );\n};\n/* end a11y utils */\n","/* eslint-disable no-warning-comments */\nimport React, { Dispatch, SetStateAction, useRef, useState } from 'react';\nimport { UseComboboxStateChangeOptions, useCombobox } from 'downshift';\nimport classNames from 'classnames';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n isVoiceOverClick,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport './Dropdown.scss';\n\nexport type SearchableDropdownProps = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType;\n /** Valgt element. Bruk null for ingen verdi */\n selectedItem: NormalizedDropdownItemType | null;\n /** Callback ved valg som skal brukes til å oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType | null,\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType | null>>;\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType,\n inputValue: string | undefined,\n ) => boolean;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** Vis knapp for å nullstille Dropdown-en skal vises\n * @default true\n */\n clearable?: boolean;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items\n * Denne er kun relevant hvis du sender inn en funksjon som items.\n */\n debounceTimeout?: number;\n /** Deaktiver dropdown-en */\n disabled?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket\n * @default \"Ingen treff for søket\"\n */\n noMatchesText?: string;\n /** Gjør dropdown-en til å kun kunne leses\n * @default false\n */\n readOnly?: boolean;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /** En tekst som beskriver hva som skjer når man venter på items */\n loadingText?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n className?: string;\n style?: { [key: string]: any };\n /** Style som kun påføres listeelementet */\n listStyle?: { [key: string]: any };\n /** Tekst som beskriver at man fjerner valget sitt\n * @default \"fjern valgt\"\n */\n labelClearSelectedItem?: string;\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default \"valgt\"\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default \", valgt element, trykk for å fjerne\"\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const SearchableDropdown = ({\n ariaLabelChosenSingular,\n ariaLabelCloseList,\n ariaLabelOpenList,\n ariaLabelSelectedItem,\n className,\n clearable = true,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation = false,\n feedback,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelClearSelectedItem = 'fjern valgt',\n listStyle,\n loadingText,\n noMatchesText,\n onChange = () => undefined,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem: value,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ...rest\n}: SearchableDropdownProps) => {\n const [showSelectedItem, setShowSelectedItem] = useState(value !== null);\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const {\n items: normalizedItems,\n loading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const [listItems, setListItems] = React.useState(normalizedItems);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems(normalizedItems.filter(item => itemFilter(item, inputValue)));\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n React.useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const inputHasFocus =\n typeof document !== 'undefined'\n ? inputRef?.current === document?.activeElement\n : false;\n\n const stateReducer = React.useCallback(\n (\n _,\n {\n type,\n changes,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType>,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // empty input to show selected item and reset dropdown list on item selection\n case useCombobox.stateChangeTypes.ItemClick:\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.InputBlur: {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n }\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n if (!inputHasFocus) setShowSelectedItem(true);\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n // remove leading whitespace, select element with spacebar on empty input, and filter list based on input\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n setInputValue(\n changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT),\n );\n\n if (isSpacePressedOnEmptyInput) {\n openMenu();\n\n if (isOpen && changes.highlightedIndex !== undefined) {\n onChange(listItems[changes.highlightedIndex]);\n }\n }\n } else {\n updateListItems({ inputValue: changes.inputValue });\n }\n return changes;\n }\n default:\n return changes;\n }\n },\n [fetchItems, filterListItems], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const {\n isOpen,\n openMenu,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n highlightedIndex,\n getItemProps,\n selectedItem,\n inputValue,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex,\n items: listItems,\n itemToString,\n selectedItem: value,\n stateReducer,\n onStateChange({ type, selectedItem: clickedItem }) {\n switch (type) {\n // @ts-expect-error This falltrough is wanted\n case useCombobox.stateChangeTypes.InputBlur:\n if (!selectOnBlur) break;\n case useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough\n case useCombobox.stateChangeTypes.ItemClick:\n onChange(clickedItem ?? null);\n }\n },\n // Accessibility\n getA11yStatusMessage,\n // The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)\n // but is left here for when it is fixed\n getA11ySelectionMessage: options => getA11ySelectionMessage(options),\n ...rest,\n });\n\n const handleOnClear = () => {\n onChange(null);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n setShowSelectedItem(false);\n };\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className)}\n style={style}\n >\n <BaseFormControl\n className=\"eds-dropdown\"\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={selectedItem !== null || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n prepend={prepend}\n readOnly={readOnly}\n variant={variant}\n {...rest}\n append={\n <FieldAppend\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n labelClearSelectedItems={labelClearSelectedItem}\n disabled={readOnly || disabled}\n focusable={false}\n getToggleButtonProps={getToggleButtonProps}\n isOpen={isOpen}\n loading={loading}\n loadingText={loadingText}\n onClear={handleOnClear}\n selectedItems={[selectedItem]}\n />\n }\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden':\n !showSelectedItem,\n })}\n aria-hidden=\"true\"\n onClick={() => inputRef.current?.focus()}\n >\n {showSelectedItem ? selectedItem?.label : ''}\n </span>\n <input\n className={classNames('eds-dropdown__input eds-form-control', {\n 'eds-dropdown__input--hidden': showSelectedItem,\n })}\n disabled={readOnly || disabled}\n placeholder={selectedItem?.label ?? placeholder}\n {...getInputProps({\n onClick: (e: React.MouseEvent) => {\n if (!isOpen && isVoiceOverClick(e)) openMenu();\n },\n onBlur: () => {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus: () => {\n setShowSelectedItem(false);\n },\n onKeyDown: e => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n if (highlitedItem) {\n // we don't want to clear selection with tab\n onChange?.(highlitedItem);\n }\n }\n },\n ref: inputRef,\n })}\n />\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n isOpen={isOpen}\n listItems={listItems}\n listStyle={listStyle}\n loading={loading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </div>\n );\n};\n","import React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport {\n useMultipleSelection,\n useCombobox,\n UseComboboxStateChangeOptions,\n A11yStatusMessageOptions,\n} from 'downshift';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { FieldAppend, SelectedItemTag } from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11yRemovalMessage,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n isVoiceOverClick,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport './Dropdown.scss';\n\nexport type MultiSelectProps = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i MultiSelect */\n items: PotentiallyAsyncDropdownItemType;\n /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte\n */\n selectedItems: NormalizedDropdownItemType[];\n /** Callback med alle valgte verdier.\n * Bruk denne til å oppdatere selectedItems-listen */\n onChange?: (\n selectedItems: NormalizedDropdownItemType[],\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType[]>>;\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType,\n inputValue: string | undefined,\n ) => boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Om dropdown-en er deaktivert */\n disabled?: boolean;\n /** Om dropdown-en er i read-only modus */\n readOnly?: boolean;\n /** Om en knapp for å fjerne alle valg skal vises\n * @default true\n */\n clearable?: boolean;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** En tekst som beskriver hva som skjer når man venter på items\n * @default \"Laster inn …\"\n */\n loadingText?: string;\n /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket\n * @default \"Ingen treff for søket\"\n */\n noMatchesText?: string;\n /** Skjuler «Velg alle» fra listen med valg\n * @default false\n */\n hideSelectAll?: boolean;\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon\n * @default 250\n */\n debounceTimeout?: number;\n /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag\n * @default 10\n */\n maxChips?: number;\n /** Tekst eller ikon som kommer før MultiSelect */\n prepend?: React.ReactNode;\n /** Resetter input etter at et element er valgt i listen\n * @default false\n */\n clearInputOnSelect?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n style?: React.CSSProperties;\n /** Styling som sendes ned til MultiSelect-lista */\n listStyle?: { [key: string]: any };\n /** Ekstra klassenavn */\n className?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Velg alle\"\n */\n labelSelectAll?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Alle valgt\"\n */\n labelAllItemsSelected?: string;\n /** Skjermleser-tekst som for å fjerne alle valg\n * @default \"Fjern valgte\"\n */\n labelClearAllItems?: string;\n /** Tekst for skjemleser på knapper for å fjerne valgt element\n * @default \"trykk for å fjerne valg\"\n */\n ariaLabelRemoveSelected?: string;\n /** Tekst for skjemleser for å indikere at et element er valgt\n * @default \"valgte\"\n */\n ariaLabelChosenPlural?: string;\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Tekst for skjemleser for å hoppe til input-feltet\n * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`\n */\n ariaLabelJumpToInput?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default 'valgt'\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default ', valgt element, trykk for å fjerne'\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const MultiSelect = ({\n className,\n clearable = true,\n clearInputOnSelect = false,\n debounceTimeout,\n disabled = false,\n feedback,\n hideSelectAll = false,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelAllItemsSelected = 'Alle valgt',\n labelClearAllItems = 'Fjern valgte',\n labelSelectAll = 'Velg alle',\n listStyle,\n loadingText,\n maxChips = 10,\n noMatchesText,\n onChange = () => undefined,\n placeholder,\n readOnly = false,\n selectedItems = [],\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ariaLabelChosenSingular,\n ariaLabelChosenPlural = 'valgte',\n ariaLabelCloseList,\n ariaLabelJumpToInput = `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`,\n ariaLabelOpenList,\n ariaLabelRemoveSelected = 'trykk for å fjerne valg',\n ariaLabelSelectedItem,\n ...rest\n}: MultiSelectProps) => {\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const [lastRemovedItem, setLastRemovedItem] = React.useState<\n NormalizedDropdownItemType | undefined\n >(undefined);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n //@ts-expect-error this is done to aid developers debug wrong prop usage\n if (rest.selectedItem !== undefined)\n console.warn(\n \"Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?\",\n );\n }, []);\n\n const {\n items: normalizedItems,\n loading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const isAllNonAsyncItemsSelected =\n typeof initialItems !== 'function' &&\n selectedItems.length === normalizedItems.length;\n\n // special 'item' used as Select All entry in the dropdown list\n const selectAll: NormalizedDropdownItemType = {\n value: useRandomId('select-all'),\n label: labelSelectAll,\n };\n // special 'item' used as a replacement selected item tag for when\n // there are more selected element than maxChips\n const summarySelectedItems: NormalizedDropdownItemType = React.useMemo(\n () => ({\n value: EMPTY_INPUT,\n label: isAllNonAsyncItemsSelected\n ? labelAllItemsSelected\n : selectedItems.length + ' ' + ariaLabelChosenPlural,\n }),\n [\n isAllNonAsyncItemsSelected,\n selectedItems,\n labelAllItemsSelected,\n ariaLabelChosenPlural,\n ],\n );\n\n const [listItems, setListItems] = useState([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems,\n ]);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems.filter(item => itemFilter(item, inputValue)),\n ]);\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n React.useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { hasSelectedItems, handleListItemClicked, selectAllCheckboxState } =\n useMultiselectUtils({\n listItems,\n selectAll,\n selectedItems,\n });\n\n const { getSelectedItemProps, getDropdownProps } = useMultipleSelection({\n selectedItems,\n itemToString,\n onStateChange({ selectedItems: newSelectedItems, type }) {\n switch (type) {\n case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:\n case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:\n case useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:\n case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem: {\n if (newSelectedItems !== undefined) onChange(newSelectedItems);\n break;\n }\n default:\n break;\n }\n },\n // Accessibility\n getA11yRemovalMessage: options =>\n getA11yRemovalMessage({\n ...options,\n selectAllItem: selectAll,\n removedItem: lastRemovedItem,\n }),\n });\n\n const stateReducer = React.useCallback(\n (\n _,\n {\n changes,\n type,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType>,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // keep menu open and edit input value on item selection\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n if (clearInputOnSelect) {\n updateListItems({ inputValue: EMPTY_INPUT });\n }\n return {\n ...changes,\n isOpen: true,\n inputValue: clearInputOnSelect\n ? EMPTY_INPUT\n : inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // edit input value when selected items is updated outside component\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem: {\n return {\n ...changes,\n inputValue: clearInputOnSelect\n ? EMPTY_INPUT\n : inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // remove leading whitespace, select item with spacebar if input is empty and filter list items\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n setInputValue(\n changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT),\n );\n\n if (isSpacePressedOnEmptyInput) {\n openMenu();\n\n if (isOpen && changes.highlightedIndex !== undefined) {\n handleListItemClicked({\n clickedItem: listItems[changes.highlightedIndex],\n onChange,\n setLastRemovedItem,\n });\n }\n }\n } else {\n updateListItems({ inputValue: changes.inputValue });\n }\n\n return changes;\n }\n // reset input value when leaving input field\n case useCombobox.stateChangeTypes.InputBlur: {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n }\n default:\n return changes;\n }\n },\n [hideSelectAll, normalizedItems, filterListItems, initialItems], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const {\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n inputValue,\n isOpen,\n openMenu,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex, // after selection, highlight previously selected item.\n items: listItems,\n itemToString,\n selectedItem: null,\n stateReducer,\n onStateChange({ type, selectedItem: clickedItem }) {\n // clickedItem means item chosen either via mouse or keyboard\n if (!clickedItem) return;\n\n switch (type) {\n // @ts-expect-error This falltrough is wanted\n case useCombobox.stateChangeTypes.InputBlur:\n if (!selectOnBlur) break;\n case useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough\n case useCombobox.stateChangeTypes.ItemClick: {\n handleListItemClicked({ clickedItem, onChange, setLastRemovedItem });\n }\n }\n },\n // Accessibility\n getA11yStatusMessage: function <Item>(\n options: A11yStatusMessageOptions<Item>,\n ) {\n return getA11yStatusMessage<Item>({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n });\n },\n // The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)\n // but is left here for when it is fixed\n getA11ySelectionMessage: options =>\n getA11ySelectionMessage({ ...options, selectAllItem: selectAll }),\n ...rest,\n });\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className)}\n style={style}\n >\n <BaseFormControl\n append={\n <FieldAppend\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n selectedItems={selectedItems}\n isOpen={isOpen}\n clearable={clearable}\n labelClearSelectedItems={labelClearAllItems}\n focusable={false}\n loading={loading}\n loadingText={loadingText}\n disabled={readOnly || disabled}\n onClear={handleOnClear}\n getToggleButtonProps={getToggleButtonProps}\n />\n }\n className=\"eds-dropdown\"\n disabled={disabled}\n feedback={feedback}\n isFilled={hasSelectedItems || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) inputRef.current?.focus();\n }}\n readOnly={readOnly}\n variant={variant}\n {...rest}\n >\n <div\n className={classNames(\n 'eds-dropdown--multiselect__selected-items-and-input',\n {\n 'eds-dropdown--multiselect__selected-items-and-input--filled':\n hasSelectedItems,\n },\n )}\n >\n {selectedItems.length < maxChips ? (\n <>\n {selectedItems.length > 1 ? (\n <VisuallyHidden onClick={() => inputRef.current?.focus()}>\n {ariaLabelJumpToInput}\n </VisuallyHidden>\n ) : (\n <></>\n )}\n {selectedItems.map((selectedItem, index) => (\n <SelectedItemTag\n ariaLabelChosen={ariaLabelChosenSingular}\n ariaLabelRemoveSelected={ariaLabelRemoveSelected}\n disabled={disabled}\n getSelectedItemProps={getSelectedItemProps}\n index={index}\n key={selectedItem?.value}\n readOnly={readOnly}\n removeSelectedItem={() => {\n handleListItemClicked({\n clickedItem: selectedItem,\n onChange,\n setLastRemovedItem,\n });\n inputRef?.current?.focus();\n }}\n selectedItem={selectedItem}\n />\n ))}\n </>\n ) : (\n <SelectedItemTag\n ariaLabelRemoveSelected={labelClearAllItems}\n ariaLabelChosen=\"\"\n disabled={disabled}\n readOnly={readOnly}\n removeSelectedItem={handleOnClear}\n selectedItem={summarySelectedItems}\n />\n )}\n <input\n placeholder={placeholder}\n className=\"eds-dropdown__input eds-form-control\"\n disabled={readOnly || disabled}\n {...getInputProps({\n onKeyDown: (e: React.KeyboardEvent) => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (highlitedItem) {\n handleListItemClicked({\n clickedItem: highlitedItem,\n onChange,\n setLastRemovedItem,\n });\n }\n }\n },\n ...getDropdownProps({\n onClick: (e: React.MouseEvent) => {\n if (!isOpen && isVoiceOverClick(e)) openMenu();\n },\n preventKeyAction: isOpen,\n ref: inputRef,\n value: inputValue ?? EMPTY_INPUT,\n }),\n })}\n />\n </div>\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n inputValue={inputValue}\n isOpen={isOpen}\n listItems={listItems}\n listStyle={listStyle}\n loading={loading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n />\n </div>\n );\n};\n","import React, { Dispatch, SetStateAction } from 'react';\nimport { useSelect } from 'downshift';\nimport classNames from 'classnames';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport { itemToString } from './utils';\n\nimport './Dropdown.scss';\n\nexport type DropdownProps = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType;\n /** Valgt verdi. Bruk null for ingen verdi. */\n selectedItem: NormalizedDropdownItemType | null;\n /** Callback ved valg som skal oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType | null,\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType | null>>;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default false\n */\n clearable?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n /** Deaktiver dropdown-en */\n disabled?: boolean;\n /** Setter dropdown-en i read-only modus */\n readOnly?: boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /** En tekst som beskriver hva som skjer når man venter på items\n * @default 'Laster inn …'\n */\n loadingText?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default \"fjern valgt\"\n */\n labelClearSelectedItem?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Styling som sendes ned til Dropdown-lista */\n listStyle?: { [key: string]: any };\n /** Styling for Dropdown-en */\n style?: { [key: string]: any };\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default 'valgt'\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default ', valgt element, trykk for å fjerne'\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const Dropdown = ({\n ariaLabelChosenSingular,\n ariaLabelCloseList,\n ariaLabelOpenList,\n ariaLabelSelectedItem,\n className,\n clearable = false,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items: initialItems,\n label,\n labelClearSelectedItem = 'fjern valgt',\n listStyle,\n loadingText,\n onChange,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ...rest\n}: DropdownProps) => {\n const { items: normalizedItems, loading } = useResolvedItems(initialItems);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n\n const {\n isOpen,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n } = useSelect({\n items: normalizedItems,\n defaultHighlightedIndex: selectedItem ? undefined : 0,\n selectedItem,\n onStateChange({ type, selectedItem: clickedItem }) {\n switch (type) {\n // @ts-expect-error This falltrough is wanted\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (!selectOnBlur) break;\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough\n case useSelect.stateChangeTypes.ItemClick: {\n onChange?.(clickedItem !== undefined ? clickedItem : null);\n }\n }\n },\n itemToString,\n });\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className)}\n style={style}\n >\n <BaseFormControl\n append={\n <FieldAppend\n ariaHiddenToggleButton={true}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n labelClearSelectedItems={labelClearSelectedItem}\n focusable={false}\n getToggleButtonProps={getToggleButtonProps}\n isOpen={isOpen}\n loading={loading}\n loadingText={loadingText}\n onClear={() => {\n onChange?.(null);\n }}\n disabled={readOnly || disabled}\n selectedItems={[selectedItem]}\n />\n }\n className={classNames('eds-dropdown', {\n 'eds-dropdown--not-filled': !isFilled,\n })}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={isFilled}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n prepend={prepend}\n readOnly={readOnly}\n variant={variant}\n {...rest}\n >\n <div\n className=\"eds-dropdown__selected-item\"\n {...getToggleButtonProps({\n id: undefined,\n onKeyDown: e => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n // we don't want to clear selection with tab\n const highlitedItem = normalizedItems[highlightedIndex];\n if (highlitedItem) {\n onChange?.(highlitedItem);\n }\n }\n },\n })}\n >\n {selectedItem?.label ?? (\n <span\n className={classNames(\n 'eds-dropdown__selected-item__placeholder',\n {\n 'eds-dropdown__selected-item__placeholder--readonly':\n readOnly,\n },\n )}\n >\n {placeholder}\n </span>\n ) ??\n ''}\n </div>\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={normalizedItems}\n listStyle={listStyle}\n loading={loading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </div>\n );\n};\n","import React from 'react';\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { useRandomId } from '@entur/utils';\n\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\n\nimport './Dropdown.scss';\n\nexport type NativeDropdownProps = {\n /** Ekstra klassenavn */\n className?: string;\n /**\n * For å deaktivere dropdow-nen\n * @default false\n **/\n disabled?: boolean;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Alle valg for dropdown-en å ha */\n items: PotentiallyAsyncDropdownItemType;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** En callback for endringer av value\n * Obs: merk at parameter her denne ikke er samme som i en HTML select.\n * Bruk { target } hvis du trenger info om select-elementet som ble trykket på\n */\n onChange?: ({\n value,\n selectedItem,\n target,\n }: {\n value: string;\n selectedItem: NormalizedDropdownItemType | null;\n target: EventTarget & HTMLSelectElement;\n }) => void;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /**\n * Setter dropdown-en i read-only modus\n * @default false\n **/\n readOnly?: boolean;\n /** Den valgte verdien som NormalizedDropdownItemType\n * (Brukes når komponenten er 'controlled')\n */\n selectedItem?: NormalizedDropdownItemType | null;\n /** Den valgte verdien som sting\n * (Brukes når komponenten er 'controlled)\n */\n value?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nexport const NativeDropdown: React.FC<NativeDropdownProps> = ({\n className,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items,\n label,\n loadingText,\n onChange,\n prepend,\n readOnly = false,\n selectedItem,\n style,\n value,\n variant,\n ...rest\n}) => {\n const { items: normalizedItems, loading } = useResolvedItems(items);\n const nativeDropdownId = useRandomId('eds-dropdown-native');\n\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n prepend={prepend}\n append={\n <FieldAppend\n hidden={disabled || readOnly}\n loading={loading}\n loadingText={loadingText}\n />\n }\n className={className}\n style={style}\n label={label}\n labelId={nativeDropdownId}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={true}\n >\n <select\n aria-invalid={variant === 'error'}\n aria-labelledby={nativeDropdownId}\n aria-busy={loading}\n className=\"eds-form-control eds-dropdown--native\"\n disabled={disabled || readOnly}\n onChange={event => {\n onChange?.({\n value: event.target.value,\n selectedItem:\n normalizedItems.find(item => item.value === event.target.value) ??\n null,\n target: event.target,\n });\n }}\n value={value ?? selectedItem?.value ?? undefined}\n {...rest}\n >\n {normalizedItems.map(item => (\n <option key={item.value} value={item.value}>\n {item.label}\n </option>\n ))}\n </select>\n </BaseFormControl>\n );\n};\n\nconst FieldAppend = ({\n loading,\n loadingText,\n hidden,\n}: {\n loading: boolean;\n loadingText?: string;\n hidden: boolean;\n}) => {\n if (loading) {\n return (\n <div className=\"eds-dropdown-native__loading-dots\">\n <LoadingDots aria-label={loadingText} />\n </div>\n );\n }\n if (hidden) {\n return <></>;\n }\n return <DownArrowIcon inline />;\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');\n\nexport type {\n NormalizedDropdownItemType,\n DropdownItemType,\n} from './useNormalizedItems';\n\nexport * from './deprecated';\n\nexport * from './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\n"],"names":["DownshiftContext","React","createContext","DownshiftProvider","children","onChange","undefined","onInputValueChange","highlightFirstItemOnOpen","className","style","searchable","rest","_excluded","handleStateChange","changes","stateAndHelpers","type","Downshift","stateChangeTypes","controlledPropUpdatedSelectedItem","selectedItem","inputValue","stateReducer","_","highlightFirstOnOpen","isOpen","highlightFirstItemIndex","highlightedIndex","itemToString","item","label","onStateChange","args","classNames","createElement","Provider","value","useDownshift","context","useContext","Error","DropdownListDeprecated","items","getItemProps","getMenuProps","map","index","key","icons","Icon","inline","CheckIcon","DropdownDeprecatedToggleButton","getToggleButtonProps","tabIndex","DownArrowIcon","DropdownDeprecatedLoadingDots","LoadingDots","VisuallyHidden","BaseDropdownDeprecated","loading","loadingText","placeholder","listStyle","clearable","isFilled","disableLabelAnimation","getLabelProps","BaseFormControl","append","Appendix","readOnly","labelProps","position","top","space","extraLarge3","extraSmall","ClearButton","props","clearSelection","Fragment","onClick","CloseSmallIcon","RegularDropdownDeprecated","forwardRef","ref","disabled","selectOnTab","openOnFocus","selectHighlightedItem","openMenu","setHighlightedIndex","length","textAlign","onKeyDown","e","keyDownValue","matchedItems","filter","firstCharacter","trim","charAt","toLowerCase","nextHighlightItem","find","onFocus","LowerCaseFilterTest","input","sanitizeEscapeCharacters","replace","inputRegex","RegExp","test","SearchableDropdownDeprecated","prepend","itemFilter","getInputProps","closeMenu","useState","hideSelectedItem","setHideSelectedItem","inputRef","useRef","filteredItems","useMemo","current","focus","onBlur","mergeRefs","DropdownInputGroupDeprecated","feedback","variant","VariantProvider","FeedbackText","useNormalizedItems","useIsMounted","isMountedRef","useEffect","reducer","_state","action","payload","useResolvedItems","itemsOrItemsResolver","debounceTimeout","isItemsFunction","itemsResolver","Promise","resolve","useReducer","dispatch","isMounted","fetchItems","useCallback","resolvedItems","normalizedItems","debounce","DropdownDeprecated","RenderedDropdown","searchAbleProps","name","MultiSelectOldContext","useMultiSelectOldContext","state","actionAndChanges","useSelect","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ItemClick","MultiSelectDeprecated","initialSelectedItems","itemsSelectedLabel","SelectedItemsLabel","selectedItems","setSelectedItems","reset","isSelected","selectedCheckboxItem","some","selected","onSelectedItemChange","itemIsFound","slicedItemList","buttonText","multiSelectId","useRandomId","labelId","hasSelected","display","CheckboxIcon","CloseIcon","DropdownToggleButton","width","height","viewBox","d","fill","toString","DropdownList","ariaLabelChosenSingular","ariaLabelSelectedItem","listItems","noMatchesText","selectAllCheckboxState","selectAllItem","isMultiselect","isNoMatches","isItemSelected","ariaLabelSelectAll","selectAllListItemContent","Checkbox","checked","listItemContent","displayName","itemIsSelectAll","SelectedItemTag","ariaLabelRemoveSelected","ariaLabelChosen","getSelectedItemProps","removeSelectedItem","selectedItemProps","TagChip","onClose","stopPropagation","closeButtonAriaLabel","FieldAppend","ariaHiddenToggleButton","ariaLabelCloseList","ariaLabelOpenList","labelClearSelectedItems","focusable","onClear","ClearableButton","ToggleButton","Tooltip","placement","content","IconButton","ariaHidden","EMPTY_INPUT","lowerCaseFilterTest","noFilter","isFunctionWithQueryArgument","object","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","setLastRemovedItem","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","resultCount","previousResultCount","selectAllItemIncluded","ariaLabelNoResults","resultCountWithoutSelectAll","getA11ySelectionMessage","itemToStringLocal","getA11yRemovalMessage","removedItem","isVoiceOverClick","clickEvent","targetElementRect","currentTarget","getBoundingClientRect","targetElementMiddleX","Math","floor","x","targetElementMiddleY","y","clickPositionX","clientX","clickPositionY","clientY","console","log","abs","SearchableDropdown","initialItems","labelClearSelectedItem","selectOnBlur","showSelectedItem","setShowSelectedItem","lastHighlightedIndex","setLastHighlightedIndex","setListItems","filterListItems","updateListItems","shouldRefetchItems","inputHasFocus","document","activeElement","useCombobox","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","setInputValue","defaultHighlightedIndex","handleOnClear","id","highlitedItem","MultiSelect","clearInputOnSelect","hideSelectAll","labelAllItemsSelected","labelClearAllItems","labelSelectAll","maxChips","ariaLabelChosenPlural","ariaLabelJumpToInput","lastRemovedItem","warn","isAllNonAsyncItemsSelected","summarySelectedItems","useMultipleSelection","newSelectedItems","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","DropdownKeyDownBackspace","FunctionRemoveSelectedItem","getDropdownProps","target","preventKeyAction","Dropdown","ToggleButtonBlur","NativeDropdown","nativeDropdownId","hidden","event","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown.cjs.development.js","sources":["../src/deprecated/DownshiftProvider.tsx","../src/deprecated/DropdownList.tsx","../src/deprecated/DropdownToggleButton.tsx","../src/deprecated/DropdownLoadingDots.tsx","../src/deprecated/BaseDropdown.tsx","../src/deprecated/RegularDropdown.tsx","../src/deprecated/SearchableDropdown.tsx","../src/deprecated/DropdownInputGroup.tsx","../src/useNormalizedItems.ts","../src/useResolvedItems.ts","../src/deprecated/Dropdown.tsx","../src/deprecated/MultiSelect.tsx","../src/components/DropdownList.tsx","../src/components/FieldComponents.tsx","../src/utils.ts","../src/SearchableDropdown.tsx","../src/MultiSelect.tsx","../src/Dropdown.tsx","../src/NativeDropdown.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport Downshift, {\n ControllerStateAndHelpers,\n DownshiftState,\n StateChangeOptions,\n} from 'downshift';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport classNames from 'classnames';\n\nconst DownshiftContext =\n React.createContext<ControllerStateAndHelpers<NormalizedDropdownItemType> | null>(\n null,\n );\n\nexport type DownshiftProviderProps = {\n onChange?: (\n selectedItem: NormalizedDropdownItemType,\n stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemType>,\n ) => void;\n onInputValueChange?: (value: string) => void;\n inputValue?: string;\n initialSelectedItem?: NormalizedDropdownItemType;\n highlightFirstItemOnOpen?: boolean;\n className?: string;\n style?: React.CSSProperties;\n searchable?: boolean;\n [key: string]: any;\n};\nexport const DownshiftProvider: React.FC<DownshiftProviderProps> = ({\n children,\n onChange = () => undefined,\n onInputValueChange = () => undefined,\n highlightFirstItemOnOpen = false,\n className,\n style,\n searchable = false,\n ...rest\n}) => {\n const handleStateChange = (\n changes: any,\n stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemType>,\n ) => {\n if (\n changes.type ===\n Downshift.stateChangeTypes.controlledPropUpdatedSelectedItem\n ) {\n return;\n }\n if ('selectedItem' in changes) {\n onChange(changes.selectedItem, stateAndHelpers);\n } else if ('inputValue' in changes) {\n onInputValueChange(changes.inputValue);\n }\n };\n\n const stateReducer = (\n _: DownshiftState<NormalizedDropdownItemType>,\n changes: StateChangeOptions<NormalizedDropdownItemType>,\n ): Partial<StateChangeOptions<NormalizedDropdownItemType>> => {\n const highlightFirstOnOpen =\n highlightFirstItemOnOpen && 'isOpen' in changes && changes.isOpen;\n const highlightFirstItemIndex: Partial<\n StateChangeOptions<NormalizedDropdownItemType>\n > = highlightFirstOnOpen ? { highlightedIndex: 0 } : {};\n\n if (searchable) {\n const { type } = changes;\n\n switch (type) {\n case '__autocomplete_change_input__':\n return {\n // return normal changes.\n ...changes,\n ...highlightFirstItemIndex,\n };\n case '__autocomplete_click_item__':\n case '__autocomplete_keydown_enter__':\n case '__autocomplete_blur_input__':\n case '__autocomplete_mouseup__':\n return {\n ...changes,\n // if we had an item highlighted in the previous state.\n // we will reset input field value to blank\n inputValue: '',\n ...highlightFirstItemIndex,\n };\n default:\n return {\n ...changes,\n ...highlightFirstItemIndex,\n };\n }\n } else {\n return { ...changes, ...highlightFirstItemIndex };\n }\n };\n\n return (\n <Downshift\n itemToString={item => (item ? item.label : '')}\n onStateChange={handleStateChange}\n stateReducer={stateReducer}\n {...rest}\n >\n {args => (\n <div className={classNames('eds-input-group', className)} style={style}>\n {/* This div is required by Downshift */}\n <DownshiftContext.Provider value={args}>\n {children}\n </DownshiftContext.Provider>\n </div>\n )}\n </Downshift>\n );\n};\n\nexport const useDownshift: () => ControllerStateAndHelpers<NormalizedDropdownItemType> =\n () => {\n const context = React.useContext(DownshiftContext);\n if (!context) {\n throw new Error('You need to wrap your component in a DownshiftProvider');\n }\n return context;\n };\n","import React from 'react';\nimport classNames from 'classnames';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { useDownshift } from './DownshiftProvider';\nimport { CheckIcon } from '@entur/icons';\nimport './DropdownList.scss';\n\nexport type DropdownListDeprecatedProps = {\n items: NormalizedDropdownItemType[];\n [key: string]: any;\n};\n\nexport const DropdownListDeprecated: React.FC<DropdownListDeprecatedProps> = ({\n items,\n ...rest\n}) => {\n const { highlightedIndex, isOpen, selectedItem, getItemProps, getMenuProps } =\n useDownshift();\n\n return (\n <ul\n className={classNames('eds-dropdown-list', {\n 'eds-dropdown-list--open': isOpen,\n })}\n {...getMenuProps()}\n {...rest}\n >\n {isOpen\n ? items.map((item, index) => (\n // eslint-disable-next-line react/jsx-key\n <li\n className={classNames('eds-dropdown-list__item', {\n 'eds-dropdown-list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown-list__item--selected': selectedItem === item,\n })}\n {...getItemProps({ key: `${index}${item.value}`, item, index })}\n >\n <span>{item.label}</span>\n {item.icons && (\n <span>\n {item.icons.map((Icon, index) => (\n <Icon\n key={index}\n inline\n className=\"eds-dropdown-list__item-icon\"\n />\n ))}\n </span>\n )}\n {selectedItem === item && <CheckIcon />}\n </li>\n ))\n : null}\n </ul>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DownArrowIcon } from '@entur/icons';\nimport { useDownshift } from './DownshiftProvider';\nimport './DropdownToggleButton.scss';\n\nexport const DropdownDeprecatedToggleButton: () => JSX.Element = () => {\n const { getToggleButtonProps, isOpen } = useDownshift();\n return (\n <button\n {...getToggleButtonProps({\n className: classNames('eds-dropdown__toggle-button', {\n 'eds-dropdown__toggle-button--open': isOpen,\n }),\n })}\n tabIndex=\"-1\"\n type=\"button\"\n >\n <DownArrowIcon />\n </button>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { LoadingDots } from '@entur/loader';\nimport './InlineSpinner.scss';\n\nexport type InlineSpinnerType = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekst for skjermlesere */\n children: string;\n [key: string]: any;\n};\nexport const DropdownDeprecatedLoadingDots: React.FC<InlineSpinnerType> = ({\n className,\n children,\n ...rest\n}) => (\n <div className={classNames('eds-inline-spinner', className)} {...rest}>\n <LoadingDots />\n <VisuallyHidden>{children}</VisuallyHidden>\n </div>\n);\n","import React from 'react';\nimport { BaseFormControl } from '@entur/form';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { DropdownListDeprecated } from './DropdownList';\nimport { DropdownDeprecatedToggleButton } from './DropdownToggleButton';\nimport { DropdownDeprecatedLoadingDots } from './DropdownLoadingDots';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './BaseDropdown.scss';\nimport { useDownshift } from './DownshiftProvider';\nimport { space } from '@entur/tokens';\n\ntype BaseDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemType[];\n loading?: boolean;\n loadingText?: string;\n placeholder?: string;\n style?: { [key: string]: any };\n listStyle?: { [key: string]: any };\n isFilled?: boolean;\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\nexport const BaseDropdownDeprecated: React.FC<BaseDropdownDeprecatedProps> = ({\n children,\n className,\n items,\n loading = false,\n loadingText = 'Loading...',\n //eslint-disable-next-line\n placeholder,\n style,\n listStyle,\n clearable,\n label,\n isFilled = false,\n disableLabelAnimation,\n ...rest\n}) => {\n const { getLabelProps } = useDownshift();\n return (\n <div className=\"eds-dropdown-wrapper\" style={style}>\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <BaseFormControl\n append={\n <Appendix\n clearable={clearable}\n loading={loading}\n loadingText={loadingText}\n readOnly={...rest.readOnly}\n />\n }\n className={className}\n label={label}\n isFilled={isFilled}\n labelProps={getLabelProps()}\n disableLabelAnimation={disableLabelAnimation}\n {...rest}\n >\n {children}\n </BaseFormControl>\n <DropdownListDeprecated\n items={items}\n style={{\n position: 'absolute',\n top: `${space.extraLarge3 + space.extraSmall}px`,\n ...listStyle,\n }}\n {...rest}\n />\n </div>\n );\n};\n\nconst ClearButton: React.FC<{ [key: string]: any }> = ({ ...props }) => {\n const { clearSelection, selectedItem } = useDownshift();\n return (\n <>\n {selectedItem && (\n <button\n className=\"eds-dropdown__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={() => clearSelection()}\n aria-label=\"Trykk for å fjerne valg\"\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n {selectedItem && <div className=\"eds-dropdown__divider\"></div>}\n </>\n );\n};\n\nconst Appendix: React.FC<{\n clearable: boolean;\n loading: boolean;\n loadingText: string;\n readOnly: boolean;\n}> = ({ clearable, loading, loadingText, readOnly }) => {\n if (loading) {\n return (\n <DropdownDeprecatedLoadingDots>\n {loadingText}\n </DropdownDeprecatedLoadingDots>\n );\n }\n if (readOnly) {\n return null;\n }\n return clearable ? (\n <>\n <ClearButton></ClearButton> <DropdownDeprecatedToggleButton />\n </>\n ) : (\n <DropdownDeprecatedToggleButton />\n );\n};\n","import React from 'react';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { useDownshift } from './DownshiftProvider';\nimport { BaseDropdownDeprecated } from './BaseDropdown';\n\ntype RegularDropdownDeprecatedProps = {\n items: NormalizedDropdownItemType[];\n disabled?: boolean;\n placeholder?: string;\n loading?: boolean;\n loadingText?: string;\n className?: string;\n selectOnTab?: boolean;\n openOnFocus?: boolean;\n listStyle?: { [key: string]: any };\n disableLabelAnimation?: boolean;\n clearable?: boolean;\n [key: string]: any;\n};\nexport const RegularDropdownDeprecated: React.FC<RegularDropdownDeprecatedProps> =\n React.forwardRef<HTMLButtonElement, RegularDropdownDeprecatedProps>(\n (\n {\n disabled,\n placeholder = 'Vennligst velg',\n selectOnTab = false,\n openOnFocus = false,\n listStyle,\n items,\n label,\n disableLabelAnimation,\n loading,\n loadingText,\n className,\n clearable,\n ...rest\n },\n ref,\n ) => {\n const {\n getToggleButtonProps,\n selectedItem,\n selectHighlightedItem,\n openMenu,\n isOpen,\n highlightedIndex,\n setHighlightedIndex,\n } = useDownshift();\n return (\n <BaseDropdownDeprecated\n disabled={disabled}\n listStyle={listStyle}\n items={items}\n label={label}\n isFilled={selectedItem ? true : placeholder.length !== 0}\n disableLabelAnimation={disableLabelAnimation}\n loading={loading}\n loadingText={loadingText}\n className={className}\n clearable={clearable}\n {...rest}\n >\n <button\n {...getToggleButtonProps({\n className: 'eds-form-control eds-dropdown__selected-item',\n style: { textAlign: 'left' },\n disabled,\n type: 'button',\n onKeyDown: e => {\n if (selectOnTab && e.key === 'Tab') {\n selectHighlightedItem();\n }\n\n if (isOpen) {\n const keyDownValue = e.key;\n const matchedItems = items\n .map((item, index) => ({ ...item, index }))\n .filter(item => {\n const firstCharacter = item.label\n .trim()\n .charAt(0)\n .toLowerCase();\n return firstCharacter === keyDownValue;\n });\n\n const nextHighlightItem = matchedItems.find(\n item => item.index > (highlightedIndex ?? 0),\n );\n\n if (nextHighlightItem) {\n setHighlightedIndex(nextHighlightItem.index);\n } else if (matchedItems.length > 0) {\n setHighlightedIndex(matchedItems[0].index);\n }\n }\n },\n onFocus: () => {\n if (openOnFocus) {\n !isOpen && openMenu();\n }\n },\n ...rest,\n })}\n ref={ref}\n >\n {selectedItem ? selectedItem.label : placeholder}\n </button>\n </BaseDropdownDeprecated>\n );\n },\n );\n","import React, { useRef, useState } from 'react';\nimport { mergeRefs } from '@entur/utils';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { BaseDropdownDeprecated } from './BaseDropdown';\nimport { useDownshift } from './DownshiftProvider';\nimport './SearchableDropdown.scss';\n\ntype SearchableDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemType[];\n loading?: boolean;\n loadingText?: string;\n placeholder?: string;\n prepend?: React.ReactNode;\n readOnly?: boolean;\n selectOnTab?: boolean;\n openOnFocus?: boolean;\n listStyle?: { [key: string]: any };\n clearable: boolean;\n itemFilter?: (item: NormalizedDropdownItemType) => boolean;\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nfunction LowerCaseFilterTest(\n item: NormalizedDropdownItemType,\n input: string | null,\n) {\n if (!input) {\n return true;\n }\n const sanitizeEscapeCharacters = input.replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n '\\\\$&',\n );\n const inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');\n return inputRegex.test(item.label);\n}\n\n/**\n * @deprecated\n * New SearchableDropdown available\n *\n * migration guide to new dropdown:\n * - change import from 'DropdownDeprecated' to 'Dropdown'\n * - change from 'value' to 'selectedItem'\n * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'\n * - 'onChange' must update value of 'selectedItem'\n */\nexport const SearchableDropdownDeprecated: React.FC<SearchableDropdownDeprecatedProps> =\n React.forwardRef<HTMLInputElement, SearchableDropdownDeprecatedProps>(\n (\n {\n disabled = false,\n className,\n items,\n loading,\n loadingText,\n readOnly = false,\n prepend,\n selectOnTab = false,\n openOnFocus = false,\n listStyle,\n clearable,\n itemFilter = (\n item: NormalizedDropdownItemType,\n inputValue: string | null,\n ) => LowerCaseFilterTest(item, inputValue),\n label,\n disableLabelAnimation,\n placeholder,\n ...rest\n },\n ref,\n ) => {\n const {\n getInputProps,\n inputValue,\n selectHighlightedItem,\n isOpen,\n openMenu,\n closeMenu,\n selectedItem,\n } = useDownshift();\n\n const [hideSelectedItem, setHideSelectedItem] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const filteredItems = React.useMemo(() => {\n return items.filter(item => itemFilter(item, inputValue));\n }, [inputValue, items, itemFilter]);\n\n return (\n <BaseDropdownDeprecated\n items={filteredItems}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n loading={loading}\n loadingText={loadingText}\n prepend={prepend}\n listStyle={listStyle}\n clearable={clearable}\n label={label}\n isFilled={selectedItem ? true : false}\n disableLabelAnimation={disableLabelAnimation}\n >\n {!hideSelectedItem && selectedItem && !inputValue && (\n <span className=\"eds-dropdown__searchable-selected-item__wrapper\">\n <span\n className=\"eds-dropdown__searchable-selected-item\"\n onClick={() => inputRef.current?.focus()}\n >\n {selectedItem.label}\n </span>\n </span>\n )}\n <input\n {...getInputProps({\n disabled,\n readOnly,\n className: 'eds-form-control eds-dropdown__input',\n onKeyDown: e => {\n if (selectOnTab && e.key === 'Tab') selectHighlightedItem();\n },\n onFocus: () => {\n if (!isOpen && openOnFocus) openMenu();\n setHideSelectedItem(true);\n },\n placeholder: selectedItem ? selectedItem.label : placeholder,\n ...rest,\n })}\n onBlur={() => {\n setHideSelectedItem(false);\n closeMenu();\n }}\n ref={mergeRefs<HTMLInputElement>(ref, inputRef)}\n />\n </BaseDropdownDeprecated>\n );\n },\n );\n","import { FeedbackText, VariantProvider, VariantType } from '@entur/form';\nimport React from 'react';\n\nexport type DropdownInputGroupDeprecatedProps = {\n feedback?: string;\n variant?: VariantType;\n className?: string;\n style?: { [key: string]: any };\n};\nexport const DropdownInputGroupDeprecated: React.FC<DropdownInputGroupDeprecatedProps> =\n ({ children, feedback, variant, className, style }) => {\n return (\n <VariantProvider variant={variant}>\n <div className={className} style={style}>\n {children}\n {feedback && variant && (\n <FeedbackText variant={variant}>{feedback}</FeedbackText>\n )}\n </div>\n </VariantProvider>\n );\n };\n","import React from 'react';\n\nexport type DropdownItemType =\n | { value?: string; label: string; icons?: React.ComponentType<any>[] }\n | string;\n\nexport type NormalizedDropdownItemType = {\n value: string;\n label: string;\n icons?: React.ComponentType<any>[];\n};\n\nexport const useNormalizedItems = (\n items: DropdownItemType[],\n): NormalizedDropdownItemType[] =>\n React.useMemo(\n () =>\n items.map(item => {\n if (typeof item == 'string') {\n return { value: item, label: item };\n }\n\n if (!('value' in item)) {\n return { ...item, value: item.label };\n }\n return item as NormalizedDropdownItemType;\n }),\n [items],\n );\n","import React from 'react';\nimport { debounce } from '@entur/utils';\nimport {\n DropdownItemType,\n NormalizedDropdownItemType,\n useNormalizedItems,\n} from './useNormalizedItems';\n\nconst useIsMounted = () => {\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef.current;\n};\n\ntype AsyncDropdownItemType = (inputType: string) => Promise<DropdownItemType[]>;\ntype SyncDropdownItemType = (inputType: string) => DropdownItemType[];\nexport type PotentiallyAsyncDropdownItemType =\n | DropdownItemType[]\n | SyncDropdownItemType\n | AsyncDropdownItemType;\n\ntype ResolverState = {\n items: DropdownItemType[];\n loading: boolean;\n};\n\ntype ResolverAction =\n | {\n type: 'request results';\n }\n | {\n type: 'received results';\n payload: DropdownItemType[];\n };\n\nconst reducer = (_state: ResolverState, action: ResolverAction) => {\n switch (action.type) {\n case 'request results':\n return { items: [], loading: true };\n case 'received results':\n return { items: action.payload, loading: false };\n }\n};\n\nexport const useResolvedItems = (\n /** The list of items, or an async function that resolves the list of items */\n itemsOrItemsResolver: PotentiallyAsyncDropdownItemType,\n /** The time to wait after the input changes to the fetchItems method is called */\n debounceTimeout = 250,\n): {\n fetchItems: (arg: string) => void;\n loading: boolean;\n items: NormalizedDropdownItemType[];\n} => {\n const isItemsFunction = typeof itemsOrItemsResolver === 'function';\n\n // Here, we normalize the itemsResolver argument to an async function, so we\n // can use it without thinking about the differences later\n const itemsResolver = React.useMemo(\n () =>\n isItemsFunction\n ? (itemsOrItemsResolver as AsyncDropdownItemType)\n : () => Promise.resolve(itemsOrItemsResolver as DropdownItemType[]),\n [itemsOrItemsResolver, isItemsFunction],\n );\n\n const [{ items, loading }, dispatch] = React.useReducer(reducer, {\n items: isItemsFunction ? [] : (itemsOrItemsResolver as DropdownItemType[]),\n loading: false,\n });\n\n // This is a way to check whether or not the dropdown is still in the\n // document. We use it below to make sure we're not updating the state of\n // an unmounted component.\n const isMounted = useIsMounted();\n\n // Next, let's create the fetching function. This should be called whenever\n // the input value changes\n const fetchItems = React.useCallback(\n async (inputValue: string) => {\n if (!isMounted) {\n return;\n }\n dispatch({ type: 'request results' });\n const resolvedItems = await itemsResolver(inputValue);\n if (isMounted) {\n dispatch({ type: 'received results', payload: resolvedItems });\n }\n },\n [itemsResolver, isMounted],\n );\n\n const normalizedItems = useNormalizedItems(items);\n React.useEffect(() => {\n // Let's fetch the list initially if it's specified\n if (isItemsFunction) {\n fetchItems('');\n }\n }, [isItemsFunction, fetchItems]);\n\n return {\n items: normalizedItems,\n loading: isItemsFunction ? loading : false,\n fetchItems: debounce(fetchItems, debounceTimeout),\n };\n};\n","import React from 'react';\nimport { VariantType } from '@entur/form';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { RegularDropdownDeprecated } from './RegularDropdown';\nimport { DownshiftProvider } from './DownshiftProvider';\nimport { SearchableDropdownDeprecated } from './SearchableDropdown';\nimport { DropdownInputGroupDeprecated } from './DropdownInputGroup';\nimport {\n useResolvedItems,\n PotentiallyAsyncDropdownItemType,\n} from '../useResolvedItems';\n\nexport type DropdownDeprecatedProps = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i dropdownen */\n items: PotentiallyAsyncDropdownItemType;\n /** Valgt verdi. Bruk null for ingen verdi. */\n value?: string | null;\n /** Om man skal kunne søke i dropdownen eller ikke */\n searchable?: boolean;\n /** Tooltip for labelen */\n labelTooltip?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer før dropdownen */\n prepend?: React.ReactNode;\n /** Deaktiver dropdownen */\n disabled?: boolean;\n /** Setter dropdownen i read-only modus */\n readOnly?: boolean;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** En tekst som beskriver hva som skjer når man venter på items */\n loadingText?: string;\n /** Callback når brukeren endrer valg */\n onChange?: (selectedItem: NormalizedDropdownItemType | null) => void;\n /** Lar brukeren velge ved å \"tæbbe\" seg ut av komponenten */\n selectOnTab?: boolean;\n /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe */\n openOnFocus?: boolean;\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon */\n debounceTimeout?: number;\n /** Om man skal ha muliget for å nullstille Dropdownen\n * @default false\n */\n clearable?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Marker første valgmulighet automatisk */\n highlightFirstItemOnOpen?: boolean;\n /** Styling som sendes ned til Dropdown-lista */\n listStyle?: { [key: string]: any };\n /** Filtreringen som blir brukt dersom man har en searchable Dropdown\n * @default Enkel tekstsammenligning\n */\n itemFilter?: (item: NormalizedDropdownItemType) => boolean;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Alle ekstra props videresendes til Downshift */\n [key: string]: any;\n};\n\n/**\n * @deprecated\n * New Dropdown available\n *\n * migration guide to new dropdown:\n * - change import from 'DropdownDeprecated' to 'Dropdown'\n * + if 'searchable', switch to 'SearchableDropdown'\n * - change from 'value' to 'selectedItem'\n * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'\n * - 'onChange' must update value of 'selectedItem'\n */\nexport const DropdownDeprecated: React.FC<DropdownDeprecatedProps> =\n React.forwardRef<\n HTMLInputElement | HTMLButtonElement,\n DropdownDeprecatedProps\n >(\n (\n {\n highlightFirstItemOnOpen,\n debounceTimeout,\n disabled,\n feedback,\n items,\n label,\n loadingText,\n onChange = () => undefined,\n placeholder,\n prepend,\n readOnly,\n searchable,\n selectOnTab,\n openOnFocus,\n variant,\n value,\n clearable = false,\n className,\n style,\n listStyle,\n itemFilter,\n disableLabelAnimation,\n ...rest\n },\n ref,\n ) => {\n const {\n items: normalizedItems,\n loading,\n fetchItems,\n } = useResolvedItems(items, debounceTimeout);\n\n const selectedItem =\n value === undefined\n ? undefined\n : normalizedItems.find(item => value === item.value) || null;\n\n const RenderedDropdown = searchable\n ? SearchableDropdownDeprecated\n : RegularDropdownDeprecated;\n const searchAbleProps = searchable\n ? {\n itemFilter: itemFilter,\n name: rest.name,\n 'data-cy': rest['data-cy'],\n }\n : { name: rest.name, 'data-cy': rest['data-cy'] };\n return (\n <DownshiftProvider\n selectedItem={selectedItem}\n onInputValueChange={fetchItems}\n onChange={onChange}\n value={value}\n highlightFirstItemOnOpen={highlightFirstItemOnOpen}\n className={className}\n style={style}\n searchable={searchable}\n {...rest}\n >\n <DropdownInputGroupDeprecated feedback={feedback} variant={variant}>\n <RenderedDropdown\n label={label}\n items={normalizedItems}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n prepend={prepend}\n selectOnTab={selectOnTab}\n openOnFocus={openOnFocus}\n listStyle={listStyle}\n clearable={clearable}\n disableLabelAnimation={disableLabelAnimation}\n ref={ref}\n {...searchAbleProps}\n />\n </DropdownInputGroupDeprecated>\n </DownshiftProvider>\n );\n },\n );\n","import React, { useState } from 'react';\nimport {\n useSelect,\n UseSelectProps,\n // StateChangeOptions,\n // UseSelectStateChangeOptions,\n} from 'downshift';\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from '../useResolvedItems';\nimport { DropdownDeprecatedLoadingDots } from './DropdownLoadingDots';\nimport { useRandomId } from '@entur/utils';\nimport classNames from 'classnames';\nimport { CloseIcon, DownArrowIcon } from '@entur/icons';\nimport { space } from '@entur/tokens';\nimport './MultiSelect.scss';\nimport './DropdownList.scss';\n\nconst MultiSelectOldContext = React.createContext<{\n isOpen: boolean;\n reset: () => void;\n getToggleButtonProps: any;\n openMenu: () => void;\n openOnFocus?: boolean;\n} | null>(null);\nconst useMultiSelectOldContext = () => {\n const context = React.useContext(MultiSelectOldContext);\n if (!context) {\n throw new Error('You need to wrap your component in a DownshiftProvider');\n }\n return context;\n};\n\nfunction stateReducer(\n state: any, //StateChangeOptions<NormalizedDropdownItemType>,\n actionAndChanges: any, //UseSelectStateChangeOptions<NormalizedDropdownItemType>,\n) {\n const { changes, type } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick:\n return {\n ...changes,\n isOpen: true, // keep menu open after selection.\n highlightedIndex: state.highlightedIndex,\n };\n default:\n return changes;\n }\n}\ntype MultiSelectDeprecatedProps = {\n /** Tilgjengelige valg i MultiSelect */\n items: PotentiallyAsyncDropdownItemType;\n /** Tekst som vises i boksen når elementer er valgt */\n itemsSelectedLabel?: (\n selectedItems: NormalizedDropdownItemType[],\n numberOfItems?: number,\n ) => string;\n /** Beskrivende tekst som forklarer feltet */\n label?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer før MultiSelect */\n prepend?: React.ReactNode;\n /** Deaktiver dropdownen */\n disabled?: boolean;\n /** Setter dropdownen i read-only modus */\n readOnly?: boolean;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** En tekst som beskriver hva som skjer når man venter på items */\n loadingText?: string;\n /** Callback når brukeren endrer valg */\n onChange?: (e: any) => void;\n /** Om man skal vise items ved fokusering av input-feltet, før man skriver inn noe\n * @default false\n */\n openOnFocus?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Styling som sendes ned til MultiSelect-lista */\n listStyle?: { [key: string]: any };\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon\n * @default 250\n */\n debounceTimeout?: number;\n /** Om man skal ha muliget for å nullstille Dropdownen\n * @default false\n */\n clearable?: boolean;\n loading?: boolean;\n style?: React.CSSProperties;\n initialSelectedItems?: NormalizedDropdownItemType[];\n} & Omit<\n UseSelectProps<NormalizedDropdownItemType>,\n 'initialSelectedItem' | 'items'\n>;\n\n/**\n * @deprecated\n * New MultiSelect available\n *\n * migration guide to new dropdown:\n * - change import from 'MultiSelectDeprecated' to 'MultiSelect'\n * - add state containing selected items to 'selectedItems' prop\n * + type of 'selectedItems' is 'NormalizedDropdownType[]' and does not include 'string'\n * - 'onChange' must update value of 'selectedItem'\n */\nexport const MultiSelectDeprecated: React.FC<MultiSelectDeprecatedProps> = ({\n className,\n clearable = false,\n debounceTimeout,\n disabled,\n feedback,\n initialSelectedItems = [],\n items: input,\n itemsSelectedLabel = items => SelectedItemsLabel(items),\n label,\n listStyle,\n loading = false,\n loadingText = '',\n onChange = () => undefined,\n openOnFocus = false,\n readOnly = false,\n style,\n variant,\n ...rest\n}) => {\n const { items } = useResolvedItems(input, debounceTimeout);\n const [selectedItems, setSelectedItems] =\n useState<NormalizedDropdownItemType[]>(initialSelectedItems);\n\n const reset = React.useCallback(() => {\n setSelectedItems([]);\n }, []);\n\n function isSelected(selectedCheckboxItem: NormalizedDropdownItemType) {\n return selectedItems.some(\n selected => selected.value === selectedCheckboxItem.value,\n );\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n openMenu,\n } = useSelect<NormalizedDropdownItemType>({\n items,\n stateReducer,\n selectedItem: null,\n onSelectedItemChange: ({ selectedItem }) => {\n if (!selectedItem) {\n return;\n }\n const itemIsFound = isSelected(selectedItem);\n if (itemIsFound) {\n const slicedItemList = selectedItems.filter(\n item => item.value !== selectedItem.value,\n );\n setSelectedItems(slicedItemList);\n onChange(slicedItemList);\n } else {\n const slicedItemList = [...selectedItems, selectedItem];\n setSelectedItems(slicedItemList);\n onChange(slicedItemList);\n }\n },\n ...rest,\n });\n const buttonText = selectedItems.length\n ? itemsSelectedLabel(selectedItems)\n : '';\n const multiSelectId = useRandomId('eds-multiselect');\n\n return (\n <MultiSelectOldContext.Provider\n value={{ isOpen, reset, getToggleButtonProps, openMenu, openOnFocus }}\n >\n <div\n className={classNames(\n 'eds-multiselect',\n 'eds-dropdown-wrapper',\n className,\n )}\n style={style}\n >\n <BaseFormControl\n label={label}\n labelId={multiSelectId}\n labelProps={...getLabelProps()}\n feedback={feedback}\n variant={variant}\n isFilled={selectedItems.length > 0 || isOpen}\n disabled={disabled}\n readOnly={readOnly}\n append={\n <Appendix\n hasSelected={clearable && selectedItems.length > 0}\n loading={loading}\n loadingText={loadingText}\n readOnly={readOnly}\n />\n }\n >\n <button\n {...getToggleButtonProps({\n style: {\n textAlign: 'left',\n },\n type: 'button',\n className: 'eds-form-control eds-multiselect__button',\n })}\n >\n {buttonText}\n </button>\n </BaseFormControl>\n <ul\n className={classNames('eds-dropdown-list', {\n 'eds-dropdown-list--open': isOpen,\n })}\n {...getMenuProps({\n style: {\n position: 'absolute',\n top: `${space.extraLarge3 + space.extraSmall}px`,\n ...listStyle,\n },\n })}\n >\n {isOpen &&\n items.map((item, index) => (\n <li\n className={classNames('eds-dropdown-list__item', {\n 'eds-dropdown-list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown-list__item--selected': isSelected(item),\n })}\n key={`${item.value}${index}`}\n {...getItemProps({\n item,\n index,\n })}\n style={{ display: 'flex' }}\n >\n <span style={{ display: 'flex' }}>\n <span\n className={classNames('eds-multiselect-checkbox', {\n 'eds-multiselect-checkbox--checked': isSelected(item),\n })}\n >\n <CheckboxIcon />\n </span>\n <span className=\"eds-multiselect__item-label\">\n {item.label}\n </span>\n </span>\n {item.icons && (\n <span>\n {item.icons.map((Icon, index) => (\n <Icon\n key={index}\n inline\n className=\"eds-dropdown-list__item-icon\"\n />\n ))}\n </span>\n )}\n </li>\n ))}\n </ul>\n </div>\n </MultiSelectOldContext.Provider>\n );\n};\n\nconst ClearButton: React.FC<{ [key: string]: any }> = ({ ...props }) => {\n const { reset } = useMultiSelectOldContext();\n return (\n <>\n <button\n className=\"eds-dropdown__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={() => reset()}\n {...props}\n >\n <CloseIcon />\n </button>\n <div className=\"eds-dropdown__divider\"></div>\n </>\n );\n};\n\nconst Appendix: React.FC<{\n loading: boolean;\n loadingText: string;\n readOnly: boolean;\n hasSelected: boolean;\n}> = ({ loading, loadingText, readOnly, hasSelected }) => {\n if (loading) {\n return (\n <DropdownDeprecatedLoadingDots>\n {loadingText}\n </DropdownDeprecatedLoadingDots>\n );\n }\n if (readOnly) {\n return null;\n }\n return hasSelected ? (\n <>\n <ClearButton></ClearButton>\n <DropdownToggleButton />\n </>\n ) : (\n <DropdownToggleButton />\n );\n};\n\nconst DropdownToggleButton = () => {\n const { getToggleButtonProps, isOpen, openMenu, openOnFocus } =\n useMultiSelectOldContext();\n return (\n <button\n {...getToggleButtonProps({\n className: classNames('eds-dropdown__toggle-button', {\n 'eds-dropdown__toggle-button--open': isOpen,\n }),\n onFocus: () => {\n if (openOnFocus) {\n openMenu();\n }\n },\n })}\n type=\"button\"\n >\n <DownArrowIcon />\n </button>\n );\n};\n\nconst CheckboxIcon: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n\nfunction SelectedItemsLabel(items: NormalizedDropdownItemType[]) {\n return items.length < 3\n ? items.map(item => item.label).toString()\n : `${items.length} elementer valgt`;\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetMenuPropsOptions,\n GetPropsCommonOptions,\n UseComboboxGetItemPropsOptions,\n} from 'downshift';\n\nimport { Checkbox } from '@entur/form';\nimport { VisuallyHidden } from '@entur/a11y';\n\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<NormalizedDropdownItemType>,\n ) => any;\n getMenuProps: (\n options?: UseComboboxGetMenuPropsOptions | undefined,\n otherOptions?: GetPropsCommonOptions | undefined,\n ) => any;\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType[];\n listStyle: { [key: string]: any } | undefined;\n loading?: boolean;\n loadingText?: string;\n noMatchesText?: string;\n selectAllCheckboxState?: () => boolean | 'indeterminate';\n selectAllItem?: NormalizedDropdownItemType;\n selectedItems: NormalizedDropdownItemType[];\n [key: string]: any;\n};\n\nexport const DropdownList = ({\n ariaLabelChosenSingular = 'valgt',\n ariaLabelSelectedItem = ', valgt element, trykk for å fjerne',\n getItemProps,\n getMenuProps,\n inputValue,\n isOpen,\n highlightedIndex,\n listItems,\n listStyle,\n loading = false,\n loadingText = 'Laster inn …',\n noMatchesText = 'Ingen treff for søket',\n selectAllCheckboxState,\n selectAllItem,\n selectedItems,\n showSelectAllInList = false,\n ...rest\n}: DropdownListProps) => {\n const isMultiselect = selectAllItem !== undefined;\n const isNoMatches =\n !loading &&\n (listItems.length === 0 ||\n (listItems?.length === 1 &&\n listItems?.[0]?.value === selectAllItem?.value));\n const isItemSelected = (item: NormalizedDropdownItemType) =>\n selectedItems.some(\n selectedItem =>\n selectedItem?.value === item?.value &&\n selectedItem?.label === item?.label,\n );\n\n const ariaLabelSelectAll = () => {\n switch (selectAllCheckboxState?.()) {\n case 'indeterminate': {\n return `${selectAllItem?.label}, delvis valgt`;\n }\n case true: {\n return `${selectAllItem?.label}, ${ariaLabelChosenSingular}`;\n }\n default: {\n return `${selectAllItem?.label}`;\n }\n }\n };\n\n const selectAllListItemContent = () => (\n <>\n <Checkbox\n aria-hidden=\"true\"\n checked={selectAllCheckboxState?.()}\n className=\"eds-dropdown__list__item__checkbox\"\n onChange={() => {\n return;\n }}\n tabIndex={-1}\n />\n <span\n className=\"eds-dropdown__list__item__text\"\n aria-label={ariaLabelSelectAll()}\n >\n {selectAllItem?.label}\n </span>\n </>\n );\n\n const listItemContent = (item: NormalizedDropdownItemType) => {\n return (\n <>\n <Checkbox\n aria-hidden=\"true\"\n checked={isItemSelected(item)}\n className=\"eds-dropdown__list__item__checkbox\"\n onChange={() => {\n return;\n }}\n style={!isMultiselect ? { display: 'none' } : {}}\n tabIndex={-1}\n />\n\n <span className=\"eds-dropdown__list__item__text\">\n {item.label}\n <VisuallyHidden>\n {isItemSelected(item) ? ariaLabelSelectedItem : ''}\n </VisuallyHidden>\n </span>\n {item.icons && (\n <span>\n {item.icons.map(Icon => (\n <Icon\n key={\n item?.label + item?.value + (Icon?.displayName ?? Icon?.name)\n }\n inline\n className=\"eds-dropdown__list__item__icon\"\n />\n ))}\n </span>\n )}\n </>\n );\n };\n\n return (\n // use popover from @entur/tooltip when that package upgrades to floating-ui\n <ul\n {...getMenuProps()}\n className=\"eds-dropdown__list\"\n style={{\n display: isOpen ? 'inline-block' : 'none',\n ...rest.style,\n ...listStyle,\n }}\n >\n {listItems.length > 0 &&\n listItems.map((item, index) => {\n const itemIsSelectAll = item.value === selectAllItem?.value;\n if (itemIsSelectAll && listItems.length <= 2) return null;\n\n return (\n <li\n key={item?.label + item?.value}\n className={classNames('eds-dropdown__list__item', {\n 'eds-dropdown__list__item--select-all': itemIsSelectAll,\n 'eds-dropdown__list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown__list__item--selected':\n !isMultiselect && isItemSelected(item),\n })}\n {...getItemProps({\n key: item?.label + item?.value,\n item,\n index,\n })}\n >\n {itemIsSelectAll\n ? selectAllListItemContent()\n : listItemContent(item)}\n </li>\n );\n })}\n\n {isNoMatches && (\n <li key=\"dropdown-list-no-match\" className=\"eds-dropdown__list__item\">\n {noMatchesText}\n </li>\n )}\n {/* Known bug: the debounce of useResolvedItems makes noMatchesText show up before loadingText on fetch.\n To solve this, the dropdownList needs to account for the debounce */}\n {loading && (\n <li key=\"dropdown-list-loading\" className=\"eds-dropdown__list__item\">\n {loadingText}\n </li>\n )}\n </ul>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetToggleButtonPropsOptions,\n UseMultipleSelectionGetSelectedItemPropsOptions,\n} from 'downshift';\n\nimport { IconButton } from '@entur/button';\nimport { TagChip } from '@entur/chip';\nimport { CloseSmallIcon, DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { Tooltip } from '@entur/tooltip';\n\nimport { NormalizedDropdownItemType } from '../useNormalizedItems';\n\nimport './FieldComponents.scss';\n\nexport const SelectedItemTag = ({\n ariaLabelRemoveSelected,\n ariaLabelChosen = 'valgt',\n disabled,\n getSelectedItemProps,\n index,\n readOnly,\n removeSelectedItem,\n selectedItem,\n}: {\n ariaLabelRemoveSelected: string;\n ariaLabelChosen?: string;\n disabled?: boolean;\n getSelectedItemProps?: (\n options: UseMultipleSelectionGetSelectedItemPropsOptions<NormalizedDropdownItemType>,\n ) => any;\n index?: number;\n readOnly?: boolean;\n removeSelectedItem: (item: NormalizedDropdownItemType) => void;\n selectedItem: NormalizedDropdownItemType;\n}) => {\n const { tabIndex: _, ...selectedItemProps } =\n getSelectedItemProps?.({\n selectedItem,\n index,\n }) ?? {};\n return (\n <TagChip\n className={classNames('eds-dropdown__selected-item-tag', {\n 'eds-dropdown__selected-item-tag--readonly': readOnly,\n 'eds-dropdown__selected-item-tag--disabled': disabled,\n })}\n {...selectedItemProps}\n onClose={(e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n removeSelectedItem(selectedItem);\n }}\n closeButtonAriaLabel={`${selectedItem.label} ${ariaLabelChosen}, ${ariaLabelRemoveSelected} `}\n key={selectedItem.value}\n aria-live=\"polite\"\n >\n <span aria-hidden=\"true\">{selectedItem.label}</span>\n </TagChip>\n );\n};\n\nexport const FieldAppend: React.FC<{\n ariaHiddenToggleButton?: boolean;\n ariaLabelCloseList?: string;\n ariaLabelOpenList?: string;\n clearable?: boolean;\n labelClearSelectedItems?: string;\n disabled?: boolean;\n focusable?: boolean;\n getToggleButtonProps: (\n options?: UseComboboxGetToggleButtonPropsOptions | undefined,\n ) => any;\n isOpen: boolean;\n loading?: boolean;\n loadingText?: string;\n onClear: () => void;\n selectedItems: (NormalizedDropdownItemType | null)[];\n}> = ({\n ariaHiddenToggleButton = false,\n ariaLabelCloseList,\n ariaLabelOpenList,\n clearable = false,\n labelClearSelectedItems,\n disabled = false,\n focusable = false,\n getToggleButtonProps,\n isOpen,\n loading = false,\n loadingText = 'Laster resultater …',\n onClear,\n selectedItems,\n}) => {\n if (disabled) {\n return null;\n }\n return (\n <div className=\"eds-dropdown__appendix\">\n {clearable && selectedItems?.length > 0 && selectedItems[0] !== null && (\n <>\n <ClearableButton\n onClear={onClear}\n focusable={true}\n labelClearSelectedItems={labelClearSelectedItems}\n />\n <div className=\"eds-dropdown__appendix__divider\" />\n </>\n )}\n {!loading ? (\n <ToggleButton\n aria-hidden={ariaHiddenToggleButton}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n getToggleButtonProps={getToggleButtonProps}\n isOpen={isOpen}\n focusable={focusable}\n />\n ) : (\n <div className={'eds-dropdown__appendix__toggle-button--loading-dots'}>\n <LoadingDots aria-label={loadingText} />\n </div>\n )}\n </div>\n );\n};\n\nconst ClearableButton = ({\n onClear,\n labelClearSelectedItems = 'Fjern valgte',\n focusable = false,\n}: {\n onClear: () => void;\n labelClearSelectedItems?: string;\n focusable?: boolean;\n ariaLabelClearItems?: string;\n}) => {\n return (\n <Tooltip\n aria-hidden=\"true\"\n placement=\"top\"\n content={labelClearSelectedItems}\n className=\"eds-dropdown__appendix__clear-button__tooltip\"\n >\n <IconButton\n className=\"eds-dropdown__appendix__clear-button\"\n type=\"button\"\n tabIndex={focusable ? 0 : 1}\n onClick={onClear}\n aria-label={labelClearSelectedItems}\n >\n <CloseSmallIcon aria-hidden=\"true\" />\n </IconButton>\n </Tooltip>\n );\n};\n\nconst ToggleButton = ({\n getToggleButtonProps,\n isOpen,\n 'aria-hidden': ariaHidden = false,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\n focusable = false,\n}: {\n getToggleButtonProps: (\n options?: UseComboboxGetToggleButtonPropsOptions | undefined,\n ) => any;\n isOpen: boolean;\n 'aria-hidden'?: boolean;\n ariaLabelCloseList?: string;\n ariaLabelOpenList?: string;\n focusable?: boolean;\n}) => {\n return (\n <IconButton\n {...getToggleButtonProps({\n className: classNames('eds-dropdown__appendix__toggle-button', {\n 'eds-dropdown__appendix__toggle-button--open': isOpen,\n }),\n 'aria-labelledby': undefined,\n })}\n aria-hidden={ariaHidden}\n aria-label={\n ariaHidden ? undefined : isOpen ? ariaLabelCloseList : ariaLabelOpenList\n }\n tabIndex={focusable ? 0 : -1}\n type=\"button\"\n >\n <DownArrowIcon aria-hidden=\"true\" />\n </IconButton>\n );\n};\n","import { A11yRemovalMessage, A11yStatusMessageOptions } from 'downshift';\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport React from 'react';\n\n/* start general utils */\nexport const EMPTY_INPUT = '';\n\nexport function lowerCaseFilterTest(\n item: NormalizedDropdownItemType,\n input: string | undefined,\n) {\n if (!input) {\n return true;\n }\n const sanitizeEscapeCharacters = input.replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n '\\\\$&',\n );\n const inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');\n return inputRegex.test(item.label);\n}\n\nexport function noFilter(\n //@ts-expect-error only here to comply with dropdown filter API\n item: NormalizedDropdownItemType,\n //@ts-expect-error only here to comply with dropdown filter API\n input: string | undefined,\n) {\n return true;\n}\n\nexport const itemToString = (item: NormalizedDropdownItemType | null) =>\n item ? item.label : '';\n\nexport const isFunctionWithQueryArgument = (object: any) =>\n typeof object === 'function' && object.length > 0;\n\n/* end general utils */\n/* start multiselect utils */\n\ntype useMultiselectUtilsType = {\n selectedItems: NormalizedDropdownItemType[];\n listItems: NormalizedDropdownItemType[];\n selectAll: NormalizedDropdownItemType;\n};\n\nexport const useMultiselectUtils = ({\n listItems,\n selectedItems,\n selectAll,\n}: useMultiselectUtilsType) => {\n const hasSelectedItems = selectedItems.length > 0;\n\n const listItemsWithoutSelectAll = listItems.filter(\n item => item.value !== selectAll.value,\n );\n\n const unselectedItemsInListItems = listItemsWithoutSelectAll.filter(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const allListItemsAreSelected = !listItemsWithoutSelectAll.some(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const someListItemsAreSelected = listItemsWithoutSelectAll.some(listItem =>\n selectedItems.some(selectedItem => selectedItem.value === listItem.value),\n );\n\n const addClickedItemToSelectedItems = (\n clickedItem: NormalizedDropdownItemType,\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) => onChange([...selectedItems, clickedItem]);\n\n const clickedItemIsInSelectedItems = (\n clickedItem: NormalizedDropdownItemType,\n ) =>\n selectedItems.some(\n selectedItem => selectedItem.value === clickedItem.value,\n );\n\n const clickedItemIsSelectAll = (clickedItem: NormalizedDropdownItemType) =>\n clickedItem.value === selectAll.value;\n\n const handleListItemClicked = ({\n clickedItem,\n onChange,\n setLastRemovedItem,\n }: {\n clickedItem: NormalizedDropdownItemType;\n onChange: (value: NormalizedDropdownItemType[]) => void;\n setLastRemovedItem: any;\n }) => {\n if (clickedItemIsSelectAll(clickedItem)) {\n if (allListItemsAreSelected) {\n setLastRemovedItem(selectAll);\n return unselectAllListItems(onChange);\n }\n return selectAllUnselectedItemsInListItems(onChange);\n }\n\n if (clickedItemIsInSelectedItems(clickedItem)) {\n setLastRemovedItem(clickedItem);\n return removeClickedItemFromSelectedItems(clickedItem, onChange);\n }\n addClickedItemToSelectedItems(clickedItem, onChange);\n };\n\n const removeClickedItemFromSelectedItems = (\n clickedItem: NormalizedDropdownItemType,\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) =>\n onChange(\n selectedItems.filter(\n selectedItem => selectedItem.value !== clickedItem.value,\n ),\n );\n\n const selectAllCheckboxState = () => {\n if (allListItemsAreSelected) return true;\n if (someListItemsAreSelected) return 'indeterminate';\n return false;\n };\n\n const selectAllUnselectedItemsInListItems = (\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) => {\n onChange([...selectedItems, ...unselectedItemsInListItems]);\n };\n\n const unselectAllListItems = (\n onChange: (value: NormalizedDropdownItemType[]) => void,\n ) => {\n const selectedItemsWithoutItemsInListItems = selectedItems.filter(\n selectedItem =>\n !listItemsWithoutSelectAll.some(\n listItem => listItem.value === selectedItem.value,\n ),\n );\n onChange(selectedItemsWithoutItemsInListItems);\n };\n\n return {\n addClickedItemToSelectedItems,\n allListItemsAreSelected,\n clickedItemIsInSelectedItems,\n clickedItemIsSelectAll,\n handleListItemClicked,\n hasSelectedItems,\n listItemsWithoutSelectAll,\n removeClickedItemFromSelectedItems,\n selectAllCheckboxState,\n selectAllUnselectedItemsInListItems,\n someListItemsAreSelected,\n unselectAllListItems,\n };\n};\n\n/* end multiselect utils */\n/* start a11y utils */\ntype getA11yStatusMessageType<Item> = A11yStatusMessageOptions<Item> & {\n selectAllItemIncluded?: boolean;\n ariaLabelNoResults?: string;\n};\n\nexport function getA11yStatusMessage<Item>(\n options: getA11yStatusMessageType<Item>,\n): string {\n const {\n isOpen,\n resultCount,\n previousResultCount,\n selectAllItemIncluded = false,\n ariaLabelNoResults = 'Ingen resultater',\n } = options;\n\n if (!isOpen) {\n return '';\n }\n\n const resultCountWithoutSelectAll = selectAllItemIncluded\n ? resultCount - 1\n : resultCount;\n\n if (resultCountWithoutSelectAll === 0) {\n return ariaLabelNoResults;\n }\n\n if (resultCount !== previousResultCount) {\n return `${resultCountWithoutSelectAll} resultat${\n resultCountWithoutSelectAll === 1 ? '' : 'er'\n } tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.`;\n }\n\n return '';\n}\n\ntype getA11ySelectionMessageType<Item> = A11yStatusMessageOptions<Item> & {\n selectAllItem?: NormalizedDropdownItemType;\n};\n\nexport function getA11ySelectionMessage(\n options: getA11ySelectionMessageType<NormalizedDropdownItemType>,\n) {\n const {\n selectedItem,\n itemToString: itemToStringLocal,\n selectAllItem,\n } = options;\n\n if (selectedItem?.value === selectAllItem?.value)\n return 'Alle elementer i listen valgt.';\n\n return selectedItem ? `${itemToStringLocal(selectedItem)} er valgt.` : '';\n}\n\ntype getA11yRemovalMessageType<Item> = A11yRemovalMessage<Item> & {\n selectAllItem?: NormalizedDropdownItemType;\n removedItem?: NormalizedDropdownItemType;\n};\n\nexport function getA11yRemovalMessage(\n options: getA11yRemovalMessageType<NormalizedDropdownItemType>,\n) {\n const { itemToString, selectAllItem, removedItem } = options;\n if (removedItem === undefined) return '';\n if (removedItem.value === selectAllItem?.value)\n return 'Alle elementer i listen fjernet fra valgte.';\n\n return `${itemToString(removedItem)} fjernet fra valgte.`;\n}\n\n/**A VoiceOver click is always preformed in the center of the clicked element.\n This functions expolits that to check if the performed click likely is \n made by VoiceOver. */\nexport const isVoiceOverClick = (clickEvent: React.MouseEvent) => {\n const targetElementRect = clickEvent.currentTarget.getBoundingClientRect();\n const targetElementMiddleX = Math.floor(\n targetElementRect.x + targetElementRect.width / 2,\n );\n const targetElementMiddleY = Math.floor(\n targetElementRect.y + targetElementRect.height / 2,\n );\n\n const clickPositionX = clickEvent.clientX;\n const clickPositionY = clickEvent.clientY;\n\n console.log(\n 'targetX:',\n targetElementMiddleX,\n 'targetY:',\n targetElementMiddleY,\n 'clickX:',\n clickPositionX,\n 'clickY:',\n clickPositionY,\n );\n\n return (\n Math.abs(targetElementMiddleX - clickPositionX) <= 1 &&\n Math.abs(targetElementMiddleY - clickPositionY) <= 1\n );\n};\n/* end a11y utils */\n","/* eslint-disable no-warning-comments */\nimport React, { Dispatch, SetStateAction, useRef, useState } from 'react';\nimport { UseComboboxStateChangeOptions, useCombobox } from 'downshift';\nimport classNames from 'classnames';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n isVoiceOverClick,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport './Dropdown.scss';\n\nexport type SearchableDropdownProps = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType;\n /** Valgt element. Bruk null for ingen verdi */\n selectedItem: NormalizedDropdownItemType | null;\n /** Callback ved valg som skal brukes til å oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType | null,\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType | null>>;\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType,\n inputValue: string | undefined,\n ) => boolean;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** Vis knapp for å nullstille Dropdown-en skal vises\n * @default true\n */\n clearable?: boolean;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items\n * Denne er kun relevant hvis du sender inn en funksjon som items.\n */\n debounceTimeout?: number;\n /** Deaktiver dropdown-en */\n disabled?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket\n * @default \"Ingen treff for søket\"\n */\n noMatchesText?: string;\n /** Gjør dropdown-en til å kun kunne leses\n * @default false\n */\n readOnly?: boolean;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /** En tekst som beskriver hva som skjer når man venter på items */\n loadingText?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n className?: string;\n style?: { [key: string]: any };\n /** Style som kun påføres listeelementet */\n listStyle?: { [key: string]: any };\n /** Tekst som beskriver at man fjerner valget sitt\n * @default \"fjern valgt\"\n */\n labelClearSelectedItem?: string;\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default \"valgt\"\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default \", valgt element, trykk for å fjerne\"\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const SearchableDropdown = ({\n ariaLabelChosenSingular,\n ariaLabelCloseList,\n ariaLabelOpenList,\n ariaLabelSelectedItem,\n className,\n clearable = true,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation = false,\n feedback,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelClearSelectedItem = 'fjern valgt',\n listStyle,\n loadingText,\n noMatchesText,\n onChange = () => undefined,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem: value,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ...rest\n}: SearchableDropdownProps) => {\n const [showSelectedItem, setShowSelectedItem] = useState(value !== null);\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const {\n items: normalizedItems,\n loading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const [listItems, setListItems] = React.useState(normalizedItems);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems(normalizedItems.filter(item => itemFilter(item, inputValue)));\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n React.useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const inputHasFocus =\n typeof document !== 'undefined'\n ? inputRef?.current === document?.activeElement\n : false;\n\n const stateReducer = React.useCallback(\n (\n _,\n {\n type,\n changes,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType>,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // empty input to show selected item and reset dropdown list on item selection\n case useCombobox.stateChangeTypes.ItemClick:\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.InputBlur: {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n }\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n if (changes.selectedItem !== null && !inputHasFocus)\n setShowSelectedItem(true);\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n // remove leading whitespace, select element with spacebar on empty input, and filter list based on input\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n setInputValue(\n changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT),\n );\n\n if (isSpacePressedOnEmptyInput) {\n openMenu();\n\n if (isOpen && changes.highlightedIndex !== undefined) {\n onChange(listItems[changes.highlightedIndex]);\n }\n }\n } else {\n updateListItems({ inputValue: changes.inputValue });\n setHighlightedIndex(0);\n setLastHighlightedIndex(0);\n }\n return changes;\n }\n default:\n return changes;\n }\n },\n [fetchItems, filterListItems], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const {\n isOpen,\n openMenu,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n highlightedIndex,\n setHighlightedIndex,\n getItemProps,\n selectedItem,\n inputValue,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex,\n items: listItems,\n itemToString,\n selectedItem: value,\n stateReducer,\n onStateChange({ type, selectedItem: clickedItem }) {\n switch (type) {\n // @ts-expect-error This falltrough is wanted\n case useCombobox.stateChangeTypes.InputBlur:\n if (!selectOnBlur) break;\n case useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough\n case useCombobox.stateChangeTypes.ItemClick:\n onChange(clickedItem ?? null);\n }\n },\n // Accessibility\n getA11yStatusMessage,\n // The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)\n // but is left here for when it is fixed\n getA11ySelectionMessage: options => getA11ySelectionMessage(options),\n ...rest,\n });\n\n const handleOnClear = () => {\n onChange(null);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n setShowSelectedItem(false);\n };\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className)}\n style={style}\n >\n <BaseFormControl\n className=\"eds-dropdown\"\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={selectedItem !== null || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) inputRef.current?.focus();\n }}\n prepend={prepend}\n readOnly={readOnly}\n variant={variant}\n {...rest}\n append={\n <FieldAppend\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n labelClearSelectedItems={labelClearSelectedItem}\n disabled={readOnly || disabled}\n focusable={false}\n getToggleButtonProps={getToggleButtonProps}\n isOpen={isOpen}\n loading={loading}\n loadingText={loadingText}\n onClear={handleOnClear}\n selectedItems={[selectedItem]}\n />\n }\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden':\n !showSelectedItem,\n })}\n aria-hidden=\"true\"\n onClick={() => inputRef.current?.focus()}\n >\n {showSelectedItem ? selectedItem?.label : ''}\n </span>\n <input\n className={classNames('eds-dropdown__input eds-form-control', {\n 'eds-dropdown__input--hidden': showSelectedItem,\n })}\n disabled={readOnly || disabled}\n placeholder={selectedItem?.label ?? placeholder}\n {...getInputProps({\n onClick: (e: React.MouseEvent) => {\n if (!isOpen && isVoiceOverClick(e)) openMenu();\n },\n onBlur: () => {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus: () => {\n setShowSelectedItem(false);\n },\n onKeyDown: e => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n if (highlitedItem) {\n // we don't want to clear selection with tab\n onChange?.(highlitedItem);\n }\n }\n },\n ref: inputRef,\n })}\n />\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n isOpen={isOpen}\n listItems={listItems}\n listStyle={listStyle}\n loading={loading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </div>\n );\n};\n","import React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport {\n useMultipleSelection,\n useCombobox,\n UseComboboxStateChangeOptions,\n A11yStatusMessageOptions,\n} from 'downshift';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { FieldAppend, SelectedItemTag } from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11yRemovalMessage,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n isVoiceOverClick,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport './Dropdown.scss';\n\nexport type MultiSelectProps = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i MultiSelect */\n items: PotentiallyAsyncDropdownItemType;\n /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte\n */\n selectedItems: NormalizedDropdownItemType[];\n /** Callback med alle valgte verdier.\n * Bruk denne til å oppdatere selectedItems-listen */\n onChange?: (\n selectedItems: NormalizedDropdownItemType[],\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType[]>>;\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType,\n inputValue: string | undefined,\n ) => boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Om dropdown-en er deaktivert */\n disabled?: boolean;\n /** Om dropdown-en er i read-only modus */\n readOnly?: boolean;\n /** Om en knapp for å fjerne alle valg skal vises\n * @default true\n */\n clearable?: boolean;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** En tekst som beskriver hva som skjer når man venter på items\n * @default \"Laster inn …\"\n */\n loadingText?: string;\n /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket\n * @default \"Ingen treff for søket\"\n */\n noMatchesText?: string;\n /** Skjuler «Velg alle» fra listen med valg\n * @default false\n */\n hideSelectAll?: boolean;\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon\n * @default 250\n */\n debounceTimeout?: number;\n /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag\n * @default 10\n */\n maxChips?: number;\n /** Tekst eller ikon som kommer før MultiSelect */\n prepend?: React.ReactNode;\n /** Resetter input etter at et element er valgt i listen\n * @default false\n */\n clearInputOnSelect?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n style?: React.CSSProperties;\n /** Styling som sendes ned til MultiSelect-lista */\n listStyle?: { [key: string]: any };\n /** Ekstra klassenavn */\n className?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Velg alle\"\n */\n labelSelectAll?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Alle valgt\"\n */\n labelAllItemsSelected?: string;\n /** Skjermleser-tekst som for å fjerne alle valg\n * @default \"Fjern valgte\"\n */\n labelClearAllItems?: string;\n /** Tekst for skjemleser på knapper for å fjerne valgt element\n * @default \"trykk for å fjerne valg\"\n */\n ariaLabelRemoveSelected?: string;\n /** Tekst for skjemleser for å indikere at et element er valgt\n * @default \"valgte\"\n */\n ariaLabelChosenPlural?: string;\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Tekst for skjemleser for å hoppe til input-feltet\n * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`\n */\n ariaLabelJumpToInput?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default 'valgt'\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default ', valgt element, trykk for å fjerne'\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const MultiSelect = ({\n className,\n clearable = true,\n clearInputOnSelect = false,\n debounceTimeout,\n disabled = false,\n feedback,\n hideSelectAll = false,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelAllItemsSelected = 'Alle valgt',\n labelClearAllItems = 'Fjern valgte',\n labelSelectAll = 'Velg alle',\n listStyle,\n loadingText,\n maxChips = 10,\n noMatchesText,\n onChange = () => undefined,\n placeholder,\n readOnly = false,\n selectedItems = [],\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ariaLabelChosenSingular,\n ariaLabelChosenPlural = 'valgte',\n ariaLabelCloseList,\n ariaLabelJumpToInput = `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`,\n ariaLabelOpenList,\n ariaLabelRemoveSelected = 'trykk for å fjerne valg',\n ariaLabelSelectedItem,\n ...rest\n}: MultiSelectProps) => {\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const [lastRemovedItem, setLastRemovedItem] = React.useState<\n NormalizedDropdownItemType | undefined\n >(undefined);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n //@ts-expect-error this is done to aid developers debug wrong prop usage\n if (rest.selectedItem !== undefined)\n console.warn(\n \"Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?\",\n );\n }, []);\n\n const {\n items: normalizedItems,\n loading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const isAllNonAsyncItemsSelected =\n typeof initialItems !== 'function' &&\n selectedItems.length === normalizedItems.length;\n\n // special 'item' used as Select All entry in the dropdown list\n const selectAll: NormalizedDropdownItemType = {\n value: useRandomId('select-all'),\n label: labelSelectAll,\n };\n // special 'item' used as a replacement selected item tag for when\n // there are more selected element than maxChips\n const summarySelectedItems: NormalizedDropdownItemType = React.useMemo(\n () => ({\n value: EMPTY_INPUT,\n label: isAllNonAsyncItemsSelected\n ? labelAllItemsSelected\n : selectedItems.length + ' ' + ariaLabelChosenPlural,\n }),\n [\n isAllNonAsyncItemsSelected,\n selectedItems,\n labelAllItemsSelected,\n ariaLabelChosenPlural,\n ],\n );\n\n const [listItems, setListItems] = useState([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems,\n ]);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems.filter(item => itemFilter(item, inputValue)),\n ]);\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n React.useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { hasSelectedItems, handleListItemClicked, selectAllCheckboxState } =\n useMultiselectUtils({\n listItems,\n selectAll,\n selectedItems,\n });\n\n const { getSelectedItemProps, getDropdownProps } = useMultipleSelection({\n selectedItems,\n itemToString,\n onStateChange({ selectedItems: newSelectedItems, type }) {\n switch (type) {\n case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:\n case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:\n case useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:\n case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem: {\n if (newSelectedItems !== undefined) onChange(newSelectedItems);\n break;\n }\n default:\n break;\n }\n },\n // Accessibility\n getA11yRemovalMessage: options =>\n getA11yRemovalMessage({\n ...options,\n selectAllItem: selectAll,\n removedItem: lastRemovedItem,\n }),\n });\n\n const stateReducer = React.useCallback(\n (\n _,\n {\n changes,\n type,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType>,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // keep menu open and edit input value on item selection\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n if (clearInputOnSelect) {\n updateListItems({ inputValue: EMPTY_INPUT });\n }\n return {\n ...changes,\n isOpen: true,\n inputValue: clearInputOnSelect\n ? EMPTY_INPUT\n : inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // edit input value when selected items is updated outside component\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem: {\n return {\n ...changes,\n inputValue: clearInputOnSelect\n ? EMPTY_INPUT\n : inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // remove leading whitespace, select item with spacebar if input is empty and filter list items\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n setInputValue(\n changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT),\n );\n\n if (isSpacePressedOnEmptyInput) {\n openMenu();\n\n if (isOpen && changes.highlightedIndex !== undefined) {\n handleListItemClicked({\n clickedItem: listItems[changes.highlightedIndex],\n onChange,\n setLastRemovedItem,\n });\n }\n }\n } else {\n updateListItems({ inputValue: changes.inputValue });\n }\n\n return changes;\n }\n // reset input value when leaving input field\n case useCombobox.stateChangeTypes.InputBlur: {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n }\n default:\n return changes;\n }\n },\n [hideSelectAll, normalizedItems, filterListItems, initialItems], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const {\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n inputValue,\n isOpen,\n openMenu,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex, // after selection, highlight previously selected item.\n items: listItems,\n itemToString,\n selectedItem: null,\n stateReducer,\n onStateChange({ type, selectedItem: clickedItem }) {\n // clickedItem means item chosen either via mouse or keyboard\n if (!clickedItem) return;\n\n switch (type) {\n // @ts-expect-error This falltrough is wanted\n case useCombobox.stateChangeTypes.InputBlur:\n if (!selectOnBlur) break;\n case useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough\n case useCombobox.stateChangeTypes.ItemClick: {\n handleListItemClicked({ clickedItem, onChange, setLastRemovedItem });\n }\n }\n },\n // Accessibility\n getA11yStatusMessage: function <Item>(\n options: A11yStatusMessageOptions<Item>,\n ) {\n return getA11yStatusMessage<Item>({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n });\n },\n // The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)\n // but is left here for when it is fixed\n getA11ySelectionMessage: options =>\n getA11ySelectionMessage({ ...options, selectAllItem: selectAll }),\n ...rest,\n });\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className)}\n style={style}\n >\n <BaseFormControl\n append={\n <FieldAppend\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n selectedItems={selectedItems}\n isOpen={isOpen}\n clearable={clearable}\n labelClearSelectedItems={labelClearAllItems}\n focusable={false}\n loading={loading}\n loadingText={loadingText}\n disabled={readOnly || disabled}\n onClear={handleOnClear}\n getToggleButtonProps={getToggleButtonProps}\n />\n }\n className=\"eds-dropdown\"\n disabled={disabled}\n feedback={feedback}\n isFilled={hasSelectedItems || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) inputRef.current?.focus();\n }}\n readOnly={readOnly}\n variant={variant}\n {...rest}\n >\n <div\n className={classNames(\n 'eds-dropdown--multiselect__selected-items-and-input',\n {\n 'eds-dropdown--multiselect__selected-items-and-input--filled':\n hasSelectedItems,\n },\n )}\n >\n {selectedItems.length < maxChips ? (\n <>\n {selectedItems.length > 1 ? (\n <VisuallyHidden onClick={() => inputRef.current?.focus()}>\n {ariaLabelJumpToInput}\n </VisuallyHidden>\n ) : (\n <></>\n )}\n {selectedItems.map((selectedItem, index) => (\n <SelectedItemTag\n ariaLabelChosen={ariaLabelChosenSingular}\n ariaLabelRemoveSelected={ariaLabelRemoveSelected}\n disabled={disabled}\n getSelectedItemProps={getSelectedItemProps}\n index={index}\n key={selectedItem?.value}\n readOnly={readOnly}\n removeSelectedItem={() => {\n handleListItemClicked({\n clickedItem: selectedItem,\n onChange,\n setLastRemovedItem,\n });\n inputRef?.current?.focus();\n }}\n selectedItem={selectedItem}\n />\n ))}\n </>\n ) : (\n <SelectedItemTag\n ariaLabelRemoveSelected={labelClearAllItems}\n ariaLabelChosen=\"\"\n disabled={disabled}\n readOnly={readOnly}\n removeSelectedItem={handleOnClear}\n selectedItem={summarySelectedItems}\n />\n )}\n <input\n placeholder={placeholder}\n className=\"eds-dropdown__input eds-form-control\"\n disabled={readOnly || disabled}\n {...getInputProps({\n onKeyDown: (e: React.KeyboardEvent) => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (highlitedItem) {\n handleListItemClicked({\n clickedItem: highlitedItem,\n onChange,\n setLastRemovedItem,\n });\n }\n }\n },\n ...getDropdownProps({\n onClick: (e: React.MouseEvent) => {\n if (!isOpen && isVoiceOverClick(e)) openMenu();\n },\n preventKeyAction: isOpen,\n ref: inputRef,\n value: inputValue ?? EMPTY_INPUT,\n }),\n })}\n />\n </div>\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n inputValue={inputValue}\n isOpen={isOpen}\n listItems={listItems}\n listStyle={listStyle}\n loading={loading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n />\n </div>\n );\n};\n","import React, { Dispatch, SetStateAction } from 'react';\nimport { useSelect } from 'downshift';\nimport classNames from 'classnames';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport { itemToString } from './utils';\n\nimport './Dropdown.scss';\n\nexport type DropdownProps = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType;\n /** Valgt verdi. Bruk null for ingen verdi. */\n selectedItem: NormalizedDropdownItemType | null;\n /** Callback ved valg som skal oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType | null,\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType | null>>;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default false\n */\n clearable?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n /** Deaktiver dropdown-en */\n disabled?: boolean;\n /** Setter dropdown-en i read-only modus */\n readOnly?: boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /** En tekst som beskriver hva som skjer når man venter på items\n * @default 'Laster inn …'\n */\n loadingText?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default \"fjern valgt\"\n */\n labelClearSelectedItem?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Styling som sendes ned til Dropdown-lista */\n listStyle?: { [key: string]: any };\n /** Styling for Dropdown-en */\n style?: { [key: string]: any };\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default 'valgt'\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default ', valgt element, trykk for å fjerne'\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const Dropdown = ({\n ariaLabelChosenSingular,\n ariaLabelCloseList,\n ariaLabelOpenList,\n ariaLabelSelectedItem,\n className,\n clearable = false,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items: initialItems,\n label,\n labelClearSelectedItem = 'fjern valgt',\n listStyle,\n loadingText,\n onChange,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ...rest\n}: DropdownProps) => {\n const { items: normalizedItems, loading } = useResolvedItems(initialItems);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n\n const {\n isOpen,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n } = useSelect({\n items: normalizedItems,\n defaultHighlightedIndex: selectedItem ? undefined : 0,\n selectedItem,\n onStateChange({ type, selectedItem: clickedItem }) {\n switch (type) {\n // @ts-expect-error This falltrough is wanted\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (!selectOnBlur) break;\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough\n case useSelect.stateChangeTypes.ItemClick: {\n onChange?.(clickedItem !== undefined ? clickedItem : null);\n }\n }\n },\n itemToString,\n });\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className)}\n style={style}\n >\n <BaseFormControl\n append={\n <FieldAppend\n ariaHiddenToggleButton={true}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n labelClearSelectedItems={labelClearSelectedItem}\n focusable={false}\n getToggleButtonProps={getToggleButtonProps}\n isOpen={isOpen}\n loading={loading}\n loadingText={loadingText}\n onClear={() => {\n onChange?.(null);\n }}\n disabled={readOnly || disabled}\n selectedItems={[selectedItem]}\n />\n }\n className={classNames('eds-dropdown', {\n 'eds-dropdown--not-filled': !isFilled,\n })}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={isFilled}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n prepend={prepend}\n readOnly={readOnly}\n variant={variant}\n {...rest}\n >\n <div\n className=\"eds-dropdown__selected-item\"\n {...getToggleButtonProps({\n id: undefined,\n onKeyDown: e => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n // we don't want to clear selection with tab\n const highlitedItem = normalizedItems[highlightedIndex];\n if (highlitedItem) {\n onChange?.(highlitedItem);\n }\n }\n },\n })}\n >\n {selectedItem?.label ?? (\n <span\n className={classNames(\n 'eds-dropdown__selected-item__placeholder',\n {\n 'eds-dropdown__selected-item__placeholder--readonly':\n readOnly,\n },\n )}\n >\n {placeholder}\n </span>\n ) ??\n ''}\n </div>\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={normalizedItems}\n listStyle={listStyle}\n loading={loading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </div>\n );\n};\n","import React from 'react';\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { useRandomId } from '@entur/utils';\n\nimport {\n PotentiallyAsyncDropdownItemType,\n useResolvedItems,\n} from './useResolvedItems';\nimport { NormalizedDropdownItemType } from './useNormalizedItems';\n\nimport './Dropdown.scss';\n\nexport type NativeDropdownProps = {\n /** Ekstra klassenavn */\n className?: string;\n /**\n * For å deaktivere dropdow-nen\n * @default false\n **/\n disabled?: boolean;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Alle valg for dropdown-en å ha */\n items: PotentiallyAsyncDropdownItemType;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** En callback for endringer av value\n * Obs: merk at parameter her denne ikke er samme som i en HTML select.\n * Bruk { target } hvis du trenger info om select-elementet som ble trykket på\n */\n onChange?: ({\n value,\n selectedItem,\n target,\n }: {\n value: string;\n selectedItem: NormalizedDropdownItemType | null;\n target: EventTarget & HTMLSelectElement;\n }) => void;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /**\n * Setter dropdown-en i read-only modus\n * @default false\n **/\n readOnly?: boolean;\n /** Den valgte verdien som NormalizedDropdownItemType\n * (Brukes når komponenten er 'controlled')\n */\n selectedItem?: NormalizedDropdownItemType | null;\n /** Den valgte verdien som sting\n * (Brukes når komponenten er 'controlled)\n */\n value?: string;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nexport const NativeDropdown: React.FC<NativeDropdownProps> = ({\n className,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items,\n label,\n loadingText,\n onChange,\n prepend,\n readOnly = false,\n selectedItem,\n style,\n value,\n variant,\n ...rest\n}) => {\n const { items: normalizedItems, loading } = useResolvedItems(items);\n const nativeDropdownId = useRandomId('eds-dropdown-native');\n\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n prepend={prepend}\n append={\n <FieldAppend\n hidden={disabled || readOnly}\n loading={loading}\n loadingText={loadingText}\n />\n }\n className={className}\n style={style}\n label={label}\n labelId={nativeDropdownId}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={true}\n >\n <select\n aria-invalid={variant === 'error'}\n aria-labelledby={nativeDropdownId}\n aria-busy={loading}\n className=\"eds-form-control eds-dropdown--native\"\n disabled={disabled || readOnly}\n onChange={event => {\n onChange?.({\n value: event.target.value,\n selectedItem:\n normalizedItems.find(item => item.value === event.target.value) ??\n null,\n target: event.target,\n });\n }}\n value={value ?? selectedItem?.value ?? undefined}\n {...rest}\n >\n {normalizedItems.map(item => (\n <option key={item.value} value={item.value}>\n {item.label}\n </option>\n ))}\n </select>\n </BaseFormControl>\n );\n};\n\nconst FieldAppend = ({\n loading,\n loadingText,\n hidden,\n}: {\n loading: boolean;\n loadingText?: string;\n hidden: boolean;\n}) => {\n if (loading) {\n return (\n <div className=\"eds-dropdown-native__loading-dots\">\n <LoadingDots aria-label={loadingText} />\n </div>\n );\n }\n if (hidden) {\n return <></>;\n }\n return <DownArrowIcon inline />;\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');\n\nexport type {\n NormalizedDropdownItemType,\n DropdownItemType,\n} from './useNormalizedItems';\n\nexport * from './deprecated';\n\nexport * from './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\n"],"names":["DownshiftContext","React","createContext","DownshiftProvider","children","onChange","undefined","onInputValueChange","highlightFirstItemOnOpen","className","style","searchable","rest","_excluded","handleStateChange","changes","stateAndHelpers","type","Downshift","stateChangeTypes","controlledPropUpdatedSelectedItem","selectedItem","inputValue","stateReducer","_","highlightFirstOnOpen","isOpen","highlightFirstItemIndex","highlightedIndex","itemToString","item","label","onStateChange","args","classNames","createElement","Provider","value","useDownshift","context","useContext","Error","DropdownListDeprecated","items","getItemProps","getMenuProps","map","index","key","icons","Icon","inline","CheckIcon","DropdownDeprecatedToggleButton","getToggleButtonProps","tabIndex","DownArrowIcon","DropdownDeprecatedLoadingDots","LoadingDots","VisuallyHidden","BaseDropdownDeprecated","loading","loadingText","placeholder","listStyle","clearable","isFilled","disableLabelAnimation","getLabelProps","BaseFormControl","append","Appendix","readOnly","labelProps","position","top","space","extraLarge3","extraSmall","ClearButton","props","clearSelection","Fragment","onClick","CloseSmallIcon","RegularDropdownDeprecated","forwardRef","ref","disabled","selectOnTab","openOnFocus","selectHighlightedItem","openMenu","setHighlightedIndex","length","textAlign","onKeyDown","e","keyDownValue","matchedItems","filter","firstCharacter","trim","charAt","toLowerCase","nextHighlightItem","find","onFocus","LowerCaseFilterTest","input","sanitizeEscapeCharacters","replace","inputRegex","RegExp","test","SearchableDropdownDeprecated","prepend","itemFilter","getInputProps","closeMenu","useState","hideSelectedItem","setHideSelectedItem","inputRef","useRef","filteredItems","useMemo","current","focus","onBlur","mergeRefs","DropdownInputGroupDeprecated","feedback","variant","VariantProvider","FeedbackText","useNormalizedItems","useIsMounted","isMountedRef","useEffect","reducer","_state","action","payload","useResolvedItems","itemsOrItemsResolver","debounceTimeout","isItemsFunction","itemsResolver","Promise","resolve","useReducer","dispatch","isMounted","fetchItems","useCallback","resolvedItems","normalizedItems","debounce","DropdownDeprecated","RenderedDropdown","searchAbleProps","name","MultiSelectOldContext","useMultiSelectOldContext","state","actionAndChanges","useSelect","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ItemClick","MultiSelectDeprecated","initialSelectedItems","itemsSelectedLabel","SelectedItemsLabel","selectedItems","setSelectedItems","reset","isSelected","selectedCheckboxItem","some","selected","onSelectedItemChange","itemIsFound","slicedItemList","buttonText","multiSelectId","useRandomId","labelId","hasSelected","display","CheckboxIcon","CloseIcon","DropdownToggleButton","width","height","viewBox","d","fill","toString","DropdownList","ariaLabelChosenSingular","ariaLabelSelectedItem","listItems","noMatchesText","selectAllCheckboxState","selectAllItem","isMultiselect","isNoMatches","isItemSelected","ariaLabelSelectAll","selectAllListItemContent","Checkbox","checked","listItemContent","displayName","itemIsSelectAll","SelectedItemTag","ariaLabelRemoveSelected","ariaLabelChosen","getSelectedItemProps","removeSelectedItem","selectedItemProps","TagChip","onClose","stopPropagation","closeButtonAriaLabel","FieldAppend","ariaHiddenToggleButton","ariaLabelCloseList","ariaLabelOpenList","labelClearSelectedItems","focusable","onClear","ClearableButton","ToggleButton","Tooltip","placement","content","IconButton","ariaHidden","EMPTY_INPUT","lowerCaseFilterTest","noFilter","isFunctionWithQueryArgument","object","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","setLastRemovedItem","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","resultCount","previousResultCount","selectAllItemIncluded","ariaLabelNoResults","resultCountWithoutSelectAll","getA11ySelectionMessage","itemToStringLocal","getA11yRemovalMessage","removedItem","isVoiceOverClick","clickEvent","targetElementRect","currentTarget","getBoundingClientRect","targetElementMiddleX","Math","floor","x","targetElementMiddleY","y","clickPositionX","clientX","clickPositionY","clientY","console","log","abs","SearchableDropdown","initialItems","labelClearSelectedItem","selectOnBlur","showSelectedItem","setShowSelectedItem","lastHighlightedIndex","setLastHighlightedIndex","setListItems","filterListItems","updateListItems","shouldRefetchItems","inputHasFocus","document","activeElement","useCombobox","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","setInputValue","defaultHighlightedIndex","handleOnClear","id","target","highlitedItem","MultiSelect","clearInputOnSelect","hideSelectAll","labelAllItemsSelected","labelClearAllItems","labelSelectAll","maxChips","ariaLabelChosenPlural","ariaLabelJumpToInput","lastRemovedItem","warn","isAllNonAsyncItemsSelected","summarySelectedItems","useMultipleSelection","newSelectedItems","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","DropdownKeyDownBackspace","FunctionRemoveSelectedItem","getDropdownProps","preventKeyAction","Dropdown","ToggleButtonBlur","NativeDropdown","nativeDropdownId","hidden","event","warnAboutMissingStyles"],"mappings":"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"}
|