@entur/dropdown 5.4.11 → 5.5.1

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.
@@ -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 classNames from 'classnames';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\n\nconst DownshiftContext =\n React.createContext<ControllerStateAndHelpers<NormalizedDropdownItemDeprecatedType> | null>(\n null,\n );\n\nexport type DownshiftProviderProps = {\n onChange?: (\n selectedItem: NormalizedDropdownItemDeprecatedType,\n stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemDeprecatedType>,\n ) => void;\n onInputValueChange?: (value: string) => void;\n inputValue?: string;\n initialSelectedItem?: NormalizedDropdownItemDeprecatedType;\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<NormalizedDropdownItemDeprecatedType>,\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<NormalizedDropdownItemDeprecatedType>,\n changes: StateChangeOptions<NormalizedDropdownItemDeprecatedType>,\n ): Partial<StateChangeOptions<NormalizedDropdownItemDeprecatedType>> => {\n const highlightFirstOnOpen =\n highlightFirstItemOnOpen && 'isOpen' in changes && changes.isOpen;\n const highlightFirstItemIndex: Partial<\n StateChangeOptions<NormalizedDropdownItemDeprecatedType>\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<NormalizedDropdownItemDeprecatedType> =\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 { useDownshift } from './DownshiftProvider';\nimport { CheckIcon } from '@entur/icons';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\nimport './DropdownList.scss';\n\nexport type DropdownListDeprecatedProps = {\n items: NormalizedDropdownItemDeprecatedType[];\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 { 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';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\n\ntype BaseDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemDeprecatedType[];\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 { useDownshift } from './DownshiftProvider';\nimport { BaseDropdownDeprecated } from './BaseDropdown';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\n\ntype RegularDropdownDeprecatedProps = {\n items: NormalizedDropdownItemDeprecatedType[];\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 { BaseDropdownDeprecated } from './BaseDropdown';\nimport { useDownshift } from './DownshiftProvider';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\nimport './SearchableDropdown.scss';\n\ntype SearchableDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemDeprecatedType[];\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: NormalizedDropdownItemDeprecatedType) => boolean;\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nfunction LowerCaseFilterTest(\n item: NormalizedDropdownItemDeprecatedType,\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: NormalizedDropdownItemDeprecatedType,\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\nimport { DropdownItemType, NormalizedDropdownItemType } from './types';\n\nexport const useNormalizedItems = <ValueType = string>(\n items: DropdownItemType<ValueType>[],\n): NormalizedDropdownItemType<ValueType>[] =>\n React.useMemo(\n () =>\n items.map(item => {\n if (typeof item == 'string') {\n return {\n value: item as ValueType,\n label: item,\n };\n }\n\n if (item?.value === undefined) {\n return {\n ...item,\n value: item.label as ValueType,\n };\n }\n return { ...item, value: item.value };\n }),\n [items],\n );\n","import React from 'react';\n\nimport { useDebounce } from '@entur/utils';\n\nimport { useNormalizedItems } from './useNormalizedItems';\n\nimport {\n PotentiallyAsyncDropdownItemType,\n DropdownItemType,\n NormalizedDropdownItemType,\n AsyncDropdownItemType,\n} from './types';\n\nexport const useResolvedItems = <ValueType extends NonNullable<any>>(\n /** The list of items, or an async function that resolves the list of items */\n itemsOrItemsResolver: PotentiallyAsyncDropdownItemType<ValueType>,\n /** The time to wait after the input changes to the fetchItems method is called */\n debounceTimeout = 250,\n): {\n fetchItems: (query?: string) => void;\n loading: boolean;\n items: NormalizedDropdownItemType<ValueType>[];\n} => {\n const itemsIsAFunction = typeof itemsOrItemsResolver === 'function';\n\n const [items, setItems] = React.useState<DropdownItemType<ValueType>[]>(\n itemsIsAFunction ? [] : itemsOrItemsResolver,\n );\n const [loading, setLoading] = React.useState(false);\n\n const abortControllerRef = React.useRef<AbortController>(\n new AbortController(),\n );\n\n // 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 if (itemsIsAFunction)\n return itemsOrItemsResolver as AsyncDropdownItemType<ValueType>;\n return () =>\n Promise.resolve(itemsOrItemsResolver as DropdownItemType<ValueType>[]);\n }, [itemsOrItemsResolver, itemsIsAFunction]);\n\n // This should be called whenever the input value changes\n const updateItems = async (inputValue?: string) => {\n // The abortController handles cleanup of the previous request and unmounting\n if (abortControllerRef?.current) abortControllerRef?.current?.abort();\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setLoading(true);\n\n try {\n const resolvedItems = await itemsResolver(\n inputValue ?? '',\n abortControllerRef,\n );\n\n if (abortControllerRef?.current?.signal?.aborted) {\n console.warn(\n 'Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.',\n 'Funksjonen bør kaste en DOMException med navnet \"AbortError\" når den avbrytes.',\n '',\n '\\n\\nSe eksempel her: https://design.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput',\n '\\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController',\n );\n return;\n }\n\n setLoading(false);\n setItems(resolvedItems);\n } catch (error) {\n if (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n ) {\n // Stop execution if the request was aborted\n return;\n }\n console.warn(\n 'The following error was received but not handled inside Entur Designsystems useResolvedItems hook:',\n );\n throw error;\n }\n };\n\n const debouncedFetchItems = useDebounce(updateItems, debounceTimeout);\n const normalizedItems = useNormalizedItems(items);\n\n React.useEffect(() => {\n // send abort signal to previous request on unmount for cleanup\n return () => abortControllerRef?.current?.abort('Component unmounted');\n }, []);\n\n React.useEffect(() => {\n // Let's fetch the list initially if it's specified\n if (itemsIsAFunction) {\n debouncedFetchItems('');\n }\n }, [itemsIsAFunction, itemsResolver]);\n\n return {\n items: normalizedItems,\n loading: itemsIsAFunction ? loading : false,\n fetchItems: debouncedFetchItems,\n };\n};\n","import React from 'react';\nimport { VariantType } from '@entur/form';\nimport { RegularDropdownDeprecated } from './RegularDropdown';\nimport { DownshiftProvider } from './DownshiftProvider';\nimport { SearchableDropdownDeprecated } from './SearchableDropdown';\nimport { DropdownInputGroupDeprecated } from './DropdownInputGroup';\nimport { useResolvedItems } from '../useResolvedItems';\nimport {\n NormalizedDropdownItemDeprecatedType,\n PotentiallyAsyncDropdownItemDeprecatedType,\n} from './types';\n\nexport type DropdownDeprecatedProps = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i dropdownen */\n items: PotentiallyAsyncDropdownItemDeprecatedType;\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?: (\n selectedItem: NormalizedDropdownItemDeprecatedType | null,\n ) => 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: NormalizedDropdownItemDeprecatedType) => 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 { BaseFormControl, VariantType } from '@entur/form';\nimport { useResolvedItems } 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 {\n NormalizedDropdownItemDeprecatedType,\n PotentiallyAsyncDropdownItemDeprecatedType,\n} from './types';\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<NormalizedDropdownItemDeprecatedType>,\n actionAndChanges: any, //UseSelectStateChangeOptions<NormalizedDropdownItemDeprecatedType>,\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: PotentiallyAsyncDropdownItemDeprecatedType;\n /** Tekst som vises i boksen når elementer er valgt */\n itemsSelectedLabel?: (\n selectedItems: NormalizedDropdownItemDeprecatedType[],\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?: NormalizedDropdownItemDeprecatedType[];\n} & Omit<\n UseSelectProps<NormalizedDropdownItemDeprecatedType>,\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<NormalizedDropdownItemDeprecatedType[]>(initialSelectedItems);\n\n const reset = React.useCallback(() => {\n setSelectedItems([]);\n }, []);\n\n function isSelected(\n selectedCheckboxItem: NormalizedDropdownItemDeprecatedType,\n ) {\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<NormalizedDropdownItemDeprecatedType>({\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: NormalizedDropdownItemDeprecatedType[]) {\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 '../types';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps<ValueType> = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<\n NormalizedDropdownItemType<ValueType>\n >,\n ) => any;\n getMenuProps: (\n options?: UseComboboxGetMenuPropsOptions | undefined,\n otherOptions?: GetPropsCommonOptions | undefined,\n ) => any;\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n listStyle: { [key: string]: any } | undefined;\n loading?: boolean;\n loadingText?: string;\n noMatchesText?: string;\n selectAllCheckboxState?: () => boolean | 'indeterminate';\n selectAllItem?: NormalizedDropdownItemType<string>;\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n [key: string]: any;\n};\n\nexport const DropdownList = <ValueType extends NonNullable<any>>({\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<ValueType>) => {\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 = (\n item: NormalizedDropdownItemType<ValueType | string>,\n ) =>\n selectedItems.some(\n selectedItem =>\n selectedItem?.value === item?.value &&\n selectedItem?.label === item?.label,\n );\n\n const ariaValuesSelectAll = () => {\n switch (selectAllCheckboxState?.()) {\n case 'indeterminate': {\n return {\n label: `${selectAllItem?.label}, delvis valgt`,\n selected: false,\n };\n }\n case true: {\n return {\n label: `${selectAllItem?.label}, ${ariaLabelChosenSingular}`,\n selected: true,\n };\n }\n default: {\n return { label: `${selectAllItem?.label}`, selected: false };\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={ariaValuesSelectAll().label}\n >\n {selectAllItem?.label}\n </span>\n </>\n );\n\n const listItemContent = (item: NormalizedDropdownItemType<ValueType>) => {\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 'aria-multiselectable': isMultiselect,\n })}\n className=\"eds-dropdown__list\"\n style={{\n display: isOpen ? 'inline-block' : 'none',\n ...rest.style,\n ...listStyle,\n }}\n >\n {!loading &&\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 // @ts-expect-error Since getItemProps expects the same item type\n // here as items, it throws error when selectAllItem is a string.\n // This does, however, not cause any functional issues.\n item,\n index,\n 'aria-selected': itemIsSelectAll\n ? ariaValuesSelectAll().selected\n : isItemSelected(item),\n })}\n >\n {itemIsSelectAll\n ? selectAllListItemContent()\n : listItemContent(\n item as NormalizedDropdownItemType<ValueType>,\n )}\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 '../types';\n\nimport './FieldComponents.scss';\n\nexport const SelectedItemTag = <ValueType extends NonNullable<any>>({\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<\n NormalizedDropdownItemType<ValueType>\n >,\n ) => any;\n index?: number;\n readOnly?: boolean;\n removeSelectedItem: (item: NormalizedDropdownItemType<ValueType>) => void;\n selectedItem: NormalizedDropdownItemType<ValueType>;\n}) => {\n const { tabIndex: _, ...selectedItemProps } =\n getSelectedItemProps?.({\n selectedItem,\n index,\n }) ?? {};\n return (\n <TagChip\n size=\"small\"\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\ntype FieldAppendProps<ValueType> = {\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<ValueType> | null)[];\n};\n\nexport const FieldAppend = <ValueType extends NonNullable<any>>({\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}: FieldAppendProps<ValueType>) => {\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 './types';\n\n/* start general utils */\nexport const EMPTY_INPUT = '';\n\nexport function lowerCaseFilterTest(\n item: NormalizedDropdownItemType<any>,\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<ValueType>(\n //@ts-expect-error only here to comply with dropdown filter API\n item: NormalizedDropdownItemType<ValueType>,\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<any> | 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<ValueType> = {\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n selectAll: NormalizedDropdownItemType<string>;\n};\n\nexport const useMultiselectUtils = <ValueType>({\n listItems,\n selectedItems,\n selectAll,\n}: useMultiselectUtilsType<ValueType>) => {\n const hasSelectedItems = selectedItems.length > 0;\n\n const listItemsWithoutSelectAll = listItems.filter(\n item => item.value !== selectAll.value,\n ) as NormalizedDropdownItemType<ValueType>[];\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<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => onChange([...selectedItems, clickedItem]);\n\n const clickedItemIsInSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n ) =>\n selectedItems.some(\n selectedItem => selectedItem.value === clickedItem.value,\n );\n\n const clickedItemIsSelectAll = (\n clickedItem: NormalizedDropdownItemType<string | ValueType>,\n ) => clickedItem.value === selectAll.value;\n\n const handleListItemClicked = ({\n clickedItem,\n onChange,\n setLastRemovedItem,\n }: {\n clickedItem: NormalizedDropdownItemType<any>;\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => 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<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => 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<ValueType>[]) => void,\n ) => {\n onChange([...selectedItems, ...unselectedItemsInListItems]);\n };\n\n const unselectAllListItems = (\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => 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<string>;\n};\n\nexport function getA11ySelectionMessage(\n options: getA11ySelectionMessageType<NormalizedDropdownItemType<any>>,\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<string>;\n removedItem?: NormalizedDropdownItemType<any>;\n};\n\nexport function getA11yRemovalMessage(\n options: getA11yRemovalMessageType<NormalizedDropdownItemType<any>>,\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/* 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 } from '@entur/form';\nimport { VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SearchableDropdownProps<ValueType> = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Valgt element. Bruk null for ingen verdi */\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n /** Callback ved valg som skal brukes til å oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType<ValueType> | null,\n ) => void | Dispatch<\n SetStateAction<NormalizedDropdownItemType<ValueType> | null>\n >;\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<ValueType>,\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 | typeof error | typeof info;\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 /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\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 = <ValueType extends NonNullable<any>>({\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 labelTooltip,\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<ValueType>) => {\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<ValueType>>,\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: newSelectedItem }) {\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 if (newSelectedItem === undefined) return;\n onChange(newSelectedItem ?? 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 'eds-dropdown__wrapper--has-tooltip': labelTooltip !== undefined,\n })}\n style={style}\n >\n <BaseFormControl\n className={classNames('eds-dropdown', 'eds-dropdown--searchable')}\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 labelTooltip={labelTooltip}\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={() => {\n inputRef.current?.focus();\n openMenu();\n }}\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 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 onChange?.(listItems[highlightedIndex]);\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 } from '@entur/form';\nimport { VariantType } from '@entur/utils';\nimport { useRandomId } from '@entur/utils';\n\nimport { FieldAppend, SelectedItemTag } from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11yRemovalMessage,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type MultiSelectProps<ValueType> = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i MultiSelect */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte\n */\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n /** Callback med alle valgte verdier.\n * Bruk denne til å oppdatere selectedItems-listen */\n onChange?: (\n selectedItems: NormalizedDropdownItemType<ValueType>[],\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType>[]>>;\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<ValueType>,\n inputValue: string | undefined,\n ) => boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType | typeof error | typeof info;\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 /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\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 = <ValueType extends NonNullable<any>>({\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 labelTooltip,\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 = 'information',\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<ValueType>) => {\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const [lastRemovedItem, setLastRemovedItem] = React.useState<\n NormalizedDropdownItemType<ValueType> | 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<string> = {\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<string> =\n 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<ValueType>({\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<\n NormalizedDropdownItemType<ValueType | string>\n >,\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: 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 return (\n <div\n className={classNames('eds-dropdown__wrapper', className, {\n 'eds-dropdown__wrapper--has-tooltip': labelTooltip !== undefined,\n })}\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={classNames('eds-dropdown', 'eds-dropdown--multiselect')}\n disabled={disabled}\n feedback={feedback}\n isFilled={hasSelectedItems || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\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 onClick={e => {\n if (e.target === e.currentTarget) openMenu();\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={\n selectedItem?.label +\n (typeof selectedItem?.value === 'string'\n ? selectedItem.value\n : '')\n }\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 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, useRef } from 'react';\nimport { useSelect } from 'downshift';\nimport classNames from 'classnames';\n\nimport { BaseFormControl } from '@entur/form';\nimport { VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\nimport { useResolvedItems } from './useResolvedItems';\nimport { itemToString } from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type DropdownProps<ValueType> = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Valgt verdi. Bruk null for ingen verdi. */\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n /** Callback ved valg som skal oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType<ValueType> | null,\n ) => void | Dispatch<\n SetStateAction<NormalizedDropdownItemType<ValueType> | null>\n >;\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 | typeof error | typeof info;\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 /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\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 = <ValueType extends NonNullable<any>>({\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 labelTooltip,\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 = 'information',\n ...rest\n}: DropdownProps<ValueType>) => {\n const { items: normalizedItems, loading } = useResolvedItems(initialItems);\n const toggleButtonRef = useRef<HTMLDivElement>(null);\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: newSelectedItem }) {\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.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick: {\n if (newSelectedItem === undefined) return;\n onChange?.(newSelectedItem ?? null);\n }\n }\n },\n itemToString,\n });\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className, {\n 'eds-dropdown__wrapper--has-tooltip': labelTooltip !== undefined,\n })}\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 toggleButtonRef.current?.focus();\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 labelTooltip={labelTooltip}\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 ref: toggleButtonRef,\n })}\n >\n {selectedItem?.label ?? (\n <div\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 </div>\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 } from '@entur/form';\nimport { DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { useRandomId, VariantType } from '@entur/utils';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type NativeDropdownProps<ValueType> = {\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<ValueType>;\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<ValueType> | 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<ValueType> | 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 | typeof error | typeof info;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nexport const NativeDropdown = <ValueType extends string | number>({\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}: NativeDropdownProps<ValueType>) => {\n const { items: normalizedItems, loading } =\n useResolvedItems<ValueType>(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 === 'negative' || 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 { NormalizedDropdownItemType, DropdownItemType } from './types';\n\nexport * from './deprecated';\n\nexport * from './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\nexport * from './types';\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","useResolvedItems","itemsOrItemsResolver","debounceTimeout","itemsIsAFunction","setItems","setLoading","abortControllerRef","AbortController","itemsResolver","Promise","resolve","updateItems","abort","abortController","resolvedItems","signal","aborted","console","warn","name","debouncedFetchItems","useDebounce","normalizedItems","useEffect","fetchItems","DropdownDeprecated","RenderedDropdown","searchAbleProps","MultiSelectOldContext","useMultiSelectOldContext","state","actionAndChanges","useSelect","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ItemClick","MultiSelectDeprecated","initialSelectedItems","itemsSelectedLabel","SelectedItemsLabel","selectedItems","setSelectedItems","reset","useCallback","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","ariaValuesSelectAll","selectAllListItemContent","Checkbox","checked","listItemContent","displayName","itemIsSelectAll","SelectedItemTag","ariaLabelRemoveSelected","ariaLabelChosen","getSelectedItemProps","removeSelectedItem","selectedItemProps","TagChip","size","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","SearchableDropdown","initialItems","labelClearSelectedItem","labelTooltip","selectOnBlur","showSelectedItem","setShowSelectedItem","lastHighlightedIndex","setLastHighlightedIndex","setListItems","filterListItems","updateListItems","shouldRefetchItems","inputHasFocus","document","activeElement","useCombobox","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","setInputValue","defaultHighlightedIndex","newSelectedItem","handleOnClear","id","target","currentTarget","MultiSelect","clearInputOnSelect","hideSelectAll","labelAllItemsSelected","labelClearAllItems","labelSelectAll","maxChips","ariaLabelChosenPlural","ariaLabelJumpToInput","lastRemovedItem","isAllNonAsyncItemsSelected","summarySelectedItems","useMultipleSelection","newSelectedItems","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","DropdownKeyDownBackspace","FunctionRemoveSelectedItem","getDropdownProps","highlitedItem","preventKeyAction","Dropdown","toggleButtonRef","ToggleButtonBlur","error","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 classNames from 'classnames';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\n\nconst DownshiftContext =\n React.createContext<ControllerStateAndHelpers<NormalizedDropdownItemDeprecatedType> | null>(\n null,\n );\n\nexport type DownshiftProviderProps = {\n onChange?: (\n selectedItem: NormalizedDropdownItemDeprecatedType,\n stateAndHelpers: ControllerStateAndHelpers<NormalizedDropdownItemDeprecatedType>,\n ) => void;\n onInputValueChange?: (value: string) => void;\n inputValue?: string;\n initialSelectedItem?: NormalizedDropdownItemDeprecatedType;\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<NormalizedDropdownItemDeprecatedType>,\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<NormalizedDropdownItemDeprecatedType>,\n changes: StateChangeOptions<NormalizedDropdownItemDeprecatedType>,\n ): Partial<StateChangeOptions<NormalizedDropdownItemDeprecatedType>> => {\n const highlightFirstOnOpen =\n highlightFirstItemOnOpen && 'isOpen' in changes && changes.isOpen;\n const highlightFirstItemIndex: Partial<\n StateChangeOptions<NormalizedDropdownItemDeprecatedType>\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<NormalizedDropdownItemDeprecatedType> =\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 { useDownshift } from './DownshiftProvider';\nimport { CheckIcon } from '@entur/icons';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\nimport './DropdownList.scss';\n\nexport type DropdownListDeprecatedProps = {\n items: NormalizedDropdownItemDeprecatedType[];\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 { 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';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\n\ntype BaseDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemDeprecatedType[];\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 { useDownshift } from './DownshiftProvider';\nimport { BaseDropdownDeprecated } from './BaseDropdown';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\n\ntype RegularDropdownDeprecatedProps = {\n items: NormalizedDropdownItemDeprecatedType[];\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 { BaseDropdownDeprecated } from './BaseDropdown';\nimport { useDownshift } from './DownshiftProvider';\nimport { NormalizedDropdownItemDeprecatedType } from './types';\nimport './SearchableDropdown.scss';\n\ntype SearchableDropdownDeprecatedProps = {\n className?: string;\n disabled?: boolean;\n items: NormalizedDropdownItemDeprecatedType[];\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: NormalizedDropdownItemDeprecatedType) => boolean;\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nfunction LowerCaseFilterTest(\n item: NormalizedDropdownItemDeprecatedType,\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: NormalizedDropdownItemDeprecatedType,\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\nimport { DropdownItemType, NormalizedDropdownItemType } from './types';\n\nexport const useNormalizedItems = <ValueType = string>(\n items: DropdownItemType<ValueType>[],\n): NormalizedDropdownItemType<ValueType>[] =>\n React.useMemo(\n () =>\n items.map(item => {\n if (typeof item == 'string') {\n return {\n value: item as ValueType,\n label: item,\n };\n }\n\n if (item?.value === undefined) {\n return {\n ...item,\n value: item.label as ValueType,\n };\n }\n return { ...item, value: item.value };\n }),\n [items],\n );\n","import React from 'react';\n\nimport { useDebounce } from '@entur/utils';\n\nimport { useNormalizedItems } from './useNormalizedItems';\n\nimport {\n PotentiallyAsyncDropdownItemType,\n DropdownItemType,\n NormalizedDropdownItemType,\n AsyncDropdownItemType,\n} from './types';\n\nexport const useResolvedItems = <ValueType extends NonNullable<any>>(\n /** The list of items, or an async function that resolves the list of items */\n itemsOrItemsResolver: PotentiallyAsyncDropdownItemType<ValueType>,\n /** The time to wait after the input changes to the fetchItems method is called */\n debounceTimeout = 250,\n): {\n fetchItems: (query?: string) => void;\n loading: boolean;\n items: NormalizedDropdownItemType<ValueType>[];\n} => {\n const itemsIsAFunction = typeof itemsOrItemsResolver === 'function';\n\n const [items, setItems] = React.useState<DropdownItemType<ValueType>[]>(\n itemsIsAFunction ? [] : itemsOrItemsResolver,\n );\n const [loading, setLoading] = React.useState(false);\n\n const abortControllerRef = React.useRef<AbortController>(\n new AbortController(),\n );\n\n // 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 if (itemsIsAFunction)\n return itemsOrItemsResolver as AsyncDropdownItemType<ValueType>;\n return () =>\n Promise.resolve(itemsOrItemsResolver as DropdownItemType<ValueType>[]);\n }, [itemsOrItemsResolver, itemsIsAFunction]);\n\n // This should be called whenever the input value changes\n const updateItems = async (inputValue?: string) => {\n // The abortController handles cleanup of the previous request and unmounting\n if (abortControllerRef?.current) abortControllerRef?.current?.abort();\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setLoading(true);\n\n try {\n const resolvedItems = await itemsResolver(\n inputValue ?? '',\n abortControllerRef,\n );\n\n if (abortControllerRef?.current?.signal?.aborted) {\n console.warn(\n 'Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.',\n 'Funksjonen bør kaste en DOMException med navnet \"AbortError\" når den avbrytes.',\n '',\n '\\n\\nSe eksempel her: https://design.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput',\n '\\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController',\n );\n return;\n }\n\n setLoading(false);\n setItems(resolvedItems);\n } catch (error) {\n if (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n ) {\n // Stop execution if the request was aborted\n return;\n }\n console.warn(\n 'The following error was received but not handled inside Entur Designsystems useResolvedItems hook:',\n );\n throw error;\n }\n };\n\n const debouncedFetchItems = useDebounce(updateItems, debounceTimeout);\n const normalizedItems = useNormalizedItems(items);\n\n React.useEffect(() => {\n // send abort signal to previous request on unmount for cleanup\n return () => abortControllerRef?.current?.abort('Component unmounted');\n }, []);\n\n React.useEffect(() => {\n // Let's fetch the list initially if it's specified\n if (itemsIsAFunction) {\n debouncedFetchItems('');\n }\n }, [itemsIsAFunction, itemsResolver]);\n\n return {\n items: normalizedItems,\n loading: itemsIsAFunction ? loading : false,\n fetchItems: debouncedFetchItems,\n };\n};\n","import React from 'react';\nimport { VariantType } from '@entur/form';\nimport { RegularDropdownDeprecated } from './RegularDropdown';\nimport { DownshiftProvider } from './DownshiftProvider';\nimport { SearchableDropdownDeprecated } from './SearchableDropdown';\nimport { DropdownInputGroupDeprecated } from './DropdownInputGroup';\nimport { useResolvedItems } from '../useResolvedItems';\nimport {\n NormalizedDropdownItemDeprecatedType,\n PotentiallyAsyncDropdownItemDeprecatedType,\n} from './types';\n\nexport type DropdownDeprecatedProps = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i dropdownen */\n items: PotentiallyAsyncDropdownItemDeprecatedType;\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?: (\n selectedItem: NormalizedDropdownItemDeprecatedType | null,\n ) => 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: NormalizedDropdownItemDeprecatedType) => 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 { BaseFormControl, VariantType } from '@entur/form';\nimport { useResolvedItems } 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 {\n NormalizedDropdownItemDeprecatedType,\n PotentiallyAsyncDropdownItemDeprecatedType,\n} from './types';\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<NormalizedDropdownItemDeprecatedType>,\n actionAndChanges: any, //UseSelectStateChangeOptions<NormalizedDropdownItemDeprecatedType>,\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: PotentiallyAsyncDropdownItemDeprecatedType;\n /** Tekst som vises i boksen når elementer er valgt */\n itemsSelectedLabel?: (\n selectedItems: NormalizedDropdownItemDeprecatedType[],\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?: NormalizedDropdownItemDeprecatedType[];\n} & Omit<\n UseSelectProps<NormalizedDropdownItemDeprecatedType>,\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<NormalizedDropdownItemDeprecatedType[]>(initialSelectedItems);\n\n const reset = React.useCallback(() => {\n setSelectedItems([]);\n }, []);\n\n function isSelected(\n selectedCheckboxItem: NormalizedDropdownItemDeprecatedType,\n ) {\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<NormalizedDropdownItemDeprecatedType>({\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: NormalizedDropdownItemDeprecatedType[]) {\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 { VisuallyHidden } from '@entur/a11y';\nimport { Checkbox } from '@entur/form';\nimport { mergeRefs } from '@entur/utils';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps<ValueType> = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<\n NormalizedDropdownItemType<ValueType>\n >,\n ) => any;\n getMenuProps: (\n options?: UseComboboxGetMenuPropsOptions | undefined,\n otherOptions?: GetPropsCommonOptions | undefined,\n ) => any;\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n listStyle: { [key: string]: any } | undefined;\n listRef?: React.Ref<HTMLUListElement>;\n loading?: boolean;\n loadingText?: string;\n noMatchesText?: string;\n selectAllCheckboxState?: () => boolean | 'indeterminate';\n selectAllItem?: NormalizedDropdownItemType<string>;\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n [key: string]: any;\n};\n\nexport const DropdownList = <ValueType extends NonNullable<any>>({\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 listRef,\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<ValueType>) => {\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 = (\n item: NormalizedDropdownItemType<ValueType | string>,\n ) =>\n selectedItems.some(\n selectedItem =>\n selectedItem?.value === item?.value &&\n selectedItem?.label === item?.label,\n );\n\n const ariaValuesSelectAll = () => {\n switch (selectAllCheckboxState?.()) {\n case 'indeterminate': {\n return {\n label: `${selectAllItem?.label}, delvis valgt`,\n selected: false,\n };\n }\n case true: {\n return {\n label: `${selectAllItem?.label}, ${ariaLabelChosenSingular}`,\n selected: true,\n };\n }\n default: {\n return { label: `${selectAllItem?.label}`, selected: false };\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={ariaValuesSelectAll().label}\n >\n {selectAllItem?.label}\n </span>\n </>\n );\n\n const listItemContent = (item: NormalizedDropdownItemType<ValueType>) => {\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 'aria-multiselectable': isMultiselect,\n ref: mergeRefs(getMenuProps().ref, listRef),\n })}\n className=\"eds-dropdown__list\"\n style={{\n display: isOpen ? 'inline-block' : 'none',\n ...rest.style,\n ...listStyle,\n }}\n >\n {!loading &&\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 // @ts-expect-error Since getItemProps expects the same item type\n // here as items, it throws error when selectAllItem is a string.\n // This does, however, not cause any functional issues.\n item,\n index,\n 'aria-selected': itemIsSelectAll\n ? ariaValuesSelectAll().selected\n : isItemSelected(item),\n })}\n >\n {itemIsSelectAll\n ? selectAllListItemContent()\n : listItemContent(\n item as NormalizedDropdownItemType<ValueType>,\n )}\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 '../types';\n\nimport './FieldComponents.scss';\n\nexport const SelectedItemTag = <ValueType extends NonNullable<any>>({\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<\n NormalizedDropdownItemType<ValueType>\n >,\n ) => any;\n index?: number;\n readOnly?: boolean;\n removeSelectedItem: (item: NormalizedDropdownItemType<ValueType>) => void;\n selectedItem: NormalizedDropdownItemType<ValueType>;\n}) => {\n const { tabIndex: _, ...selectedItemProps } =\n getSelectedItemProps?.({\n selectedItem,\n index,\n }) ?? {};\n return (\n <TagChip\n size=\"small\"\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\ntype FieldAppendProps<ValueType> = {\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<ValueType> | null)[];\n};\n\nexport const FieldAppend = <ValueType extends NonNullable<any>>({\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}: FieldAppendProps<ValueType>) => {\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 './types';\n\n/* start general utils */\nexport const EMPTY_INPUT = '';\n\nexport function lowerCaseFilterTest(\n item: NormalizedDropdownItemType<any>,\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<ValueType>(\n //@ts-expect-error only here to comply with dropdown filter API\n item: NormalizedDropdownItemType<ValueType>,\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<any> | 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<ValueType> = {\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n selectAll: NormalizedDropdownItemType<string>;\n};\n\nexport const useMultiselectUtils = <ValueType>({\n listItems,\n selectedItems,\n selectAll,\n}: useMultiselectUtilsType<ValueType>) => {\n const hasSelectedItems = selectedItems.length > 0;\n\n const listItemsWithoutSelectAll = listItems.filter(\n item => item.value !== selectAll.value,\n ) as NormalizedDropdownItemType<ValueType>[];\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<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => onChange([...selectedItems, clickedItem]);\n\n const clickedItemIsInSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n ) =>\n selectedItems.some(\n selectedItem => selectedItem.value === clickedItem.value,\n );\n\n const clickedItemIsSelectAll = (\n clickedItem: NormalizedDropdownItemType<string | ValueType>,\n ) => clickedItem.value === selectAll.value;\n\n const handleListItemClicked = ({\n clickedItem,\n onChange,\n setLastRemovedItem,\n }: {\n clickedItem: NormalizedDropdownItemType<any>;\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => 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<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => 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<ValueType>[]) => void,\n ) => {\n onChange([...selectedItems, ...unselectedItemsInListItems]);\n };\n\n const unselectAllListItems = (\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => 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<string>;\n};\n\nexport function getA11ySelectionMessage(\n options: getA11ySelectionMessageType<NormalizedDropdownItemType<any>>,\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<string>;\n removedItem?: NormalizedDropdownItemType<any>;\n};\n\nexport function getA11yRemovalMessage(\n options: getA11yRemovalMessageType<NormalizedDropdownItemType<any>>,\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/* end a11y utils */\n","/* eslint-disable no-warning-comments */\nimport React, {\n Dispatch,\n SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { UseComboboxStateChangeOptions, useCombobox } from 'downshift';\nimport classNames from 'classnames';\nimport { useFloating, autoUpdate, offset, flip } from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SearchableDropdownProps<ValueType> = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Valgt element. Bruk null for ingen verdi */\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n /** Callback ved valg som skal brukes til å oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType<ValueType> | null,\n ) => void | Dispatch<\n SetStateAction<NormalizedDropdownItemType<ValueType> | null>\n >;\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<ValueType>,\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 | typeof error | typeof info;\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 /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\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 = <ValueType extends NonNullable<any>>({\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 labelTooltip,\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<ValueType>) => {\n const [showSelectedItem, setShowSelectedItem] = useState(value !== null);\n const [lastHighlightedIndex, setLastHighlightedIndex] = 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] = 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 const inputHasFocus =\n typeof document !== 'undefined'\n ? inputRef?.current === document?.activeElement\n : false;\n\n useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // sync internal state on initial render\n if (selectedItem !== null && !inputHasFocus) {\n setShowSelectedItem(true);\n updateListItems({ inputValue: EMPTY_INPUT });\n setInputValue(EMPTY_INPUT);\n }\n }, []);\n\n const stateReducer = useCallback(\n (\n _,\n {\n type,\n changes,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType<ValueType>>,\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: newSelectedItem }) {\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 if (newSelectedItem === undefined) return;\n onChange(newSelectedItem ?? 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 { refs, floatingStyles } = useFloating({\n whileElementsMounted: (ref, float, update) =>\n autoUpdate(ref, float, update),\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\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 'eds-dropdown__wrapper--has-tooltip': labelTooltip !== undefined,\n })}\n style={style}\n >\n <BaseFormControl\n className={classNames('eds-dropdown', 'eds-dropdown--searchable')}\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 labelTooltip={labelTooltip}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) inputRef.current?.focus();\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\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={() => {\n inputRef.current?.focus();\n openMenu();\n }}\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 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 onChange?.(listItems[highlightedIndex]);\n },\n ref: inputRef,\n })}\n />\n </BaseFormControl>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n isOpen={isOpen}\n listItems={listItems}\n listStyle={{ ...floatingStyles, ...listStyle }}\n listRef={refs.setFloating}\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';\nimport { useFloating, autoUpdate, offset, flip } from '@floating-ui/react-dom';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { VariantType, useRandomId } from '@entur/utils';\n\nimport { FieldAppend, SelectedItemTag } from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11yRemovalMessage,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type MultiSelectProps<ValueType> = {\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Tilgjengelige valg i MultiSelect */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte\n */\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n /** Callback med alle valgte verdier.\n * Bruk denne til å oppdatere selectedItems-listen */\n onChange?: (\n selectedItems: NormalizedDropdownItemType<ValueType>[],\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType>[]>>;\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<ValueType>,\n inputValue: string | undefined,\n ) => boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType | typeof error | typeof info;\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 /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\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 = <ValueType extends NonNullable<any>>({\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 labelTooltip,\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 = 'information',\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<ValueType>) => {\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const [lastRemovedItem, setLastRemovedItem] = React.useState<\n NormalizedDropdownItemType<ValueType> | 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<string> = {\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<string> =\n 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<ValueType>({\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<\n NormalizedDropdownItemType<ValueType | string>\n >,\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: 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 // set highlighted item to first item after search\n setLastHighlightedIndex(hideSelectAll ? 0 : 1);\n return { ...changes, highlightedIndex: hideSelectAll ? 0 : 1 };\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 { refs, floatingStyles } = useFloating({\n whileElementsMounted: (ref, float, update) =>\n autoUpdate(ref, float, update),\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className, {\n 'eds-dropdown__wrapper--has-tooltip': labelTooltip !== undefined,\n })}\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={classNames('eds-dropdown', 'eds-dropdown--multiselect')}\n disabled={disabled}\n feedback={feedback}\n isFilled={hasSelectedItems || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) inputRef.current?.focus();\n }}\n readOnly={readOnly}\n ref={refs.setReference}\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 onClick={e => {\n if (e.target === e.currentTarget) openMenu();\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={\n selectedItem?.label +\n (typeof selectedItem?.value === 'string'\n ? selectedItem.value\n : '')\n }\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 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={{ ...floatingStyles, ...listStyle }}\n listRef={refs.setFloating}\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, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useSelect } from 'downshift';\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\nimport { useResolvedItems } from './useResolvedItems';\nimport { itemToString } from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type DropdownProps<ValueType> = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Valgt verdi. Bruk null for ingen verdi. */\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n /** Callback ved valg som skal oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType<ValueType> | null,\n ) => void | Dispatch<\n SetStateAction<NormalizedDropdownItemType<ValueType> | null>\n >;\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 | typeof error | typeof info;\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 /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\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 = <ValueType extends NonNullable<any>>({\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 labelTooltip,\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 = 'information',\n ...rest\n}: DropdownProps<ValueType>) => {\n const { items: normalizedItems, loading } = useResolvedItems(initialItems);\n const toggleButtonRef = useRef<HTMLDivElement>(null);\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: newSelectedItem }) {\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.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick: {\n if (newSelectedItem === undefined) return;\n onChange?.(newSelectedItem ?? null);\n }\n }\n },\n itemToString,\n });\n\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted: (ref, float, update) =>\n autoUpdate(ref, float, update),\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n return (\n <div\n className={classNames('eds-dropdown__wrapper', className, {\n 'eds-dropdown__wrapper--has-tooltip': labelTooltip !== undefined,\n })}\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 toggleButtonRef.current?.focus();\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 labelTooltip={labelTooltip}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\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 ref: toggleButtonRef,\n })}\n >\n {selectedItem?.label ?? (\n <div\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 </div>\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={{ ...floatingStyles, ...listStyle }}\n listRef={refs.setFloating}\n loading={loading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </div>\n );\n};\n","import React from 'react';\nimport { BaseFormControl } from '@entur/form';\nimport { DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { useRandomId, VariantType } from '@entur/utils';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type NativeDropdownProps<ValueType> = {\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<ValueType>;\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<ValueType> | 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<ValueType> | 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 | typeof error | typeof info;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nexport const NativeDropdown = <ValueType extends string | number>({\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}: NativeDropdownProps<ValueType>) => {\n const { items: normalizedItems, loading } =\n useResolvedItems<ValueType>(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 === 'negative' || 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 { NormalizedDropdownItemType, DropdownItemType } from './types';\n\nexport * from './deprecated';\n\nexport * from './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\nexport * from './types';\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","useResolvedItems","itemsOrItemsResolver","debounceTimeout","itemsIsAFunction","setItems","setLoading","abortControllerRef","AbortController","itemsResolver","Promise","resolve","updateItems","abort","abortController","resolvedItems","signal","aborted","console","warn","name","debouncedFetchItems","useDebounce","normalizedItems","useEffect","fetchItems","DropdownDeprecated","RenderedDropdown","searchAbleProps","MultiSelectOldContext","useMultiSelectOldContext","state","actionAndChanges","useSelect","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ItemClick","MultiSelectDeprecated","initialSelectedItems","itemsSelectedLabel","SelectedItemsLabel","selectedItems","setSelectedItems","reset","useCallback","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","listRef","noMatchesText","selectAllCheckboxState","selectAllItem","isMultiselect","isNoMatches","isItemSelected","ariaValuesSelectAll","selectAllListItemContent","Checkbox","checked","listItemContent","displayName","itemIsSelectAll","SelectedItemTag","ariaLabelRemoveSelected","ariaLabelChosen","getSelectedItemProps","removeSelectedItem","selectedItemProps","TagChip","size","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","SearchableDropdown","initialItems","labelClearSelectedItem","labelTooltip","selectOnBlur","showSelectedItem","setShowSelectedItem","lastHighlightedIndex","setLastHighlightedIndex","setListItems","filterListItems","updateListItems","shouldRefetchItems","inputHasFocus","document","activeElement","setInputValue","useCombobox","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","defaultHighlightedIndex","newSelectedItem","useFloating","whileElementsMounted","float","update","autoUpdate","open","middleware","offset","extraSmall2","flip","refs","floatingStyles","handleOnClear","id","target","currentTarget","setReference","setFloating","MultiSelect","clearInputOnSelect","hideSelectAll","labelAllItemsSelected","labelClearAllItems","labelSelectAll","maxChips","ariaLabelChosenPlural","ariaLabelJumpToInput","lastRemovedItem","isAllNonAsyncItemsSelected","summarySelectedItems","useMultipleSelection","newSelectedItems","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","DropdownKeyDownBackspace","FunctionRemoveSelectedItem","getDropdownProps","highlitedItem","preventKeyAction","Dropdown","toggleButtonRef","ToggleButtonBlur","error","NativeDropdown","nativeDropdownId","hidden","event","warnAboutMissingStyles"],"mappings":"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"}