{"version":3,"file":"javascripts/chunks/4cb3afa246013707973c.teaser-focus-filter.js","mappings":"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","sources":["webpack:///./components/button/Button.jsx","webpack:///./components/icon/Icon.jsx","webpack:///./components/spinner/Spinner.jsx","webpack:///./components/tag/Tag.jsx","webpack:///./store/focusFilter.js","webpack:///./components/teaser-focus-filter/javascripts/hooks/useStore.js","webpack:///./components/teaser-focus-filter/javascripts/components/RegionFilter.jsx","webpack:///./components/teaser-focus-filter/javascripts/components/FocusFilter.jsx","webpack:///./components/teaser-focus-filter/javascripts/teaser-focus-filter.jsx","webpack:///./components/text/Text.jsx","webpack:///./javascripts/dom/select.js","webpack:///./javascripts/helpers/baseModule.js","webpack:///../.yarn/__virtual__/zustand-virtual-3c3a7485b4/0/cache/zustand-npm-3.7.2-4cb33a3ae6-18f025b1b6.zip/node_modules/zustand/esm/index.js","webpack:///../.yarn/__virtual__/zustand-virtual-3c3a7485b4/0/cache/zustand-npm-3.7.2-4cb33a3ae6-18f025b1b6.zip/node_modules/zustand/esm/vanilla.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/not-a-regexp.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/same-value.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.array.includes.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.object.assign.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.object.from-entries.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.string.includes.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.string.search.js","webpack:///./twig-extensions/filter/withModifier.js"],"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 PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Icon = ({ className, size, id }) => (\n \n \n \n);\n\nIcon.propTypes = {\n className: PropTypes.string,\n size: PropTypes.string,\n id: PropTypes.string.isRequired\n};\n\nIcon.defaultProps = {\n className: '',\n size: 'small'\n};\n\nexport default Icon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Spinner = ({ className }) => (\n
\n \n \n \n \n \n \n
\n);\n\nSpinner.propTypes = {\n className: PropTypes.string\n};\n\nSpinner.defaultProps = {\n className: ''\n};\n\nexport default Spinner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../icon/Icon.jsx';\nimport Text from '../text/Text.jsx';\n\nconst Tag = ({\n label,\n onClick,\n href,\n target,\n size,\n variant,\n icon,\n className\n}) => {\n const textVariant = size === 'large' ? 'button' : 'copy-label';\n\n const classes = `tag tag--${size} tag--${variant} ${\n icon ? `tag--has-icon` : ''\n } ${className}`;\n\n if (href) {\n return (\n \n \n {label}\n \n {icon && }\n \n );\n }\n\n if (onClick) {\n return (\n \n );\n }\n\n return (\n
\n \n {label}\n \n {icon && }\n
\n );\n};\n\nTag.propTypes = {\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n className: PropTypes.string,\n icon: PropTypes.string,\n onClick: PropTypes.func,\n target: PropTypes.string,\n variant: PropTypes.oneOf(['primary', 'secondary']),\n size: PropTypes.oneOf(['small', 'large'])\n};\n\nTag.defaultProps = {\n href: undefined,\n icon: undefined,\n target: undefined,\n onClick: undefined,\n variant: 'primary',\n size: 'large',\n className: ''\n};\n\nexport default Tag;\n","import create from 'zustand/vanilla';\n\nconst focusFilter = create(() => ({\n /**\n * Focus filter object\n */\n filters: [],\n\n /**\n * Update focusFilter object\n * @param {array} selectedFilters Selected filters\n * @return {void}\n */\n updateFilters: (selectedFilters) => {\n const { setState } = focusFilter;\n\n setState({ filters: selectedFilters });\n }\n}));\n\nexport default focusFilter;\n","import create from 'zustand';\n\nimport focusFilter from '../../../../store/focusFilter';\n\nconst useFocusFilterStore = create(focusFilter);\n\nexport default useFocusFilterStore;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../icon/Icon.jsx';\nimport Button from '../../../button/Button.jsx';\n\nconst RegionFilter = ({\n formAction,\n geoLocationLabel,\n handleSearchValue,\n searchLabel,\n searchValue,\n radiusLabel,\n radiusDefault,\n radiusOptions,\n className\n}) => {\n const [geoLocationSupport, setGeoLocationSupport] = useState(false);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if ('geolocation' in navigator) {\n setGeoLocationSupport(true);\n } else {\n setGeoLocationSupport(false);\n }\n }, []);\n\n const handleGeoLocation = (e) => {\n setLoading(true);\n navigator.geolocation.getCurrentPosition(async (position) => {\n try {\n const response = await fetch(formAction, {\n method: 'POST',\n mode: 'cors',\n cache: 'no-cache',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n latitude: position.coords.latitude,\n longitude: position.coords.longitude\n })\n });\n\n const json = await response.json();\n\n if (json.state === 'success') {\n setLoading(false);\n handleSearchValue((prev) => ({\n ...prev,\n searchValue: json.searchValue\n }));\n } else if (json.state === 'error') {\n setLoading(false);\n }\n } catch (err) {\n setLoading(false);\n }\n });\n };\n\n return (\n // Styles from teaser regions filter\n
\n {geoLocationSupport && (\n handleGeoLocation(e)}\n label={loading ? 'Loading...' : geoLocationLabel}\n icon=\"geoLocation\"\n iconSize=\"large\"\n labelVariant=\"copy-label\"\n className=\"regions-filter__geo-button\"\n modifiers={['tertiary', 'direction-column']}\n />\n )}\n\n
\n \n \n handleSearchValue((prev) => ({\n ...prev,\n searchValue: e.target.value\n }))\n }\n className=\"regions-filter__search-input\"\n />\n\n \n handleSearchValue((prev) => ({\n ...prev,\n radiusValue: e.target.value\n }))\n }\n className=\"regions-filter__search-select\"\n >\n \n {radiusOptions.map((radius) => (\n \n ))}\n \n \n
\n
\n );\n};\n\nRegionFilter.propTypes = {\n formAction: PropTypes.string.isRequired,\n geoLocationLabel: PropTypes.string.isRequired,\n handleSearchValue: PropTypes.func.isRequired,\n searchLabel: PropTypes.string.isRequired,\n searchValue: PropTypes.string,\n radiusLabel: PropTypes.string.isRequired,\n radiusDefault: PropTypes.string.isRequired,\n radiusOptions: PropTypes.arrayOf(PropTypes.number).isRequired,\n className: PropTypes.string\n};\n\nRegionFilter.defaultProps = {\n searchValue: '',\n className: ''\n};\n\nexport default RegionFilter;\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n Accordion,\n AccordionItem,\n AccordionItemHeading,\n AccordionItemButton,\n AccordionItemPanel\n} from 'react-accessible-accordion';\n\nimport useStore from '../hooks/useStore';\n\nimport Text from '../../../text/Text.jsx';\nimport Tag from '../../../tag/Tag.jsx';\nimport Button from '../../../button/Button.jsx';\nimport RegionFilter from './RegionFilter.jsx';\n\nconst renderFilters = (\n filters,\n settings,\n tempFilters,\n setTempFilters,\n updateFilters,\n setShowFilters\n) => {\n const [regionFilter, setRegionFilter] = useState({\n searchValue: '',\n radiusValue: ''\n });\n\n return (\n \n {filters.map((filterGroup, i) => (\n \n \n \n {filterGroup.label}\n \n \n \n {filterGroup.handle === 'locations' ? (\n <>\n \n {tempFilters.map(\n (tempFilter) =>\n tempFilter.parent === 'locations' && (\n 0 &&\n tempFilters.some((f) => f.slug === tempFilter.slug)\n ? ''\n : 'border'\n }\n onClick={() =>\n setTempFilters((state) =>\n state.includes(tempFilter)\n ? state.filter((f) => f.slug !== tempFilter.slug)\n : [...state, tempFilter]\n )\n }\n />\n )\n )}\n \n ) : (\n <>\n {filterGroup.children.map((groupFilter) => (\n 0 &&\n tempFilters.some((f) => f.slug === groupFilter.slug)\n ? ''\n : 'border'\n }\n onClick={() =>\n setTempFilters((state) =>\n state.some((e) => e.slug === groupFilter.slug)\n ? state.filter((f) => f.slug !== groupFilter.slug)\n : [...state, groupFilter]\n )\n }\n />\n ))}\n \n )}\n \n setTempFilters((state) =>\n state.filter((f) => f.parent !== filterGroup.handle)\n )\n }\n />\n\n
\n {\n document\n .querySelectorAll('.teaser-focus-filter__group-btn')\n [i].click();\n setShowFilters(false);\n if (filterGroup.handle !== 'locations') {\n updateFilters(tempFilters);\n } else {\n const locationFilterValue =\n // eslint-disable-next-line no-nested-ternary\n regionFilter.searchValue && regionFilter.radiusValue\n ? `${regionFilter.searchValue}:${regionFilter.radiusValue}`\n : regionFilter.searchValue\n ? regionFilter.searchValue\n : null;\n\n if (locationFilterValue) {\n const locationFilter = {\n label: locationFilterValue,\n slug: locationFilterValue,\n parent: 'locations'\n };\n\n setTempFilters((state) =>\n state.some((e) => e.slug === locationFilter.slug)\n ? state.filter((f) => f.slug !== locationFilter.slug)\n : [...state, locationFilter]\n );\n\n updateFilters(\n tempFilters.some((e) => e.slug === locationFilter.slug)\n ? tempFilters.filter(\n (f) => f.slug !== locationFilter.slug\n )\n : [...tempFilters, locationFilter]\n );\n } else {\n updateFilters(tempFilters);\n }\n }\n }}\n />\n
\n
\n
\n ))}\n
\n );\n};\n\nconst FocusFilter = ({ data }) => {\n const { settings, filters, emptyState } = data;\n const [showFilters, setShowFilters] = useState(false);\n const [tempFilters, setTempFilters] = useState([]);\n const filtersRef = useRef(null);\n\n const updateFilters = useStore((state) => state.updateFilters);\n const activeFilters = useStore((state) => state.filters);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (filtersRef.current && !filtersRef.current.contains(event.target)) {\n setShowFilters(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [filtersRef]);\n\n useEffect(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const params = Object.fromEntries(urlSearchParams.entries());\n\n if (params?.f) {\n const decodedFilters = JSON.parse(window.atob(params.f));\n setTempFilters(decodedFilters);\n updateFilters(decodedFilters);\n }\n }, []);\n\n useEffect(() => {\n const url = new URL(window.location);\n if (activeFilters.length === 0) {\n url.searchParams.delete('f');\n } else {\n const encodedActiveFilters = window.btoa(JSON.stringify(activeFilters));\n url.searchParams.set('f', encodedActiveFilters);\n }\n\n window.history.pushState(null, '', url.toString());\n }, [activeFilters]);\n\n return (\n <>\n
\n setShowFilters(!showFilters)}\n className=\"teaser-focus-filter__toggle\"\n >\n {settings.toggle}\n \n \n {renderFilters(\n filters,\n settings,\n tempFilters,\n setTempFilters,\n updateFilters,\n setShowFilters\n )}\n
\n \n\n
\n {activeFilters.length > 0 ? (\n
\n {settings.focusLabel}\n
\n {activeFilters.map((activeFilter) => (\n {\n setTempFilters((state) =>\n state.filter((f) => f.slug !== activeFilter.slug)\n );\n updateFilters(\n activeFilters.filter((f) => f.slug !== activeFilter.slug)\n );\n }}\n />\n ))}\n {\n setTempFilters([]);\n updateFilters([]);\n }}\n />\n
\n
\n ) : (\n
\n {emptyState.headline}\n {emptyState.copy}\n
\n )}\n
\n \n );\n};\n\nFocusFilter.propTypes = {\n data: PropTypes.shape({\n settings: PropTypes.shape({\n toggle: PropTypes.string,\n reset: PropTypes.string,\n apply: PropTypes.string,\n focusLabel: PropTypes.string\n }),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.shape())\n })\n ),\n emptyState: PropTypes.shape({\n headline: PropTypes.string,\n copy: PropTypes.string\n })\n }).isRequired\n};\n\nexport default FocusFilter;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport BaseModule from '../../../javascripts/helpers/baseModule';\n\nimport FocusFilter from './components/FocusFilter.jsx';\n\nexport default class TeaserRegions extends BaseModule {\n constructor(element) {\n super(element, 'teaser-focus-filter');\n\n this.init();\n }\n\n init() {\n const config = JSON.parse(this.elements.self.dataset.jsModuleConfig);\n const root = createRoot(this.elements.self);\n root.render();\n }\n}\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport withModifier from '../../twig-extensions/filter/withModifier';\n\nconst Text = React.forwardRef(\n ({ className, modifiers = [], children, html, tag, variant }, ref) => {\n const Tag = tag;\n\n if (html) {\n return (\n \n );\n }\n\n return (\n \n {children}\n \n );\n }\n);\n\nText.propTypes = {\n className: PropTypes.string,\n modifiers: PropTypes.arrayOf(PropTypes.string),\n children: PropTypes.node,\n html: PropTypes.string,\n variant: PropTypes.string,\n tag: PropTypes.oneOf([\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h5',\n 'h6',\n 'span',\n 'figcaption',\n 'cite',\n 'label',\n 'legend',\n 'small',\n 'div'\n ])\n};\n\nText.defaultProps = {\n className: '',\n modifiers: [],\n children: null,\n html: null,\n variant: 'copy',\n tag: 'p'\n};\n\nexport default Text;\n","/**\n * This methods selects Elements from a specific context by a selector\n * @param {string} selector Selector of the element to find\n * @param {Element|HTMLDocument} [element] Context of the selectable\n * @returns {Array} Am array with selected Elements\n */\nexport default (selector, element = window.document) =>\n [].slice.call(element.querySelectorAll(selector));\n","import select from '../dom/select';\n\nclass BaseModule {\n constructor(element, id) {\n this.id = id;\n this.elements = {\n self: element\n };\n\n this.setInitialized();\n }\n\n setInitialized() {\n if (this.elements.self) {\n this.elements.self.setAttribute('data-js-module-initialized', true);\n }\n }\n\n setUnInitialized() {\n if (this.elements.self) {\n this.elements.self.removeAttribute('data-js-module-initialized');\n }\n }\n\n /**\n * Selects DOMElements of a module with a specific data attribute (`data-js-element=\"${module}__${selector}\"`)\n * Receives an object where the id param is the key in the elements cache\n * The selector param of the config is the selector part in the query-selector described above\n * @param {Object} config Configuration object in a key value format\n * @returns {void}\n */\n getElements(config) {\n const elementsConfig = config.map((elementConfig) => ({\n ...elementConfig,\n selector: `${this.id}__${elementConfig.selector}`\n }));\n\n const domElements = select('[data-js-element]', this.elements.self);\n\n for (let i = 0; i < domElements.length; i += 1) {\n const domElement = domElements[i];\n const elementConfigCandidates = elementsConfig.filter(\n (singleConfig) =>\n domElement.getAttribute('data-js-element') === singleConfig.selector\n );\n\n const [elementConfig] = elementConfigCandidates;\n\n if (elementConfig) {\n if (typeof this.elements[elementConfig.id] === 'undefined') {\n this.elements[elementConfig.id] = domElement;\n } else {\n if (typeof this.elements[elementConfig.id].push === 'undefined') {\n this.elements[elementConfig.id] = [this.elements[elementConfig.id]];\n }\n this.elements[elementConfig.id].push(domElement);\n }\n }\n }\n\n /*\n * Append a attribute \"asList\" to each element/s in this.elements\n * which is always an array no matter if element/s is an array\n * or a single HTMLElement\n */\n\n const asList = (obj) => (typeof obj.push === 'undefined' ? [obj] : obj);\n Object.values(this.elements).forEach((obj) => {\n obj.asList = asList(obj); // eslint-disable-line no-param-reassign\n });\n }\n}\n\nexport default BaseModule;\n","import { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from 'react';\n\nfunction createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useStore = (selector = api.getState, equalityFn = Object.is) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0);\n const state = api.getState();\n const stateRef = useRef(state);\n const selectorRef = useRef(selector);\n const equalityFnRef = useRef(equalityFn);\n const erroredRef = useRef(false);\n const currentSliceRef = useRef();\n if (currentSliceRef.current === void 0) {\n currentSliceRef.current = selector(state);\n }\n let newStateSlice;\n let hasNewStateSlice = false;\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n useIsomorphicLayoutEffect(() => {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n const stateBeforeSubscriptionRef = useRef(state);\n useIsomorphicLayoutEffect(() => {\n const listener = () => {\n try {\n const nextState = api.getState();\n const nextStateSlice = selectorRef.current(nextState);\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n const unsubscribe = api.subscribe(listener);\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n return unsubscribe;\n }, []);\n const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n useDebugValue(sliceToReturn);\n return sliceToReturn;\n };\n Object.assign(useStore, api);\n useStore[Symbol.iterator] = function() {\n console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n const items = [useStore, api];\n return {\n next() {\n const done = items.length <= 0;\n return { value: items.shift(), done };\n }\n };\n };\n return useStore;\n}\n\nexport { create as default };\n","function createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nexport { createStore as default };\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/**\n * Creates a class-set with BEM modifiers for a component\n * @param {string} prefix Prefix classname for the component\n * @param {Array} modifier Array with modifiers\n * @return {string} Classnames in BEM format\n */\nexport default function myFunctionName(prefix, modifier) {\n const flattenArray = (arr) => {\n return arr.reduce(\n (acc, val) =>\n Array.isArray(val) ? acc.concat(flattenArray(val)) : acc.concat(val),\n []\n );\n };\n\n let classes = [prefix];\n const modifiers = flattenArray(modifier || []);\n\n const uniqueModifiers = modifiers.filter((m, i) => {\n return modifiers.indexOf(m) === i;\n });\n\n classes = [\n ...classes,\n ...uniqueModifiers\n .filter((suffix) => suffix)\n .map((suffix) => `${prefix}--${suffix}`)\n ];\n\n return classes.join(' ');\n}\n"],"names":["Button","label","type","disabled","variant","labelVariant","className","modifiers","onClick","hiddenLabel","icon","iconSize","isLoading","withModifier","title","id","size","tag","propTypes","PropTypes","defaultProps","undefined","Icon","xlinkHref","Spinner","width","height","xmlns","viewBox","fill","d","Tag","href","target","textVariant","classes","focusFilter","create","filters","updateFilters","selectedFilters","setState","RegionFilter","formAction","geoLocationLabel","handleSearchValue","searchLabel","searchValue","radiusLabel","radiusDefault","radiusOptions","useState","geoLocationSupport","setGeoLocationSupport","loading","setLoading","useEffect","navigator","e","geolocation","getCurrentPosition","position","fetch","method","mode","cache","credentials","headers","Accept","body","JSON","stringify","latitude","coords","longitude","response","json","state","prev","name","defaultValue","placeholder","onChange","value","radiusValue","map","radius","key","isRequired","FocusFilter","data","settings","emptyState","showFilters","setShowFilters","tempFilters","setTempFilters","filtersRef","useRef","useStore","activeFilters","handleClickOutside","event","current","contains","document","addEventListener","removeEventListener","urlSearchParams","URLSearchParams","window","location","search","params","Object","fromEntries","entries","f","decodedFilters","parse","atob","url","URL","length","searchParams","delete","encodedActiveFilters","btoa","set","history","pushState","toString","Text","toggle","ref","regionFilter","setRegionFilter","allowZeroExpanded","filterGroup","i","handle","filter","tempFilter","parent","some","slug","includes","children","groupFilter","reset","apply","querySelectorAll","click","locationFilterValue","locationFilter","renderFilters","focusLabel","activeFilter","headline","copy","TeaserRegions","element","init","config","this","elements","self","dataset","jsModuleConfig","createRoot","render","BaseModule","React","html","dangerouslySetInnerHTML","__html","selector","slice","call","setInitialized","setAttribute","removeAttribute","elementsConfig","elementConfig","domElements","select","domElement","singleConfig","getAttribute","push","values","forEach","obj","asList","useIsomorphicLayoutEffect","test","userAgent","useLayoutEffect","createState","api","listeners","Set","partial","replace","nextState","previousState","assign","listener","getState","subscribe","equalityFn","is","console","warn","currentSlice","listenerToAdd","nextSlice","previousSlice","add","subscribeWithSelector","destroy","clear","createStore","forceUpdate","useReducer","c","stateRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","newStateSlice","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","error","unsubscribe","sliceToReturn","useDebugValue","Symbol","iterator","items","next","done","shift","MATCH","wellKnownSymbol","module","exports","METHOD_NAME","regexp","error1","error2","global","isRegExp","TypeError","it","x","y","$","$includes","addToUnscopables","proto","el","arguments","stat","forced","iterate","createProperty","iterable","k","v","AS_ENTRIES","uncurryThis","notARegExp","requireObjectCoercible","correctIsRegExpLogic","stringIndexOf","indexOf","searchString","fixRegExpWellKnownSymbolLogic","anObject","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","O","searcher","RegExp","string","rx","S","res","previousLastIndex","lastIndex","result","index","myFunctionName","prefix","modifier","flattenArray","arr","reduce","acc","val","Array","isArray","concat","uniqueModifiers","m","suffix","join"],"sourceRoot":""}