@entur/dropdown 7.0.3 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/Dropdown.d.ts +3 -1
- package/dist/MultiSelect.d.ts +4 -73
- package/dist/SearchableDropdown.d.ts +5 -81
- package/dist/dropdown.cjs.development.js +16 -13
- package/dist/dropdown.cjs.development.js.map +1 -1
- package/dist/dropdown.cjs.production.min.js +1 -1
- package/dist/dropdown.cjs.production.min.js.map +1 -1
- package/dist/dropdown.esm.js +16 -13
- package/dist/dropdown.esm.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.cjs.development.js","sources":["../src/components/DropdownList.tsx","../src/components/FieldComponents.tsx","../src/useNormalizedItems.ts","../src/useResolvedItems.ts","../src/utils.ts","../src/SearchableDropdown.tsx","../src/MultiSelect.tsx","../src/Dropdown.tsx","../src/NativeDropdown.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { UseComboboxPropGetters, UseSelectPropGetters } from 'downshift';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Checkbox } from '@entur/form';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps<ValueType> = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getMenuProps:\n | UseComboboxPropGetters<ValueType>['getMenuProps']\n | UseSelectPropGetters<ValueType>['getMenuProps'];\n getItemProps:\n | UseComboboxPropGetters<ValueType>['getItemProps']\n | UseSelectPropGetters<ValueType>['getItemProps'];\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n floatingStyles: { [key: string]: any } | undefined;\n setListRef: (node: HTMLElement | null) => void;\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 floatingStyles,\n setListRef,\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 <div\n className=\"eds-dropdown__list__floating-container\"\n style={{\n display: isOpen ? undefined : 'none',\n ...floatingStyles,\n }}\n ref={setListRef}\n >\n <ul\n {...getMenuProps({\n 'aria-multiselectable': isMultiselect,\n })}\n className=\"eds-dropdown__list\"\n style={{ ...rest.style }}\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 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 key={\n item?.label +\n item?.value +\n (\n item?.icons?.map(icon => icon.displayName ?? icon.name) ??\n ''\n ).toString()\n }\n {...getItemProps({\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 </div>\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\n aria-hidden=\"true\"\n className=\"eds-dropdown__selected-item-tag__text\"\n >\n {selectedItem.label}\n </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 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 { UseComboboxState } 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 itemToKey = (item: NormalizedDropdownItemType<any> | null) =>\n item?.label + item?.value;\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 }: {\n clickedItem: NormalizedDropdownItemType<any>;\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void;\n }) => {\n if (clickedItemIsSelectAll(clickedItem)) {\n if (allListItemsAreSelected) {\n return unselectAllListItems(onChange);\n }\n return selectAllUnselectedItemsInListItems(onChange);\n }\n\n if (clickedItemIsInSelectedItems(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 */\n\n// called when the state changes:\n// selectedItem, highlightedIndex, inputValue or isOpen.\nexport function getA11yStatusMessage<ValueType>(\n options: UseComboboxState<NormalizedDropdownItemType<ValueType>> & {\n selectAllItemIncluded?: boolean;\n resultCount: number;\n },\n): string {\n const { isOpen, selectAllItemIncluded = false, resultCount } = 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 'Ingen resultater';\n }\n\n return `${resultCountWithoutSelectAll} resultat${\n resultCountWithoutSelectAll === 1 ? '' : 'er'\n } tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.`;\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 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: options =>\n getA11yStatusMessage({ ...options, resultCount: listItems.length }),\n ...rest,\n });\n\n const { refs, floatingStyles, elements, update } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n // Since we use CSS instead of conditional rendering when hiding dropdownlist\n // we can't use the whileElementsMounted option and need to handle\n // cleanup ourselves. See https://floating-ui.com/docs/autoupdate\n useEffect(() => {\n if (isOpen && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n }, [isOpen, elements, update]);\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 <BaseFormControl\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 className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--searchable',\n className,\n {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\n },\n )}\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 style={style}\n variant={variant}\n {...rest}\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden': !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 <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </BaseFormControl>\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} 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 getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToKey,\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 /** Plasserer ledeteksten statisk på toppen av inputfeltet */\n disableLabelAnimation?: 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 disableLabelAnimation,\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 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 //@ts-expect-error selectedItem should not actually exist in rest\n }, [rest.selectedItem]);\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 // @ts-expect-error prop missing from library types\n itemToString,\n itemToKey,\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 });\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 });\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({\n clickedItem,\n onChange,\n });\n }\n }\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n resultCount: listItems.length,\n }),\n ...rest,\n });\n\n const { refs, floatingStyles, elements, update } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n // Since we use CSS instead of conditional rendering when hiding dropdownlist\n // we can't use the whileElementsMounted option and need to handle\n // cleanup ourselves. See https://floating-ui.com/docs/autoupdate\n useEffect(() => {\n if (isOpen && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n }, [isOpen, elements, update]);\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n return (\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(\n 'eds-dropdown',\n 'eds-dropdown--multiselect',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\n )}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\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 style={style}\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 });\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 });\n }\n }\n },\n ...getDropdownProps({\n preventKeyAction: isOpen,\n value: inputValue ?? EMPTY_INPUT,\n ref: inputRef,\n }),\n })}\n />\n </div>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n inputValue={inputValue}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n />\n </BaseFormControl>\n );\n};\n","import React, { Dispatch, SetStateAction, useEffect, 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 /** Tekst som kommer opp når det ikke er noe elementer å vise\n * @default \"Ingen tilgjengelige valg …\"\n */\n noMatchesText?: 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 noMatchesText = 'Ingen tilgjengelige valg …',\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 const {\n isOpen,\n openMenu,\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, elements, update } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n // Since we use CSS instead of conditional rendering when hiding dropdownlist\n // we can't use the whileElementsMounted option and need to handle\n // cleanup ourselves. See https://floating-ui.com/docs/autoupdate\n useEffect(() => {\n if (isOpen && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n }, [isOpen, elements, update]);\n\n return (\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', className, {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\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 onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) openMenu();\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\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 'aria-disabled': disabled,\n 'aria-label': disabled ? 'Disabled dropdown' : '',\n disabled: disabled,\n tabIndex: disabled ? -1 : 0,\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 <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={normalizedItems}\n noMatchesText={noMatchesText}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </BaseFormControl>\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 './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\nexport * from './types';\n"],"names":["DropdownList","_ref","_listItems$","_ref$ariaLabelChosenS","ariaLabelChosenSingular","_ref$ariaLabelSelecte","ariaLabelSelectedItem","getItemProps","getMenuProps","isOpen","highlightedIndex","listItems","floatingStyles","setListRef","_ref$loading","loading","_ref$loadingText","loadingText","_ref$noMatchesText","noMatchesText","selectAllCheckboxState","selectAllItem","selectedItems","rest","_objectWithoutPropertiesLoose","_excluded","isMultiselect","undefined","isNoMatches","length","value","isItemSelected","item","some","selectedItem","label","ariaValuesSelectAll","selected","selectAllListItemContent","React","createElement","Fragment","Checkbox","checked","className","onChange","tabIndex","listItemContent","style","display","VisuallyHidden","icons","map","Icon","_Icon$displayName","key","displayName","name","inline","_extends","ref","index","_item$icons$map","_item$icons","itemIsSelectAll","classNames","icon","_icon$displayName","toString","SelectedItemTag","_getSelectedItemProps","ariaLabelRemoveSelected","_ref$ariaLabelChosen","ariaLabelChosen","disabled","getSelectedItemProps","readOnly","removeSelectedItem","_ref2","selectedItemProps","TagChip","size","onClose","e","stopPropagation","closeButtonAriaLabel","FieldAppend","_ref3","_ref3$ariaHiddenToggl","ariaHiddenToggleButton","ariaLabelCloseList","ariaLabelOpenList","_ref3$clearable","clearable","labelClearSelectedItems","_ref3$disabled","_ref3$focusable","focusable","getToggleButtonProps","_ref3$loading","_ref3$loadingText","onClear","ClearableButton","ToggleButton","LoadingDots","_ref4","_ref4$labelClearSelec","_ref4$focusable","Tooltip","placement","content","IconButton","type","onClick","CloseSmallIcon","_ref5","_ref5$ariaHidden","ariaHidden","_ref5$ariaLabelCloseL","_ref5$ariaLabelOpenLi","_ref5$focusable","DownArrowIcon","useNormalizedItems","items","useMemo","useResolvedItems","itemsOrItemsResolver","debounceTimeout","itemsIsAFunction","_React$useState","useState","setItems","_React$useState2","setLoading","abortControllerRef","useRef","AbortController","itemsResolver","Promise","resolve","updateItems","_asyncToGenerator","_regeneratorRuntime","mark","_callee","inputValue","_abortControllerRef$c","abortController","_abortControllerRef$c2","resolvedItems","wrap","_callee$","_context","prev","next","current","abort","sent","signal","aborted","console","warn","abrupt","t0","stop","_x","apply","arguments","debouncedFetchItems","useDebounce","normalizedItems","useEffect","_abortControllerRef$c3","fetchItems","EMPTY_INPUT","lowerCaseFilterTest","input","sanitizeEscapeCharacters","replace","inputRegex","RegExp","test","noFilter","itemToString","itemToKey","isFunctionWithQueryArgument","object","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","filter","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","concat","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","_options$selectAllIte","selectAllItemIncluded","resultCount","resultCountWithoutSelectAll","SearchableDropdown","_document","_selectedItem$label","_ref$clearable","_ref$disabled","_ref$disableLabelAnim","disableLabelAnimation","feedback","initialItems","_ref$itemFilter","itemFilter","_ref$labelClearSelect","labelClearSelectedItem","labelTooltip","listStyle","_ref$onChange","placeholder","prepend","_ref$readOnly","_ref$selectOnBlur","selectOnBlur","_ref$selectOnTab","selectOnTab","_ref$variant","variant","_useState","showSelectedItem","setShowSelectedItem","_useState2","lastHighlightedIndex","setLastHighlightedIndex","inputRef","_useResolvedItems","_useState3","setListItems","filterListItems","updateListItems","shouldRefetchItems","inputHasFocus","document","activeElement","setInputValue","stateReducer","useCallback","_","changes","useCombobox","stateChangeTypes","ItemClick","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","_changes$inputValue","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","openMenu","setHighlightedIndex","_useCombobox","defaultHighlightedIndex","onStateChange","newSelectedItem","getLabelProps","getInputProps","_useFloating","useFloating","open","middleware","offset","space","extraSmall2","flip","refs","elements","update","reference","floating","cleanup","autoUpdate","handleOnClear","_inputRef$current","focus","BaseFormControl","append","isFilled","labelId","id","labelProps","_inputRef$current2","target","currentTarget","setReference","_inputRef$current3","onBlur","onFocus","onKeyDown","setFloating","MultiSelect","_ref$clearInputOnSele","clearInputOnSelect","_ref$hideSelectAll","hideSelectAll","_ref$labelAllItemsSel","labelAllItemsSelected","_ref$labelClearAllIte","labelClearAllItems","_ref$labelSelectAll","labelSelectAll","_ref$maxChips","maxChips","_ref$selectedItems","_ref$ariaLabelChosenP","ariaLabelChosenPlural","_ref$ariaLabelJumpToI","ariaLabelJumpToInput","_ref$ariaLabelRemoveS","isAllNonAsyncItemsSelected","useRandomId","summarySelectedItems","_useMultiselectUtils","_useMultipleSelection","useMultipleSelection","newSelectedItems","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","DropdownKeyDownBackspace","FunctionRemoveSelectedItem","getDropdownProps","_inputRef$current$val","_inputRef$current$val2","_ref6","_inputRef$current4","_inputRef$current5","_inputRef$current6","highlitedItem","preventKeyAction","Dropdown","toggleButtonRef","_useSelect","useSelect","ToggleButtonBlur","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","_toggleButtonRef$curr","error","NativeDropdown","nativeDropdownId","hidden","event","_normalizedItems$find","find","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown.cjs.development.js","sources":["../src/components/DropdownList.tsx","../src/components/FieldComponents.tsx","../src/useNormalizedItems.ts","../src/useResolvedItems.ts","../src/utils.ts","../src/SearchableDropdown.tsx","../src/MultiSelect.tsx","../src/Dropdown.tsx","../src/NativeDropdown.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { UseComboboxPropGetters, UseSelectPropGetters } from 'downshift';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Checkbox } from '@entur/form';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps<ValueType> = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getMenuProps:\n | UseComboboxPropGetters<ValueType>['getMenuProps']\n | UseSelectPropGetters<ValueType>['getMenuProps'];\n getItemProps:\n | UseComboboxPropGetters<ValueType>['getItemProps']\n | UseSelectPropGetters<ValueType>['getItemProps'];\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n floatingStyles: { [key: string]: any } | undefined;\n setListRef: (node: HTMLElement | null) => void;\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 floatingStyles,\n setListRef,\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 <div\n className=\"eds-dropdown__list__floating-container\"\n style={{\n display: isOpen ? undefined : 'none',\n ...floatingStyles,\n }}\n ref={setListRef}\n >\n <ul\n {...getMenuProps({\n 'aria-multiselectable': isMultiselect,\n })}\n className=\"eds-dropdown__list\"\n style={{ ...rest.style }}\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 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 key={\n item?.label +\n item?.value +\n (\n item?.icons?.map(icon => icon.displayName ?? icon.name) ??\n ''\n ).toString()\n }\n {...getItemProps({\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 </div>\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\n aria-hidden=\"true\"\n className=\"eds-dropdown__selected-item-tag__text\"\n >\n {selectedItem.label}\n </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 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://linje.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 { UseComboboxState } 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 itemToKey = (item: NormalizedDropdownItemType<any> | null) =>\n item?.label + item?.value;\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 }: {\n clickedItem: NormalizedDropdownItemType<any>;\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void;\n }) => {\n if (clickedItemIsSelectAll(clickedItem)) {\n if (allListItemsAreSelected) {\n return unselectAllListItems(onChange);\n }\n return selectAllUnselectedItemsInListItems(onChange);\n }\n\n if (clickedItemIsInSelectedItems(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 */\n\n// called when the state changes:\n// selectedItem, highlightedIndex, inputValue or isOpen.\nexport function getA11yStatusMessage<ValueType>(\n options: UseComboboxState<NormalizedDropdownItemType<ValueType>> & {\n selectAllItemIncluded?: boolean;\n resultCount: number;\n },\n): string {\n const { isOpen, selectAllItemIncluded = false, resultCount } = 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 'Ingen resultater';\n }\n\n return `${resultCountWithoutSelectAll} resultat${\n resultCountWithoutSelectAll === 1 ? '' : 'er'\n } tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.`;\n}\n/* end a11y utils */\n","/* eslint-disable no-warning-comments */\nimport React, { useCallback, useEffect, useRef, useState } 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';\n\nimport { DropdownList } from './components/DropdownList';\nimport { FieldAppend } from './components/FieldComponents';\n\nimport { DropdownProps } from './Dropdown';\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n EMPTY_INPUT,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport { NormalizedDropdownItemType } from './types';\n\nimport './Dropdown.scss';\n\nexport type SearchableDropdownProps<ValueType> = DropdownProps<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 /** 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 /** 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 /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default \", valgt element, trykk for å fjerne\"\n */\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 loading,\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: resolvedItemsLoading,\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: options =>\n getA11yStatusMessage({ ...options, resultCount: listItems.length }),\n ...rest,\n });\n\n const { refs, floatingStyles, elements, update } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n // Since we use CSS instead of conditional rendering when hiding dropdownlist\n // we can't use the whileElementsMounted option and need to handle\n // cleanup ourselves. See https://floating-ui.com/docs/autoupdate\n useEffect(() => {\n if (isOpen && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n }, [isOpen, elements, update]);\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 <BaseFormControl\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 ?? resolvedItemsLoading}\n loadingText={loadingText}\n onClear={handleOnClear}\n selectedItems={[selectedItem]}\n />\n }\n className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--searchable',\n className,\n {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\n },\n )}\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 style={style}\n variant={variant}\n {...rest}\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden': !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 <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </BaseFormControl>\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} from 'downshift';\nimport { useFloating, autoUpdate, offset, flip } from '@floating-ui/react-dom';\nimport { useRandomId } from '@entur/utils';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\n\nimport { FieldAppend, SelectedItemTag } from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport { DropdownProps } from './Dropdown';\nimport {\n EMPTY_INPUT,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToKey,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport { NormalizedDropdownItemType } from './types';\n\nimport './Dropdown.scss';\n\nexport type MultiSelectProps<ValueType> = Omit<\n DropdownProps<ValueType>,\n 'selectedItem' | 'onChange'\n> & {\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 /** 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 /** Resetter input etter at et element er valgt i listen\n * @default false\n */\n clearInputOnSelect?: boolean;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Velg alle\"\n */\n labelSelectAll?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Alle valgt\"\n */\n labelAllItemsSelected?: string;\n /** Skjermleser-tekst som for å fjerne alle valg\n * @default \"Fjern valgte\"\n */\n labelClearAllItems?: string;\n /** Tekst for skjemleser på knapper for å fjerne valgt element\n * @default \"trykk for å fjerne valg\"\n */\n ariaLabelRemoveSelected?: string;\n /** Tekst for skjemleser for å indikere at et element er valgt\n * @default \"valgte\"\n */\n ariaLabelChosenPlural?: string;\n /** Tekst for skjemleser for å hoppe til input-feltet\n * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`\n */\n ariaLabelJumpToInput?: string;\n};\n\nexport const MultiSelect = <ValueType extends NonNullable<any>>({\n className,\n clearable = true,\n clearInputOnSelect = false,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation,\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 loading,\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 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 //@ts-expect-error selectedItem should not actually exist in rest\n }, [rest.selectedItem]);\n\n const {\n items: normalizedItems,\n loading: resolvedItemsLoading,\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 // @ts-expect-error prop missing from library types\n itemToString,\n itemToKey,\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 });\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 });\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({\n clickedItem,\n onChange,\n });\n }\n }\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n resultCount: listItems.length,\n }),\n ...rest,\n });\n\n const { refs, floatingStyles, elements, update } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n // Since we use CSS instead of conditional rendering when hiding dropdownlist\n // we can't use the whileElementsMounted option and need to handle\n // cleanup ourselves. See https://floating-ui.com/docs/autoupdate\n useEffect(() => {\n if (isOpen && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n }, [isOpen, elements, update]);\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n return (\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 ?? resolvedItemsLoading}\n loadingText={loadingText}\n disabled={readOnly || disabled}\n onClear={handleOnClear}\n getToggleButtonProps={getToggleButtonProps}\n />\n }\n className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--multiselect',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\n )}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\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 style={style}\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 });\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 });\n }\n }\n },\n ...getDropdownProps({\n preventKeyAction: isOpen,\n value: inputValue ?? EMPTY_INPUT,\n ref: inputRef,\n }),\n })}\n />\n </div>\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n inputValue={inputValue}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n />\n </BaseFormControl>\n );\n};\n","import React, { Dispatch, SetStateAction, useEffect, 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 /** */\n loading?: boolean;\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 elementer å vise\n * @default \"Ingen tilgjengelige valg …\"\n */\n noMatchesText?: 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 loading,\n loadingText,\n noMatchesText = 'Ingen tilgjengelige valg …',\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: resolvedItemsLoading } =\n useResolvedItems(initialItems);\n const toggleButtonRef = useRef<HTMLDivElement>(null);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n const {\n isOpen,\n openMenu,\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, elements, update } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n middleware: [offset(space.extraSmall2), flip()],\n });\n\n // Since we use CSS instead of conditional rendering when hiding dropdownlist\n // we can't use the whileElementsMounted option and need to handle\n // cleanup ourselves. See https://floating-ui.com/docs/autoupdate\n useEffect(() => {\n if (isOpen && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n }, [isOpen, elements, update]);\n\n return (\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 ?? resolvedItemsLoading}\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', className, {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\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 onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) openMenu();\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\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 'aria-disabled': disabled,\n 'aria-label': disabled ? 'Disabled dropdown' : '',\n disabled: disabled,\n tabIndex: disabled ? -1 : 0,\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 <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={normalizedItems}\n noMatchesText={noMatchesText}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n />\n </BaseFormControl>\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 './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\nexport * from './types';\n"],"names":["DropdownList","_ref","_listItems$","_ref$ariaLabelChosenS","ariaLabelChosenSingular","_ref$ariaLabelSelecte","ariaLabelSelectedItem","getItemProps","getMenuProps","isOpen","highlightedIndex","listItems","floatingStyles","setListRef","_ref$loading","loading","_ref$loadingText","loadingText","_ref$noMatchesText","noMatchesText","selectAllCheckboxState","selectAllItem","selectedItems","rest","_objectWithoutPropertiesLoose","_excluded","isMultiselect","undefined","isNoMatches","length","value","isItemSelected","item","some","selectedItem","label","ariaValuesSelectAll","selected","selectAllListItemContent","React","createElement","Fragment","Checkbox","checked","className","onChange","tabIndex","listItemContent","style","display","VisuallyHidden","icons","map","Icon","_Icon$displayName","key","displayName","name","inline","_extends","ref","index","_item$icons$map","_item$icons","itemIsSelectAll","classNames","icon","_icon$displayName","toString","SelectedItemTag","_getSelectedItemProps","ariaLabelRemoveSelected","_ref$ariaLabelChosen","ariaLabelChosen","disabled","getSelectedItemProps","readOnly","removeSelectedItem","_ref2","selectedItemProps","TagChip","size","onClose","e","stopPropagation","closeButtonAriaLabel","FieldAppend","_ref3","_ref3$ariaHiddenToggl","ariaHiddenToggleButton","ariaLabelCloseList","ariaLabelOpenList","_ref3$clearable","clearable","labelClearSelectedItems","_ref3$disabled","_ref3$focusable","focusable","getToggleButtonProps","_ref3$loading","_ref3$loadingText","onClear","ClearableButton","ToggleButton","LoadingDots","_ref4","_ref4$labelClearSelec","_ref4$focusable","Tooltip","placement","content","IconButton","type","onClick","CloseSmallIcon","_ref5","_ref5$ariaHidden","ariaHidden","_ref5$ariaLabelCloseL","_ref5$ariaLabelOpenLi","_ref5$focusable","DownArrowIcon","useNormalizedItems","items","useMemo","useResolvedItems","itemsOrItemsResolver","debounceTimeout","itemsIsAFunction","_React$useState","useState","setItems","_React$useState2","setLoading","abortControllerRef","useRef","AbortController","itemsResolver","Promise","resolve","updateItems","_asyncToGenerator","_regeneratorRuntime","mark","_callee","inputValue","_abortControllerRef$c","abortController","_abortControllerRef$c2","resolvedItems","wrap","_callee$","_context","prev","next","current","abort","sent","signal","aborted","console","warn","abrupt","t0","stop","_x","apply","arguments","debouncedFetchItems","useDebounce","normalizedItems","useEffect","_abortControllerRef$c3","fetchItems","EMPTY_INPUT","lowerCaseFilterTest","input","sanitizeEscapeCharacters","replace","inputRegex","RegExp","test","noFilter","itemToString","itemToKey","isFunctionWithQueryArgument","object","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","filter","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","concat","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","_options$selectAllIte","selectAllItemIncluded","resultCount","resultCountWithoutSelectAll","SearchableDropdown","_document","_selectedItem$label","_ref$clearable","_ref$disabled","_ref$disableLabelAnim","disableLabelAnimation","feedback","initialItems","_ref$itemFilter","itemFilter","_ref$labelClearSelect","labelClearSelectedItem","labelTooltip","listStyle","_ref$onChange","placeholder","prepend","_ref$readOnly","_ref$selectOnBlur","selectOnBlur","_ref$selectOnTab","selectOnTab","_ref$variant","variant","_useState","showSelectedItem","setShowSelectedItem","_useState2","lastHighlightedIndex","setLastHighlightedIndex","inputRef","_useResolvedItems","resolvedItemsLoading","_useState3","setListItems","filterListItems","updateListItems","shouldRefetchItems","inputHasFocus","document","activeElement","setInputValue","stateReducer","useCallback","_","changes","useCombobox","stateChangeTypes","ItemClick","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","_changes$inputValue","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","openMenu","setHighlightedIndex","_useCombobox","defaultHighlightedIndex","onStateChange","newSelectedItem","getLabelProps","getInputProps","_useFloating","useFloating","open","middleware","offset","space","extraSmall2","flip","refs","elements","update","reference","floating","cleanup","autoUpdate","handleOnClear","_inputRef$current","focus","BaseFormControl","append","isFilled","labelId","id","labelProps","_inputRef$current2","target","currentTarget","setReference","_inputRef$current3","onBlur","onFocus","onKeyDown","setFloating","MultiSelect","_ref$clearInputOnSele","clearInputOnSelect","_ref$hideSelectAll","hideSelectAll","_ref$labelAllItemsSel","labelAllItemsSelected","_ref$labelClearAllIte","labelClearAllItems","_ref$labelSelectAll","labelSelectAll","_ref$maxChips","maxChips","_ref$selectedItems","_ref$ariaLabelChosenP","ariaLabelChosenPlural","_ref$ariaLabelJumpToI","ariaLabelJumpToInput","_ref$ariaLabelRemoveS","isAllNonAsyncItemsSelected","useRandomId","summarySelectedItems","_useMultiselectUtils","_useMultipleSelection","useMultipleSelection","newSelectedItems","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","DropdownKeyDownBackspace","FunctionRemoveSelectedItem","getDropdownProps","_inputRef$current$val","_inputRef$current$val2","_ref6","_inputRef$current4","_inputRef$current5","_inputRef$current6","highlitedItem","preventKeyAction","Dropdown","toggleButtonRef","_useSelect","useSelect","ToggleButtonBlur","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","_toggleButtonRef$curr","error","NativeDropdown","nativeDropdownId","hidden","event","_normalizedItems$find","find","warnAboutMissingStyles"],"mappings":"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"}
|