{"version":3,"file":"javascripts/chunks/1a0353c0944525bfc308.search.js","mappings":"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","sources":["webpack:///./components/button/Button.jsx","webpack:///./components/search/javascripts/components/NoResultsBoundary/NoResultsBoundary.tsx","webpack:///./components/search/javascripts/components/SearchFilter/SearchFilter.tsx","webpack:///./components/search/javascripts/components/SearchHit/SearchHit.tsx","webpack:///./components/search/javascripts/components/SearchHits/SearchHits.tsx","webpack:///./components/search/javascripts/components/SearchNoResults/SearchNoResults.tsx","webpack:///./components/search/javascripts/hooks/useConsent.tsx","webpack:///./components/search/javascripts/components/Autocomplete/Autocomplete.tsx","webpack:///./components/search/javascripts/components/Consent/Consent.tsx","webpack:///./components/search/javascripts/components/Search/Search.tsx","webpack:///./components/search/javascripts/search.jsx","webpack:///./store/navigation.ts"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport withModifier from '../../twig-extensions/filter/withModifier';\n\nimport Icon from '../icon/Icon.jsx';\nimport Spinner from '../spinner/Spinner.jsx';\nimport Text from '../text/Text.jsx';\n\nconst Button = ({\n label,\n type,\n disabled,\n variant,\n labelVariant,\n className,\n modifiers,\n onClick,\n hiddenLabel,\n icon,\n iconSize,\n isLoading\n}) => (\n \n {icon && !isLoading && (\n \n )}\n {isLoading && }\n {hiddenLabel ? null : (\n \n {label}\n \n )}\n \n);\n\nButton.propTypes = {\n label: PropTypes.string.isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n variant: PropTypes.string,\n labelVariant: PropTypes.string,\n className: PropTypes.string,\n modifiers: PropTypes.arrayOf(PropTypes.string),\n onClick: PropTypes.func,\n hiddenLabel: PropTypes.bool,\n icon: PropTypes.string,\n iconSize: PropTypes.string,\n isLoading: PropTypes.bool\n};\n\nButton.defaultProps = {\n type: 'button',\n disabled: false,\n variant: undefined,\n labelVariant: 'button',\n className: '',\n modifiers: [],\n onClick: null,\n hiddenLabel: false,\n icon: null,\n iconSize: 'small',\n isLoading: false\n};\n\nexport default Button;\n","import { useInstantSearch } from 'react-instantsearch';\nimport * as React from 'react';\n\nexport type NoResultsBoundaryProps = {\n children?: React.ReactNode;\n fallback: React.ReactNode;\n};\n\nconst NoResultsBoundary = ({ children, fallback }: NoResultsBoundaryProps) => {\n const { results } = useInstantSearch();\n\n // The `__isArtificial` flag makes sure not to display the No Results message\n // when no hits have been returned.\n // eslint-disable-next-line no-underscore-dangle\n if (!results.__isArtificial && results.nbHits === 0) {\n return (\n <>\n {fallback}\n \n \n );\n }\n\n return <>{children};\n};\n\nexport default NoResultsBoundary;\n","import {\n UseMenuProps,\n useClearRefinements,\n useMenu\n} from 'react-instantsearch';\nimport * as React from 'react';\n\nimport FilterList from '../../../../filter-list/FilterList';\nimport FilterListItem from '../../../../filter-list/FilterListItem';\n\nexport type SearchFilterProps = {\n /**\n * Label for the show all button. Omit the label to hide the button.\n */\n showAllLabel?: string;\n\n /**\n * Minimum amount of facets that need to be available for the filters to be shown.\n */\n minFacets?: number;\n} & UseMenuProps;\n\nconst SearchFilter = ({\n showAllLabel,\n minFacets = 1,\n ...props\n}: SearchFilterProps) => {\n const { attribute } = props;\n\n const { items, refine } = useMenu(props);\n\n const { refine: clear, canRefine: isRefined } = useClearRefinements({\n includedAttributes: [attribute]\n });\n\n return items.length >= minFacets ? (\n \n {showAllLabel && (\n \n )}\n\n {items.map((item) => (\n refine(value)}\n />\n ))}\n \n ) : null;\n};\n\nexport default SearchFilter;\n","import { Highlight, Snippet } from 'react-instantsearch';\nimport { SendEventForHits } from 'instantsearch.js/es/lib/utils';\nimport * as React from 'react';\nimport type { Hit } from 'instantsearch.js';\n\nimport { SearchConfig, SearchHitData } from '../../types';\nimport SearchTeaser from '../../../../search-teaser/SearchTeaser';\nimport type { WatchlistItem } from '../../../../../store/watchlist';\nimport useWatchlistStore from '../../../../watchlist/javascripts/hooks/useStore';\n\nexport type SearchHitProps = {\n hit: Hit;\n sendEvent: SendEventForHits;\n translations: SearchConfig['settings'];\n};\n\nconst SearchHit = ({ hit, sendEvent, translations }: SearchHitProps) => {\n const storage = useWatchlistStore((state) => state.storage);\n const addItem = useWatchlistStore((state) => state.addItem);\n const removeItem = useWatchlistStore((state) => state.removeItem);\n\n const watched = React.useMemo(\n () => storage.find((i) => i.id === hit.distinctID && i.type === hit.type),\n [storage, hit]\n );\n\n const onDelete = React.useMemo(() => {\n if (watched) {\n return () => removeItem(hit.distinctID);\n }\n\n return undefined;\n }, [watched, removeItem, hit]);\n\n const onAdd = React.useMemo(() => {\n if (!watched) {\n return () => {\n addItem({\n type: hit.type as WatchlistItem['type'],\n id: hit.distinctID\n });\n\n sendEvent('click', hit, 'Added To Watchlist');\n };\n }\n\n return undefined;\n }, [watched, addItem, sendEvent, hit]);\n\n return (\n }\n description={}\n startDate={hit.startDate ? hit.startDate * 1000 : null}\n tags={hit.mainTopic ? [hit.mainTopic] : null}\n image={hit.image}\n type={hit.sectionType}\n link={hit.url}\n labels={translations}\n onDelete={onDelete}\n onAdd={onAdd}\n onCopy={() => sendEvent('click', hit, 'Copied To Clipboard')}\n onClickLink={() => sendEvent('click', hit, 'Hit Clicked')}\n />\n );\n};\n\nexport default SearchHit;\n","import { BaseHit, Hit } from 'instantsearch.js';\nimport { SendEventForHits } from 'instantsearch.js/es/lib/utils';\nimport {\n useInfiniteHits,\n UseInfiniteHitsProps,\n useInstantSearch\n} from 'react-instantsearch';\nimport * as React from 'react';\n\nimport Icon from '../../../../icon/Icon.jsx';\nimport Spinner from '../../../../spinner/Spinner.jsx';\nimport Text from '../../../../text/Text.jsx';\n\nimport { SearchConfig } from '../../types';\n\nexport type SearchHitsProps =\n UseInfiniteHitsProps & {\n translations: SearchConfig['labels'];\n hitComponent: React.JSXElementConstructor<{\n hit: Hit;\n sendEvent: SendEventForHits;\n }>;\n };\n\nconst SearchHits = ({\n translations,\n hitComponent: HitComponent,\n ...props\n}: SearchHitsProps) => {\n const { status } = useInstantSearch();\n\n const { hits, results, isLastPage, showMore, sendEvent } =\n useInfiniteHits(props);\n\n return (\n
\n
    \n {hits.map((hit) => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n
  1. \n \n
  2. \n ))}\n
\n\n
\n {status === 'stalled' ? (\n \n ) : (\n <>\n \n {translations.viewing\n .replace('[[count]]', `${hits.length}`)\n .replace('[[total]]', `${results?.nbHits}`)}\n \n\n \n \n \n {translations.loadMore}\n \n \n \n )}\n
\n
\n );\n};\n\nexport default SearchHits;\n","import * as React from 'react';\n\nimport Text from '../../../../text/Text.jsx';\n\nimport { SearchConfig } from '../../types';\n\nexport type SearchNoResultsProps = {\n translations: SearchConfig['labels'];\n};\n\nconst SearchNoResults = ({ translations }: SearchNoResultsProps) => (\n
\n {translations.noResults}\n
\n);\n\nexport default SearchNoResults;\n","import * as React from 'react';\n\nconst useConsent = () => {\n const [hasConsent, setHasConsent] = React.useState(null);\n const consent = window.CookieFirst?.consent;\n\n React.useEffect(() => {\n setHasConsent(consent?.performance);\n }, [consent]);\n\n return hasConsent;\n};\n\nexport default useConsent;\n","/* eslint-disable react/button-has-type */\nimport React from 'react';\n\nimport type { SearchClient } from 'algoliasearch/lite';\nimport type { Hit } from 'instantsearch.js';\n\nimport {\n Highlight,\n useSearchBox,\n UseSearchBoxProps\n} from 'react-instantsearch';\n\nimport {\n createAutocomplete,\n AutocompleteState\n} from '@algolia/autocomplete-core';\n\nimport { getAlgoliaResults } from '@algolia/autocomplete-preset-algolia';\n\nimport Icon from '../../../../icon/Icon.jsx';\n\nimport { SearchConfig } from '../../types';\n\ntype AutocompleteProps = UseSearchBoxProps & {\n searchClient: SearchClient;\n indexName: string;\n translations: SearchConfig['labels'];\n};\n\ntype AutocompleteItem = Hit<{\n objectID: string;\n query: string;\n popularity: number;\n}>;\n\nconst Autocomplete = ({\n searchClient,\n indexName,\n translations,\n ...props\n}: AutocompleteProps) => {\n const { query: searchQuery, refine: setQuery } = useSearchBox(props);\n const inputRef = React.useRef(null);\n\n const [autocompleteState, setAutocompleteState] = React.useState<\n AutocompleteState\n >({\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n query: searchQuery,\n activeItemId: null,\n status: 'idle'\n });\n\n const isSearchStalled = autocompleteState.status === 'stalled';\n\n React.useEffect(() => {\n setQuery(autocompleteState.query);\n }, [autocompleteState]);\n\n const autocomplete = React.useMemo(\n () =>\n createAutocomplete({\n autoFocus: true, \n\n onStateChange({ state }) {\n setAutocompleteState(state);\n },\n getSources() {\n return [\n {\n sourceId: 'suggestions',\n getItemInputValue({ item }) {\n return item.query;\n },\n getItems({ query }) {\n return getAlgoliaResults({\n searchClient,\n queries: [\n {\n indexName,\n query,\n params: {\n hitsPerPage: 4,\n highlightPreTag: '',\n highlightPostTag: ''\n }\n }\n ]\n });\n }\n }\n ];\n }\n }),\n []\n );\n\n return (\n
\n \n \n\n \n \n \n\n
\n );\n};\n\nexport default Autocomplete;\n","/* eslint-disable react/button-has-type */\nimport * as React from 'react';\n\nimport Text from '../../../../text/Text.jsx';\nimport Button from '../../../../button/Button.jsx';\n\nimport { SearchConfig } from '../../types';\n\nexport type ConsentProps = {\n translations: SearchConfig['labels'];\n};\n\nconst Consent = ({ translations }: ConsentProps) => (\n
\n \n {translations.consentHeadline}\n \n \n
\n window.CookieFirst?.acceptCategory('performance')}\n label={translations.consentBtn}\n modifiers={['secondary', 'direction-column']}\n />\n
\n
\n);\nexport default Consent;\n","import {\n Configure,\n InstantSearch,\n UseSearchBoxProps\n} from 'react-instantsearch';\nimport { SearchClient } from 'algoliasearch/lite';\n\nimport * as React from 'react';\nimport aa from 'search-insights';\nimport debounce from 'lodash.debounce';\nimport useConsent from '../../hooks/useConsent';\n\nimport Divider from '../../../../divider/Divider.jsx';\nimport Link from '../../../../link/Link.jsx';\n\nimport NoResultsBoundary from '../NoResultsBoundary';\nimport Autocomplete from '../Autocomplete';\nimport SearchFilter from '../SearchFilter';\nimport SearchHit from '../SearchHit';\nimport SearchHits from '../SearchHits';\nimport SearchNoResults from '../SearchNoResults';\nimport Consent from '../Consent';\n\nimport { SearchConfig, SearchHitData } from '../../types';\n\nwindow.aa = aa;\n\nconst DEBOUNCE_MS = 500;\n\nconst queryHook: UseSearchBoxProps['queryHook'] = debounce(\n (query, search) => search(query),\n DEBOUNCE_MS\n);\n\nexport type SearchProps = {\n searchClient: SearchClient;\n config: SearchConfig;\n};\n\nconst Search = ({ searchClient, config }: SearchProps) => {\n const hasConsent = useConsent();\n\n if (!hasConsent) return ;\n\n return (\n \n \n \n }\n >\n \n items.filter((item) => !config.filter.excluded.includes(item.label))\n }\n />\n\n \n\n {!config.pageSearch && config.extendedSearchLink && (\n
\n \n
\n )}\n\n \n translations={config.labels}\n hitComponent={(props) => (\n \n )}\n />\n \n \n );\n};\n\nexport default Search;\n","import { createRoot } from 'react-dom/client';\nimport algoliasearch from 'algoliasearch/lite';\nimport React from 'react';\n\nimport BaseModule from '../../../javascripts/helpers/baseModule';\nimport navigation from '../../../store/navigation.ts';\n\nimport SearchContainer from './components/Search/index.ts';\n\nexport default class Search extends BaseModule {\n constructor(element) {\n super(element, 'search');\n this.init();\n }\n\n init() {\n const isInNavigation =\n this.elements.self.closest('[data-js-module=\"navigation\"]') !== null;\n\n if (isInNavigation) {\n let isRendered = false;\n\n navigation.subscribe((state, prevState) => {\n const shouldRender =\n !isRendered &&\n state.activeLayer !== prevState.activeLayer &&\n state.activeLayer === 'search';\n\n if (shouldRender) {\n this.render();\n isRendered = true;\n }\n });\n } else {\n this.render();\n }\n }\n\n render() {\n const config = JSON.parse(this.elements.self.dataset.jsModuleConfig);\n\n const searchClient = algoliasearch(\n config.algoliaAppId,\n config.algoliaApiKey\n );\n\n const root = createRoot(this.elements.self);\n\n root.render(\n \n );\n }\n}\n","import create from 'zustand/vanilla';\n\nexport type NavigationState = {\n /**\n * Active navigation layer\n */\n activeLayer: null | string;\n\n /**\n * Set the next active navigation layer\n *\n * @param activeLayer Active navigation layer\n * @returns {void}\n */\n setActiveLayer: (activeLayer: null | string) => void;\n};\n\nconst navigation = create((set) => ({\n activeLayer: null,\n\n setActiveLayer: (activeLayer) => set({ activeLayer })\n}));\n\nexport default navigation;\n"],"names":["Button","label","type","disabled","variant","labelVariant","className","modifiers","onClick","hiddenLabel","icon","iconSize","isLoading","withModifier","title","id","size","tag","propTypes","PropTypes","defaultProps","undefined","children","fallback","results","useInstantSearch","__isArtificial","nbHits","hidden","showAllLabel","minFacets","props","attribute","useMenu","items","refine","useClearRefinements","includedAttributes","clear","isRefined","canRefine","length","FilterList","FilterListItem","value","isActive","map","item","key","hit","sendEvent","translations","storage","useWatchlistStore","state","addItem","removeItem","watched","React","find","i","distinctID","onDelete","onAdd","SearchTeaser","highlightedTitle","Highlight","description","Snippet","startDate","tags","mainTopic","image","sectionType","link","url","labels","onCopy","onClickLink","HitComponent","hitComponent","status","useInfiniteHits","hits","isLastPage","showMore","objectID","Spinner","Text","viewing","replace","Icon","loadMore","noResults","hasConsent","setHasConsent","consent","window","CookieFirst","performance","searchClient","indexName","useSearchBox","searchQuery","query","setQuery","inputRef","collections","completion","context","isOpen","activeItemId","autocompleteState","setAutocompleteState","isSearchStalled","autocomplete","createAutocomplete","autoFocus","onStateChange","getSources","sourceId","getItemInputValue","getItems","getAlgoliaResults","queries","params","hitsPerPage","highlightPreTag","highlightPostTag","getRootProps","getFormProps","inputElement","current","ref","getInputProps","placeholder","submitBtn","resetBtn","getPanelProps","collection","source","getListProps","getItemProps","consentHeadline","html","consentText","acceptCategory","consentBtn","aa","queryHook","debounce","search","config","useConsent","InstantSearch","algoliaIndexName","insights","insightsClient","Configure","attributesToSnippet","algoliaIndexNameSuggestions","NoResultsBoundary","SearchNoResults","SearchFilter","filter","all","sortBy","transformItems","excluded","includes","Divider","pageSearch","extendedSearchLink","Link","href","target","SearchHits","SearchHit","settings","Search","element","init","this","elements","self","closest","isRendered","navigation","prevState","activeLayer","render","JSON","parse","dataset","jsModuleConfig","algoliasearch","algoliaAppId","algoliaApiKey","createRoot","BaseModule","create","set","setActiveLayer"],"sourceRoot":""}