@entur/dropdown 7.1.1-beta.0 → 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.cjs.development.js","sources":["../src/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 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 setLastHighlightedIndex(0);\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 highlightedIndex: 0,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n highlightedIndex: 0,\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 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 onBlur() {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus() {\n setShowSelectedItem(false);\n },\n onKeyDown(e) {\n if (\n isOpen &&\n (selectOnTab || selectOnBlur) &&\n e.key === 'Tab' &&\n highlightedIndex !== undefined\n )\n onChange(listItems[highlightedIndex]);\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 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 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 (\n isOpen &&\n (selectOnTab || selectOnBlur) &&\n e.key === 'Tab' &&\n highlightedIndex !== undefined\n )\n onChange?.(normalizedItems[highlightedIndex]);\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","DownArrowIcon","LoadingDots","_ref4","_ref4$labelClearSelec","_ref4$focusable","Tooltip","placement","content","type","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","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","onFocus","onKeyDown","mergeRefs","MultiSelect","_inputRef$current4","_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$current$val2","_inputRef$current2","setHighlightedIndex","_inputRef$current3","_inputRef$current5","highlitedItem","preventKeyAction","Dropdown","_getLabelProps","_useSelect","useSelect","ToggleButtonBlur","children","error","NativeDropdown","nativeDropdownId","FieldAppend","hidden","event","_normalizedItems$find","find","warnAboutMissingStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAiBU;AAAA,EAAA,IAAAC,WAAA,CAAA;AAAA,EAAA,IAAAC,qBAAA,GAAAF,IAAA,CAhBjCG,uBAAuB;AAAvBA,IAAAA,uBAAuB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,qBAAA;IAAAE,qBAAA,GAAAJ,IAAA,CACjCK,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,qCAAqC,GAAAA,qBAAA;IAC7DE,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,YAAY,GAAAP,IAAA,CAAZO,YAAY;IACZC,MAAM,GAAAR,IAAA,CAANQ,MAAM;IACNC,gBAAgB,GAAAT,IAAA,CAAhBS,gBAAgB;IAChBC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,cAAc,GAAAX,IAAA,CAAdW,cAAc;IACdC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IAAAC,YAAA,GAAAb,IAAA,CACVc,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IAAAE,gBAAA,GAAAf,IAAA,CACfgB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,gBAAA;IAAAE,kBAAA,GAAAjB,IAAA,CAC5BkB,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,uBAAuB,GAAAA,kBAAA;IACvCE,sBAAsB,GAAAnB,IAAA,CAAtBmB,sBAAsB;IACtBC,aAAa,GAAApB,IAAA,CAAboB,aAAa;IACbC,aAAa,GAAArB,IAAA,CAAbqB,aAAa;AACVC,IAAAA,IAAI,GAAAC,6BAAA,CAAAvB,IAAA,EAAAwB,WAAA,CAAA,CAAA;AAEP,EAAA,IAAMC,aAAa,GAAGL,aAAa,KAAKM,SAAS,CAAA;AACjD,EAAA,IAAMC,WAAW,GACf,CAACb,OAAO,KACPJ,SAAS,CAACkB,MAAM,KAAK,CAAC,IACpB,CAAAlB,SAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEkB,MAAM,MAAK,CAAC,IACtB,CAAAlB,SAAS,aAAAT,WAAA,GAATS,SAAS,CAAG,CAAC,CAAC,KAAdT,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAgB4B,KAAK,OAAKT,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAES,KAAK,CAAC,CAAC,CAAA;AACtD,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAClBC,IAAoD,EAAA;AAAA,IAAA,OAEpDV,aAAa,CAACW,IAAI,CAChB,UAAAC,YAAY,EAAA;MAAA,OACV,CAAAA,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEJ,KAAK,OAAKE,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEF,KAAK,KACnC,CAAAI,YAAY,IAAZA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEC,KAAK,OAAKH,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEG,KAAK,CAAA,CAAA;KACtC,CAAA,CAAA;AAAA,GAAA,CAAA;AAEH,EAAA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAQ;AAC/B,IAAA,QAAQhB,sBAAsB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAtBA,sBAAsB,EAAI;AAChC,MAAA,KAAK,eAAe;AAAE,QAAA;UACpB,OAAO;AACLe,YAAAA,KAAK,GAAKd,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEc,KAAK,IAAgB,gBAAA;AAC9CE,YAAAA,QAAQ,EAAE,KAAA;WACX,CAAA;AACH,SAAA;AACA,MAAA,KAAK,IAAI;AAAE,QAAA;UACT,OAAO;AACLF,YAAAA,KAAK,GAAKd,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEc,KAAK,WAAK/B,uBAAyB;AAC5DiC,YAAAA,QAAQ,EAAE,IAAA;WACX,CAAA;AACH,SAAA;AACA,MAAA;AAAS,QAAA;UACP,OAAO;AAAEF,YAAAA,KAAK,QAAKd,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEc,KAAK,CAAE;AAAEE,YAAAA,QAAQ,EAAE,KAAA;WAAO,CAAA;AAC9D,SAAA;AACF,KAAA;GACD,CAAA;AAED,EAAA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAAA;AAAA,IAAA,OAC5BC,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACEF,KAAC,CAAAC,aAAA,CAAAE,aAAQ;qBACK,MAAM;AAClBC,MAAAA,OAAO,EAAEvB,sBAAsB,IAAtBA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,EAAI;AACnCwB,MAAAA,SAAS,EAAC,oCAAoC;MAC9CC,QAAQ,EAAE,CAAC,CAAC;AACZC,MAAAA,QAAQ,EACR,IAAA;AAAA,KAAA,CAAA,EACFP,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACEI,MAAAA,SAAS,EAAC,gCAAgC;AAAA,MAAA,YAAA,EAC9BR,mBAAmB,EAAE,CAACD,KAAAA;AAAK,KAAA,EAEtCd,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEc,KAAK,CAChB,CACN,CAAA;GACJ,CAAA;AAED,EAAA,IAAMY,eAAe,GAAG,SAAlBA,eAAeA,CAAIf,IAA2C,EAAI;AACtE,IAAA,OACEO,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACGf,aAAa,IACZa,KAAA,CAAAC,aAAA,CAACE,aAAQ,EAAA;AAAA,MAAA,aAAA,EACK,MAAM;AAClBC,MAAAA,OAAO,EAAEZ,cAAc,CAACC,IAAI,CAAC;AAC7BY,MAAAA,SAAS,EAAC,oCAAoC;MAC9CC,QAAQ,EAAE,CAAC,CAAC;AACZC,MAAAA,QAAQ,EAAA,IAAA;AAAA,KAAA,CAEX,EACDP,KAAM,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAAI,MAAAA,SAAS,EAAC,gCAAA;AAAgC,KAAA,EAC7CZ,IAAI,CAACG,KAAK,EACXI,KAAA,CAAAC,aAAA,CAACQ,mBAAc,EAAA,IAAA,EACZjB,cAAc,CAACC,IAAI,CAAC,GAAG1B,qBAAqB,GAAG,EAAE,CACnC,CACZ,EACN0B,IAAI,CAACiB,KAAK,IACTV,kCACGP,IAAI,CAACiB,KAAK,CAACC,GAAG,CAAC,UAAAC,IAAI,EAAA;AAAA,MAAA,IAAAC,iBAAA,CAAA;AAAA,MAAA,OAClBb,KAAC,CAAAC,aAAA,CAAAW,IAAI;AACHE,QAAAA,GAAG,EACD,CAAArB,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEG,KAAK,KAAGH,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEF,KAAK,CAAA,IAAA,CAAAsB,iBAAA,GAAID,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEG,WAAW,KAAA,IAAA,GAAAF,iBAAA,GAAID,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEI,IAAI,CAAC;AAE/DC,QAAAA,MAAM,EACN,IAAA;AAAAZ,QAAAA,SAAS,EAAC,gCAAA;AACV,OAAA,CAAA,CAAA;KACH,CAAC,CAEL,CACA,CAAA;GAEN,CAAA;AAED,EAAA;AACE;IACAL,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAAiB,QAAA,CAAA,EAAA,EACMjD,YAAY,CAAC;AACf,MAAA,sBAAsB,EAAEkB,aAAa;AACrCgC,MAAAA,GAAG,EAAE7C,UAAU;AACf+B,MAAAA,SAAS,EAAE,oBAAoB;MAC/Be,KAAK,EAAAF,QAAA,CAAA,EAAA,EACA7C,cAAc,EAAA;AACjBgD,QAAAA,OAAO,EAAEnD,MAAM,GAAGkB,SAAS,GAAG,MAAA;OAC3BJ,EAAAA,IAAI,CAACoC,KAAK,CAAA;KAEhB,CAAC,GAEA,YAAK;MACL,IAAI,CAAClD,MAAM,EAAE;AACX,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAEA,MAAA,IAAIM,OAAO,EAAE;AACX,QAAA,OACEwB,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AACEa,UAAAA,GAAG,EAAC,uBAAuB;AAC3BT,UAAAA,SAAS,EAAC,0BAAA;SAA0B,EAEnC3B,WAAW,CACT,CAAA;AAET,OAAA;AAEA,MAAA,IAAIW,WAAW,EAAE;AACf,QAAA,OACEW,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AACEa,UAAAA,GAAG,EAAC,wBAAwB;AAC5BT,UAAAA,SAAS,EAAC,0BAAA;SAA0B,EAEnCzB,aAAa,CACX,CAAA;AAET,OAAA;MAEA,OAAOR,SAAS,CAACuC,GAAG,CAAC,UAAClB,IAAI,EAAE6B,KAAK,EAAI;QAAA,IAAAC,eAAA,EAAAC,WAAA,CAAA;QACnC,IAAMC,eAAe,GAAGhC,IAAI,CAACF,KAAK,MAAKT,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAES,KAAK,CAAA,CAAA;QAC3D,IAAIkC,eAAe,IAAIrD,SAAS,CAACkB,MAAM,IAAI,CAAC,EAAE,OAAO,IAAI,CAAA;AAEzD,QAAA,OACEU,KACE,CAAAC,aAAA,CAAA,IAAA,EAAAiB,QAAA,CAAA;AAAAb,UAAAA,SAAS,EAAEqB,UAAU,CAAC,0BAA0B,EAAE;AAChD,YAAA,sCAAsC,EAAED,eAAe;YACvD,uCAAuC,EACrCtD,gBAAgB,KAAKmD,KAAK;AAC5B,YAAA,oCAAoC,EAClC,CAACnC,aAAa,IAAIK,cAAc,CAACC,IAAI,CAAA;AACxC,WAAA,CAAC;AACFqB,UAAAA,GAAG,EACD,CAAArB,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEG,KAAK,KACXH,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEF,KAAK,CACX,GAAA,CAAA,CAAAgC,eAAA,GACE9B,IAAI,IAAA,IAAA,IAAA,CAAA+B,WAAA,GAAJ/B,IAAI,CAAEiB,KAAK,KAAA,IAAA,GAAA,KAAA,CAAA,GAAXc,WAAA,CAAab,GAAG,CAAC,UAAAgB,IAAI,EAAA;AAAA,YAAA,IAAAC,iBAAA,CAAA;YAAA,OAAAA,CAAAA,iBAAA,GAAID,IAAI,CAACZ,WAAW,YAAAa,iBAAA,GAAID,IAAI,CAACX,IAAI,CAAA;AAAA,WAAA,CAAC,YAAAO,eAAA,GAAI,EAAE,EAC7DM,QAAQ,EAAA;AAAE,SAAA,EAEV7D,YAAY,CAAC;AACf;AACA;AACA;AACAyB,UAAAA,IAAI,EAAJA,IAAI;AACJ6B,UAAAA,KAAK,EAALA,KAAK;UACL,eAAe,EAAEG,eAAe,GAC5B5B,mBAAmB,EAAE,CAACC,QAAQ,GAC9BN,cAAc,CAACC,IAAI,CAAA;AACxB,SAAA,CAAC,CAAA,EAEDgC,eAAe,GACZ1B,wBAAwB,EAAE,GAC1BS,eAAe,CACbf,IAA6C,CAC9C,CACF,CAAA;AAET,OAAC,CAAC,CAAA;AACJ,KAAC,EAAG,CAAA;AACD,IAAA;AAET,CAAC;;;;AC9MM,IAAMqC,eAAe,GAAG,SAAlBA,eAAeA,CAAApE,IAAA,EAsBvB;AAAA,EAAA,IAAAqE,qBAAA,CAAA;AAAA,EAAA,IArBHC,uBAAuB,GAAAtE,IAAA,CAAvBsE,uBAAuB;IAAAC,oBAAA,GAAAvE,IAAA,CACvBwE,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,oBAAA;IACzBE,QAAQ,GAAAzE,IAAA,CAARyE,QAAQ;IACRC,oBAAoB,GAAA1E,IAAA,CAApB0E,oBAAoB;IACpBd,KAAK,GAAA5D,IAAA,CAAL4D,KAAK;IACLf,QAAQ,GAAA7C,IAAA,CAAR6C,QAAQ;IACR8B,kBAAkB,GAAA3E,IAAA,CAAlB2E,kBAAkB;IAClB1C,YAAY,GAAAjC,IAAA,CAAZiC,YAAY,CAAA;AAeZ,EAAA,IAAA2C,KAAA,GAAAP,CAAAA,qBAAA,GACEK,oBAAoB,IAAA,IAAA,GAAA,KAAA,CAAA,GAApBA,oBAAoB,CAAG;AACrBzC,MAAAA,YAAY,EAAZA,YAAY;AACZ2B,MAAAA,KAAK,EAALA,KAAAA;KACD,CAAC,KAAA,IAAA,GAAAS,qBAAA,GAAI,EAAE,CAAA;IAJcQ,iBAAiB,GAAAtD,6BAAA,CAAAqD,KAAA,EAAApD,WAAA,EAAA;AAKzC,EAAA,OACEc,KAAA,CAAAC,aAAA,CAACuC,YAAO,EAAAtB,QAAA,CAAA;AACNuB,IAAAA,IAAI,EAAC,OAAO;AACZpC,IAAAA,SAAS,EAAEqB,UAAU,CAAC,iCAAiC,EAAE;AACvD,MAAA,2CAA2C,EAAEnB,QAAQ;AACrD,MAAA,2CAA2C,EAAE4B,QAAAA;KAC9C,CAAA;AAAC,GAAA,EACEI,iBAAiB,EAAA;AACrBG,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGC,CAAsC,EAAI;MAClDA,CAAC,CAACC,eAAe,EAAE,CAAA;MACnBP,kBAAkB,CAAC1C,YAAY,CAAC,CAAA;KACjC;AACDkD,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGF,CAAmB,EAAA;AAAA,MAAA,OAAKA,CAAC,CAACC,eAAe,EAAE,CAAA;AAAA,KAAA;IACrDE,oBAAoB,EAAKnD,YAAY,CAACC,KAAK,SAAIsC,eAAe,GAAA,IAAA,GAAKF,uBAAuB,GAAG,GAAA;IAC7FlB,GAAG,EAAEnB,YAAY,CAACJ,KAAK;iBACb,QAAA;AAAQ,GAAA,CAAA,EAElBS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAA,IAAA,aAAA,EACc,MAAM;AAClBI,IAAAA,SAAS,EAAC,uCAAA;AAAuC,GAAA,EAEhDV,YAAY,CAACC,KAAK,CACd,CACC,CAAA;AAEd,CAAC,CAAA;AAgBM,IAAMmD,qBAAqB,gBAAGC,gBAAU,CAC7C,UAAAC,KAAA,EAeE9B,GAA0C,EACxC;AAAA,EAAA,IAdA+B,kBAAkB,GAAAD,KAAA,CAAlBC,kBAAkB;IAClBC,iBAAiB,GAAAF,KAAA,CAAjBE,iBAAiB;IAAAC,eAAA,GAAAH,KAAA,CACjBI,SAAS;AAATA,IAAAA,SAAS,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IACjBE,kBAAkB,GAAAL,KAAA,CAAlBK,kBAAkB;IAAAC,eAAA,GAAAN,KAAA,CAClBO,SAAS;AAATA,IAAAA,SAAS,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IACjBpB,QAAQ,GAAAc,KAAA,CAARd,QAAQ;IACRjE,MAAM,GAAA+E,KAAA,CAAN/E,MAAM;IAAAuF,aAAA,GAAAR,KAAA,CACNzE,OAAO;AAAPA,IAAAA,OAAO,GAAAiF,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IACf/E,WAAW,GAAAuE,KAAA,CAAXvE,WAAW;IACXgF,OAAO,GAAAT,KAAA,CAAPS,OAAO;IACPC,cAAc,GAAAV,KAAA,CAAdU,cAAc;AACX3E,IAAAA,IAAI,GAAAC,6BAAA,CAAAgE,KAAA,EAAAW,UAAA,CAAA,CAAA;EAIT,SAASC,kBAAkBA,GAAA;IACzB,IAAIrF,OAAO,EAAE,OAAOE,WAAW,CAAA;IAC/B,IAAIR,MAAM,EAAE,OAAOgF,kBAAkB,CAAA;AACrC,IAAA,OAAOC,iBAAiB,CAAA;AAC1B,GAAA;AAEA,EAAA,OACEnD,0CACG,CAACmC,QAAQ,IACRnC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKI,IAAAA,SAAS,EAAC,wBAAA;GAAwB,EACpCgD,SAAS,IAAIM,cAAc,IAC1B3D,KAAC,CAAAC,aAAA,CAAA6D,eAAe;AACdJ,IAAAA,OAAO,EAAEA,OAAO;AAChBF,IAAAA,SAAS,EAAE,IAAI;AACfO,IAAAA,uBAAuB,EAAET,kBAAAA;IAE5B,EAEDtD,KAAA,CAAAC,aAAA,CAAC+D,iBAAU,EAAA9C,QAAA,CAAA;AACTb,IAAAA,SAAS,EAAEqB,UAAU,CAAC,uCAAuC,EAAE;AAC7D,MAAA,6CAA6C,EAAExD,MAAAA;KAChD,CAAC;AACFiD,IAAAA,GAAG,EAAEA,GAAG;kBACI0C,kBAAkB,EAAA;AAAE,GAAA,EAC5B7E,IAAI,EAAA;AACRsB,IAAAA,QAAQ,EAAEkD,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;GAE1B,CAAA,EAAA,CAAChF,OAAO,GACPwB,KAAC,CAAAC,aAAA,CAAAgE,mBAAa;mBAAa,MAAA;AAAM,GAAA,CAAG,GAEpCjE,KAAC,CAAAC,aAAA,CAAAiE,kBAAW,EAAa;AAAA,IAAA,aAAA,EAAA,MAAA;GAAS,CACnC,CACU,CAEhB,CACA,CAAA;AAEP,CAAC,CACF,CAAA;AAEM,IAAMJ,eAAe,GAAG,SAAlBA,eAAeA,CAAAK,KAAA,EASvB;AAAA,EAAA,IARHT,OAAO,GAAAS,KAAA,CAAPT,OAAO;IAAAU,qBAAA,GAAAD,KAAA,CACPJ,uBAAuB;AAAvBA,IAAAA,uBAAuB,GAAAK,qBAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,qBAAA;IAAAC,eAAA,GAAAF,KAAA,CACxCX,SAAS;AAATA,IAAAA,SAAS,GAAAa,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA,CAAA;AAOjB,EAAA,OACErE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACEF,KAAA,CAAAC,aAAA,CAACqE,eAAO,EAAA;AAAA,IAAA,aAAA,EACM,MAAM;AAClBC,IAAAA,SAAS,EAAC,KAAK;AACfC,IAAAA,OAAO,EAAET,uBAAuB;AAChC1D,IAAAA,SAAS,EAAC,+CAAA;AAA+C,GAAA,EAEzDL,KAAC,CAAAC,aAAA,CAAA+D,iBAAU,EACT;AAAA3D,IAAAA,SAAS,EAAC,sCAAsC;AAChDoE,IAAAA,IAAI,EAAC,QAAQ;AACbnE,IAAAA,QAAQ,EAAEkD,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5BX,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEF,CAAC,EAAG;MACXA,CAAC,CAACC,eAAe,EAAE,CAAA;AACnBc,MAAAA,OAAO,EAAE,CAAA;KACV;kBACWK,uBAAAA;AAAuB,GAAA,EAEnC/D,KAAA,CAAAC,aAAA,CAACyE,oBAAc,EAAA;AAAA,IAAA,aAAA,EAAa,MAAA;GAAM,CAAG,CAC1B,CACL,EACV1E,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKI,IAAAA,SAAS,EAAC,iCAAA;AAAoC,GAAA,CAAA,CAClD,CAAA;AAEP,CAAC;;AC9KM,IAAMsE,kBAAkB,GAAG,SAArBA,kBAAkBA,CAC7BC,KAAoC,EAAA;EAAA,OAEpC5E,KAAK,CAAC6E,OAAO,CACX,YAAA;AAAA,IAAA,OACED,KAAK,CAACjE,GAAG,CAAC,UAAAlB,IAAI,EAAG;AACf,MAAA,IAAI,OAAOA,IAAI,IAAI,QAAQ,EAAE;QAC3B,OAAO;AACLF,UAAAA,KAAK,EAAEE,IAAiB;AACxBG,UAAAA,KAAK,EAAEH,IAAAA;SACR,CAAA;AACH,OAAA;MAEA,IAAI,CAAAA,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEF,KAAK,MAAKH,SAAS,EAAE;QAC7B,OAAA8B,QAAA,KACKzB,IAAI,EAAA;UACPF,KAAK,EAAEE,IAAI,CAACG,KAAAA;AAAkB,SAAA,CAAA,CAAA;AAElC,OAAA;MACA,OAAAsB,QAAA,KAAYzB,IAAI,EAAA;QAAEF,KAAK,EAAEE,IAAI,CAACF,KAAAA;AAAK,OAAA,CAAA,CAAA;AACrC,KAAC,CAAC,CAAA;GACJ,EAAA,CAACqF,KAAK,CAAC,CACR,CAAA;AAAA,CAAA;;ACbI,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA;AAE3BC,oBAAiE;AAEjEC,eAAe,EAKb;AAAA,EAAA,IALFA,eAAe,KAAA,KAAA,CAAA,EAAA;AAAfA,IAAAA,eAAe,GAAG,GAAG,CAAA;AAAA,GAAA;AAMrB,EAAA,IAAMC,gBAAgB,GAAG,OAAOF,oBAAoB,KAAK,UAAU,CAAA;EAEnE,IAAAG,eAAA,GAA0BlF,KAAK,CAACmF,QAAQ,CACtCF,gBAAgB,GAAG,EAAE,GAAGF,oBAAoB,CAC7C;AAFMH,IAAAA,KAAK,GAAAM,eAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,eAAA,CAAA,CAAA,CAAA,CAAA;AAGtB,EAAA,IAAAG,gBAAA,GAA8BrF,KAAK,CAACmF,QAAQ,CAAC,KAAK,CAAC;AAA5C3G,IAAAA,OAAO,GAAA6G,gBAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,UAAU,GAAAD,gBAAA,CAAA,CAAA,CAAA,CAAA;EAE1B,IAAME,kBAAkB,GAAGvF,KAAK,CAACwF,MAAM,CACrC,IAAIC,eAAe,EAAE,CACtB,CAAA;AAED;AACA;AACA,EAAA,IAAMC,aAAa,GAAG1F,KAAK,CAAC6E,OAAO,CAAC,YAAK;IACvC,IAAII,gBAAgB,EAClB,OAAOF,oBAAwD,CAAA;IACjE,OAAO,YAAA;AAAA,MAAA,OACLY,OAAO,CAACC,OAAO,CAACb,oBAAqD,CAAC,CAAA;AAAA,KAAA,CAAA;AAC1E,GAAC,EAAE,CAACA,oBAAoB,EAAEE,gBAAgB,CAAC,CAAC,CAAA;AAE5C;AACA,EAAA,IAAMY,WAAW,gBAAA,YAAA;IAAA,IAAAnI,IAAA,GAAAoI,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAOC,UAAmB,EAAA;AAAA,MAAA,IAAAC,qBAAA,CAAA;AAAA,MAAA,IAAAC,eAAA,EAAAC,sBAAA,EAAAC,aAAA,CAAA;AAAA,MAAA,OAAAP,mBAAA,EAAA,CAAAQ,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAC5C;AACA,YAAA,IAAIpB,kBAAkB,IAAlBA,IAAAA,IAAAA,kBAAkB,CAAEqB,OAAO,EAAErB,kBAAkB,IAAAY,IAAAA,IAAAA,CAAAA,qBAAA,GAAlBZ,kBAAkB,CAAEqB,OAAO,KAAA,IAAA,IAA3BT,qBAAA,CAA6BU,KAAK,EAAE,CAAA;AAC/DT,YAAAA,eAAe,GAAG,IAAIX,eAAe,EAAE,CAAA;YAC7CF,kBAAkB,CAACqB,OAAO,GAAGR,eAAe,CAAA;YAE5Cd,UAAU,CAAC,IAAI,CAAC,CAAA;AAACmB,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OAGajB,aAAa,CACvCQ,UAAU,IAAA,IAAA,GAAVA,UAAU,GAAI,EAAE,EAChBX,kBAAkB,CACnB,CAAA;AAAA,UAAA,KAAA,CAAA;YAHKe,aAAa,GAAAG,QAAA,CAAAK,IAAA,CAAA;AAAA,YAAA,IAAA,EAKfvB,kBAAkB,IAAAc,IAAAA,IAAAA,CAAAA,sBAAA,GAAlBd,kBAAkB,CAAEqB,OAAO,KAAA,IAAA,IAAA,CAAAP,sBAAA,GAA3BA,sBAAA,CAA6BU,MAAM,KAAnCV,IAAAA,IAAAA,sBAAA,CAAqCW,OAAO,CAAA,EAAA;AAAAP,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAC9CM,YAAAA,OAAO,CAACC,IAAI,CACV,0GAA0G,EAC1G,gFAAgF,EAChF,EAAE,EACF,6JAA6J,EAC7J,oGAAoG,CACrG,CAAA;YAAC,OAAAT,QAAA,CAAAU,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA;YAIJ7B,UAAU,CAAC,KAAK,CAAC,CAAA;YACjBF,QAAQ,CAACkB,aAAa,CAAC,CAAA;AAACG,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,UAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;YAAAD,QAAA,CAAAW,EAAA,GAAAX,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YAAA,IAGtBA,EAAAA,QAAA,CAAAW,EAAA,IACA,OAAAX,QAAA,CAAAW,EAAY,KAAK,QAAQ,IACzB,MAAM,IAAAX,QAAA,CAAAW,EAAS,IACfX,QAAA,CAAAW,EAAA,CAAMpG,IAAI,KAAK,YAAY,CAAA,EAAA;AAAAyF,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;YAAA,OAAAF,QAAA,CAAAU,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA;AAK7BF,YAAAA,OAAO,CAACC,IAAI,CACV,oGAAoG,CACrG,CAAA;YAAC,MAAAT,QAAA,CAAAW,EAAA,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAX,QAAA,CAAAY,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAApB,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;KAGL,CAAA,CAAA,CAAA;IAAA,OA1CKJ,SAAAA,WAAWA,CAAAyB,EAAA,EAAA;AAAA,MAAA,OAAA5J,IAAA,CAAA6J,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GA0ChB,EAAA,CAAA;AAED,EAAA,IAAMC,mBAAmB,GAAGC,iBAAW,CAAC7B,WAAW,EAAEb,eAAe,CAAC,CAAA;AACrE,EAAA,IAAM2C,eAAe,GAAGhD,kBAAkB,CAACC,KAAK,CAAC,CAAA;EAEjD5E,KAAK,CAAC4H,SAAS,CAAC,YAAK;AACnB;IACA,OAAO,YAAA;AAAA,MAAA,IAAAC,sBAAA,CAAA;AAAA,MAAA,OAAMtC,kBAAkB,IAAA,IAAA,IAAA,CAAAsC,sBAAA,GAAlBtC,kBAAkB,CAAEqB,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAA3BiB,sBAAA,CAA6BhB,KAAK,CAAC,qBAAqB,CAAC,CAAA;AAAA,KAAA,CAAA;GACvE,EAAE,EAAE,CAAC,CAAA;EAEN7G,KAAK,CAAC4H,SAAS,CAAC,YAAK;AACnB;AACA,IAAA,IAAI3C,gBAAgB,EAAE;MACpBwC,mBAAmB,CAAC,EAAE,CAAC,CAAA;AACzB,KAAA;AACF,GAAC,EAAE,CAACxC,gBAAgB,EAAES,aAAa,CAAC,CAAC,CAAA;EAErC,OAAO;AACLd,IAAAA,KAAK,EAAE+C,eAAe;AACtBnJ,IAAAA,OAAO,EAAEyG,gBAAgB,GAAGzG,OAAO,GAAG,KAAK;AAC3CsJ,IAAAA,UAAU,EAAEL,mBAAAA;GACb,CAAA;AACH,CAAC;;AClGD;AACO,IAAMM,WAAW,GAAG,EAAE,CAAA;AAEb,SAAAC,mBAAmBA,CACjCvI,IAAqC,EACrCwI,KAAyB,EAAA;EAEzB,IAAI,CAACA,KAAK,EAAE;AACV,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,IAAMC,wBAAwB,GAAGD,KAAK,CAACE,OAAO,CAC5C,uBAAuB,EACvB,MAAM,CACP,CAAA;EACD,IAAMC,UAAU,GAAG,IAAIC,MAAM,CAACH,wBAAwB,EAAE,GAAG,CAAC,CAAA;AAC5D,EAAA,OAAOE,UAAU,CAACE,IAAI,CAAC7I,IAAI,CAACG,KAAK,CAAC,CAAA;AACpC,CAAA;SAEgB2I,QAAQA;AACtB;AACA9I,IAA2C;AAC3C;AACAwI,KAAyB,EAAA;AAEzB,EAAA,OAAO,IAAI,CAAA;AACb,CAAA;AAEO,IAAMO,YAAY,GAAG,SAAfA,YAAYA,CAAI/I,IAA4C,EAAA;AAAA,EAAA,OACvEA,IAAI,GAAGA,IAAI,CAACG,KAAK,GAAG,EAAE,CAAA;AAAA,CAAA,CAAA;AAEjB,IAAM6I,SAAS,GAAG,SAAZA,SAASA,CAAIhJ,IAA4C,EAAA;EAAA,OACpE,CAAAA,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEG,KAAK,KAAGH,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEF,KAAK,CAAA,CAAA;AAAA,CAAA,CAAA;AAEpB,IAAMmJ,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAIC,MAAW,EAAA;EAAA,OACrD,OAAOA,MAAM,KAAK,UAAU,IAAIA,MAAM,CAACrJ,MAAM,GAAG,CAAC,CAAA;AAAA,CAAA,CAAA;AAE5C,IAAMsJ,KAAK,GAAG,SAARA,KAAKA,CAAIC,GAAW,EAAEC,GAAG,EAAMC,GAAG,EAAA;AAAA,EAAA,IAAZD,GAAG,KAAA,KAAA,CAAA,EAAA;AAAHA,IAAAA,GAAG,GAAG,CAAC,CAAA;AAAA,GAAA;AAAA,EAAA,IAAEC,GAAG,KAAA,KAAA,CAAA,EAAA;AAAHA,IAAAA,GAAG,GAAG,EAAE,CAAA;AAAA,GAAA;AAAA,EAAA,OAClDC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,GAAG,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC,CAAA;AAAA,CAAA,CAAA;AAW5B,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAvL,IAAA,EAIS;AAAA,EAAA,IAHvCU,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTW,aAAa,GAAArB,IAAA,CAAbqB,aAAa;IACbmK,SAAS,GAAAxL,IAAA,CAATwL,SAAS,CAAA;AAET,EAAA,IAAMC,gBAAgB,GAAGpK,aAAa,CAACO,MAAM,GAAG,CAAC,CAAA;AAEjD,EAAA,IAAM8J,yBAAyB,GAAGhL,SAAS,CAACiL,MAAM,CAChD,UAAA5J,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,CAACF,KAAK,KAAK2J,SAAS,CAAC3J,KAAK,CAAA;GACI,CAAA,CAAA;AAE5C,EAAA,IAAM+J,0BAA0B,GAAGF,yBAAyB,CAACC,MAAM,CACjE,UAAAE,QAAQ,EAAA;AAAA,IAAA,OACN,CAACxK,aAAa,CAACW,IAAI,CACjB,UAAAC,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAACJ,KAAK,KAAKgK,QAAQ,CAAChK,KAAK,CAAA;KACtD,CAAA,CAAA;GACJ,CAAA,CAAA;EAED,IAAMiK,uBAAuB,GAAG,CAACJ,yBAAyB,CAAC1J,IAAI,CAC7D,UAAA6J,QAAQ,EAAA;AAAA,IAAA,OACN,CAACxK,aAAa,CAACW,IAAI,CACjB,UAAAC,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAACJ,KAAK,KAAKgK,QAAQ,CAAChK,KAAK,CAAA;KACtD,CAAA,CAAA;GACJ,CAAA,CAAA;AAED,EAAA,IAAMkK,wBAAwB,GAAGL,yBAAyB,CAAC1J,IAAI,CAAC,UAAA6J,QAAQ,EAAA;AAAA,IAAA,OACtExK,aAAa,CAACW,IAAI,CAAC,UAAAC,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAACJ,KAAK,KAAKgK,QAAQ,CAAChK,KAAK,CAAA;KAAC,CAAA,CAAA;GAC1E,CAAA,CAAA;AAED,EAAA,IAAMmK,6BAA6B,GAAG,SAAhCA,6BAA6BA,CACjCC,WAAkD,EAClDC,QAAkE,EAAA;IAAA,OAC/DA,QAAQ,IAAAC,MAAA,CAAK9K,aAAa,EAAE4K,CAAAA,WAAW,EAAC,CAAC,CAAA;AAAA,GAAA,CAAA;AAE9C,EAAA,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAChCH,WAAkD,EAAA;AAAA,IAAA,OAElD5K,aAAa,CAACW,IAAI,CAChB,UAAAC,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAACJ,KAAK,KAAKoK,WAAW,CAACpK,KAAK,CAAA;KACzD,CAAA,CAAA;AAAA,GAAA,CAAA;AAEH,EAAA,IAAMwK,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAC1BJ,WAA2D,EAAA;AAAA,IAAA,OACxDA,WAAW,CAACpK,KAAK,KAAK2J,SAAS,CAAC3J,KAAK,CAAA;AAAA,GAAA,CAAA;AAE1C,EAAA,IAAMyK,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA1H,KAAA,EAMtB;AAAA,IAAA,IALHqH,WAAW,GAAArH,KAAA,CAAXqH,WAAW;MACXC,QAAQ,GAAAtH,KAAA,CAARsH,QAAQ,CAAA;AAKR,IAAA,IAAIG,sBAAsB,CAACJ,WAAW,CAAC,EAAE;AACvC,MAAA,IAAIH,uBAAuB,EAAE;QAC3B,OAAOS,oBAAoB,CAACL,QAAQ,CAAC,CAAA;AACvC,OAAA;MACA,OAAOM,mCAAmC,CAACN,QAAQ,CAAC,CAAA;AACtD,KAAA;AAEA,IAAA,IAAIE,4BAA4B,CAACH,WAAW,CAAC,EAAE;AAC7C,MAAA,OAAOQ,kCAAkC,CAACR,WAAW,EAAEC,QAAQ,CAAC,CAAA;AAClE,KAAA;AACAF,IAAAA,6BAA6B,CAACC,WAAW,EAAEC,QAAQ,CAAC,CAAA;GACrD,CAAA;AAED,EAAA,IAAMO,kCAAkC,GAAG,SAArCA,kCAAkCA,CACtCR,WAAkD,EAClDC,QAAkE,EAAA;AAAA,IAAA,OAElEA,QAAQ,CACN7K,aAAa,CAACsK,MAAM,CAClB,UAAA1J,YAAY,EAAA;AAAA,MAAA,OAAIA,YAAY,CAACJ,KAAK,KAAKoK,WAAW,CAACpK,KAAK,CAAA;AAAA,KAAA,CACzD,CACF,CAAA;AAAA,GAAA,CAAA;AAEH,EAAA,IAAMV,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAQ;IAClC,IAAI2K,uBAAuB,EAAE,OAAO,IAAI,CAAA;IACxC,IAAIC,wBAAwB,EAAE,OAAO,eAAe,CAAA;AACpD,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAED,EAAA,IAAMS,mCAAmC,GAAG,SAAtCA,mCAAmCA,CACvCN,QAAkE,EAChE;AACFA,IAAAA,QAAQ,IAAAC,MAAA,CAAK9K,aAAa,EAAKuK,0BAA0B,CAAC,CAAC,CAAA;GAC5D,CAAA;AAED,EAAA,IAAMW,oBAAoB,GAAG,SAAvBA,oBAAoBA,CACxBL,QAAkE,EAChE;AACF,IAAA,IAAMQ,oCAAoC,GAAGrL,aAAa,CAACsK,MAAM,CAC/D,UAAA1J,YAAY,EAAA;AAAA,MAAA,OACV,CAACyJ,yBAAyB,CAAC1J,IAAI,CAC7B,UAAA6J,QAAQ,EAAA;AAAA,QAAA,OAAIA,QAAQ,CAAChK,KAAK,KAAKI,YAAY,CAACJ,KAAK,CAAA;OAClD,CAAA,CAAA;KACJ,CAAA,CAAA;IACDqK,QAAQ,CAACQ,oCAAoC,CAAC,CAAA;GAC/C,CAAA;EAED,OAAO;AACLV,IAAAA,6BAA6B,EAA7BA,6BAA6B;AAC7BF,IAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBM,IAAAA,4BAA4B,EAA5BA,4BAA4B;AAC5BC,IAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBC,IAAAA,qBAAqB,EAArBA,qBAAqB;AACrBb,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBe,IAAAA,kCAAkC,EAAlCA,kCAAkC;AAClCtL,IAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBqL,IAAAA,mCAAmC,EAAnCA,mCAAmC;AACnCT,IAAAA,wBAAwB,EAAxBA,wBAAwB;AACxBQ,IAAAA,oBAAoB,EAApBA,oBAAAA;GACD,CAAA;AACH,CAAC,CAAA;AAED;AACA;AAEA;AACA;AACM,SAAUI,oBAAoBA,CAClCC,OAGC,EAAA;AAED,EAAA,IAAQpM,MAAM,GAAiDoM,OAAO,CAA9DpM,MAAM;IAAAqM,qBAAA,GAAiDD,OAAO,CAAtDE,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAEE,WAAW,GAAKH,OAAO,CAAvBG,WAAW,CAAA;EAE1D,IAAI,CAACvM,MAAM,EAAE;AACX,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;EAEA,IAAMwM,2BAA2B,GAAGF,qBAAqB,GACrDC,WAAW,GAAG,CAAC,GACfA,WAAW,CAAA;EAEf,IAAIC,2BAA2B,KAAK,CAAC,EAAE;AACrC,IAAA,OAAO,kBAAkB,CAAA;AAC3B,GAAA;EAEA,OAAUA,2BAA2B,kBACnCA,2BAA2B,KAAK,CAAC,GAAG,EAAE,GAAG,IAC3C,CAAA,GAAA,yEAAA,CAAA;AACF,CAAA;AACA;;;AC7IO,IAAMC,kBAAkB,gBAAG3K,KAAK,CAACgD,UAAU,CAChD,UAAAtF,IAAA,EAkCEyD,GAAyC,EACvC;AAAA,EAAA,IAAAyJ,SAAA,EAAAC,eAAA,EAAAC,mBAAA,CAAA;AAAA,EAAA,IAjCAjN,uBAAuB,GAAAH,IAAA,CAAvBG,uBAAuB;IAAAkN,qBAAA,GAAArN,IAAA,CACvBwF,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAA6H,qBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,qBAAA;IAAAC,qBAAA,GAAAtN,IAAA,CAC1CyF,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAA6H,qBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,qBAAA;IACzCjN,qBAAqB,GAAAL,IAAA,CAArBK,qBAAqB;IACrBsC,SAAS,GAAA3C,IAAA,CAAT2C,SAAS;IAAA4K,cAAA,GAAAvN,IAAA,CACT2F,SAAS;AAATA,IAAAA,SAAS,GAAA4H,cAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,cAAA;IAChBjG,eAAe,GAAAtH,IAAA,CAAfsH,eAAe;IAAAkG,aAAA,GAAAxN,IAAA,CACfyE,QAAQ;AAARA,IAAAA,QAAQ,GAAA+I,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAAAC,qBAAA,GAAAzN,IAAA,CAChB0N,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAC7BE,QAAQ,GAAA3N,IAAA,CAAR2N,QAAQ;IACDC,YAAY,GAAA5N,IAAA,CAAnBkH,KAAK;IAAA2G,eAAA,GAAA7N,IAAA,CACL8N,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG7C,KAAAA,CAAAA,GAAAA,2BAA2B,CAAC4C,YAAY,CAAC,GAClD/C,QAAQ,GACRP,mBAAmB,GAAAuD,eAAA;IACvB3L,KAAK,GAAAlC,IAAA,CAALkC,KAAK;IAAA6L,qBAAA,GAAA/N,IAAA,CACLgO,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,aAAa,GAAAA,qBAAA;IACtCE,YAAY,GAAAjO,IAAA,CAAZiO,YAAY;IACZC,SAAS,GAAAlO,IAAA,CAATkO,SAAS;IACTpN,OAAO,GAAAd,IAAA,CAAPc,OAAO;IAAAC,gBAAA,GAAAf,IAAA,CACPgB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,gBAAA;IAAAE,kBAAA,GAAAjB,IAAA,CACnCkB,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,4BAA4B,GAAAA,kBAAA;IAAAkN,aAAA,GAAAnO,IAAA,CAC5CkM,QAAQ;IAARA,QAAQ,GAAAiC,aAAA,KAAG,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAMzM,SAAS,CAAA;AAAA,KAAA,GAAAyM,aAAA;IAC1BC,WAAW,GAAApO,IAAA,CAAXoO,WAAW;IACXC,OAAO,GAAArO,IAAA,CAAPqO,OAAO;IAAAC,aAAA,GAAAtO,IAAA,CACP6C,QAAQ;AAARA,IAAAA,QAAQ,GAAAyL,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IACFzM,KAAK,GAAA7B,IAAA,CAAnBiC,YAAY;IAAAsM,iBAAA,GAAAvO,IAAA,CACZwO,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA;IAAAE,gBAAA,GAAAzO,IAAA,CACpB0O,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;IACnB/K,KAAK,GAAA1D,IAAA,CAAL0D,KAAK;IAAAiL,YAAA,GAAA3O,IAAA,CACL4O,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,YAAA;AACbrN,IAAAA,IAAI,GAAAC,6BAAA,CAAAvB,IAAA,EAAAwB,WAAA,CAAA,CAAA;AAIT,EAAA,IAAAqN,SAAA,GAAgDpH,cAAQ,CAAC5F,KAAK,KAAK,IAAI,CAAC;AAAjEiN,IAAAA,gBAAgB,GAAAD,SAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,mBAAmB,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,EAAA,IAAAG,UAAA,GAAwDvH,cAAQ,CAAC,CAAC,CAAC;AAA5DwH,IAAAA,oBAAoB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,uBAAuB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACpD,EAAA,IAAMG,QAAQ,GAAGrH,YAAM,CAAmB,IAAI,CAAC,CAAA;AAE/C,EAAA,IAAAsH,iBAAA,GAIIhI,gBAAgB,CAACwG,YAAY,EAAEtG,eAAe,CAAC;IAH1C2C,eAAe,GAAAmF,iBAAA,CAAtBlI,KAAK;IACImI,oBAAoB,GAAAD,iBAAA,CAA7BtO,OAAO;IACPsJ,UAAU,GAAAgF,iBAAA,CAAVhF,UAAU,CAAA;AAGZ,EAAA,IAAAkF,UAAA,GAAkC7H,cAAQ,CAACwC,eAAe,CAAC;AAApDvJ,IAAAA,SAAS,GAAA4O,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,YAAY,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAA5K,KAAA,EAAA;AAAA,IAAA,IAAM4D,UAAU,GAAA5D,KAAA,CAAV4D,UAAU,CAAA;AAAA,IAAA,OACnC+G,YAAY,CACVtF,eAAe,CAAC0B,MAAM,CAAC,UAAA5J,IAAI,EAAA;AAAA,MAAA,OAAI+L,UAAU,CAAC/L,IAAI,EAAEyG,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,CAC7D,CAAA;AAAA,GAAA,CAAA;AAEH,EAAA,IAAMiH,eAAe,GAAG,SAAlBA,eAAeA,CAAAlK,KAAA,EAA+C;AAAA,IAAA,IAAzCiD,UAAU,GAAAjD,KAAA,CAAViD,UAAU,CAAA;AACnC,IAAA,IAAMkH,kBAAkB,GAAG1E,2BAA2B,CAAC4C,YAAY,CAAC,CAAA;IACpE,IAAI8B,kBAAkB,EAAEtF,UAAU,CAAC5B,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI6B,WAAW,CAAC,CAAA;AAE7DmF,IAAAA,eAAe,CAAC;AAAEhH,MAAAA,UAAU,EAAEA,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI6B,WAAAA;AAAa,KAAA,CAAC,CAAA;GAC3D,CAAA;AAED,EAAA,IAAMsF,eAAe,GAAG,SAAlBA,eAAeA,CAAAlJ,KAAA,EAIhB;AAAA,IAAA,IAHHmJ,OAAO,GAAAnJ,KAAA,CAAPmJ,OAAO,CAAA;AAIPH,IAAAA,eAAe,CAAC;AAAEjH,MAAAA,UAAU,EAAE6B,WAAAA;AAAW,KAAE,CAAC,CAAA;IAC5C,OAAA7G,QAAA,KACKoM,OAAO,EAAA;AACVpH,MAAAA,UAAU,EAAE6B,WAAAA;AAAW,KAAA,CAAA,CAAA;GAE1B,CAAA;EAED,IAAMwF,aAAa,GACjB,OAAOC,QAAQ,KAAK,WAAW,GAC3B,CAAAX,QAAQ,IAARA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEjG,OAAO,OAAA,CAAAgE,SAAA,GAAK4C,QAAQ,qBAAR5C,SAAA,CAAU6C,aAAa,CAAA,GAC7C,KAAK,CAAA;AAEX7F,EAAAA,eAAS,CAAC,YAAK;AACbsF,IAAAA,eAAe,CAAC;AAAEhH,MAAAA,UAAU,EAAVA,UAAAA;AAAU,KAAE,CAAC,CAAA;AACjC,GAAC,EAAE,CAACyB,eAAe,CAAC,CAAC,CAAC;AAEtBC,EAAAA,eAAS,CAAC,YAAK;AACb;AACA,IAAA,IAAIjI,YAAY,KAAK,IAAI,IAAI,CAAC4N,aAAa,EAAE;MAC3Cd,mBAAmB,CAAC,IAAI,CAAC,CAAA;AACzBU,MAAAA,eAAe,CAAC;AAAEjH,QAAAA,UAAU,EAAE6B,WAAAA;AAAW,OAAE,CAAC,CAAA;MAC5C2F,aAAa,CAAC3F,WAAW,CAAC,CAAA;AAC5B,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,IAAM4F,YAAY,GAAGC,iBAAW,CAC9B,UACEC,KAA8D,EAAAC,KAAA,EAK5D;AAAA,IAAA,IAHArJ,IAAI,GAAAqJ,KAAA,CAAJrJ,IAAI;MACJ6I,OAAO,GAAAQ,KAAA,CAAPR,OAAO,CAAA;AAGT,IAAA,IACEA,OAAO,CAACnP,gBAAgB,KAAKiB,SAAS,IACtC,CAAAkO,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEnP,gBAAgB,KAAI,CAAC,EAC9B;AACAyO,MAAAA,uBAAuB,CAACU,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEnP,gBAAgB,CAAC,CAAA;AACpD,KAAA;AAEA,IAAA,QAAQsG,IAAI;AACV;AACA,MAAA,KAAKsJ,qBAAW,CAACC,gBAAgB,CAACC,SAAS,CAAA;AAC3C,MAAA,KAAKF,qBAAW,CAACC,gBAAgB,CAACE,iBAAiB,CAAA;AACnD,MAAA,KAAKH,qBAAW,CAACC,gBAAgB,CAACG,SAAS;AACzC,QAAA,OAAOd,eAAe,CAAC;AAAEC,UAAAA,OAAO,EAAPA,OAAAA;AAAO,SAAE,CAAC,CAAA;AACrC,MAAA,KAAKS,qBAAW,CAACC,gBAAgB,CAACI,iCAAiC;AACjE,QAAA,IAAId,OAAO,CAAC3N,YAAY,KAAK,IAAI,IAAI,CAAC4N,aAAa,EACjDd,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3B,QAAA,OAAOY,eAAe,CAAC;AAAEC,UAAAA,OAAO,EAAPA,OAAAA;AAAO,SAAE,CAAC,CAAA;AACrC;AACA,MAAA,KAAKS,qBAAW,CAACC,gBAAgB,CAACK,WAAW;AAAE,QAAA;AAAA,UAAA,IAAAC,mBAAA,CAAA;UAC7C1B,uBAAuB,CAAC,CAAC,CAAC,CAAA;UAC1B,IAAM2B,qBAAqB,GAAG,OAAO,CAAA;AACrC,UAAA,IAAMC,0BAA0B,GAAGlB,OAAO,CAACpH,UAAU,KAAK,GAAG,CAAA;AAC7D,UAAA,IAAA,CAAAoI,mBAAA,GAAIhB,OAAO,CAACpH,UAAU,KAAA,IAAA,IAAlBoI,mBAAA,CAAoBG,KAAK,CAACF,qBAAqB,CAAC,EAAE;YACpD,IAAMG,mBAAmB,GAAGpB,OAAO,CAACpH,UAAU,CAACiC,OAAO,CACpDoG,qBAAqB,EACrBxG,WAAW,CACZ,CAAA;AACD,YAAA,IAAIyG,0BAA0B,EAAE;cAC9B,IAAI,CAACX,KAAK,CAAC3P,MAAM,EACf,OAAAgD,QAAA,KACKoM,OAAO,EAAA;AACVpH,gBAAAA,UAAU,EAAEwI,mBAAmB;AAC/BxQ,gBAAAA,MAAM,EAAE,IAAI;AACZC,gBAAAA,gBAAgB,EAAE,CAAA;AAAC,eAAA,CAAA,CAAA;AAGvB,cAAA,IAAImP,OAAO,CAACnP,gBAAgB,KAAKiB,SAAS,EAAE;gBAC1C,OAAA8B,QAAA,KACKoM,OAAO,EAAA;AACVpH,kBAAAA,UAAU,EAAEwI,mBAAmB;AAC/B/O,kBAAAA,YAAY,EAAEvB,SAAS,CAACkP,OAAO,CAACnP,gBAAgB,CAAC;AACjDA,kBAAAA,gBAAgB,EAAE,CAAA;AAAC,iBAAA,CAAA,CAAA;AAEvB,eAAA;AACF,aAAA;AACF,WAAA;UAEA,OAAA+C,QAAA,KAAYoM,OAAO,EAAA;AAAEnP,YAAAA,gBAAgB,EAAE,CAAA;AAAC,WAAA,CAAA,CAAA;AAC1C,SAAA;AACA,MAAA;AACE,QAAA,OAAOmP,OAAO,CAAA;AAClB,KAAA;GACD,EACD,CAACxF,UAAU,EAAEoF,eAAe,EAAEK,aAAa,EAAEF,eAAe,CAAC,CAC9D,CAAA;EAED,IAAAsB,YAAA,GAWIZ,qBAAW,CAAC;AACda,MAAAA,uBAAuB,EAAEjC,oBAAoB;AAC7C/H,MAAAA,KAAK,EAAExG,SAAS;AAChBoK,MAAAA,YAAY,EAAZA,YAAY;AACZ7I,MAAAA,YAAY,EAAEJ,KAAK;AACnBoO,MAAAA,YAAY,EAAZA,YAAY;AACZkB,MAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACvB,OAAO,EAAA;AACxBH,QAAAA,eAAe,CAAC;UAAEjH,UAAU,EAAEoH,OAAO,CAACpH,UAAAA;AAAY,SAAA,CAAC,CAAA;OACpD;AACD4I,MAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAAC,KAAA,EAAkC;AAAA,QAAA,IAAjBC,eAAe,GAAAD,KAAA,CAA7BpP,YAAY,CAAA;QAC1B,IAAIqP,eAAe,KAAK5P,SAAS,EAAE,OAAA;QACnCwK,QAAQ,CAACoF,eAAe,CAAC,CAAA;OAC1B;AACD;AACA3E,MAAAA,oBAAoB,EAAE,SAAtBA,sBAAoBA,CAAEC,OAAO,EAAA;AAAA,QAAA,OAC3BD,oBAAoB,CAAAnJ,QAAA,CAAA,EAAA,EAAMoJ,OAAO,EAAA;UAAEG,WAAW,EAAErM,SAAS,CAACkB,MAAAA;AAAM,SAAA,CAAE,CAAC,CAAA;AAAA,OAAA;AACtE,KAAA,CAAC;IA1BApB,MAAM,GAAAyQ,YAAA,CAANzQ,MAAM;IACN+Q,oBAAoB,GAAAN,YAAA,CAApBM,oBAAoB;IACpBC,aAAa,GAAAP,YAAA,CAAbO,aAAa;IACbjR,YAAY,GAAA0Q,YAAA,CAAZ1Q,YAAY;IACZkR,aAAa,GAAAR,YAAA,CAAbQ,aAAa;IACbhR,gBAAgB,GAAAwQ,YAAA,CAAhBxQ,gBAAgB;IAChBH,YAAY,GAAA2Q,YAAA,CAAZ3Q,YAAY;IACZ2B,YAAY,GAAAgP,YAAA,CAAZhP,YAAY;IACZuG,UAAU,GAAAyI,YAAA,CAAVzI,UAAU;IACVwH,aAAa,GAAAiB,YAAA,CAAbjB,aAAa,CAAA;AAmBf;EACA,IAAA0B,YAAA,GAAyCC,oBAAW,CAAC;AACnDC,MAAAA,IAAI,EAAEpR,MAAM;AACZqG,MAAAA,SAAS,EAAE,cAAc;MACzBgL,UAAU,EAAE,CACVC,eAAM,CAACC,YAAK,CAACC,WAAW,CAAC,EACzBC,cAAK,CAAC;QAAEC,OAAO,EAAEH,YAAK,CAACI,UAAAA;OAAY,CAAC,EACpCpN,aAAI,CAAC;AACH8E,QAAAA,KAAK,EAALA,SAAAA,KAAKA,CAAAuI,KAAA,EAAqC;AAAA,UAAA,IAAlCC,KAAK,GAAAD,KAAA,CAALC,KAAK;YAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;YAAEC,eAAe,GAAAH,KAAA,CAAfG,eAAe,CAAA;UACtCC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACI,QAAQ,CAAChP,KAAK,EAAE;AACrCiP,YAAAA,KAAK,EAAKN,KAAK,CAACO,SAAS,CAACD,KAAK,GAAI,IAAA;AACnC;AACA;AACAE,YAAAA,SAAS,EAAK3H,KAAK,CAAC,EAAE,GAAG,EAAE,EAAEqH,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,GAAA,IAAA;AACvD,WAAA,CAAC,CAAA;AACJ,SAAA;OACD,CAAC,EACFO,aAAI,CAAC;AAAEC,QAAAA,gBAAgB,EAAE,kBAAA;OAAoB,CAAC,CAAA;AAEjD,KAAA,CAAC;IAlBMC,IAAI,GAAAtB,YAAA,CAAJsB,IAAI;IAAErS,cAAc,GAAA+Q,YAAA,CAAd/Q,cAAc;IAAEsS,MAAM,GAAAvB,YAAA,CAANuB,MAAM,CAAA;AAoBpC;AACA;AACA;AACA;AACA/I,EAAAA,eAAS,CAAC,YAAK;AACb,IAAA,IAAI1J,MAAM,IAAIwS,IAAI,CAACJ,SAAS,CAAC1J,OAAO,IAAI8J,IAAI,CAACN,QAAQ,CAACxJ,OAAO,EAAE;AAC7D,MAAA,OAAOgK,mBAAU,CACfF,IAAI,CAACJ,SAAS,CAAC1J,OAAO,EACtB8J,IAAI,CAACN,QAAQ,CAACxJ,OAAO,EACrB+J,MAAM,CACP,CAAA;AACH,KAAA;AACF,GAAC,EAAE,CAACzS,MAAM,EAAEwS,IAAI,CAACJ,SAAS,EAAEI,IAAI,CAACN,QAAQ,EAAEO,MAAM,CAAC,CAAC,CAAA;AAEnD,EAAA,IAAME,aAAa,GAAG,SAAhBA,aAAaA,GAAQ;AAAA,IAAA,IAAAC,iBAAA,CAAA;IACzBlH,QAAQ,CAAC,IAAI,CAAC,CAAA;IACd8D,aAAa,CAAC3F,WAAW,CAAC,CAAA;IAC1B,CAAA+I,iBAAA,GAAAjE,QAAQ,CAACjG,OAAO,aAAhBkK,iBAAA,CAAkBC,KAAK,EAAE,CAAA;AACzB5D,IAAAA,eAAe,CAAC;AAAEjH,MAAAA,UAAU,EAAVA,UAAAA;AAAU,KAAE,CAAC,CAAA;IAC/BuG,mBAAmB,CAAC,KAAK,CAAC,CAAA;GAC3B,CAAA;AAED,EAAA,OACEzM,KAAC,CAAAC,aAAA,CAAA+Q,oBAAe,EAAA9P,QAAA,CAAA;IACdb,SAAS,EAAEqB,UAAU,CACnB,cAAc,EACd,0BAA0B,EAC1BrB,SAAS,EACT;MAAE,2BAA2B,EAAEsL,YAAY,KAAKvM,SAAAA;AAAS,KAAE,CAC5D;AACD+C,IAAAA,QAAQ,EAAEA,QAAQ;AAClBiJ,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5CC,IAAAA,QAAQ,EAAEA,QAAQ;AAClB4F,IAAAA,QAAQ,EAAEtR,YAAY,KAAK,IAAI,IAAIuG,UAAU,KAAK6B,WAAW;AAC7DnI,IAAAA,KAAK,EAAEA,KAAK;AACZsR,IAAAA,OAAO,EAAEhC,aAAa,EAAE,CAACiC,EAAE;IAC3BC,UAAU,EAAElC,aAAa,EAAE;AAC3BvD,IAAAA,YAAY,EAAEA,YAAY;IAC1B0F,MAAM,EAAE,SAARA,MAAMA,GAAA;MAAA,OAAQ3D,aAAa,CAAC,EAAE,CAAC,CAAA;AAAA,KAAA;AAC/B7K,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGF,CAAmB,EAAI;AAC/B,MAAA,IAAIA,CAAC,CAAC2O,MAAM,KAAK3O,CAAC,CAAC4O,aAAa,EAAE;AAAA,QAAA,IAAAC,cAAA,CAAA;AAChC,QAAA,CAAAA,cAAA,GAAArC,aAAa,EAAE,KAAfqC,IAAAA,IAAAA,cAAA,CAAiB3O,OAAO,YAAxB2O,cAAA,CAAiB3O,OAAO,CAAGF,CAAC,CAAC,CAAA;AAC/B,OAAA;KACD;AACDoJ,IAAAA,OAAO,EAAEA,OAAO;AAChBxL,IAAAA,QAAQ,EAAEA,QAAQ;IAClBY,GAAG,EAAEuP,IAAI,CAACe,YAAY;AACtBrQ,IAAAA,KAAK,EAAEA,KAAK;IACZd,QAAQ,EAAE6B,QAAQ,IAAI5B,QAAQ,GAAG,CAAC,CAAC,GAAGnB,SAAS;AAC/CkN,IAAAA,OAAO,EAAEA,OAAO;AAChBoF,IAAAA,KAAK,EACH1R,KAAA,CAAAC,aAAA,CAACxC,YAAY,EAAA;AACXI,MAAAA,uBAAuB,EAAEA,uBAAuB;AAChDE,MAAAA,qBAAqB,EAAEA,qBAAqB;AAC5CM,MAAAA,cAAc,EAAEA,cAAc;AAC9BL,MAAAA,YAAY,EAAEA,YAAY;AAC1BC,MAAAA,YAAY,EAAEA,YAAY;AAC1BE,MAAAA,gBAAgB,EAAEA,gBAAgB;AAClCD,MAAAA,MAAM,EAAEA,MAAM;AACdE,MAAAA,SAAS,EAAEA,SAAS;AACpBgD,MAAAA,KAAK,EAAEwK,SAAS;MAChBtN,UAAU,EAAEoS,IAAI,CAACiB,WAAW;AAC5BnT,MAAAA,OAAO,EAAEA,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAoB;AACxCrO,MAAAA,WAAW,EAAEA,WAAW;AACxBE,MAAAA,aAAa,EAAEA,aAAa;MAC5BG,aAAa,EAAEY,YAAY,KAAK,IAAI,GAAG,CAACA,YAAY,CAAC,GAAG,EAAA;KACxD,CAAA;AAAA,GAAA,EAEAX,IAAI,EAAA;AACR;AACA4S,IAAAA,MAAM,EAAExS,SAAAA;AAAS,GAAA,CAAA,EAEjBY,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACEI,IAAAA,SAAS,EAAEqB,UAAU,CAAC,yCAAyC,EAAE;AAC/D,MAAA,iDAAiD,EAC/C,CAAC8K,gBAAAA;KACJ,CAAC;AAAA,IAAA,aAAA,EACU,MAAM;IAClB3J,OAAO,EAAA,CAAAgI,eAAA,GAAEsE,aAAa,EAAE,KAAA,IAAA,GAAA,KAAA,CAAA,GAAftE,eAAA,CAAiBhI,OAAAA;AAAO,GAAA,EAEhC2J,gBAAgB,GAAG7M,YAAY,IAAZA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEC,KAAK,GAAG,EAAE,CACvC,EACPI,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAAiB,QAAA,CAAA;AACEb,IAAAA,SAAS,EAAEqB,UAAU,CAAC,sCAAsC,EAAE;AAC5D,MAAA,6BAA6B,EAAE8K,gBAAAA;KAChC,CAAA;AAAC,GAAA,EACE2C,aAAa,CAAC;IAChBkC,MAAM,EAAA,SAANA,MAAMA,GAAA;AACJ,MAAA,IAAI1R,YAAY,KAAK,IAAI,EAAE8M,mBAAmB,CAAC,IAAI,CAAC,CAAA;KACrD;IACDoF,OAAO,EAAA,SAAPA,OAAOA,GAAA;MACLpF,mBAAmB,CAAC,KAAK,CAAC,CAAA;KAC3B;AACDqF,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACnP,CAAC,EAAA;MACT,IACEzE,MAAM,KACLkO,WAAW,IAAIF,YAAY,CAAC,IAC7BvJ,CAAC,CAAC7B,GAAG,KAAK,KAAK,IACf3C,gBAAgB,KAAKiB,SAAS,EAE9BwK,QAAQ,CAACxL,SAAS,CAACD,gBAAgB,CAAC,CAAC,CAAA;KACxC;AACDgE,IAAAA,QAAQ,EAAEA,QAAQ;AAClB5B,IAAAA,QAAQ,EAAEA,QAAQ;IAClBuL,WAAW,EAAA,CAAAhB,mBAAA,GAAEnL,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEC,KAAK,KAAA,IAAA,GAAAkL,mBAAA,GAAIgB,WAAW;IAC/CxL,QAAQ,EAAE6B,QAAQ,IAAI5B,QAAQ,GAAG,CAAC,CAAC,GAAGnB,SAAS;AAC/C+B,IAAAA,GAAG,EAAE4Q,eAAS,CAAClF,QAAQ,EAAE1L,GAAG,CAAA;AAC7B,GAAA,CAAC,CACF,CAAA,EACFnB,KAAC,CAAAC,aAAA,CAAA8C,qBAAqB,EAAA7B,QAAA,CAAA,EAAA,EAChB+N,oBAAoB,CAAC;IACvB,WAAW,EAAE,EAAEzQ,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAoB,CAAC,GAC3C3N,SAAS,GACT,MAAA;GACL,CAAC,EAAA;AACF8D,IAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpCE,IAAAA,SAAS,EAAEA,SAAS;IACpBlB,QAAQ,EAAEA,QAAQ,IAAI5B,QAAQ;AAC9BmD,IAAAA,OAAO,EAAEmN,aAAa;AACtBrN,IAAAA,SAAS,EAAE,KAAK;AAChBF,IAAAA,kBAAkB,EAAEoI,sBAAsB;AAC1CxN,IAAAA,MAAM,EAAEA,MAAM;IACdyF,cAAc,EAAEhE,YAAY,KAAK,IAAI;AACrCjB,IAAAA,WAAW,EAAEA,WAAW;AACxBF,IAAAA,OAAO,EAAEA,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAAA;AAAoB,GAAA,CAAA,CACxC,CACc,CAAA;AAEtB,CAAC;;;AC1RI,IAAMiF,WAAW,gBAAGhS,KAAK,CAACgD,UAAU,CACzC,UAAAtF,IAAA,EAyCEyD,GAAyC,EACvC;AAAA,EAAA,IAAA8Q,kBAAA,CAAA;AAAA,EAAA,IAxCA5R,SAAS,GAAA3C,IAAA,CAAT2C,SAAS,CAAA;IAAA4K,cAAA,GAAAvN,IAAA,CACT2F,SAAS,CAAA;AAATA,IAAAA,SAAS,GAAA4H,cAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,cAAA,CAAA;IAAAiH,qBAAA,GAAAxU,IAAA,CAChByU,kBAAkB,CAAA;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA,CAAA;IAC1BlN,eAAe,GAAAtH,IAAA,CAAfsH,eAAe,CAAA;IAAAkG,aAAA,GAAAxN,IAAA,CACfyE,QAAQ,CAAA;AAARA,IAAAA,QAAQ,GAAA+I,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA,CAAA;IAChBE,qBAAqB,GAAA1N,IAAA,CAArB0N,qBAAqB,CAAA;IACrBC,QAAQ,GAAA3N,IAAA,CAAR2N,QAAQ,CAAA;IAAA+G,kBAAA,GAAA1U,IAAA,CACR2U,aAAa,CAAA;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA,CAAA;IACd9G,YAAY,GAAA5N,IAAA,CAAnBkH,KAAK,CAAA;IAAA2G,eAAA,GAAA7N,IAAA,CACL8N,UAAU,CAAA;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG7C,KAAAA,CAAAA,GAAAA,2BAA2B,CAAC4C,YAAY,CAAC,GAClD/C,QAAQ,GACRP,mBAAmB,GAAAuD,eAAA,CAAA;IACvB3L,KAAK,GAAAlC,IAAA,CAALkC,KAAK,CAAA;IAAA0S,qBAAA,GAAA5U,IAAA,CACL6U,qBAAqB,CAAA;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,YAAY,GAAAA,qBAAA,CAAA;IAAAE,qBAAA,GAAA9U,IAAA,CACpC+U,kBAAkB,CAAA;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,qBAAA,CAAA;IAAAE,mBAAA,GAAAhV,IAAA,CACnCiV,cAAc,CAAA;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,WAAW,GAAAA,mBAAA,CAAA;IAC5B/G,YAAY,GAAAjO,IAAA,CAAZiO,YAAY,CAAA;IACZC,SAAS,GAAAlO,IAAA,CAATkO,SAAS,CAAA;IACTpN,OAAO,GAAAd,IAAA,CAAPc,OAAO,CAAA;IAAAC,gBAAA,GAAAf,IAAA,CACPgB,WAAW,CAAA;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,gBAAA,CAAA;IAAAmU,aAAA,GAAAlV,IAAA,CACnCmV,QAAQ,CAAA;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA,CAAA;IACbhU,aAAa,GAAAlB,IAAA,CAAbkB,aAAa,CAAA;IAAAiN,aAAA,GAAAnO,IAAA,CACbkM,QAAQ,CAAA;IAARA,QAAQ,GAAAiC,aAAA,KAAG,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAMzM,SAAS,CAAA;AAAA,KAAA,GAAAyM,aAAA,CAAA;IAC1BC,WAAW,GAAApO,IAAA,CAAXoO,WAAW,CAAA;IAAAE,aAAA,GAAAtO,IAAA,CACX6C,QAAQ,CAAA;AAARA,IAAAA,QAAQ,GAAAyL,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA,CAAA;IAAA8G,kBAAA,GAAApV,IAAA,CAChBqB,aAAa,CAAA;AAAbA,IAAAA,aAAa,GAAA+T,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA,CAAA;IACE3G,gBAAA,GAAAzO,IAAA,CACpB0O,WAAW,CAAA;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA,CAAA;IACnB/K,KAAK,GAAA1D,IAAA,CAAL0D,KAAK,CAAA;IAAAiL,YAAA,GAAA3O,IAAA,CACL4O,OAAO,CAAA;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,aAAa,GAAAA,YAAA,CAAA;IACvBxO,uBAAuB,GAAAH,IAAA,CAAvBG,uBAAuB,CAAA;IAAAkV,qBAAA,GAAArV,IAAA,CACvBsV,qBAAqB,CAAA;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,qBAAA,CAAA;IAAAhI,qBAAA,GAAArN,IAAA,CAChCwF,kBAAkB,CAAA;AAAlBA,IAAAA,kBAAkB,GAAA6H,qBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,qBAAA,CAAA;IAAAkI,qBAAA,GAAAvV,IAAA,CAC1CwV,oBAAoB,CAAA;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAMlU,aAAa,CAACO,MAAM,+DAAA2T,qBAAA,CAAA;IAAAjI,qBAAA,GAAAtN,IAAA,CAC9CyF,iBAAiB,CAAA;AAAjBA,IAAAA,iBAAiB,GAAA6H,qBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,qBAAA,CAAA;IAAAmI,qBAAA,GAAAzV,IAAA,CACzCsE,uBAAuB,CAAA;AAAvBA,IAAAA,uBAAuB,GAAAmR,qBAAA,KAAG,KAAA,CAAA,GAAA,yBAAyB,GAAAA,qBAAA,CAAA;IACnDpV,qBAAqB,GAAAL,IAAA,CAArBK,qBAAqB,CAAA;AAClBiB,IAAAA,IAAI,GAAAC,6BAAA,CAAAvB,IAAA,EAAAwB,WAAA,EAAA;AAIT,EAAA,IAAAgG,eAAA,GAAwDlF,KAAK,CAACmF,QAAQ,CAAC,CAAC,CAAC;AAAlEwH,IAAAA,oBAAoB,GAAAzH,eAAA,CAAA,CAAA,CAAA;AAAE0H,IAAAA,uBAAuB,GAAA1H,eAAA,CAAA,CAAA,CAAA,CAAA;AACpD,EAAA,IAAM2H,QAAQ,GAAGrH,YAAM,CAAmB,IAAI,CAAC,CAAA;AAE/CoC,EAAAA,eAAS,CAAC,YAAK;AACb;IACA,IAAI5I,IAAI,CAACW,YAAY,KAAKP,SAAS,EACjC6H,OAAO,CAACC,IAAI,CACV,0EAA0E,CAC3E,CAAA;AACH;AACF,GAAC,EAAE,CAAClI,IAAI,CAACW,YAAY,CAAC,CAAC,CAAA;AAEvB,EAAA,IAAAmN,iBAAA,GAIIhI,gBAAgB,CAACwG,YAAY,EAAEtG,eAAe,CAAC;IAH1C2C,eAAe,GAAAmF,iBAAA,CAAtBlI,KAAK;IACImI,oBAAoB,GAAAD,iBAAA,CAA7BtO,OAAO;IACPsJ,UAAU,GAAAgF,iBAAA,CAAVhF,UAAU,CAAA;AAGZ,EAAA,IAAMsL,0BAA0B,GAC9B,OAAO9H,YAAY,KAAK,UAAU,IAClCvM,aAAa,CAACO,MAAM,KAAKqI,eAAe,CAACrI,MAAM,CAAA;AAEjD;AACA,EAAA,IAAM4J,SAAS,GAAuC;AACpD3J,IAAAA,KAAK,EAAE8T,iBAAW,CAAC,YAAY,CAAC;AAChCzT,IAAAA,KAAK,EAAE+S,cAAAA;GACR,CAAA;AACD;AACA;AACA,EAAA,IAAMW,oBAAoB,GACxBtT,KAAK,CAAC6E,OAAO,CACX,YAAA;IAAA,OAAO;AACLtF,MAAAA,KAAK,EAAEwI,WAAW;MAClBnI,KAAK,EAAEwT,0BAA0B,GAC7Bb,qBAAqB,GACrBxT,aAAa,CAACO,MAAM,GAAG,GAAG,GAAG0T,qBAAAA;KAClC,CAAA;GAAC,EACF,CACEI,0BAA0B,EAC1BrU,aAAa,EACbwT,qBAAqB,EACrBS,qBAAqB,CACtB,CACF,CAAA;AAEH,EAAA,IAAAzG,SAAA,GAAkCpH,cAAQ,CAAA0E,EAAAA,CAAAA,MAAA,CACpC,CAACwI,aAAa,GAAG,CAACnJ,SAAS,CAAC,GAAG,EAAE,EAClCvB,eAAe,CACnB,CAAC;AAHKvJ,IAAAA,SAAS,GAAAmO,SAAA,CAAA,CAAA,CAAA;AAAEU,IAAAA,YAAY,GAAAV,SAAA,CAAA,CAAA,CAAA,CAAA;AAK9B,EAAA,IAAMW,eAAe,GAAG,SAAlBA,eAAeA,CAAA5K,KAAA,EAAA;AAAA,IAAA,IAAM4D,UAAU,GAAA5D,KAAA,CAAV4D,UAAU,CAAA;AAAA,IAAA,OACnC+G,YAAY,CAAApD,EAAAA,CAAAA,MAAA,CACN,CAACwI,aAAa,GAAG,CAACnJ,SAAS,CAAC,GAAG,EAAE,EAClCvB,eAAe,CAAC0B,MAAM,CAAC,UAAA5J,IAAI,EAAA;AAAA,MAAA,OAAI+L,UAAU,CAAC/L,IAAI,EAAEyG,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,CAChE,CAAC,CAAA;AAAA,GAAA,CAAA;AAEJ,EAAA,IAAMiH,eAAe,GAAG,SAAlBA,eAAeA,CAAAlK,KAAA,EAA+C;AAAA,IAAA,IAAzCiD,UAAU,GAAAjD,KAAA,CAAViD,UAAU,CAAA;AACnC,IAAA,IAAMkH,kBAAkB,GAAG1E,2BAA2B,CAAC4C,YAAY,CAAC,CAAA;IACpE,IAAI8B,kBAAkB,EAAEtF,UAAU,CAAC5B,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI6B,WAAW,CAAC,CAAA;AAE7DmF,IAAAA,eAAe,CAAC;AAAEhH,MAAAA,UAAU,EAAEA,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI6B,WAAAA;AAAa,KAAA,CAAC,CAAA;GAC3D,CAAA;EAED/H,KAAK,CAAC4H,SAAS,CAAC,YAAK;AACnBsF,IAAAA,eAAe,CAAC;AAAEhH,MAAAA,UAAU,EAAVA,UAAAA;AAAU,KAAE,CAAC,CAAA;AACjC,GAAC,EAAE,CAACyB,eAAe,CAAC,CAAC,CAAC;EAEtB,IAAA4L,oBAAA,GACEtK,mBAAmB,CAAY;AAC7B7K,MAAAA,SAAS,EAATA,SAAS;AACT8K,MAAAA,SAAS,EAATA,SAAS;AACTnK,MAAAA,aAAa,EAAbA,aAAAA;AACD,KAAA,CAAC;IALIoK,gBAAgB,GAAAoK,oBAAA,CAAhBpK,gBAAgB;IAAEa,qBAAqB,GAAAuJ,oBAAA,CAArBvJ,qBAAqB;IAAEnL,sBAAsB,GAAA0U,oBAAA,CAAtB1U,sBAAsB,CAAA;EAOvE,IAAA2U,qBAAA,GAAmDC,8BAAoB,CAAC;AACtE1U,MAAAA,aAAa,EAAbA,aAAa;AACb;AACAyJ,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,SAAS,EAATA,SAAS;AACTqG,MAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAA3K,KAAA,EAAoC;AAAA,QAAA,IAAlBuP,gBAAgB,GAAAvP,KAAA,CAA/BpF,aAAa,CAAA;AAC3B,QAAA,IAAI2U,gBAAgB,KAAKtU,SAAS,EAAEwK,QAAQ,CAAC8J,gBAAgB,CAAC,CAAA;AAChE,OAAA;AACD,KAAA,CAAC;IARMtR,oBAAoB,GAAAoR,qBAAA,CAApBpR,oBAAoB;IAAEuR,gBAAgB,GAAAH,qBAAA,CAAhBG,gBAAgB,CAAA;EAU9C,IAAMhG,YAAY,GAAG3N,KAAK,CAAC4N,WAAW,CACpC,UACEC,KAAuE,EAAAC,KAAA,EAOrE;AAAA,IAAA,IALAR,OAAO,GAAAQ,KAAA,CAAPR,OAAO;MACP7I,IAAI,GAAAqJ,KAAA,CAAJrJ,IAAI,CAAA;AAKN,IAAA,IACE6I,OAAO,CAACnP,gBAAgB,KAAKiB,SAAS,IACtC,CAAAkO,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEnP,gBAAgB,KAAI,CAAC,EAC9B;AACAyO,MAAAA,uBAAuB,CAACU,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEnP,gBAAgB,CAAC,CAAA;AACpD,KAAA;AAEA,IAAA,QAAQsG,IAAI;AACV;AACA,MAAA,KAAKsJ,qBAAW,CAACC,gBAAgB,CAACG,SAAS;QACzC,OAAAjN,QAAA,KACKoM,OAAO,EAAA;AACVpH,UAAAA,UAAU,EAAE6B,WAAAA;AAAW,SAAA,CAAA,CAAA;AAE3B;AACA,MAAA,KAAKgG,qBAAW,CAACC,gBAAgB,CAACE,iBAAiB,CAAA;AACnD,MAAA,KAAKH,qBAAW,CAACC,gBAAgB,CAACC,SAAS;AAAE,QAAA;UAAA,IAAA2F,qBAAA,EAAA9C,iBAAA,CAAA;UAC3C,OAAA5P,QAAA,KACKoM,OAAO,EAAA;AACVpP,YAAAA,MAAM,EAAE,IAAI;YACZgI,UAAU,EAAEiM,kBAAkB,GAC1BpK,WAAW,IAAA6L,qBAAA,GACX/G,QAAQ,IAAAiE,IAAAA,IAAAA,CAAAA,iBAAA,GAARjE,QAAQ,CAAEjG,OAAO,KAAjBkK,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAmBvR,KAAK,KAAA,IAAA,GAAAqU,qBAAA,GAAI7L,WAAAA;AAAW,WAAA,CAAA,CAAA;AAE/C,SAAA;AACA;AACA,MAAA,KAAKgG,qBAAW,CAACC,gBAAgB,CAACI,iCAAiC;AAAE,QAAA;UAAA,IAAAyF,sBAAA,EAAAC,kBAAA,CAAA;UACnE,OAAA5S,QAAA,KACKoM,OAAO,EAAA;AACVpH,YAAAA,UAAU,GAAA2N,sBAAA,GAAEhH,QAAQ,IAAA,IAAA,IAAA,CAAAiH,kBAAA,GAARjH,QAAQ,CAAEjG,OAAO,qBAAjBkN,kBAAA,CAAmBvU,KAAK,KAAA,IAAA,GAAAsU,sBAAA,GAAI9L,WAAAA;AAAW,WAAA,CAAA,CAAA;AAEvD,SAAA;AACA;AACA,MAAA,KAAKgG,qBAAW,CAACC,gBAAgB,CAACK,WAAW;AAAE,QAAA;AAAA,UAAA,IAAAC,mBAAA,CAAA;UAC7C,IAAMC,qBAAqB,GAAG,OAAO,CAAA;AACrC,UAAA,IAAMC,0BAA0B,GAAGlB,OAAO,CAACpH,UAAU,KAAK,GAAG,CAAA;AAC7D,UAAA,IAAA,CAAAoI,mBAAA,GAAIhB,OAAO,CAACpH,UAAU,KAAA,IAAA,IAAlBoI,mBAAA,CAAoBG,KAAK,CAACF,qBAAqB,CAAC,EAAE;YACpD,IAAMG,mBAAmB,GAAGpB,OAAO,CAACpH,UAAU,CAACiC,OAAO,CACpDoG,qBAAqB,EACrBxG,WAAW,CACZ,CAAA;AACD,YAAA,IAAIyG,0BAA0B,EAAE;cAC9B,IAAI,CAACX,KAAK,CAAC3P,MAAM,EACf,OAAAgD,QAAA,KACKoM,OAAO,EAAA;AACVpH,gBAAAA,UAAU,EAAEwI,mBAAmB;AAC/BxQ,gBAAAA,MAAM,EAAE,IAAA;AAAI,eAAA,CAAA,CAAA;AAGhB,cAAA,IAAIoP,OAAO,CAACnP,gBAAgB,KAAKiB,SAAS,EAAE;gBAC1C,OAAA8B,QAAA,KACKoM,OAAO,EAAA;AACVpH,kBAAAA,UAAU,EAAEwI,mBAAmB;AAC/B/O,kBAAAA,YAAY,EAAEvB,SAAS,CAACkP,OAAO,CAACnP,gBAAgB,CAAA;AAAC,iBAAA,CAAA,CAAA;AAErD,eAAA;AACF,aAAA;AACF,WAAA;AAEA,UAAA,OAAOmP,OAAO,CAAA;AAChB,SAAA;AACA,MAAA;AACE,QAAA,OAAOA,OAAO,CAAA;AAClB,KAAA;GACD,EACD,CAAC+E,aAAa,EAAE1K,eAAe,EAAEuF,eAAe,EAAE5B,YAAY,CAAC,CAChE,CAAA;AAED,EAAA,IAAAqD,YAAA,GAWIZ,qBAAW,CAAA7M,QAAA,CAAA;AACb0N,MAAAA,uBAAuB,EAAEjC,oBAAoB;AAAE;AAC/C/H,MAAAA,KAAK,EAAExG,SAAS;AAChBoK,MAAAA,YAAY,EAAZA,YAAY;AACZ7I,MAAAA,YAAY,EAAE,IAAI;AAClBgO,MAAAA,YAAY,EAAZA,YAAY;AACZkB,MAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACvB,OAAO,EAAA;AACxBH,QAAAA,eAAe,CAAC;UAAEjH,UAAU,EAAEoH,OAAO,CAACpH,UAAAA;AAAY,SAAA,CAAC,CAAA;AACnD;AACA6N,QAAAA,mBAAmB,CAAC1B,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1CzF,QAAAA,uBAAuB,CAACyF,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;OAC/C;AACDvD,MAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAAC,KAAA,EAA8B;AAAA,QAAA,IAAbpF,WAAW,GAAAoF,KAAA,CAAzBpP,YAAY,CAAA;AAC1B;QACA,IAAI,CAACgK,WAAW,EAAE,OAAA;AAElBK,QAAAA,qBAAqB,CAAC;AACpBL,UAAAA,WAAW,EAAXA,WAAW;AACXC,UAAAA,QAAQ,EAARA,QAAAA;AACD,SAAA,CAAC,CAAA;OACH;AACD;AACAS,MAAAA,oBAAoB,EAAE,SAAtBA,sBAAoBA,CAAEC,OAAO,EAAA;AAAA,QAAA,OAC3BD,oBAAoB,CAAAnJ,QAAA,CAAA,EAAA,EACfoJ,OAAO,EAAA;UACVE,qBAAqB,EAAE,CAAC6H,aAAa;UACrC5H,WAAW,EAAErM,SAAS,CAACkB,MAAAA;AAAM,SAAA,CAC9B,CAAC,CAAA;AAAA,OAAA;KACDN,EAAAA,IAAI,CACR,CAAC;IAvCAmQ,aAAa,GAAAR,YAAA,CAAbQ,aAAa;IACbnR,YAAY,GAAA2Q,YAAA,CAAZ3Q,YAAY;IACZkR,aAAa,GAAAP,YAAA,CAAbO,aAAa;IACbjR,YAAY,GAAA0Q,YAAA,CAAZ1Q,YAAY;IACZgR,oBAAoB,GAAAN,YAAA,CAApBM,oBAAoB;IACpB9Q,gBAAgB,GAAAwQ,YAAA,CAAhBxQ,gBAAgB;IAChB4V,mBAAmB,GAAApF,YAAA,CAAnBoF,mBAAmB;IACnB7N,UAAU,GAAAyI,YAAA,CAAVzI,UAAU;IACVhI,MAAM,GAAAyQ,YAAA,CAANzQ,MAAM;IACNwP,aAAa,GAAAiB,YAAA,CAAbjB,aAAa,CAAA;AAgCf;EACA,IAAA0B,YAAA,GAAyCC,oBAAW,CAAC;AACnDC,MAAAA,IAAI,EAAEpR,MAAM;AACZqG,MAAAA,SAAS,EAAE,cAAc;MACzBgL,UAAU,EAAE,CACVC,eAAM,CAACC,YAAK,CAACC,WAAW,CAAC,EACzBC,cAAK,CAAC;QAAEC,OAAO,EAAEH,YAAK,CAACI,UAAAA;OAAY,CAAC,EACpCpN,aAAI,CAAC;AACH8E,QAAAA,KAAK,EAALA,SAAAA,KAAKA,CAAAuI,KAAA,EAAqC;AAAA,UAAA,IAAlCC,KAAK,GAAAD,KAAA,CAALC,KAAK;YAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;YAAEC,eAAe,GAAAH,KAAA,CAAfG,eAAe,CAAA;UACtCC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACI,QAAQ,CAAChP,KAAK,EAAE;AACrCiP,YAAAA,KAAK,EAAKN,KAAK,CAACO,SAAS,CAACD,KAAK,GAAI,IAAA;AACnC;AACA;AACAE,YAAAA,SAAS,EAAK3H,KAAK,CAAC,EAAE,GAAG,EAAE,EAAEqH,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,GAAA,IAAA;AACvD,WAAA,CAAC,CAAA;AACJ,SAAA;OACD,CAAC,EACFO,aAAI,CAAC;AAAEC,QAAAA,gBAAgB,EAAE,kBAAA;OAAoB,CAAC,CAAA;AAEjD,KAAA,CAAC;IAlBMC,IAAI,GAAAtB,YAAA,CAAJsB,IAAI;IAAErS,cAAc,GAAA+Q,YAAA,CAAd/Q,cAAc;IAAEsS,MAAM,GAAAvB,YAAA,CAANuB,MAAM,CAAA;AAoBpC;AACA;AACA;AACA;AACA/I,EAAAA,eAAS,CAAC,YAAK;AACb,IAAA,IAAI1J,MAAM,IAAIwS,IAAI,CAACJ,SAAS,CAAC1J,OAAO,IAAI8J,IAAI,CAACN,QAAQ,CAACxJ,OAAO,EAAE;AAC7D,MAAA,OAAOgK,mBAAU,CACfF,IAAI,CAACJ,SAAS,CAAC1J,OAAO,EACtB8J,IAAI,CAACN,QAAQ,CAACxJ,OAAO,EACrB+J,MAAM,CACP,CAAA;AACH,KAAA;AACF,GAAC,EAAE,CAACzS,MAAM,EAAEwS,IAAI,CAACJ,SAAS,EAAEI,IAAI,CAACN,QAAQ,EAAEO,MAAM,CAAC,CAAC,CAAA;AAEnD,EAAA,IAAME,aAAa,GAAG,SAAhBA,aAAaA,GAAQ;AAAA,IAAA,IAAAmD,kBAAA,CAAA;IACzBpK,QAAQ,CAAC,EAAE,CAAC,CAAA;IACZ8D,aAAa,CAAC3F,WAAW,CAAC,CAAA;IAC1B,CAAAiM,kBAAA,GAAAnH,QAAQ,CAACjG,OAAO,aAAhBoN,kBAAA,CAAkBjD,KAAK,EAAE,CAAA;AACzB5D,IAAAA,eAAe,CAAC;AAAEjH,MAAAA,UAAU,EAAVA,UAAAA;AAAU,KAAE,CAAC,CAAA;GAChC,CAAA;AAED,EAAA,OACElG,KAAC,CAAAC,aAAA,CAAA+Q,oBAAe,EAAA9P,QAAA,CAAA;IACdb,SAAS,EAAEqB,UAAU,CACnB,cAAc,EACd,2BAA2B,EAC3BrB,SAAS,EACT;MAAE,2BAA2B,EAAEsL,YAAY,KAAKvM,SAAAA;KAAW,CAC5D;AACD+C,IAAAA,QAAQ,EAAEA,QAAQ;AAClBiJ,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5CC,IAAAA,QAAQ,EAAEA,QAAQ;AAClB4F,IAAAA,QAAQ,EAAE9H,gBAAgB,IAAIjD,UAAU,KAAK6B,WAAW;AACxDnI,IAAAA,KAAK,EAAEA,KAAK;AACZsR,IAAAA,OAAO,EAAEhC,aAAa,EAAE,CAACiC,EAAE;IAC3BC,UAAU,EAAElC,aAAa,EAAE;AAC3BvD,IAAAA,YAAY,EAAEA,YAAY;IAC1B0F,MAAM,EAAE,SAARA,MAAMA,GAAA;MAAA,OAAQ3D,aAAa,CAAC,EAAE,CAAC,CAAA;AAAA,KAAA;AAC/B7K,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGF,CAAmB,EAAI;AAC/B,MAAA,IAAIA,CAAC,CAAC2O,MAAM,KAAK3O,CAAC,CAAC4O,aAAa,EAAE;AAAA,QAAA,IAAAC,cAAA,CAAA;AAChC,QAAA,CAAAA,cAAA,GAAArC,aAAa,EAAE,KAAfqC,IAAAA,IAAAA,cAAA,CAAiB3O,OAAO,YAAxB2O,cAAA,CAAiB3O,OAAO,CAAGF,CAAC,CAAC,CAAA;AAC/B,OAAA;KACD;AACDpC,IAAAA,QAAQ,EAAEA,QAAQ;IAClBY,GAAG,EAAEuP,IAAI,CAACe,YAAY;AACtBrQ,IAAAA,KAAK,EAAEA,KAAK;AACZkL,IAAAA,OAAO,EAAEA,OAAO;AAChBoF,IAAAA,KAAK,EACH1R,KAAA,CAAAC,aAAA,CAACxC,YAAY,EACX;AAAAI,MAAAA,uBAAuB,EAAEA,uBAAuB;AAChDE,MAAAA,qBAAqB,EAAEA,qBAAqB;AAC5CM,MAAAA,cAAc,EAAEA,cAAc;AAC9BL,MAAAA,YAAY,EAAEA,YAAY;AAC1BC,MAAAA,YAAY,EAAEA,YAAY;AAC1BE,MAAAA,gBAAgB,EAAEA,gBAAgB;AAClCD,MAAAA,MAAM,EAAEA,MAAM;AACdE,MAAAA,SAAS,EAAEA,SAAS;AACpBgD,MAAAA,KAAK,EAAEwK,SAAS;MAChBtN,UAAU,EAAEoS,IAAI,CAACiB,WAAW;AAC5BnT,MAAAA,OAAO,EAAEA,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAoB;AACxCrO,MAAAA,WAAW,EAAEA,WAAW;AACxBE,MAAAA,aAAa,EAAEA,aAAa;AAC5BC,MAAAA,sBAAsB,EAAEA,sBAAsB;AAC9CC,MAAAA,aAAa,EAAEoK,SAAS;AACxBnK,MAAAA,aAAa,EAAEA,aAAAA;KACf,CAAA;AAAA,GAAA,EAEAC,IAAI,CAERgB,EAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEI,IAAAA,SAAS,EAAEqB,UAAU,CACnB,qDAAqD,EACrD;AACE,MAAA,6DAA6D,EAC3DyH,gBAAAA;KACH,CAAA;AACF,GAAA,EAEApK,aAAa,CAACO,MAAM,GAAG,CAAC,GACvBU,KAAC,CAAAC,aAAA,CAAAQ,mBAAc,EAAC;IAAAoC,OAAO,EAAA,CAAAoP,kBAAA,GAAEpF,QAAQ,CAACjG,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAhBqL,kBAAA,CAAkBlB,KAAAA;AAAK,GAAA,EAC7CmC,oBAAoB,CACN,GACf,IAAI,EACPnU,aAAa,CAACO,MAAM,IAAIuT,QAAQ,GAC/B9T,aAAa,CAAC4B,GAAG,CAAC,UAAChB,YAAY,EAAE2B,KAAK,EAAA;AAAA,IAAA,OACpCtB,KAAA,CAAAC,aAAA,CAAC6B,eAAe,EAAA;AACdI,MAAAA,eAAe,EAAErE,uBAAuB;AACxCmE,MAAAA,uBAAuB,EAAEA,uBAAuB;AAChDG,MAAAA,QAAQ,EAAEA,QAAQ;AAClBC,MAAAA,oBAAoB,EAAEA,oBAAoB;AAC1Cd,MAAAA,KAAK,EAAEA,KAAK;MACZR,GAAG,EACD,CAAAnB,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEC,KAAK,KAClB,QAAOD,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEJ,KAAK,MAAK,QAAQ,GACpCI,YAAY,CAACJ,KAAK,GAClB,EAAE,CAAC;AAETgB,MAAAA,QAAQ,EAAEA,QAAQ;AAClB8B,MAAAA,kBAAkB,EAAE,SAApBA,kBAAkBA,GAAO;AAAA,QAAA,IAAA4R,kBAAA,CAAA;AACvBjK,QAAAA,qBAAqB,CAAC;AACpBL,UAAAA,WAAW,EAAEhK,YAAY;AACzBiK,UAAAA,QAAQ,EAARA,QAAAA;AACD,SAAA,CAAC,CAAA;QACFiD,QAAQ,IAAA,IAAA,IAAA,CAAAoH,kBAAA,GAARpH,QAAQ,CAAEjG,OAAO,KAAA,IAAA,IAAjBqN,kBAAA,CAAmBlD,KAAK,EAAE,CAAA;OAC3B;AACDpR,MAAAA,YAAY,EAAEA,YAAAA;AAAY,KAAA,CAC1B,CAAA;AAAA,GACH,CAAC,GAEFK,KAAA,CAAAC,aAAA,CAAC6B,eAAe,EACd;AAAAE,IAAAA,uBAAuB,EAAEyQ,kBAAkB;AAC3CvQ,IAAAA,eAAe,EAAC,EAAE;AAClBC,IAAAA,QAAQ,EAAEA,QAAQ;AAClB5B,IAAAA,QAAQ,EAAEA,QAAQ;AAClB8B,IAAAA,kBAAkB,EAAEwO,aAAa;AACjClR,IAAAA,YAAY,EAAE2T,oBAAAA;IAEjB,EACDtT,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAAiB,QAAA,CAAA,EAAA,EACMiO,aAAa,CAAAjO,QAAA,CAAA;AACf4Q,IAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGnP,CAAsB,EAAI;MACpC,IAAIyJ,WAAW,IAAIlO,MAAM,IAAIyE,CAAC,CAAC7B,GAAG,KAAK,KAAK,EAAE;AAC5C,QAAA,IAAMoT,aAAa,GAAG9V,SAAS,CAACD,gBAAgB,CAAC,CAAA;AACjD;AACA,QAAA,IAAI+V,aAAa,EAAE;AACjBlK,UAAAA,qBAAqB,CAAC;AACpBL,YAAAA,WAAW,EAAEuK,aAAa;AAC1BtK,YAAAA,QAAQ,EAARA,QAAAA;AACD,WAAA,CAAC,CAAA;AACJ,SAAA;AACF,OAAA;AACF,KAAA;AAAC,GAAA,EACE+J,gBAAgB,CAAC;AAClBQ,IAAAA,gBAAgB,EAAEjW,MAAM;AACxBqB,IAAAA,KAAK,EAAE2G,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI6B,WAAW;AAChC5G,IAAAA,GAAG,EAAE4Q,eAAS,CAAClF,QAAQ,EAAE1L,GAAG,CAAA;GAC7B,CAAC,EAAA;AACFd,IAAAA,SAAS,EAAE,sCAAsC;IACjD8B,QAAQ,EAAE5B,QAAQ,IAAI4B,QAAQ;AAC9B2J,IAAAA,WAAW,EAAEA,WAAW;AACxBxL,IAAAA,QAAQ,EAAE6B,QAAQ,IAAI5B,QAAQ,GAAG,CAAC,CAAC,GAAGnB,SAAAA;AAAS,GAAA,CAChD,CAAC,EACF,CACE,EACNY,KAAC,CAAAC,aAAA,CAAA8C,qBAAqB,EAAA7B,QAAA,CAAA,EAAA,EAChB+N,oBAAoB,CAAC;IACvB,WAAW,EAAE,EAAEzQ,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAoB,CAAC,GAC3C3N,SAAS,GACT,MAAA;GACL,CAAC,EAAA;AACF8D,IAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpCE,IAAAA,SAAS,EAAEA,SAAS;IACpBlB,QAAQ,EAAEA,QAAQ,IAAI5B,QAAQ;AAC9BmD,IAAAA,OAAO,EAAEmN,aAAa;AACtBrN,IAAAA,SAAS,EAAE,KAAK;AAChBF,IAAAA,kBAAkB,EAAEmP,kBAAkB;AACtCvU,IAAAA,MAAM,EAAEA,MAAM;AACdyF,IAAAA,cAAc,EAAE5E,aAAa,CAACO,MAAM,GAAG,CAAC;AACxCZ,IAAAA,WAAW,EAAEA,WAAW;AACxBF,IAAAA,OAAO,EAAEA,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAAA;AAAoB,GAAA,CAAA,CACxC,CACc,CAAA;AAEtB,CAAC;;;AC/aI,IAAMqH,QAAQ,gBAAGpU,KAAK,CAACgD,UAAU,CACtC,UAAAtF,IAAA,EA8BEyD,GAAuC,EACrC;EAAA,IAAAkT,cAAA,EAAAvJ,mBAAA,CAAA;AAAA,EAAA,IA7BAjN,uBAAuB,GAAAH,IAAA,CAAvBG,uBAAuB;IAAAkN,qBAAA,GAAArN,IAAA,CACvBwF,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAA6H,qBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,qBAAA;IAAAC,qBAAA,GAAAtN,IAAA,CAC1CyF,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAA6H,qBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,qBAAA;IACzCjN,qBAAqB,GAAAL,IAAA,CAArBK,qBAAqB;IACrBsC,SAAS,GAAA3C,IAAA,CAAT2C,SAAS;IAAA4K,cAAA,GAAAvN,IAAA,CACT2F,SAAS;AAATA,IAAAA,SAAS,GAAA4H,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IAAAC,aAAA,GAAAxN,IAAA,CACjByE,QAAQ;AAARA,IAAAA,QAAQ,GAAA+I,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAChBE,qBAAqB,GAAA1N,IAAA,CAArB0N,qBAAqB;IACrBC,QAAQ,GAAA3N,IAAA,CAAR2N,QAAQ;IACDC,YAAY,GAAA5N,IAAA,CAAnBkH,KAAK;IACLhF,KAAK,GAAAlC,IAAA,CAALkC,KAAK;IAAA6L,qBAAA,GAAA/N,IAAA,CACLgO,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,aAAa,GAAAA,qBAAA;IACtCE,YAAY,GAAAjO,IAAA,CAAZiO,YAAY;IACZC,SAAS,GAAAlO,IAAA,CAATkO,SAAS;IACTpN,OAAO,GAAAd,IAAA,CAAPc,OAAO;IAAAC,gBAAA,GAAAf,IAAA,CACPgB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,qBAAqB,GAAAA,gBAAA;IAAAE,kBAAA,GAAAjB,IAAA,CACnCkB,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,4BAA4B,GAAAA,kBAAA;IAC5CiL,QAAQ,GAAAlM,IAAA,CAARkM,QAAQ;IACRkC,WAAW,GAAApO,IAAA,CAAXoO,WAAW;IACXC,OAAO,GAAArO,IAAA,CAAPqO,OAAO;IAAAC,aAAA,GAAAtO,IAAA,CACP6C,QAAQ;AAARA,IAAAA,QAAQ,GAAAyL,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAChBrM,YAAY,GAAAjC,IAAA,CAAZiC,YAAY;IAAAsM,iBAAA,GAAAvO,IAAA,CACZwO,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA;IAAAE,gBAAA,GAAAzO,IAAA,CACpB0O,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;IACnB/K,KAAK,GAAA1D,IAAA,CAAL0D,KAAK;IAAAiL,YAAA,GAAA3O,IAAA,CACL4O,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,aAAa,GAAAA,YAAA;AACpBrN,IAAAA,IAAI,GAAAC,6BAAA,CAAAvB,IAAA,EAAAwB,WAAA,CAAA,CAAA;AAIT,EAAA,IAAA4N,iBAAA,GACEhI,gBAAgB,CAACwG,YAAY,CAAC;IADjB3D,eAAe,GAAAmF,iBAAA,CAAtBlI,KAAK;IAA4BmI,oBAAoB,GAAAD,iBAAA,CAA7BtO,OAAO,CAAA;EAEvC,IAAMyS,QAAQ,GAAGtR,YAAY,KAAK,IAAI,IAAImM,WAAW,KAAK1M,SAAS,CAAA;EACnE,IAAAkV,UAAA,GAOIC,mBAAS,CAAC;AACZ3P,MAAAA,KAAK,EAAE+C,eAAe;AACtBiH,MAAAA,uBAAuB,EAAEjP,YAAY,GAAGP,SAAS,GAAG,CAAC;AACrDO,MAAAA,YAAY,EAAZA,YAAY;AACZmP,MAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAAxM,KAAA,EAAwC;AAAA,QAAA,IAArCmC,IAAI,GAAAnC,KAAA,CAAJmC,IAAI;UAAgBuK,eAAe,GAAA1M,KAAA,CAA7B3C,YAAY,CAAA;AAChC,QAAA,QAAQ8E,IAAI;AACV,UAAA,KAAK8P,mBAAS,CAACvG,gBAAgB,CAACwG,gBAAgB;YAC9C,IAAI,CAACtI,YAAY,EAAE,OAAA;AACvB,SAAA;QACA,IAAI8C,eAAe,KAAK5P,SAAS,EAAE,OAAA;QACnCwK,QAAQ,IAAA,IAAA,IAARA,QAAQ,CAAGoF,eAAe,WAAfA,eAAe,GAAI,IAAI,CAAC,CAAA;OACpC;AACDxG,MAAAA,YAAY,EAAZA,YAAAA;AACD,KAAA,CAAC;IAnBAtK,MAAM,GAAAoW,UAAA,CAANpW,MAAM;IACNF,YAAY,GAAAsW,UAAA,CAAZtW,YAAY;IACZkR,aAAa,GAAAoF,UAAA,CAAbpF,aAAa;IACbjR,YAAY,GAAAqW,UAAA,CAAZrW,YAAY;IACZgR,oBAAoB,GAAAqF,UAAA,CAApBrF,oBAAoB;IACpB9Q,gBAAgB,GAAAmW,UAAA,CAAhBnW,gBAAgB,CAAA;AAgBlB;EACA,IAAAiR,YAAA,GAAyCC,oBAAW,CAAC;AACnDC,MAAAA,IAAI,EAAEpR,MAAM;AACZqG,MAAAA,SAAS,EAAE,cAAc;MACzBgL,UAAU,EAAE,CACVC,eAAM,CAACC,YAAK,CAACC,WAAW,CAAC,EACzBC,cAAK,CAAC;QAAEC,OAAO,EAAEH,YAAK,CAACI,UAAAA;OAAY,CAAC,EACpCpN,aAAI,CAAC;AACH8E,QAAAA,KAAK,EAALA,SAAAA,KAAKA,CAAAtE,KAAA,EAAqC;AAAA,UAAA,IAAlC8M,KAAK,GAAA9M,KAAA,CAAL8M,KAAK;YAAEC,QAAQ,GAAA/M,KAAA,CAAR+M,QAAQ;YAAEC,eAAe,GAAAhN,KAAA,CAAfgN,eAAe,CAAA;UACtCC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACI,QAAQ,CAAChP,KAAK,EAAE;AACrCiP,YAAAA,KAAK,EAAKN,KAAK,CAACO,SAAS,CAACD,KAAK,GAAI,IAAA;AACnC;AACA;AACAE,YAAAA,SAAS,EAAK3H,KAAK,CAAC,EAAE,GAAG,EAAE,EAAEqH,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,GAAA,IAAA;AACvD,WAAA,CAAC,CAAA;AACJ,SAAA;OACD,CAAC,EACFO,aAAI,CAAC;AAAEC,QAAAA,gBAAgB,EAAE,kBAAA;OAAoB,CAAC,CAAA;AAEjD,KAAA,CAAC;IAlBMC,IAAI,GAAAtB,YAAA,CAAJsB,IAAI;IAAErS,cAAc,GAAA+Q,YAAA,CAAd/Q,cAAc;IAAEsS,MAAM,GAAAvB,YAAA,CAANuB,MAAM,CAAA;AAoBpC;AACA;AACA;AACA;AACA/I,EAAAA,eAAS,CAAC,YAAK;AACb,IAAA,IAAI1J,MAAM,IAAIwS,IAAI,CAACJ,SAAS,CAAC1J,OAAO,IAAI8J,IAAI,CAACN,QAAQ,CAACxJ,OAAO,EAAE;AAC7D,MAAA,OAAOgK,mBAAU,CACfF,IAAI,CAACJ,SAAS,CAAC1J,OAAO,EACtB8J,IAAI,CAACN,QAAQ,CAACxJ,OAAO,EACrB+J,MAAM,CACP,CAAA;AACH,KAAA;AACF,GAAC,EAAE,CAACzS,MAAM,EAAEwS,IAAI,CAACJ,SAAS,EAAEI,IAAI,CAACN,QAAQ,EAAEO,MAAM,CAAC,CAAC,CAAA;AAEnD,EAAA,OACE3Q,KAAC,CAAAC,aAAA,CAAA+Q,oBAAe,EAAA9P,QAAA,CAAA;AACdb,IAAAA,SAAS,EAAEqB,UAAU,CAAC,cAAc,EAAErB,SAAS,EAAE;MAC/C,2BAA2B,EAAEsL,YAAY,KAAKvM,SAAAA;AAC/C,KAAA,CAAC;AACFgM,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5CC,IAAAA,QAAQ,EAAEA,QAAQ;AAClB4F,IAAAA,QAAQ,EAAEA,QAAQ;IAClBG,UAAU,EAAElC,aAAa,EAAE;AAC3BvD,IAAAA,YAAY,EAAEA,YAAY;AAC1BI,IAAAA,OAAO,EAAEA,OAAO;AAChB3K,IAAAA,KAAK,EAAEA,KAAK;AACZkL,IAAAA,OAAO,EAAEA,OAAAA;AAAO,GAAA,EACZ2C,oBAAoB,CAAC;IACvB9N,GAAG,EAAE4Q,eAAS,CAAC5Q,GAAG,EAAEuP,IAAI,CAACe,YAAY,CAAC;AACtC,IAAA,eAAe,EAAEtP,QAAQ;AACzB,IAAA,YAAY,EAAEA,QAAQ,GAAG,mBAAmB,GAAG,EAAE;AACjDA,IAAAA,QAAQ,EAAEA,QAAQ;AAClB5B,IAAAA,QAAQ,EAAEA,QAAQ;AAClBX,IAAAA,KAAK,EAAEA,KAAK;IACZsR,OAAO,EAAA,CAAAmD,cAAA,GAAEnF,aAAa,EAAE,KAAA,IAAA,GAAA,KAAA,CAAA,GAAfmF,cAAA,CAAiBlD,EAAE;AAC5BsD,IAAAA,QAAQ,EAAErV,SAAS;IACnBkB,QAAQ,EAAE6B,QAAQ,IAAI5B,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AACvCuR,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACnP,CAAC,EAAA;MACT,IACEzE,MAAM,KACLkO,WAAW,IAAIF,YAAY,CAAC,IAC7BvJ,CAAC,CAAC7B,GAAG,KAAK,KAAK,IACf3C,gBAAgB,KAAKiB,SAAS,EAE9BwK,QAAQ,IAAA,IAAA,IAARA,QAAQ,CAAGjC,eAAe,CAACxJ,gBAAgB,CAAC,CAAC,CAAA;AACjD,KAAA;AACD,GAAA,CAAC,EAAA;AACFuT,IAAAA,KAAK,EACH1R,KAAC,CAAAC,aAAA,CAAAxC,YAAY;AACXI,MAAAA,uBAAuB,EAAEA,uBAAuB;AAChDE,MAAAA,qBAAqB,EAAEA,qBAAqB;AAC5CM,MAAAA,cAAc,EAAEA,cAAc;AAC9BL,MAAAA,YAAY,EAAEA,YAAY;AAC1BC,MAAAA,YAAY,EAAEA,YAAY;AAC1BE,MAAAA,gBAAgB,EAAEA,gBAAgB;AAClCD,MAAAA,MAAM,EAAEA,MAAM;AACdE,MAAAA,SAAS,EAAEuJ,eAAe;AAC1B/I,MAAAA,aAAa,EAAEA,aAAa;AAC5BwC,MAAAA,KAAK,EAAEwK,SAAS;MAChBtN,UAAU,EAAEoS,IAAI,CAACiB,WAAW;AAC5BnT,MAAAA,OAAO,EAAEA,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAoB;AACxCrO,MAAAA,WAAW,EAAEA,WAAW;MACxBK,aAAa,EAAEY,YAAY,KAAK,IAAI,GAAG,CAACA,YAAY,CAAC,GAAG,EAAA;KAAE,CAAA;AAC1D,GAAA,EAEAX,IAAI,EAAA;AACR;AACA4S,IAAAA,MAAM,EAAExS,SAAAA;AAAS,GAAA,CAAA,EAEjBY,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKI,IAAAA,SAAS,EAAC,6BAAA;AAA6B,GAAA,GAAAyK,mBAAA,GACzCnL,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEC,KAAK,KAAAkL,IAAAA,GAAAA,mBAAA,GAClB9K;AACEK,IAAAA,SAAS,EAAEqB,UAAU,CACnB,0CAA0C,EAC1C;AACE,MAAA,oDAAoD,EAClDnB,QAAAA;KACH,CAAA;GAGF,EAAAuL,WAAW,CAEf,CACG,EACN9L,KAAA,CAAAC,aAAA,CAAC8C,qBAAqB,EACT;IAAA,WAAA,EAAA,EAAEvE,OAAO,IAAPA,IAAAA,GAAAA,OAAO,GAAIuO,oBAAoB,CAAC,GAAG3N,SAAS,GAAG,MAAM;AACnD,IAAA,eAAA,EAAAlB,MAAM;AACrBmF,IAAAA,SAAS,EAAEA,SAAS;IACpBK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQkG,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAG,IAAI,CAAC,CAAA;AAAA,KAAA;IAC/BzH,QAAQ,EAAEA,QAAQ,IAAI5B,QAAQ;AAC9BiD,IAAAA,SAAS,EAAE,KAAK;AAChBF,IAAAA,kBAAkB,EAAEoI,sBAAsB;AAC1CxN,IAAAA,MAAM,EAAEA,MAAM;IACdyF,cAAc,EAAEhE,YAAY,KAAK,IAAI;AACrCuD,IAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpC3E,IAAAA,OAAO,EAAE,KAAK;AACdE,IAAAA,WAAW,EAAEU,SAAAA;AACb,GAAA,CAAA,CACc,CAAA;AAEtB,CAAC;;;ACvRH;AACA,IAAMsV,KAAK,GAAG,OAAO,CAAA;AAqDd,IAAMC,cAAc,gBAAG3R,gBAAU,CACtC,UAAAtF,IAAA,EAkBEyD,GAA0C,EACxC;AAAA,EAAA,IAAAmB,KAAA,CAAA;AAAA,EAAA,IAjBAjC,SAAS,GAAA3C,IAAA,CAAT2C,SAAS;IAAA6K,aAAA,GAAAxN,IAAA,CACTyE,QAAQ;AAARA,IAAAA,QAAQ,GAAA+I,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAChBE,qBAAqB,GAAA1N,IAAA,CAArB0N,qBAAqB;IACrBC,QAAQ,GAAA3N,IAAA,CAAR2N,QAAQ;IACRzG,KAAK,GAAAlH,IAAA,CAALkH,KAAK;IACLhF,KAAK,GAAAlC,IAAA,CAALkC,KAAK;IACLlB,WAAW,GAAAhB,IAAA,CAAXgB,WAAW;IACXkL,SAAQ,GAAAlM,IAAA,CAARkM,QAAQ;IACRmC,OAAO,GAAArO,IAAA,CAAPqO,OAAO;IAAAC,aAAA,GAAAtO,IAAA,CACP6C,QAAQ;AAARA,IAAAA,QAAQ,GAAAyL,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAChBrM,YAAY,GAAAjC,IAAA,CAAZiC,YAAY;IACZyB,KAAK,GAAA1D,IAAA,CAAL0D,KAAK;IACL7B,KAAK,GAAA7B,IAAA,CAAL6B,KAAK;IACL+M,OAAO,GAAA5O,IAAA,CAAP4O,OAAO;AACJtN,IAAAA,IAAI,GAAAC,6BAAA,CAAAvB,IAAA,EAAAwB,SAAA,CAAA,CAAA;AAIT,EAAA,IAAA4N,iBAAA,GACEhI,gBAAgB,CAAYF,KAAK,CAAC;IADrB+C,eAAe,GAAAmF,iBAAA,CAAtBlI,KAAK;IAAmBpG,OAAO,GAAAsO,iBAAA,CAAPtO,OAAO,CAAA;AAEvC,EAAA,IAAMoW,gBAAgB,GAAGvB,iBAAW,CAAC,qBAAqB,CAAC,CAAA;AAE3D,EAAA,OACErT,KAAA,CAAAC,aAAA,CAAC+Q,oBAAe,EAAA;AACd7O,IAAAA,QAAQ,EAAEA,QAAQ;AAClB5B,IAAAA,QAAQ,EAAEA,QAAQ;AAClBwL,IAAAA,OAAO,EAAEA,OAAO;AAChB6F,IAAAA,MAAM,EACJ5R,KAAA,CAAAC,aAAA,CAAC4U,WAAW,EAAA;MACVC,MAAM,EAAE3S,QAAQ,IAAI5B,QAAQ;AAC5B/B,MAAAA,OAAO,EAAEA,OAAO;AAChBE,MAAAA,WAAW,EAAEA,WAAAA;AAAW,KAAA,CACxB;AAEJ2B,IAAAA,SAAS,EAAEA,SAAS;AACpBe,IAAAA,KAAK,EAAEA,KAAK;AACZxB,IAAAA,KAAK,EAAEA,KAAK;AACZsR,IAAAA,OAAO,EAAE0D,gBAAgB;AACzBtI,IAAAA,OAAO,EAAEA,OAAO;AAChBjB,IAAAA,QAAQ,EAAEA,QAAQ;AAClBD,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5C6F,IAAAA,QAAQ,EAAE,IAAA;AAAI,GAAA,EAEdjR,KACgB,CAAAC,aAAA,CAAA,QAAA,EAAAiB,QAAA,CAAA;AAAA,IAAA,cAAA,EAAAoL,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAKoI,KAAK;AACxC,IAAA,iBAAA,EAAAE,gBAAgB;AACtB,IAAA,WAAA,EAAApW,OAAO;AAClB6B,IAAAA,SAAS,EAAC,uCAAuC;IACjD8B,QAAQ,EAAEA,QAAQ,IAAI5B,QAAQ;AAC9BqJ,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEmL,KAAK,EAAG;AAAA,MAAA,IAAAC,qBAAA,CAAA;MAChBpL,SAAQ,IAAA,IAAA,IAARA,SAAQ,CAAG;AACTrK,QAAAA,KAAK,EAAEwV,KAAK,CAACzD,MAAM,CAAC/R,KAAK;QACzBI,YAAY,EAAA,CAAAqV,qBAAA,GACVrN,eAAe,CAACsN,IAAI,CAClB,UAAAxV,IAAI,EAAA;UAAA,OAAIA,IAAI,CAACF,KAAK,KAAKwV,KAAK,CAACzD,MAAM,CAAC/R,KAAK,CAAA;SAC1C,CAAA,KAAA,IAAA,GAAAyV,qBAAA,GAAI,IAAI;QACX1D,MAAM,EAAEyD,KAAK,CAACzD,MAAAA;AACf,OAAA,CAAC,CAAA;KACH;AACD/R,IAAAA,KAAK,EAAA+C,CAAAA,KAAA,GAAE/C,KAAK,WAALA,KAAK,GAAII,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEJ,KAAK,KAAA+C,IAAAA,GAAAA,KAAA,GAAIlD,SAAS;AAChD+B,IAAAA,GAAG,EAAEA,GAAAA;AAAG,GAAA,EACJnC,IAAI,CAEP2I,EAAAA,eAAe,CAAChH,GAAG,CAAC,UAAAlB,IAAI,EAAA;AAAA,IAAA,OACvBO,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;MAAQa,GAAG,EAAErB,IAAI,CAACF,KAAK;MAAEA,KAAK,EAAEE,IAAI,CAACF,KAAAA;AAClC,KAAA,EAAAE,IAAI,CAACG,KAAK,CACJ,CAAA;GACV,CAAC,CACK,CACO,CAAA;AAEtB,CAAC,EACF;AAED,IAAMiV,WAAW,GAAG,SAAdA,WAAWA,CAAA5R,KAAA,EAQZ;AAAA,EAAA,IAPHzE,OAAO,GAAAyE,KAAA,CAAPzE,OAAO;IACPE,WAAW,GAAAuE,KAAA,CAAXvE,WAAW;IACXoW,MAAM,GAAA7R,KAAA,CAAN6R,MAAM,CAAA;AAMN,EAAA,IAAItW,OAAO,EAAE;AACX,IAAA,OACEwB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,SAAS,EAAC,mCAAA;AAAmC,KAAA,EAChDL,KAAA,CAAAC,aAAA,CAACiE,kBAAW,EAAa;AAAA,MAAA,YAAA,EAAAxF,WAAAA;AAAe,KAAA,CAAA,CACpC,CAAA;AAEV,GAAA;AACA,EAAA,IAAIoW,MAAM,EAAE;IACV,OAAO9U,yCAAK,CAAA;AACd,GAAA;AACA,EAAA,OAAOA,KAAC,CAAAC,aAAA,CAAAgE,mBAAa,EAAC;AAAAhD,IAAAA,MAAM;IAAG,CAAA;AACjC,CAAC;;ACpKDiU,4BAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;;;;;;;"}
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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"}