{"version":3,"file":"static/chunks/7299.6578df341f250b1c.js","mappings":"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","sources":["webpack://_N_E/./components/SearchInput/SearchInput.js","webpack://_N_E/./components/SearchInput/index.js","webpack://_N_E/./components/SearchChips/SearchChips.js","webpack://_N_E/./components/SearchChips/index.js","webpack://_N_E/./components/SearchDropdownRegion/SearchDropdownRegion.js","webpack://_N_E/./components/SearchDropdownRegion/index.js","webpack://_N_E/./components/SearchFilter/SearchFilter.js","webpack://_N_E/./components/SearchFilter/index.js","webpack://_N_E/./components/Search/Search.js","webpack://_N_E/./components/Search/index.js","webpack://_N_E/./components/Search/Search.module.scss","webpack://_N_E/./components/SearchChips/SearchChips.module.scss","webpack://_N_E/./components/SearchDropdownRegion/SearchDropdownRegion.module.scss","webpack://_N_E/./components/SearchFilter/SearchFilter.module.scss","webpack://_N_E/./components/SearchInput/SearchInput.module.scss"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n// import PropTypes from 'prop-types';\nimport styles from './SearchInput.module.scss';\nimport { useTranslation } from 'next-i18next';\nimport { useContextState } from '../StateProvider';\nimport { getSearchSuggestions } from '../../utils/api';\nimport classNames from 'classnames';\nimport FadeIn from '../../transitions/FadeIn';\n\nconst useDebounce = (value, delay = 250) => {\n    const [debouncedValue, setDebouncedValue] = useState(value);\n\n    useEffect(() => {\n        const timeout = setTimeout(() => {\n            setDebouncedValue(value);\n        }, delay);\n\n        return () => clearTimeout(timeout);\n    }, [delay, value]);\n\n    return debouncedValue;\n};\n\n/*\n * Suggestions should be shown only when:\n * - SearchInput is focussed and there are suggestions\n * - A search suggestion is focused\n */\n\nconst SearchInput = () => {\n    const { t } = useTranslation('common');\n    const [{ searchInput, searchSettings }, dispatch] = useContextState();\n    const [suggestions, setSuggestions] = useState([]);\n    const [showSuggestions, setShowSuggestions] = useState(false);\n    const [focussed, setFocussed] = useState('');\n    const debouncedInput = useDebounce(searchInput);\n\n    useEffect(() => {\n        const getItems = async () => {\n            const items = await getSearchSuggestions(\n                debouncedInput,\n                searchSettings.parent || ''\n            );\n            setSuggestions(items);\n        };\n        if (debouncedInput) {\n            getItems();\n        }\n    }, [debouncedInput, searchSettings.parent]);\n\n    /* Key handling */\n    useEffect(() => {\n        const handleBlockScroll = (e) => {\n            if (e.keyCode === 40 || e.keyCode === 38) {\n                e.preventDefault();\n            }\n            // const UP = 38;\n            // const DOWN = 40;\n        };\n        const handleKeyPress = (e) => {\n            const UP = 38;\n            const DOWN = 40;\n            const ESC = 27;\n            const ENTER = 13;\n            const currentElement = document.activeElement;\n            const keyCode = e.keyCode;\n            const isLink = currentElement\n                ? currentElement.classList.value.indexOf(\n                      styles['SearchInput__Link']\n                  ) > -1\n                : '';\n            const isSearch = currentElement.id === 'search';\n\n            if (isSearch && keyCode === DOWN) {\n                document\n                    .querySelector(\n                        '#suggestions .SearchInput__Link:first-of-type'\n                    )\n                    .focus();\n            }\n\n            if (isSearch && keyCode === ENTER) {\n                setShowSuggestions(false);\n                document.body.classList.remove('Dimmed');\n                dispatch({ type: 'set_current_page', payload: 1 });\n                dispatch({ type: 'set_searching', payload: true });\n            }\n\n            // We are at the first suggestion and press up\n            if (\n                !isSearch &&\n                isLink &&\n                keyCode === UP &&\n                !currentElement.parentElement.previousSibling\n            ) {\n                // Takes the links parent (li) and finds its next sibling (li)\n                // and finds its link and focusses\n                document.querySelector('.SearchInput__Input').focus();\n                currentElement.parentElement.previousSibling\n                    .querySelector('a')\n                    .focus();\n            }\n\n            // We are not at the first suggestion and press up\n            if (\n                !isSearch &&\n                isLink &&\n                keyCode === UP &&\n                currentElement.parentElement.previousSibling\n            ) {\n                // Takes the links parent (li) and finds its previous sibling (li)\n                // and finds its link and focusses\n                currentElement.parentElement.previousSibling\n                    .querySelector('a')\n                    .focus();\n            }\n\n            // We are not at a link and press down\n            if (\n                !isSearch &&\n                isLink &&\n                keyCode === DOWN &&\n                currentElement.parentElement.nextSibling\n            ) {\n                // Takes the links parent (li) and finds its next sibling (li)\n                // and finds its link and focusses\n                currentElement.parentElement.nextSibling\n                    .querySelector('a')\n                    .focus();\n            }\n\n            if (keyCode === ESC) {\n                // Remove focus\n                document.querySelector('.SearchInput__Input').focus();\n                setShowSuggestions(false);\n                document.body.classList.remove('Dimmed');\n            }\n        };\n\n        document.addEventListener('keyup', handleKeyPress);\n        document.addEventListener('keydown', handleBlockScroll);\n\n        return () => {\n            document.removeEventListener('keyup', handleKeyPress);\n            document.removeEventListener('keydown', handleBlockScroll);\n        };\n    }, [dispatch]);\n\n    useEffect(() => {\n        const handleFocus = (e) => {\n            setFocussed(e.target);\n        };\n        const handleClick = (e) => {\n            if (e.target && e.target.classList.contains('Dimmed')) {\n                setShowSuggestions(false);\n                document.body.classList.remove('Dimmed');\n            }\n        };\n\n        document.addEventListener('focusin', handleFocus, true);\n        document.addEventListener('click', handleClick);\n\n        return () => {\n            document.removeEventListener('focusin', handleFocus, true);\n        };\n    }, []);\n\n    useEffect(() => {\n        // if (suggestions.length < 1) {\n        //     setShowSuggestions(false);\n        //     document.body.classList.remove('Dimmed');\n        //     return;\n        // }\n        const focusShouldShow =\n            (focussed && focussed.id == 'search') ||\n            focussed.localName == 'li' ||\n            (focussed &&\n                focussed.classList.contains(styles['SearchInput__Link'])) ||\n            (focussed &&\n                focussed.classList.contains(styles['SearchInput__Button'])) ||\n            (focussed &&\n                focussed.classList.contains(styles['SearchInput__Reset']));\n\n        if (focusShouldShow) {\n            setShowSuggestions(true);\n            document.body.classList.add('Dimmed');\n        } else {\n            setShowSuggestions(false);\n            document.body.classList.remove('Dimmed');\n        }\n    }, [suggestions, focussed]);\n\n    const suggestionsClasses = classNames(styles['SearchInput__Suggestions'], {\n        [styles['SearchInput__Suggestions--HasSuggestions']]: true,\n    });\n    const wrapperClasses = classNames(styles['SearchInput__Wrap'], {\n        [styles['SearchInput__Wrap--ShowsSuggestions']]: showSuggestions,\n    });\n\n    return (\n        <div className={styles['SearchInput']}>\n            <div className={wrapperClasses}>\n                <input\n                    className={styles['SearchInput__Input']}\n                    value={searchInput}\n                    placeholder={t('search.placeholder')}\n                    id=\"search\"\n                    onChange={(e) =>\n                        dispatch({\n                            type: 'set_search_input',\n                            payload: e.target.value,\n                        })\n                    }\n                />\n                {searchInput !== '' && (\n                    <button\n                        onClick={() => dispatch({ type: 'reset_search_input' })}\n                        className={styles['SearchInput__Reset']}\n                        aria-label={t('search.resetSearchAriaLabel')}></button>\n                )}\n                <button\n                    className={styles['SearchInput__Button']}\n                    aria-label={t('search.searchAriaLabel')}\n                    onClick={() => {\n                        dispatch({ type: 'set_current_page', payload: 1 });\n                        dispatch({ type: 'set_searching', payload: true });\n                    }}></button>\n\n                <FadeIn visible={showSuggestions}>\n                    <div\n                        role=\"region\"\n                        aria-live=\"polite\"\n                        id=\"suggestions\"\n                        className={suggestionsClasses}>\n                        <ol>\n                            {suggestions.map((item) => {\n                                return (\n                                    <li key={item.href}>\n                                        <a\n                                            className={\n                                                styles['SearchInput__Link']\n                                            }\n                                            href={item.href}>\n                                            {item.title}\n                                        </a>\n                                    </li>\n                                );\n                            })}\n                            {searchInput && (\n                                <li\n                                    className={\n                                        styles['SearchInput__SearchLink']\n                                    }>\n                                    <button\n                                        className={styles['SearchInput__Link']}\n                                        onClick={() => {\n                                            dispatch({\n                                                type: 'set_current_page',\n                                                payload: 1,\n                                            });\n                                            dispatch({\n                                                type: 'set_searching',\n                                                payload: true,\n                                            });\n                                            setShowSuggestions(false);\n                                            document.body.classList.remove(\n                                                'Dimmed'\n                                            );\n                                        }}>\n                                        {`${t(\n                                            'search.searchAriaLabel'\n                                        )}: \"${searchInput}\"`}\n                                    </button>\n                                </li>\n                            )}\n                        </ol>\n                    </div>\n                </FadeIn>\n            </div>\n        </div>\n    );\n};\n\nSearchInput.propTypes = {};\n\nSearchInput.defaultProps = {};\n\nexport default SearchInput;\n","import SearchInput from './SearchInput';\n\nexport default SearchInput;\n","import React, { useEffect, useState, useRef } from 'react';\n// import PropTypes from 'prop-types';\nimport { useContextState } from '../StateProvider';\nimport useMediaQuery from '../../utils/useMediaQuery';\nimport { breakpoints } from '../../constants';\nimport classNames from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport styles from './SearchChips.module.scss';\n\nconst SearchChips = () => {\n    const { t } = useTranslation('common');\n    const [showShowMore, setShowShowMore] = useState(false);\n    const [{ activeChips, categories }, dispatch] = useContextState();\n    const chips = useRef(null);\n\n    const isMobile = useMediaQuery({\n        query: `(max-width: ${breakpoints.l}px)`,\n    });\n\n    useEffect(() => {\n        if (!chips.current) {\n            return;\n        }\n\n        const firstChip = chips.current.querySelector('button:first-of-type');\n        const lastChip = chips.current.querySelector('button:last-of-type');\n\n        if (!isMobile && firstChip.offsetTop < lastChip.offsetTop) {\n            setShowShowMore(true);\n        }\n    }, [chips, isMobile]);\n\n    const chipsSort = (a, b) => {\n        // This sort function will sort by\n        // 1) If it is selected\n        // 2) Alphabetically\n\n        let aTitle = a.title;\n        let bTitle = b.title;\n\n        // Sort by if it's selected or not\n        const aIndex = activeChips.indexOf(a.path);\n        const bIndex = activeChips.indexOf(b.path);\n        if (aIndex > -1 && bIndex === -1) {\n            return -1;\n        }\n        if (bIndex > -1 && aIndex === -1) {\n            return 1;\n        }\n\n        if (aTitle < bTitle) {\n            return -1;\n        }\n        if (aTitle > bTitle) {\n            return 1;\n        }\n    };\n\n    const chipsClassname = classNames(styles['SearchChips__Chips'], {\n        [styles['SearchChips__Chips--ShowMore']]: isMobile || !showShowMore,\n    });\n\n    if (!categories || categories.length < 2) {\n        return null;\n    }\n\n    return (\n        <div className={styles['SearchChips']}>\n            <div className={styles['SearchChips__SubLabel']}>\n                {t('search.categoriesLabel')}\n                {activeChips.length > 1 && (\n                    <button\n                        onClick={() => dispatch({ type: 'clear_chips' })}\n                        className={styles['SearchChips__Reset']}>\n                        {t('search.clearAll')}\n                    </button>\n                )}\n            </div>\n            <div className={styles['SearchChips__ChipsWrap']}>\n                <div className={chipsClassname} ref={chips}>\n                    {categories.sort(chipsSort).map((item) => {\n                        const cls = classNames(styles['SearchChips__Chip'], {\n                            [styles['SearchChips__Chip--Active']]:\n                                activeChips.indexOf(item.path) > -1,\n                        });\n                        return (\n                            <button\n                                key={item.path}\n                                onFocus={() => setShowShowMore(false)}\n                                onClick={() => {\n                                    dispatch({\n                                        type: 'toggle_active_chip',\n                                        payload: item.path,\n                                    });\n                                    dispatch({\n                                        type: 'set_current_page',\n                                        payload: 1,\n                                    });\n                                    dispatch({\n                                        type: 'set_searching',\n                                        payload: true,\n                                    });\n                                }}\n                                className={cls}>\n                                {item.title}\n                            </button>\n                        );\n                    })}\n                </div>\n            </div>\n            {!isMobile && showShowMore && (\n                <button\n                    className={styles['SearchChips__ShowMore']}\n                    onClick={() => {\n                        setShowShowMore(false);\n                    }}>\n                    {t('search.chipsShowMore')}\n                    <span\n                        className={styles['SearchChips__Plus']}\n                        aria-hidden={true}\n                    />\n                </button>\n            )}\n        </div>\n    );\n};\n\nSearchChips.propTypes = {};\n\nSearchChips.defaultProps = {};\n\nexport default SearchChips;\n","import SearchChips from './SearchChips';\n\nexport default SearchChips;\n","import React from 'react';\n// import PropTypes from 'prop-types';\nimport styles from './SearchDropdownRegion.module.scss';\n\nimport { useContextState } from '../StateProvider';\nimport SearchDropdown from '../SearchDropdown';\nimport isEmpty from '../../utils/isEmpty';\nimport { useTranslation } from 'next-i18next';\n\nconst SearchDropdownRegion = () => {\n    const { t } = useTranslation('common');\n    let [{ regions, activeRegions }, dispatch] = useContextState();\n\n    regions = regions || [];\n\n    if (isEmpty(regions) || regions.length < 2) {\n        return null;\n    }\n\n    const getRegionNameByPath = (path) => {\n        const region = regions.filter((item) => item.path === path)[0];\n        return region.title;\n    };\n\n    return (\n        <div className={styles['SearchDropdownRegion']}>\n            <SearchDropdown\n                items={regions}\n                activeItems={activeRegions}\n                getActiveItemTitle={(path) => getRegionNameByPath(path)}\n                dropdownLabel={t('search.regionDropdownLabel')}\n                onItemClick={(item) => {\n                    let payload;\n                    if (activeRegions.indexOf(item.path) > -1) {\n                        payload = [];\n                    } else {\n                        payload = [item.path];\n                    }\n                    dispatch({\n                        type: 'toggle_active_region',\n                        payload: payload,\n                    });\n                    dispatch({\n                        type: 'set_current_page',\n                        payload: 1,\n                    });\n                    dispatch({\n                        type: 'set_searching',\n                        payload: true,\n                    });\n                }}\n            />\n        </div>\n    );\n};\n\nSearchDropdownRegion.propTypes = {};\n\nSearchDropdownRegion.defaultProps = {};\n\nexport default SearchDropdownRegion;\n","import SearchDropdownRegion from './SearchDropdownRegion';\n\nexport default SearchDropdownRegion;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './SearchFilter.module.scss';\nimport { keysToCamelFromSnake } from '../../utils/caseconverters';\nimport SearchInput from '../SearchInput';\nimport SearchChips from '../SearchChips';\nimport SearchDropdownRegion from '../SearchDropdownRegion';\nimport SearchResults from '../SearchResults';\nimport { useContextState } from '../StateProvider';\nimport { useTranslation } from 'next-i18next';\nimport * as api from '../../utils/api';\nimport isEmpty from '../../utils/isEmpty';\nimport classNames from 'classnames';\n\nconst useItems = () => {\n    const [\n        {\n            searching,\n            searchInput,\n            activeChips,\n            activeRegions,\n            searchSettings,\n            sorting,\n            currentPage,\n        },\n        dispatch,\n    ] = useContextState();\n    const [items, setItems] = useState([]);\n    const shouldFetchOnMount = useRef(false);\n    const currentPromise = useRef(null);\n\n    useEffect(() => {\n        if (!searching || !shouldFetchOnMount.current) {\n            // Set to true so this doesn't get triggered again\n            shouldFetchOnMount.current = true;\n            return;\n        }\n\n        const fetchItems = async () => {\n            let ac;\n\n            if ('AbortController' in window) {\n                ac = new AbortController();\n            }\n\n            if (currentPromise.current) {\n                if (ac) {\n                    ac.abort();\n                }\n            }\n\n            const result = api.getSearchResults(\n                currentPage || 1,\n                searchInput,\n                activeChips || '',\n                activeRegions || '',\n                searchSettings.parent || '',\n                searchSettings.pinnedCategory || '',\n                sorting || '',\n                ac\n            );\n            currentPromise.current = result;\n\n            result\n                .then((resp) => {\n                    resp.json().then((data) => {\n                        data = keysToCamelFromSnake(data);\n                        if (data.results) {\n                            let results;\n\n                            if (currentPage > 1) {\n                                results = [...items, ...data.results];\n                            } else {\n                                results = data.results;\n                            }\n\n                            setItems(results);\n\n                            if (\n                                typeof window !== 'undefined' &&\n                                results.length === 0\n                            ) {\n                                window.dataLayer.push({\n                                    event: 'searchNoResults',\n                                    searchQuery: searchInput,\n                                });\n                            }\n\n                            if (searchSettings.useEndCategories) {\n                                dispatch({\n                                    type: 'set_categories',\n                                    payload: data.facets.endCategories,\n                                });\n                            } else {\n                                dispatch({\n                                    type: 'set_categories',\n                                    payload: data.facets.rootCategories,\n                                });\n                            }\n                            dispatch({\n                                type: 'set_meta',\n                                payload: data.meta,\n                            });\n                            dispatch({ type: 'set_searching', payload: false });\n                        }\n                        currentPromise.current = null;\n                    });\n                })\n                .catch((e) => {\n                    // When abort() is called, the fetch() promise rejects with an AbortError.\n                    if (\n                        !(e instanceof DOMException && e.name === 'AbortError')\n                    ) {\n                        throw e;\n                    }\n                });\n        };\n\n        fetchItems();\n    }, [\n        activeChips,\n        activeRegions,\n        dispatch,\n        searchInput,\n        searchSettings.parent,\n        searching,\n        sorting,\n        currentPage,\n        items,\n        searchSettings.useEndCategories,\n        searchSettings.pinnedCategory,\n    ]);\n\n    return items;\n};\n\nconst SearchFilter = ({ children, untranslatedButtonModifiers = [] }) => {\n    const { t } = useTranslation('common');\n    const items = useItems();\n    const [{ regions, isGlobal }, dispatch] = useContextState();\n\n    /* eslint-disable react-hooks/exhaustive-deps */\n    useEffect(() => {\n        if (window.location.search) {\n            dispatch({ type: 'set_searching', payload: true });\n        }\n    }, []);\n    /* eslint-enable react-hooks/exhaustive-deps */\n\n    const classes = classNames(\n        styles['SearchFilter'],\n        {\n            [styles['SearchFilter--Global']]: isGlobal,\n            [styles['SearchFilter--NonGlobal']]: !isGlobal,\n        },\n        untranslatedButtonModifiers.map((x) => styles[x])\n    );\n\n    const headline = isGlobal ? 'search.headlineGlobal' : 'search.headline';\n    const HeadlineWrap = isGlobal ? 'h1' : 'div';\n\n    return (\n        <>\n            <div className={classes}>\n                <div className={styles['SearchFilter__Wrap']}>\n                    <HeadlineWrap>\n                        <label\n                            htmlFor=\"search\"\n                            className={styles['SearchFilter__HeadingLabel']}>\n                            {t(headline)}\n                        </label>\n                    </HeadlineWrap>\n                    <SearchInput />\n                    <div className={styles['SearchFilter__Actions']}>\n                        <SearchChips />\n                        {!isEmpty(regions) && <SearchDropdownRegion />}\n                    </div>\n                </div>\n            </div>\n            {isEmpty(items) && children}\n            {!isEmpty(items) && <SearchResults items={items} />}\n        </>\n    );\n};\n\nSearchFilter.propTypes = {\n    children: PropTypes.oneOfType([\n        PropTypes.arrayOf(PropTypes.node),\n        PropTypes.node,\n    ]),\n};\n\nSearchFilter.defaultProps = {};\n\nexport default SearchFilter;\n","import SearchFilter from './SearchFilter';\n\nexport default SearchFilter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SearchFilter from '../SearchFilter';\nimport StateProvider from '../StateProvider';\nimport { objToQueryString, searchToSearchObj } from '../../utils/url';\nimport { useTranslation } from 'next-i18next';\nimport styles from './Search.module.scss';\n\nconst toggleItem = (items, item) =>\n    items.includes(item) ? items.filter((i) => i !== item) : [...items, item];\n\nconst handleHistoryState = (state) => {\n    const params = {\n        query: state.searchInput,\n        pinned: state.searchSettings.pinnedCategory || '',\n        categories: state.activeChips.join(','),\n        regions: state.activeRegions.join(','),\n        sorting: state.sorting,\n        view: state.view,\n    };\n\n    window.history.replaceState(\n        params,\n        'search',\n        '?' + objToQueryString(params)\n    );\n};\n\nconst reducer = (state, action) => {\n    let newState;\n    switch (action.type) {\n        case 'set_categories':\n            return { ...state, categories: action.payload };\n        case 'set_sorting':\n            newState = { ...state, sorting: action.payload };\n            handleHistoryState(newState);\n            return newState;\n        case 'set_searching':\n            return { ...state, searching: action.payload };\n        case 'set_meta':\n            return { ...state, meta: action.payload };\n        case 'set_view':\n            newState = { ...state, view: action.payload };\n            handleHistoryState(newState);\n            return newState;\n        case 'set_current_page':\n            return { ...state, currentPage: action.payload };\n        case 'set_search_input':\n            newState = { ...state, searchInput: action.payload };\n            handleHistoryState(newState);\n            return newState;\n        case 'clear_chips':\n            return { ...state, activeChips: [] };\n        case 'reset_search_input':\n            return { ...state, searchInput: '' };\n        case 'toggle_active_region':\n            newState = {\n                ...state,\n                activeRegions: action.payload,\n            };\n            handleHistoryState(newState);\n            return newState;\n        case 'toggle_active_chip':\n            newState = {\n                ...state,\n                activeChips: toggleItem(state.activeChips, action.payload),\n            };\n            handleHistoryState(newState);\n            return newState;\n        default:\n            return state;\n    }\n};\n\nconst getBaseState = ({ t }) => {\n    return {\n        searchInput: '',\n        searching: false,\n        meta: {},\n        currentPage: 1,\n        activeChips: [],\n        activeRegions: [],\n        sorting: 'relevance',\n        view: 'grid',\n        sortChoices: [\n            {\n                title: t('search.sortChoices.relevence'),\n                path: 'relevance',\n            },\n            {\n                title: t('search.sortChoices.new'),\n                path: '-published_at',\n            },\n            {\n                title: t('search.sortChoices.popularity'),\n                path: '-popularity',\n            },\n        ],\n    };\n};\n\nconst Search = ({\n    isGlobal = false,\n    searchSettings,\n    children,\n    embeddedByContainer,\n}) => {\n    const { t } = useTranslation('common');\n\n    let searchParams = {};\n    if (typeof window !== 'undefined') {\n        searchParams = searchToSearchObj(window.location.search);\n    }\n\n    if (searchSettings.pinnedCategory) {\n        searchParams.pinnedCategory = searchSettings.pinnedCategory;\n    } else {\n        searchParams.pinnedCategory = '';\n    }\n\n    const initialState = {\n        ...getBaseState({ t }),\n        searchInput: searchSettings.searchInput || '',\n        categories: searchSettings.categories,\n        regions: searchSettings.regions,\n        activeRegions: searchSettings.activeRegions || [],\n        activeChips: searchSettings.activeChips || [],\n        view: searchParams.view,\n        isGlobal: !!isGlobal,\n        searchSettings,\n        ...searchParams,\n    };\n\n    return (\n        <StateProvider reducer={reducer} initialState={initialState}>\n            <SearchFilter\n                untranslatedButtonModifiers={[\n                    `SearchFilter--${embeddedByContainer}`,\n                ]}>\n                {children}\n            </SearchFilter>\n        </StateProvider>\n    );\n};\n\nSearch.propTypes = {\n    children: PropTypes.oneOfType([\n        PropTypes.arrayOf(PropTypes.node),\n        PropTypes.node,\n    ]),\n    destinations: PropTypes.array,\n    searchSettings: PropTypes.object,\n    isGlobal: PropTypes.bool,\n    embeddedByContainer: PropTypes.string,\n};\n\nSearch.defaultProps = {\n    searchSettings: {\n        categories: [],\n    },\n};\n\nexport default Search;\n","import Search from './Search';\n\nexport default Search;\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchChips__Chip\":\"SearchChips_SearchChips__Chip__s4qIU\",\"SearchChips__SubLabel\":\"SearchChips_SearchChips__SubLabel__31JpY\",\"SearchChips__ShowMore\":\"SearchChips_SearchChips__ShowMore__fTROC\",\"SearchChips\":\"SearchChips_SearchChips__VbzV1\",\"SearchChips__Reset\":\"SearchChips_SearchChips__Reset__v0FIB\",\"SearchChips__ChipsWrap\":\"SearchChips_SearchChips__ChipsWrap__lQP9a\",\"SearchChips__Chips\":\"SearchChips_SearchChips__Chips__DY3wT\",\"SearchChips__Chips--ShowMore\":\"SearchChips_SearchChips__Chips--ShowMore__wBUME\",\"SearchChips__Plus\":\"SearchChips_SearchChips__Plus__vyHQA\",\"SearchChips__Chip--Active\":\"SearchChips_SearchChips__Chip--Active__5GHPM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchDropdownRegion\":\"SearchDropdownRegion_SearchDropdownRegion__rvC6_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchFilter__Wrap\":\"SearchFilter_SearchFilter__Wrap__X0BdE\",\"SearchFilter--Global\":\"SearchFilter_SearchFilter--Global__T6Qvd\",\"SearchFilter__HeadingLabel\":\"SearchFilter_SearchFilter__HeadingLabel__X512a\",\"SearchFilter__SubLabel\":\"SearchFilter_SearchFilter__SubLabel__dtIvD\",\"SearchFilter--NonGlobal\":\"SearchFilter_SearchFilter--NonGlobal__ivUsX\",\"SearchFilter\":\"SearchFilter_SearchFilter__prBqr\",\"SearchFilter--LandingPage\":\"SearchFilter_SearchFilter--LandingPage__nUMXL\",\"LandingPage\":\"SearchFilter_LandingPage__wWitr\",\"SearchFilter__Label\":\"SearchFilter_SearchFilter__Label__KZ_3H\",\"SearchFilter__Actions\":\"SearchFilter_SearchFilter__Actions__IAyO1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchInput__Link\":\"SearchInput_SearchInput__Link__QDO0z\",\"SearchInput__Wrap\":\"SearchInput_SearchInput__Wrap__6lWCT\",\"SearchInput__Wrap--ShowsSuggestions\":\"SearchInput_SearchInput__Wrap--ShowsSuggestions__vBslX\",\"SearchInput__Button\":\"SearchInput_SearchInput__Button__S8l04\",\"SearchInput__Input\":\"SearchInput_SearchInput__Input__Hj_MZ\",\"SearchInput__Reset\":\"SearchInput_SearchInput__Reset__zDbbz\",\"SearchInput__Suggestions\":\"SearchInput_SearchInput__Suggestions__6XqpR\",\"SearchInput__Suggestions--HasSuggestions\":\"SearchInput_SearchInput__Suggestions--HasSuggestions__lnfQ8\",\"SearchInput__SearchLink\":\"SearchInput_SearchInput__SearchLink__5MFvV\"};"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timeout","setTimeout","clearTimeout","SearchInput","t","useTranslation","searchInput","searchSettings","dispatch","useContextState","suggestions","setSuggestions","showSuggestions","setShowSuggestions","focussed","setFocussed","debouncedInput","getItems","getSearchSuggestions","parent","handleBlockScroll","e","keyCode","preventDefault","handleKeyPress","currentElement","document","activeElement","isLink","classList","indexOf","styles","isSearch","id","querySelector","focus","body","remove","type","payload","parentElement","previousSibling","nextSibling","addEventListener","removeEventListener","handleFocus","target","contains","localName","add","suggestionsClasses","classNames","wrapperClasses","jsx_runtime","jsx","div","className","jsxs","input","placeholder","onChange","button","onClick","aria-label","FadeIn","visible","role","aria-live","ol","map","li","a","href","item","title","concat","propTypes","defaultProps","SearchChips","showShowMore","setShowShowMore","activeChips","categories","chips","useRef","isMobile","useMediaQuery","query","breakpoints","l","current","firstChip","lastChip","offsetTop","chipsClassname","length","ref","sort","b","aTitle","bTitle","aIndex","path","bIndex","cls","onFocus","span","aria-hidden","SearchDropdownRegion","regions","activeRegions","isEmpty","getRegionNameByPath","region","filter","SearchDropdown","items","activeItems","getActiveItemTitle","dropdownLabel","onItemClick","useItems","searching","sorting","currentPage","setItems","shouldFetchOnMount","currentPromise","fetchItems","ac","window","AbortController","abort","result","api","pinnedCategory","then","resp","json","data","keysToCamelFromSnake","results","dataLayer","push","event","searchQuery","useEndCategories","facets","endCategories","rootCategories","meta","catch","DOMException","name","SearchFilter","children","untranslatedButtonModifiers","param","isGlobal","location","search","classes","x","headline","HeadlineWrap","Fragment","label","htmlFor","SearchResults","PropTypes","toggleItem","includes","i","handleHistoryState","params","state","pinned","join","view","history","replaceState","objToQueryString","reducer","action","newState","_object_spread_props","_","_object_spread","getBaseState","sortChoices","Search","embeddedByContainer","searchParams","searchToSearchObj","initialState","StateProvider","destinations","components_Search","module","exports"],"sourceRoot":""}