@entur/dropdown 7.1.4 → 7.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dropdown.cjs.development.js +51 -20
- 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 +51 -20
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/package.json +10 -10
|
@@ -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 style?: React.CSSProperties;\n};\n\nexport const DropdownList = <ValueType extends NonNullable<any>>({\n ariaLabelChosenSingular = 'valgt',\n ariaLabelSelectedItem = ', valgt element, trykk for å fjerne',\n getItemProps,\n getMenuProps,\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 ...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 tabIndex={-1}\n readOnly\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 {isMultiselect && (\n <Checkbox\n aria-hidden=\"true\"\n checked={isItemSelected(item)}\n className=\"eds-dropdown__list__item__checkbox\"\n tabIndex={-1}\n readOnly\n />\n )}\n <span className=\"eds-dropdown__list__item__text\">\n {item.label}\n <VisuallyHidden>\n {isItemSelected(item) ? ariaLabelSelectedItem : ''}\n </VisuallyHidden>\n </span>\n {item.icons && (\n <span>\n {item.icons.map(Icon => (\n <Icon\n key={\n item?.label + item?.value + (Icon?.displayName ?? Icon?.name)\n }\n inline\n className=\"eds-dropdown__list__item__icon\"\n />\n ))}\n </span>\n )}\n </>\n );\n };\n\n return (\n // use popover from @entur/tooltip when that package upgrades to floating-ui\n <ul\n {...getMenuProps({\n 'aria-multiselectable': isMultiselect,\n ref: setListRef,\n className: 'eds-dropdown__list',\n style: {\n ...floatingStyles,\n display: isOpen ? undefined : 'none',\n ...rest.style,\n },\n })}\n >\n {(() => {\n if (!isOpen) {\n return null;\n }\n\n if (loading) {\n return (\n <li\n key=\"dropdown-list-loading\"\n className=\"eds-dropdown__list__item\"\n >\n {loadingText}\n </li>\n );\n }\n\n if (isNoMatches) {\n return (\n <li\n key=\"dropdown-list-no-match\"\n className=\"eds-dropdown__list__item\"\n >\n {noMatchesText}\n </li>\n );\n }\n\n return 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 ).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 </ul>\n );\n};\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetToggleButtonPropsReturnValue,\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 onClick={(e: React.MouseEvent) => e.stopPropagation()}\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 = Partial<UseComboboxGetToggleButtonPropsReturnValue> & {\n ariaLabelCloseList: string;\n ariaLabelOpenList: string;\n clearable?: boolean;\n labelClearSelected: string;\n disabled?: boolean;\n focusable?: boolean;\n isOpen: boolean;\n loading: boolean;\n loadingText: string | undefined;\n onClear: () => void;\n itemIsSelected: boolean;\n};\n\nexport const DropdownFieldAppendix = forwardRef(\n (\n {\n ariaLabelCloseList,\n ariaLabelOpenList,\n clearable = false,\n labelClearSelected,\n focusable = false,\n disabled,\n isOpen,\n loading = false,\n loadingText,\n onClear,\n itemIsSelected,\n ...rest\n }: FieldAppendProps,\n ref: React.ForwardedRef<HTMLButtonElement>,\n ) => {\n function getToggleAriaLabel() {\n if (loading) return loadingText;\n if (isOpen) return ariaLabelCloseList;\n return ariaLabelOpenList;\n }\n\n return (\n <>\n {!disabled && (\n <div className=\"eds-dropdown__appendix\">\n {clearable && itemIsSelected && (\n <ClearableButton\n onClear={onClear}\n focusable={true}\n labelClearSelectedItems={labelClearSelected}\n />\n )}\n\n <IconButton\n className={classNames('eds-dropdown__appendix__toggle-button', {\n 'eds-dropdown__appendix__toggle-button--open': isOpen,\n })}\n ref={ref}\n aria-label={getToggleAriaLabel()}\n {...rest}\n type=\"button\"\n tabIndex={focusable ? 0 : -1}\n >\n {!loading ? (\n <DownArrowIcon aria-hidden=\"true\" />\n ) : (\n <LoadingDots aria-hidden=\"true\" />\n )}\n </IconButton>\n </div>\n )}\n </>\n );\n },\n);\n\nexport const 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 <>\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={e => {\n e.stopPropagation();\n onClear();\n }}\n aria-label={labelClearSelectedItems}\n >\n <CloseSmallIcon aria-hidden=\"true\" />\n </IconButton>\n </Tooltip>\n <div className=\"eds-dropdown__appendix__divider\" />\n </>\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// Redeclare forwardRef\ndeclare module 'react' {\n function forwardRef<T, P = object>(\n render: (props: P, ref: React.Ref<T>) => React.ReactElement | null,\n ): (props: P & React.RefAttributes<T>) => React.ReactElement | null;\n}\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\nexport const clamp = (val: number, min = 1, max = 10) =>\n Math.min(Math.max(val, min), max);\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 {\n UseComboboxState,\n UseComboboxStateChangeOptions,\n useCombobox,\n} from 'downshift';\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\n\nimport { DropdownProps } from './Dropdown';\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n clamp,\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 = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\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 = 'Laster resultater …',\n noMatchesText = 'Ingen tilgjengelige valg …',\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 ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\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(\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 const resetInputState = ({\n changes,\n }: {\n changes: Partial<UseComboboxState<NormalizedDropdownItemType<ValueType>>>;\n }) => {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\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 state: UseComboboxState<NormalizedDropdownItemType<ValueType>>,\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 return resetInputState({ changes });\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n if (changes.selectedItem !== null && !inputHasFocus)\n setShowSelectedItem(true);\n return resetInputState({ changes });\n // remove leading whitespace, select element with spacebar on empty input\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (!isSpacePressedOnEmptyInput) setLastHighlightedIndex(0);\n\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return { ...changes, highlightedIndex: 0 };\n }\n default:\n return changes;\n }\n },\n [fetchItems, filterListItems, inputHasFocus, resetInputState],\n );\n\n const {\n closeMenu,\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n highlightedIndex,\n getItemProps,\n selectedItem,\n inputValue,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex,\n items: listItems,\n itemToString,\n selectedItem: value,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n },\n onStateChange({ selectedItem: newSelectedItem }) {\n if (newSelectedItem === undefined) return;\n onChange(newSelectedItem);\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({ ...options, resultCount: listItems.length }),\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, 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 className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--searchable',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\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 onBlur={() => setInputValue('')}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n tabIndex={disabled || readOnly ? -1 : undefined}\n variant={variant}\n after={\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 }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden':\n !showSelectedItem,\n })}\n aria-hidden=\"true\"\n onClick={getInputProps()?.onClick}\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 {...getInputProps({\n onKeyDown(e: React.KeyboardEvent) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n onChange?.(highlitedItem);\n }\n closeMenu();\n e.preventDefault();\n }\n },\n onBlur() {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus() {\n setShowSelectedItem(false);\n },\n disabled: disabled,\n readOnly: readOnly,\n placeholder: selectedItem?.label ?? placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n ref: mergeRefs(inputRef, ref),\n })}\n />\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\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 UseComboboxState,\n} from 'downshift';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, useRandomId } from '@entur/utils';\n\nimport {\n DropdownFieldAppendix,\n SelectedItemTag,\n} from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport { DropdownProps } from './Dropdown';\nimport {\n clamp,\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 = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\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 = 'Laster resultater …',\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 = 'Lukk liste med valg',\n ariaLabelJumpToInput = `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`,\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelRemoveSelected = 'trykk for å fjerne valg',\n ariaLabelSelectedItem,\n ...rest\n }: MultiSelectProps<ValueType>,\n ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\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 }) {\n if (newSelectedItems !== undefined) onChange(newSelectedItems);\n },\n });\n\n const stateReducer = React.useCallback(\n (\n state: UseComboboxState<NormalizedDropdownItemType<ValueType | string>>,\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 // reset input value when leaving input field\n case useCombobox.stateChangeTypes.InputBlur:\n if (state.isOpen) inputRef.current?.focus();\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n // keep menu open and edit input value on item selection\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\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 const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return changes;\n }\n default:\n return changes;\n }\n },\n [hideSelectAll, normalizedItems, filterListItems, initialItems],\n );\n\n const {\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n setHighlightedIndex,\n inputValue,\n isOpen,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex, // after selection, highlight previously selected item.\n items: listItems,\n itemToString,\n selectedItem: null,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n // set highlighted item to first item after search\n setHighlightedIndex(hideSelectAll ? 0 : 1);\n setLastHighlightedIndex(hideSelectAll ? 0 : 1);\n },\n onStateChange({ selectedItem: clickedItem }) {\n // clickedItem means item chosen either via mouse or keyboard\n if (!clickedItem) return;\n\n handleListItemClicked({\n clickedItem,\n onChange,\n });\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n resultCount: listItems.length,\n }),\n ...rest,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n\n return (\n <BaseFormControl\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 onBlur={() => setInputValue('')}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n variant={variant}\n after={\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 selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n />\n }\n {...rest}\n >\n <div\n className={classNames(\n 'eds-dropdown--multiselect__selected-items-and-input',\n {\n 'eds-dropdown--multiselect__selected-items-and-input--filled':\n hasSelectedItems,\n },\n )}\n >\n {selectedItems.length > 1 ? (\n <VisuallyHidden onClick={inputRef.current?.focus}>\n {ariaLabelJumpToInput}\n </VisuallyHidden>\n ) : null}\n {selectedItems.length <= maxChips ? (\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 <SelectedItemTag\n ariaLabelRemoveSelected={labelClearAllItems}\n ariaLabelChosen=\"\"\n disabled={disabled}\n readOnly={readOnly}\n removeSelectedItem={handleOnClear}\n selectedItem={summarySelectedItems}\n />\n )}\n <input\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: mergeRefs(inputRef, ref),\n }),\n className: 'eds-dropdown__input eds-form-control',\n disabled: readOnly || disabled,\n placeholder: placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n })}\n />\n </div>\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearAllItems}\n isOpen={isOpen}\n itemIsSelected={selectedItems.length > 0}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { Dispatch, SetStateAction, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { useSelect } from 'downshift';\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\nimport { useResolvedItems } from './useResolvedItems';\nimport { clamp, 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ørst i dropdown-feltet */\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 = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\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 = 'Laster resultater …',\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 ref: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { items: normalizedItems, loading: resolvedItemsLoading } =\n useResolvedItems(initialItems);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n const {\n closeMenu,\n isOpen,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n } = useSelect({\n items: normalizedItems,\n defaultHighlightedIndex: selectedItem ? undefined : 0,\n selectedItem,\n onStateChange({ type, selectedItem: newSelectedItem }) {\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (!selectOnBlur) return;\n }\n if (newSelectedItem === undefined) return;\n onChange?.(newSelectedItem ?? null);\n },\n itemToString,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n return (\n <BaseFormControl\n className={classNames('eds-dropdown', className, {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\n })}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={isFilled}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n prepend={prepend}\n style={style}\n variant={variant}\n {...getToggleButtonProps({\n ref: mergeRefs(ref, refs.setReference),\n 'aria-disabled': disabled,\n 'aria-label': disabled ? 'Disabled dropdown' : '',\n disabled: disabled,\n readOnly: readOnly,\n label: label,\n labelId: getLabelProps()?.id,\n children: undefined,\n tabIndex: disabled || readOnly ? -1 : 0,\n onKeyDown(e) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = normalizedItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n onChange?.(highlitedItem);\n }\n closeMenu();\n e.preventDefault();\n }\n },\n })}\n after={\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 }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <div className=\"eds-dropdown__selected-item\">\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 </div>\n <DropdownFieldAppendix\n aria-busy={!(loading ?? resolvedItemsLoading) ? undefined : 'true'}\n aria-expanded={isOpen}\n clearable={clearable}\n onClear={() => onChange?.(null)}\n disabled={disabled || readOnly}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n loading={false}\n loadingText={undefined}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { forwardRef } 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 = forwardRef(\n <ValueType extends string | number>(\n {\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 ref: React.ForwardedRef<HTMLSelectElement>,\n ) => {\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(\n item => item.value === event.target.value,\n ) ?? null,\n target: event.target,\n });\n }}\n value={value ?? selectedItem?.value ?? undefined}\n ref={ref}\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);\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","tabIndex","readOnly","listItemContent","VisuallyHidden","icons","map","Icon","_Icon$displayName","key","displayName","name","inline","_extends","ref","style","display","index","_item$icons$map","_item$icons","itemIsSelectAll","classNames","icon","_icon$displayName","toString","SelectedItemTag","_getSelectedItemProps","ariaLabelRemoveSelected","_ref$ariaLabelChosen","ariaLabelChosen","disabled","getSelectedItemProps","removeSelectedItem","_ref2","selectedItemProps","TagChip","size","onClose","e","stopPropagation","onClick","closeButtonAriaLabel","DropdownFieldAppendix","forwardRef","_ref3","ariaLabelCloseList","ariaLabelOpenList","_ref3$clearable","clearable","labelClearSelected","_ref3$focusable","focusable","_ref3$loading","onClear","itemIsSelected","_excluded2","getToggleAriaLabel","ClearableButton","labelClearSelectedItems","IconButton","type","DownArrowIcon","LoadingDots","_ref4","_ref4$labelClearSelec","_ref4$focusable","Tooltip","placement","content","CloseSmallIcon","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","clamp","val","min","max","Math","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","filter","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","onChange","concat","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","_options$selectAllIte","selectAllItemIncluded","resultCount","resultCountWithoutSelectAll","SearchableDropdown","_document","_getInputProps2","_selectedItem$label","_ref$ariaLabelCloseLi","_ref$ariaLabelOpenLis","_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","resetInputState","changes","inputHasFocus","document","activeElement","setInputValue","stateReducer","useCallback","state","_ref5","useCombobox","stateChangeTypes","ItemClick","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","_changes$inputValue","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","sanitizedInputValue","_useCombobox","defaultHighlightedIndex","onInputValueChange","onStateChange","_ref6","newSelectedItem","closeMenu","getToggleButtonProps","getLabelProps","getInputProps","_useFloating","useFloating","open","middleware","offset","space","extraSmall2","shift","padding","extraSmall","_ref7","rects","elements","availableHeight","Object","assign","floating","width","reference","maxHeight","flip","fallbackStrategy","refs","update","autoUpdate","handleOnClear","_inputRef$current","focus","BaseFormControl","isFilled","labelId","id","labelProps","onBlur","target","currentTarget","_getInputProps","setReference","after","setFloating","append","onKeyDown","highlitedItem","preventDefault","onFocus","mergeRefs","MultiSelect","_inputRef$current5","_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","getDropdownProps","_inputRef$current$val","_inputRef$current2","_inputRef$current$val2","_inputRef$current3","setHighlightedIndex","_inputRef$current4","_inputRef$current6","preventKeyAction","Dropdown","_getLabelProps","_useSelect","useSelect","ToggleButtonBlur","children","error","NativeDropdown","nativeDropdownId","FieldAppend","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 style?: React.CSSProperties;\n};\n\nexport const DropdownList = <ValueType extends NonNullable<any>>({\n ariaLabelChosenSingular = 'valgt',\n ariaLabelSelectedItem = ', valgt element, trykk for å fjerne',\n getItemProps,\n getMenuProps,\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 ...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 tabIndex={-1}\n readOnly\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 isReactComponent = (icon: any): icon is React.ComponentType<any> => {\n return (\n typeof icon === 'function' ||\n (typeof icon === 'object' &&\n icon !== null &&\n '$$typeof' in icon &&\n typeof icon.$$typeof === 'symbol')\n );\n };\n\n const listItemContent = (item: NormalizedDropdownItemType<ValueType>) => {\n return (\n <>\n {isMultiselect && (\n <Checkbox\n aria-hidden=\"true\"\n checked={isItemSelected(item)}\n className=\"eds-dropdown__list__item__checkbox\"\n tabIndex={-1}\n readOnly\n />\n )}\n <span className=\"eds-dropdown__list__item__text\">\n {item.label}\n <VisuallyHidden>\n {isItemSelected(item) ? ariaLabelSelectedItem : ''}\n </VisuallyHidden>\n </span>\n {Array.isArray(item.icons)\n ? item.icons.filter(isReactComponent).map((Icon, index) => {\n const key = `${\n Icon.displayName ?? Icon.name ?? Icon.name\n }-${index}`;\n return (\n <Icon\n key={key}\n inline\n className=\"eds-dropdown__list__item__icon\"\n />\n );\n })\n : null}\n </>\n );\n };\n\n return (\n // use popover from @entur/tooltip when that package upgrades to floating-ui\n <ul\n {...getMenuProps({\n 'aria-multiselectable': isMultiselect,\n ref: setListRef,\n className: 'eds-dropdown__list',\n style: {\n ...floatingStyles,\n display: isOpen ? undefined : 'none',\n ...rest.style,\n },\n })}\n >\n {(() => {\n if (!isOpen) {\n return null;\n }\n\n if (loading) {\n return (\n <li\n key=\"dropdown-list-loading\"\n className=\"eds-dropdown__list__item\"\n >\n {loadingText}\n </li>\n );\n }\n\n if (isNoMatches) {\n return (\n <li\n key=\"dropdown-list-no-match\"\n className=\"eds-dropdown__list__item\"\n >\n {noMatchesText}\n </li>\n );\n }\n\n return listItems.map((item, index) => {\n const key =\n item.itemKey ??\n `${item.label ?? ''}-${item.value ?? ''}-${(item.icons ?? [])\n .map(icon => icon?.displayName ?? icon?.name ?? 'unknown')\n .join('-')}`;\n const itemIsSelectAll = item.value === selectAllItem?.value;\n if (itemIsSelectAll && listItems.length <= 2) return null;\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={key}\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 </ul>\n );\n};\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetToggleButtonPropsReturnValue,\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 onClick={(e: React.MouseEvent) => e.stopPropagation()}\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 = Partial<UseComboboxGetToggleButtonPropsReturnValue> & {\n ariaLabelCloseList: string;\n ariaLabelOpenList: string;\n clearable?: boolean;\n labelClearSelected: string;\n disabled?: boolean;\n focusable?: boolean;\n isOpen: boolean;\n loading: boolean;\n loadingText: string | undefined;\n onClear: () => void;\n itemIsSelected: boolean;\n};\n\nexport const DropdownFieldAppendix = forwardRef(\n (\n {\n ariaLabelCloseList,\n ariaLabelOpenList,\n clearable = false,\n labelClearSelected,\n focusable = false,\n disabled,\n isOpen,\n loading = false,\n loadingText,\n onClear,\n itemIsSelected,\n ...rest\n }: FieldAppendProps,\n ref: React.ForwardedRef<HTMLButtonElement>,\n ) => {\n function getToggleAriaLabel() {\n if (loading) return loadingText;\n if (isOpen) return ariaLabelCloseList;\n return ariaLabelOpenList;\n }\n\n return (\n <>\n {!disabled && (\n <div className=\"eds-dropdown__appendix\">\n {clearable && itemIsSelected && (\n <ClearableButton\n onClear={onClear}\n focusable={true}\n labelClearSelectedItems={labelClearSelected}\n />\n )}\n\n <IconButton\n className={classNames('eds-dropdown__appendix__toggle-button', {\n 'eds-dropdown__appendix__toggle-button--open': isOpen,\n })}\n ref={ref}\n aria-label={getToggleAriaLabel()}\n {...rest}\n type=\"button\"\n tabIndex={focusable ? 0 : -1}\n >\n {!loading ? (\n <DownArrowIcon aria-hidden=\"true\" />\n ) : (\n <LoadingDots aria-hidden=\"true\" />\n )}\n </IconButton>\n </div>\n )}\n </>\n );\n },\n);\n\nexport const 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 <>\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 // These events bubble up to the Dropdown container and trigger openMenu.\n // To avoid this, stopPropagation and preventDefault are added.\n onClick={e => {\n e.stopPropagation();\n onClear();\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n onClear();\n }\n }}\n aria-label={labelClearSelectedItems}\n >\n <CloseSmallIcon aria-hidden=\"true\" />\n </IconButton>\n </Tooltip>\n <div className=\"eds-dropdown__appendix__divider\" />\n </>\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// Redeclare forwardRef\ndeclare module 'react' {\n function forwardRef<T, P = object>(\n render: (props: P, ref: React.Ref<T>) => React.ReactElement | null,\n ): (props: P & React.RefAttributes<T>) => React.ReactElement | null;\n}\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\nexport const clamp = (val: number, min = 1, max = 10) =>\n Math.min(Math.max(val, min), max);\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 {\n UseComboboxState,\n UseComboboxStateChangeOptions,\n useCombobox,\n} from 'downshift';\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\n\nimport { DropdownProps } from './Dropdown';\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n clamp,\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 = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\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 = 'Laster resultater …',\n noMatchesText = 'Ingen tilgjengelige valg …',\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 ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\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(\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 const resetInputState = ({\n changes,\n }: {\n changes: Partial<UseComboboxState<NormalizedDropdownItemType<ValueType>>>;\n }) => {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\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 state: UseComboboxState<NormalizedDropdownItemType<ValueType>>,\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 return resetInputState({ changes });\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n if (changes.selectedItem !== null && !inputHasFocus)\n setShowSelectedItem(true);\n return resetInputState({ changes });\n // remove leading whitespace, select element with spacebar on empty input\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (!isSpacePressedOnEmptyInput) setLastHighlightedIndex(0);\n\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return { ...changes, highlightedIndex: 0 };\n }\n default:\n return changes;\n }\n },\n [fetchItems, filterListItems, inputHasFocus, resetInputState],\n );\n\n const {\n closeMenu,\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n highlightedIndex,\n getItemProps,\n selectedItem,\n inputValue,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex,\n items: listItems,\n itemToString,\n selectedItem: value,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n },\n onStateChange({ selectedItem: newSelectedItem }) {\n if (newSelectedItem === undefined) return;\n onChange(newSelectedItem);\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({ ...options, resultCount: listItems.length }),\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, 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 className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--searchable',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\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 onBlur={() => setInputValue('')}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n tabIndex={disabled || readOnly ? -1 : undefined}\n variant={variant}\n after={\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 }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden':\n !showSelectedItem,\n })}\n aria-hidden=\"true\"\n onClick={getInputProps()?.onClick}\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 {...getInputProps({\n onKeyDown(e: React.KeyboardEvent) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n onChange?.(highlitedItem);\n }\n closeMenu();\n e.preventDefault();\n }\n },\n onBlur() {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus() {\n setShowSelectedItem(false);\n },\n disabled: disabled,\n readOnly: readOnly,\n placeholder: selectedItem?.label ?? placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n ref: mergeRefs(inputRef, ref),\n })}\n />\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\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 UseComboboxState,\n} from 'downshift';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, useRandomId } from '@entur/utils';\n\nimport {\n DropdownFieldAppendix,\n SelectedItemTag,\n} from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport { DropdownProps } from './Dropdown';\nimport {\n clamp,\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 = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\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 = 'Laster resultater …',\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 = 'Lukk liste med valg',\n ariaLabelJumpToInput = `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`,\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelRemoveSelected = 'trykk for å fjerne valg',\n ariaLabelSelectedItem,\n ...rest\n }: MultiSelectProps<ValueType>,\n ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\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 }) {\n if (newSelectedItems !== undefined) onChange(newSelectedItems);\n },\n });\n\n const stateReducer = React.useCallback(\n (\n state: UseComboboxState<NormalizedDropdownItemType<ValueType | string>>,\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 // reset input value when leaving input field\n case useCombobox.stateChangeTypes.InputBlur:\n if (state.isOpen) inputRef.current?.focus();\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n // keep menu open and edit input value on item selection\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\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 const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return changes;\n }\n default:\n return changes;\n }\n },\n [hideSelectAll, normalizedItems, filterListItems, initialItems],\n );\n\n const {\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n setHighlightedIndex,\n inputValue,\n isOpen,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex, // after selection, highlight previously selected item.\n items: listItems,\n itemToString,\n selectedItem: null,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n // set highlighted item to first item after search\n setHighlightedIndex(hideSelectAll ? 0 : 1);\n setLastHighlightedIndex(hideSelectAll ? 0 : 1);\n },\n onStateChange({ selectedItem: clickedItem }) {\n // clickedItem means item chosen either via mouse or keyboard\n if (!clickedItem) return;\n\n handleListItemClicked({\n clickedItem,\n onChange,\n });\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n resultCount: listItems.length,\n }),\n ...rest,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n onChange([]);\n setInputValue(EMPTY_INPUT);\n inputRef.current?.focus();\n updateListItems({ inputValue });\n };\n\n return (\n <BaseFormControl\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 onBlur={() => setInputValue('')}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n variant={variant}\n after={\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 selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n />\n }\n {...rest}\n >\n <div\n className={classNames(\n 'eds-dropdown--multiselect__selected-items-and-input',\n {\n 'eds-dropdown--multiselect__selected-items-and-input--filled':\n hasSelectedItems,\n },\n )}\n >\n {selectedItems.length > 1 ? (\n <VisuallyHidden onClick={inputRef.current?.focus}>\n {ariaLabelJumpToInput}\n </VisuallyHidden>\n ) : null}\n {selectedItems.length <= maxChips ? (\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 <SelectedItemTag\n ariaLabelRemoveSelected={labelClearAllItems}\n ariaLabelChosen=\"\"\n disabled={disabled}\n readOnly={readOnly}\n removeSelectedItem={handleOnClear}\n selectedItem={summarySelectedItems}\n />\n )}\n <input\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: mergeRefs(inputRef, ref),\n }),\n className: 'eds-dropdown__input eds-form-control',\n disabled: readOnly || disabled,\n placeholder: placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n })}\n />\n </div>\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearAllItems}\n isOpen={isOpen}\n itemIsSelected={selectedItems.length > 0}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { Dispatch, SetStateAction, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { useSelect } from 'downshift';\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\nimport { useResolvedItems } from './useResolvedItems';\nimport { clamp, 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ørst i dropdown-feltet */\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 = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\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 = 'Laster resultater …',\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 ref: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { items: normalizedItems, loading: resolvedItemsLoading } =\n useResolvedItems(initialItems);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n const {\n closeMenu,\n isOpen,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n reset,\n } = useSelect({\n items: normalizedItems,\n defaultHighlightedIndex: selectedItem ? undefined : 0,\n selectedItem,\n stateReducer(_, { changes, type }) {\n const toggleButtonIsFocused =\n typeof document !== 'undefined' &&\n document.activeElement === refs.reference.current;\n\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowDown:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowUp:\n if (!toggleButtonIsFocused) return { ...changes, isOpen: false };\n }\n return changes;\n },\n onStateChange({ type, selectedItem: newSelectedItem }) {\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (!selectOnBlur) return;\n }\n if (newSelectedItem === undefined) return;\n onChange?.(newSelectedItem ?? null);\n },\n itemToString,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating<HTMLDivElement>({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n reset();\n refs.reference.current?.focus();\n };\n\n return (\n <BaseFormControl\n className={classNames('eds-dropdown', className, {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\n })}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={isFilled}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n prepend={prepend}\n style={style}\n variant={variant}\n {...getToggleButtonProps({\n ref: mergeRefs(ref, refs.setReference),\n 'aria-disabled': disabled,\n 'aria-label': disabled ? 'Disabled dropdown' : '',\n disabled: disabled,\n readOnly: readOnly,\n label: label,\n labelId: getLabelProps()?.id,\n children: undefined,\n tabIndex: disabled || readOnly ? -1 : 0,\n onKeyDown(e) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = normalizedItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n onChange?.(highlitedItem);\n }\n closeMenu();\n e.preventDefault();\n }\n },\n })}\n after={\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 }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <div className=\"eds-dropdown__selected-item\">\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 </div>\n <DropdownFieldAppendix\n aria-busy={!(loading ?? resolvedItemsLoading) ? undefined : 'true'}\n aria-expanded={isOpen}\n clearable={clearable}\n onClear={handleOnClear}\n disabled={disabled || readOnly}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n loading={false}\n loadingText={undefined}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { forwardRef } 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 = forwardRef(\n <ValueType extends string | number>(\n {\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 ref: React.ForwardedRef<HTMLSelectElement>,\n ) => {\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(\n item => item.value === event.target.value,\n ) ?? null,\n target: event.target,\n });\n }}\n value={value ?? selectedItem?.value ?? undefined}\n ref={ref}\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);\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","tabIndex","readOnly","isReactComponent","icon","$$typeof","listItemContent","VisuallyHidden","Array","isArray","icons","filter","map","Icon","index","_ref2","_Icon$displayName","key","displayName","name","inline","_extends","ref","style","display","_item$itemKey","_item$label","_item$value","_item$icons","itemKey","_ref3","_icon$displayName","join","itemIsSelectAll","classNames","SelectedItemTag","_getSelectedItemProps","ariaLabelRemoveSelected","_ref$ariaLabelChosen","ariaLabelChosen","disabled","getSelectedItemProps","removeSelectedItem","selectedItemProps","TagChip","size","onClose","e","stopPropagation","onClick","closeButtonAriaLabel","DropdownFieldAppendix","forwardRef","ariaLabelCloseList","ariaLabelOpenList","_ref3$clearable","clearable","labelClearSelected","_ref3$focusable","focusable","_ref3$loading","onClear","itemIsSelected","_excluded2","getToggleAriaLabel","ClearableButton","labelClearSelectedItems","IconButton","type","DownArrowIcon","LoadingDots","_ref4","_ref4$labelClearSelec","_ref4$focusable","Tooltip","placement","content","onKeyDown","preventDefault","CloseSmallIcon","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","clamp","val","min","max","Math","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","onChange","concat","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","_options$selectAllIte","selectAllItemIncluded","resultCount","resultCountWithoutSelectAll","SearchableDropdown","_document","_getInputProps2","_selectedItem$label","_ref$ariaLabelCloseLi","_ref$ariaLabelOpenLis","_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","resetInputState","changes","inputHasFocus","document","activeElement","setInputValue","stateReducer","useCallback","state","_ref5","useCombobox","stateChangeTypes","ItemClick","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","_changes$inputValue","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","sanitizedInputValue","_useCombobox","defaultHighlightedIndex","onInputValueChange","onStateChange","_ref6","newSelectedItem","closeMenu","getToggleButtonProps","getLabelProps","getInputProps","_useFloating","useFloating","open","middleware","offset","space","extraSmall2","shift","padding","extraSmall","_ref7","rects","elements","availableHeight","Object","assign","floating","width","reference","maxHeight","flip","fallbackStrategy","refs","update","autoUpdate","handleOnClear","_inputRef$current","focus","BaseFormControl","isFilled","labelId","id","labelProps","onBlur","target","currentTarget","_getInputProps","setReference","after","setFloating","append","highlitedItem","onFocus","mergeRefs","MultiSelect","_inputRef$current5","_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","getDropdownProps","_inputRef$current$val","_inputRef$current2","_inputRef$current$val2","_inputRef$current3","setHighlightedIndex","_inputRef$current4","_inputRef$current6","preventKeyAction","Dropdown","_getLabelProps","_useSelect","useSelect","_","toggleButtonIsFocused","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonBlur","reset","_refs$reference$curre","children","error","NativeDropdown","nativeDropdownId","FieldAppend","hidden","event","_normalizedItems$find","find","warnAboutMissingStyles"],"mappings":"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"}
|