{"version":3,"file":"static/js/150.9576ef6c.chunk.js","mappings":"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","sources":["platformui/Containers/withGeolocation.js","platformui/Containers/withGoogleMapsAPI.js","platformui/Containers/withSearch.js","platformui/Maps/index.js","platformui/Matomo/matomo-track-search.js","platformui/Pagination/index.js","platformui/RevisedAndPublished/index.js","platformui/SearchBlock/external-search-utils.js","platformui/SearchBlock/list.js","platformui/SearchBlock/listitem.js","platformui/SearchBlock/tracked-link.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\r\n\r\nexport default (WrappedComponent) => {\r\n  const Geolocation = (props) => {\r\n    const [geoLocationIsLoading, setGeoLocationIsLoading] = useState(false);\r\n    const [coords, setCoords] = useState(null);\r\n    const [geoLocationError, setGetLocationError] = useState(null);\r\n\r\n    var _isMounted = false;\r\n\r\n    useEffect(() => {\r\n      _isMounted = true;\r\n      setGeoLocationIsLoading(true);\r\n\r\n      if (navigator.geolocation) {\r\n        navigator.geolocation.getCurrentPosition(\r\n          (position) => {\r\n            if (_isMounted) {\r\n              setGeoLocationIsLoading(false);\r\n              setCoords(position.coords);\r\n            }\r\n          },\r\n          (error) => {\r\n            if (_isMounted) {\r\n              setGeoLocationIsLoading(false);\r\n              setGetLocationError(error);\r\n            }\r\n          }\r\n        );\r\n      } else {\r\n        setGeoLocationIsLoading(false);\r\n        setGetLocationError(true);\r\n        //this.error('Vi kunde inte hitta din position välj istället ditt län i listan nedan');\r\n      }\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n      return () => {\r\n        _isMounted = false;\r\n      };\r\n    }, []);\r\n\r\n    return (\r\n      <WrappedComponent\r\n        {...props}\r\n        geoLocationIsLoading={geoLocationIsLoading}\r\n        coords={coords}\r\n        geoLocationError={geoLocationError}\r\n      />\r\n    );\r\n  };\r\n\r\n  return Geolocation;\r\n};\r\n","import React, { Component } from 'react';\r\nimport { loadScript } from '../Base/Async';\r\n\r\nexport default (WrappedComponent, libraries) => {\r\n  return class withGoogleMapsAPI extends Component {\r\n    shouldLoadMapsApi = typeof window !== 'undefined' && typeof google === 'undefined';\r\n\r\n    state = {\r\n      googleMapsAPIIsLoading: true,\r\n      isError: false,\r\n      google: null,\r\n    };\r\n\r\n    componentDidMount() {\r\n      const pwtMapsIsReady = () => {\r\n        this.setState({\r\n          googleMapsAPIIsLoading: false,\r\n          google: window.google,\r\n        });\r\n      };\r\n      window.pwtMapsIsReady = pwtMapsIsReady.bind(this);\r\n\r\n      if (!this.shouldLoadMapsApi) {\r\n        pwtMapsIsReady();\r\n        return;\r\n      }\r\n\r\n      const { mapApiKey } = this.props;\r\n      loadScript(\r\n        'pwt-googlemaps-script',\r\n        `https://maps.googleapis.com/maps/api/js?key=${mapApiKey}${libraries}&callback=pwtMapsIsReady`,\r\n        (error) => {\r\n          if (error) {\r\n            this.setState({\r\n              googleMapsAPIIsLoading: false,\r\n              isError: true,\r\n            });\r\n            return;\r\n          }\r\n        }\r\n      );\r\n    }\r\n\r\n    render() {\r\n      return <WrappedComponent {...this.props} {...this.state} />;\r\n    }\r\n  };\r\n};\r\n","import queryString from 'qs';\r\nimport React, { Component } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { fetchByQuery, filterPages, loadMorePages } from '../Actions/search';\r\nimport { search } from '../Reducers/search';\r\n\r\nexport default (\r\n  WrappedComponent,\r\n  componentName,\r\n  endPoint = '/api/search/search',\r\n  callbacks = {\r\n    afterFetchByQuery: () => {},\r\n    afterLoadMorePages: () => {},\r\n  }\r\n) => {\r\n  class Container extends Component {\r\n    query = queryString.parse(this.props.location.search, {\r\n      ignoreQueryPrefix: true,\r\n      indices: false,\r\n    });\r\n    key = this.query.p || 0;\r\n\r\n    endPoint = this.props.SearchApiUrl || endPoint;\r\n\r\n    //Set initial state\r\n    state = search({\r\n      isLoading: false,\r\n      ...this.props.SearchResult,\r\n    });\r\n\r\n    getComponentName() {\r\n      return componentName;\r\n    }\r\n\r\n    //TODO: Change to redux\r\n    dispatch(action) {\r\n      this.setState(search(this.getState(), action));\r\n    }\r\n\r\n    getState() {\r\n      return this.state;\r\n    }\r\n\r\n    fetch(query) {\r\n      fetchByQuery(`${this.endPoint}?${query}`)(\r\n        this.dispatch.bind(this),\r\n        this.getState.bind(this),\r\n        callbacks.afterFetchByQuery\r\n      );\r\n    }\r\n\r\n    updateSearchFromUrl(locationSearch) {\r\n      const qs = queryString.parse(locationSearch, {\r\n        ignoreQueryPrefix: true,\r\n        indices: false,\r\n      });\r\n\r\n      qs.componentname = this.getComponentName();\r\n\r\n      if (this.props.Theme) qs.theme = this.props.Theme;\r\n      if (this.props.InformationType)\r\n        qs.informationtype = this.props.InformationType;\r\n      if (this.props.SearchOriginId) qs.so = this.props.SearchOriginId;\r\n      if (this.state.BatchSize && !qs.batchsize)\r\n        qs.batchsize = this.state.BatchSize;\r\n      if (this.state.SortOrder) qs.sortorder = this.state.SortOrder;\r\n      if (this.state.HistoryDays) qs.days = this.state.HistoryDays;\r\n      if (this.state.RootLink) qs.rootLink = this.state.RootLink;\r\n      if (this.state.Categories && this.state.Categories.length > 0) {\r\n        qs.category = this.state.Categories;\r\n      }\r\n      if (this.state.IsArticleSearch) {\r\n        qs.isArticleSearch = this.state.IsArticleSearch;\r\n      }\r\n\r\n      const query = this.props.Categories\r\n        ? `${queryString.stringify(qs, {\r\n            indices: false,\r\n          })}&${queryString.stringify({\r\n            category: this.props.Categories,\r\n            indices: false,\r\n          })}`\r\n        : queryString.stringify(qs, { indices: false });\r\n\r\n      const isExternalSearch = !!qs.site;\r\n\r\n      const endpoint = isExternalSearch\r\n        ? this.getExternalEndpoint({\r\n            searchApiUrl: this.props.SearchApiUrl,\r\n            searchApiIndex: qs.site,\r\n            location: this.props.location,\r\n          })\r\n        : this.endPoint;\r\n\r\n      if (qs.p) {\r\n        loadMorePages(`${endpoint}?${query}`)(\r\n          this.dispatch.bind(this),\r\n          this.getState.bind(this),\r\n          callbacks.afterLoadMorePages\r\n        );\r\n      } else {\r\n        filterPages(`${endpoint}?${query}`)(\r\n          this.dispatch.bind(this),\r\n          this.getState.bind(this)\r\n        );\r\n      }\r\n    }\r\n\r\n    componentDidMount() {\r\n      if (this.props.searchOnMount) {\r\n        this.updateSearchFromUrl(this.props.location.search);\r\n      }\r\n    }\r\n\r\n    componentDidUpdate(prevProps) {\r\n      if (prevProps.location.search !== this.props.location.search) {\r\n        this.updateSearchFromUrl(this.props.location.search);\r\n      }\r\n    }\r\n\r\n    getExternalEndpoint({ searchApiUrl, searchApiIndex, location }) {\r\n      const apiEndpoint = searchApiUrl?.endsWith('/')\r\n        ? searchApiUrl\r\n        : `${searchApiUrl || ''}/`;\r\n\r\n      const endpointWithSiteIndex = searchApiIndex\r\n        ? `${apiEndpoint}${searchApiIndex}/`\r\n        : apiEndpoint;\r\n\r\n      const pathnameSegments =\r\n        location?.pathname?.split('/').filter(Boolean) || [];\r\n      const regionalizedSearch =\r\n        pathnameSegments.length > 1 ? pathnameSegments[0] : '';\r\n\r\n      return regionalizedSearch\r\n        ? `${endpointWithSiteIndex}${regionalizedSearch}/`\r\n        : endpointWithSiteIndex;\r\n    }\r\n\r\n    parseForm(form) {\r\n      var obj = {};\r\n      var elements = form.querySelectorAll('input, select, textarea');\r\n      for (var i = 0; i < elements.length; ++i) {\r\n        var element = elements[i];\r\n        var name = element.name;\r\n        var value = element.value;\r\n\r\n        if (name) {\r\n          obj[name] = value;\r\n        }\r\n      }\r\n    }\r\n\r\n    onSubmit(e, query) {\r\n      e.preventDefault();\r\n      const pathname = this.props.location.pathname;\r\n      const qs = queryString.stringify(query, { indices: false });\r\n      location.href = `${pathname}?${qs}`;\r\n    }\r\n\r\n    render() {\r\n      return (\r\n        <WrappedComponent\r\n          {...this.props}\r\n          SearchResult={this.state}\r\n          Search={(query) => this.fetch(query)}\r\n          onSubmit={(e, query) => this.onSubmit(e, query)}\r\n        />\r\n      );\r\n    }\r\n  }\r\n\r\n  return withRouter(Container);\r\n};\r\n","import React, { Component } from 'react';\r\nimport classNames from 'classnames';\r\nimport T from 'prop-types';\r\nimport { log, callIfFunction } from '../Helpers/helpers';\r\nimport withGoogleMapsAPI from '../Containers/withGoogleMapsAPI';\r\n\r\nfunction logError(e) {\r\n  if (process.env.NODE_ENV === 'production') return;\r\n  log(e);\r\n}\r\n\r\nclass Map extends Component {\r\n  BASE_CLASS = 'c-map';\r\n  mapElement = React.createRef();\r\n\r\n  state = {\r\n    isMarkersLoading: false,\r\n    initialBoundsSet: false,\r\n  };\r\n  listeners = [];\r\n  map = null;\r\n  googleAPI = null;\r\n  markers = [];\r\n  markerCluster = null;\r\n  ticking = false;\r\n\r\n  addListeners = this.addListeners.bind(this);\r\n  setInitialBounds = this.setInitialBounds.bind(this);\r\n  afterMapInit = this.afterMapInit.bind(this);\r\n\r\n  getSizedIcon(markerOptions) {\r\n    return {\r\n      url: markerOptions.icon.url,\r\n      scaledSize: new this.googleAPI.maps.Size(\r\n        markerOptions.icon.width,\r\n        markerOptions.icon.height\r\n      ),\r\n    };\r\n  }\r\n\r\n  createClusters() {\r\n    const { clusterMarkerIcons, onClusterClick, markerOptions } = this.props;\r\n\r\n    this.markerCluster = new window.MarkerClusterer(this.map, this.markers, {\r\n      batchSize: 2000,\r\n      styles: clusterMarkerIcons,\r\n      clusterClass: 'pwt-marker-cluster',\r\n      zoomOnClick: true,\r\n    });\r\n\r\n    const sizedIcon = this.getSizedIcon(markerOptions);\r\n\r\n    // Because constructing markers with icons using an object for some reason is very slow,\r\n    // do this only after clustering has ended, and only for the markers that are actually on\r\n    // a map. See https://stackoverflow.com/questions/53429911/marker-load-time-is-10x-slower-when-icon-parameter-is-passed-valid-or-not .\r\n    this.googleAPI.maps.event.addListener(\r\n      this.markerCluster,\r\n      'clusteringend',\r\n      (cluster) => {\r\n        cluster.getMarkers().forEach((m) => {\r\n          if (m.map) {\r\n            m.setIcon(sizedIcon);\r\n          }\r\n        });\r\n      }\r\n    );\r\n\r\n    //Function that allows infomodal to show up on clusterclick when receptions are on the same address\r\n    if (onClusterClick) {\r\n      this.googleAPI.maps.event.addListener(\r\n        this.markerCluster,\r\n        'clusterclick',\r\n        (cluster) => {\r\n          onClusterClick(cluster.getMarkers(), cluster, this.map);\r\n        }\r\n      );\r\n    }\r\n  }\r\n\r\n  addListeners(map) {\r\n    return new Promise((resolve, reject) => {\r\n      try {\r\n        if (this.props.eventListeners) {\r\n          // Add all event listeners to our ref\r\n          Object.entries(this.props.eventListeners).forEach(([event, fn]) => {\r\n            // Do not add listeners that we already have\r\n            if (!this.listeners.find((o) => o.event === event)) {\r\n              this.listeners.push({\r\n                event,\r\n                // map.addListener returns a listener instance.\r\n                listener: map.addListener(event, () =>\r\n                  fn({ map: map, api: this.googleAPI, markers: this.markers })\r\n                ),\r\n              });\r\n            }\r\n          });\r\n        }\r\n        resolve(map);\r\n      } catch (e) {\r\n        reject(e);\r\n      }\r\n    });\r\n  }\r\n\r\n  removeListeners() {\r\n    if (!this.map || !this.googleAPI) return;\r\n    this.listeners.forEach((o) => {\r\n      this.googleAPI.maps.event.removeListener(o.listener);\r\n    });\r\n    this.listeners = [];\r\n  }\r\n\r\n  removeMarkers() {\r\n    this.markers.forEach((marker) => {\r\n      marker.setMap(null);\r\n    });\r\n    this.markers = [];\r\n\r\n    if (this.markerCluster) this.markerCluster.clearMarkers();\r\n    this.markerCluster = null;\r\n  }\r\n\r\n  createMarkers(map, locations, batchIteration) {\r\n    return new Promise((resolve) => {\r\n      this.processMarkerData(map, locations, batchIteration, resolve);\r\n    });\r\n  }\r\n\r\n  processMarkerData(map, locations, batchIteration, resolve, bounds = null) {\r\n    const { markerOptions, onMarkerClick } = this.props;\r\n\r\n    if (!bounds) bounds = new this.googleAPI.maps.LatLngBounds();\r\n\r\n    const batchedLocations = locations.splice(0, batchIteration);\r\n\r\n    const shouldFitBounds = () => {\r\n      if (this.props.initialBounds) {\r\n        // When initial bounds are used we do not fit bounds.\r\n        // TODO: Should only be used for first load. When we fetch pins with pagination bounds should be fitted.\r\n        // Look at state.initalBoundsSet and a flag when fetching?\r\n        return false;\r\n      }\r\n      return Boolean(\r\n        this.props.Locations.length > 0 && !this.props.disableFitBounds\r\n      );\r\n    };\r\n\r\n    if (!batchedLocations.length) {\r\n      if (shouldFitBounds()) {\r\n        //Set center to fit all markers\r\n        this.map.setCenter(bounds.getCenter());\r\n        this.map.fitBounds(bounds, 0);\r\n        callIfFunction(this.props.afterFitBounds, this.map);\r\n      }\r\n      return resolve();\r\n    }\r\n\r\n    const sizedicon = this.getSizedIcon(markerOptions);\r\n\r\n    requestAnimationFrame(() => {\r\n      batchedLocations.forEach((locationData) => {\r\n        if (!locationData.Latitude || !locationData.Longitude) return;\r\n\r\n        const marker = this.createMarker(\r\n          map,\r\n          new this.googleAPI.maps.LatLng(\r\n            locationData.Latitude,\r\n            locationData.Longitude\r\n          ),\r\n          sizedicon,\r\n          onMarkerClick,\r\n          locationData\r\n        );\r\n\r\n        this.markers.push(marker);\r\n\r\n        bounds.extend(marker.getPosition());\r\n      });\r\n\r\n      this.processMarkerData(map, locations, batchIteration, resolve, bounds);\r\n    });\r\n  }\r\n\r\n  createMarker(map, position, sizedIcon, onClick, data) {\r\n    const marker = new this.googleAPI.maps.Marker({\r\n      position,\r\n      data,\r\n      map,\r\n      icon: map ? sizedIcon : null,\r\n    });\r\n\r\n    if (onClick)\r\n      marker.addListener('click', () => onClick(data, marker, this.map));\r\n\r\n    return marker;\r\n  }\r\n\r\n  getCenter(lat, lng) {\r\n    return lat && lng ? new this.googleAPI.maps.LatLng(lat * 1, lng * 1) : null;\r\n  }\r\n\r\n  componentWillUnmount() {\r\n    this.removeListeners();\r\n  }\r\n\r\n  initMap() {\r\n    return new Promise((resolve) => {\r\n      let { zoom, lat, lng, options } = this.props;\r\n      const center = this.getCenter(lat, lng);\r\n      if (!this.map) {\r\n        this.map = new this.googleAPI.maps.Map(this.mapElement.current, {\r\n          zoom: zoom,\r\n          center: center,\r\n          streetViewControl: false,\r\n          mapTypeControl: false,\r\n          ...options,\r\n        });\r\n      }\r\n      return resolve(this.map);\r\n    });\r\n  }\r\n\r\n  afterMapInit(map) {\r\n    return new Promise((resolve) => {\r\n      callIfFunction(this.props.onMapInit, { map, api: this.googleAPI });\r\n      resolve(map);\r\n    });\r\n  }\r\n\r\n  async UNSAFE_componentWillReceiveProps(nextProps) {\r\n    if (!nextProps.google) return;\r\n\r\n    this.googleAPI = nextProps.google;\r\n\r\n    //Run load callback\r\n    if (nextProps.google && !this.props.google && this.props.onGoogleAPILoad) {\r\n      this.props.onGoogleAPILoad(this.googleAPI);\r\n    }\r\n\r\n    if (\r\n      nextProps.Locations &&\r\n      !this.state.isMarkersLoading &&\r\n      (nextProps.Locations !== this.props.Locations ||\r\n        this.props.async === false)\r\n    ) {\r\n      await this.initMap()\r\n        .then(this.addListeners)\r\n        .then(this.setInitialBounds)\r\n        .then(this.afterMapInit)\r\n        .catch(logError);\r\n\r\n      this.setState({\r\n        isMarkersLoading: true,\r\n      });\r\n\r\n      const markersPerIteration = 2000;\r\n\r\n      const locationsCopy = [...nextProps.Locations];\r\n\r\n      this.removeMarkers();\r\n\r\n      //Create cluster markers else create markers\r\n      if (this.props.useClusters) {\r\n        await this.createMarkers(null, locationsCopy, markersPerIteration);\r\n\r\n        if (this.props.clusterMarkerIcons) this.createClusters();\r\n      } else {\r\n        await this.createMarkers(this.map, locationsCopy, markersPerIteration);\r\n      }\r\n\r\n      this.setState({\r\n        isMarkersLoading: false,\r\n      });\r\n    }\r\n\r\n    if (\r\n      !nextProps.Locations &&\r\n      !this.props.useClusters &&\r\n      this.props.lat &&\r\n      this.props.lng\r\n    ) {\r\n      // We have no locations and will init the map with lat and lgn value only\r\n      await this.initMap()\r\n        .then(this.addListeners)\r\n        .then(this.setInitialBounds)\r\n        .then(this.afterMapInit)\r\n        .catch(logError);\r\n\r\n      const { lat, lng, markerOptions, onMarkerClick, markerData } = this.props;\r\n      const center = this.getCenter(lat, lng);\r\n      this.createMarker(\r\n        this.map,\r\n        center,\r\n        this.getSizedIcon(markerOptions),\r\n        onMarkerClick,\r\n        markerData\r\n      );\r\n    }\r\n  }\r\n\r\n  setInitialBounds(map) {\r\n    return new Promise((resolve, reject) => {\r\n      try {\r\n        if (this.props.initialBounds && !this.state.initialBoundsSet) {\r\n          const { ne: initialNE, sw: initialSW } = this.props.initialBounds;\r\n          const sw = new this.googleAPI.maps.LatLng(\r\n            initialSW.latitude,\r\n            initialSW.longitude\r\n          );\r\n          const ne = new this.googleAPI.maps.LatLng(\r\n            initialNE.latitude,\r\n            initialNE.longitude\r\n          );\r\n\r\n          const bounds = new this.googleAPI.maps.LatLngBounds(sw, ne);\r\n          map.fitBounds(bounds, 0);\r\n\r\n          this.setState({\r\n            initialBoundsSet: true,\r\n          });\r\n        }\r\n        return resolve(map);\r\n      } catch (e) {\r\n        log('warning')(e);\r\n        return reject(e);\r\n      }\r\n    });\r\n  }\r\n\r\n  render() {\r\n    const { className = this.BASE_CLASS, modifiers } = this.props;\r\n\r\n    const componentClass = classNames({\r\n      [`${className}`]: true,\r\n      [`${className}--is-markers-loading`]: this.state.isMarkersLoading,\r\n      ...modifiers,\r\n    });\r\n\r\n    const mapClass = `${className}__map`;\r\n\r\n    return (\r\n      <div className={componentClass}>\r\n        <div ref={this.mapElement} className={mapClass} />\r\n        {this.props.children && this.props.children(this.map, this.googleAPI)}\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nMap.propTypes = {\r\n  className: T.string,\r\n};\r\n\r\nMap.defaultProps = {\r\n  onMapInit: () => {},\r\n};\r\n\r\nexport default withGoogleMapsAPI(Map, '&libraries=geometry');\r\n","import { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst MatomoTrackSearch = ({\r\n  Search = undefined,\r\n  SearchCategory = undefined,\r\n  SearchHits = 0,\r\n  SearchLocation = undefined,\r\n  ExternalSearchHits = undefined,\r\n}) => {\r\n  useEffect(() => {\r\n    if (window?._paq && Search && SearchCategory) {\r\n      var searchKeyword = `${Search}`;\r\n\r\n      if (ExternalSearchHits) {\r\n        ExternalSearchHits?.map((tab) => {\r\n          if (tab.SearchResult?.TotalHits === 0) {\r\n            searchKeyword = `${Search};${SearchCategory}`;\r\n\r\n            if (SearchLocation) {\r\n              searchKeyword = `${Search};${SearchLocation};${SearchCategory}`;\r\n            }\r\n          }\r\n          window?._paq.push([\r\n            'trackSiteSearch',\r\n            searchKeyword,\r\n            (SearchCategory = tab.SearchApiIndex),\r\n            (SearchHits = tab.SearchResult?.TotalHits || 0),\r\n          ]);\r\n        });\r\n      } else {\r\n        if (SearchHits === 0 && SearchCategory !== 'Globalt sök') {\r\n          searchKeyword = `${Search};${SearchCategory}`;\r\n\r\n          if (SearchLocation) {\r\n            searchKeyword = `${Search};${SearchLocation};${SearchCategory}`;\r\n          }\r\n        }\r\n\r\n        window?._paq.push([\r\n          'trackSiteSearch',\r\n          searchKeyword,\r\n          SearchCategory,\r\n          SearchHits,\r\n        ]);\r\n      }\r\n    }\r\n  }, []);\r\n\r\n  return null;\r\n};\r\n\r\nMatomoTrackSearch.propTypes = {\r\n  Search: PropTypes.string,\r\n  SearchCategory: PropTypes.string,\r\n  SearchHits: PropTypes.number,\r\n};\r\n\r\nexport default MatomoTrackSearch;\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { useHistory } from 'react-router-dom';\r\nimport queryString from 'qs';\r\nimport classNames from 'classnames';\r\n\r\nconst PaginationButton = ({ className, children, onClick, href }) => {\r\n  const history = useHistory();\r\n  const clickHandler = (e) => {\r\n    onClick(e);\r\n    history.push(href);\r\n  };\r\n  return (\r\n    <button role=\"button\" className={className} onClick={clickHandler}>\r\n      {children}\r\n    </button>\r\n  );\r\n};\r\n/**\r\n *  Component for loading more search content in a list.\r\n *  Uses withRouter from react-router to read window location.\r\n *\r\n *  Send additional query params with the prop `qsModifiers`.\r\n *\r\n *  We can override react router functionality with the prop\r\n *  `useReactRouterLink=false` (default = true) then we use <a> element\r\n *  and not <Link> component.\r\n *\r\n *\r\n */\r\nconst Pagination = (props) => {\r\n  if (!props.NextPage) return null;\r\n  const options = {\r\n    ignoreQueryPrefix: true,\r\n  };\r\n  const qs = {\r\n    ...queryString.parse(props.location.search, options),\r\n    p: props.NextPage,\r\n    ...props.qsModifiers,\r\n  };\r\n\r\n  const qStringify = queryString.stringify(qs);\r\n\r\n  const paginationClass = classNames({\r\n    'c-pagination': true,\r\n    'c-pagination--is-loading': props.isLoading,\r\n    ...props.Modifiers,\r\n  });\r\n\r\n  const href = `${props.location.pathname}?${qStringify}`;\r\n\r\n  if (props.useReactRouterLink) {\r\n    return (\r\n      <PaginationButton\r\n        onClick={props.onClick}\r\n        className={paginationClass}\r\n        href={href}\r\n      >\r\n        <span className=\"c-pagination__text\">{props.children}</span>\r\n        {props.Spinner}\r\n      </PaginationButton>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <a className={paginationClass} href={href}>\r\n      <span className=\"c-pagination__text\">{props.children}</span>\r\n    </a>\r\n  );\r\n};\r\n\r\nPagination.defaultProps = {\r\n  useReactRouterLink: true,\r\n  qsModifiers: {},\r\n};\r\n\r\nconst ShowAll = (props) => {\r\n  if (!props.ShowTotalText) {\r\n    return null;\r\n  }\r\n  if (props.NextPage === null) {\r\n    return null;\r\n  }\r\n\r\n  const qs = queryString.parse(props.location.search, {\r\n    ignoreQueryPrefix: true,\r\n  });\r\n  const qStringify = queryString.stringify({\r\n    q: qs.q,\r\n    p: 1,\r\n    batchsize: props.TotalHits,\r\n    ...props.qsModifiers,\r\n    theme: qs.theme,\r\n  });\r\n  return (\r\n    <a\r\n      className=\"c-pagination c-pagination__showall\"\r\n      href={`${props.location.pathname}?${qStringify}`}\r\n    >\r\n      {props.ShowTotalText}\r\n    </a>\r\n  );\r\n};\r\n\r\nShowAll.defaultProps = {\r\n  NextPage: null, // no need for \"undefined\" check if not in response.\r\n  qsModifiers: {},\r\n};\r\n\r\nexport { ShowAll };\r\n\r\nexport default withRouter(Pagination);\r\n","import React from 'react';\r\nimport { string, bool, shape } from 'prop-types';\r\n\r\nconst RevisedAndPublished = ({\r\n  revisedAsPublished,\r\n  isNew,\r\n  translations,\r\n  eventDate,\r\n  subjectHeading,\r\n}) => {\r\n  const Date = () => {\r\n    return isNew || revisedAsPublished ? (\r\n      <p className=\"new\">\r\n        {translations.published} <span>{eventDate}</span>\r\n      </p>\r\n    ) : (\r\n      <p className=\"revised\">\r\n        {translations.revised} <span>{eventDate}</span>\r\n      </p>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <div className=\"revised-and-published\">\r\n      {eventDate && <Date />}\r\n      {subjectHeading && (\r\n        <p>\r\n          {translations.subject} <span>{subjectHeading}</span>\r\n        </p>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nRevisedAndPublished.propTypes = {\r\n  eventDate: string,\r\n  revisedAsPublished: bool,\r\n  isNew: bool,\r\n  subjectHeading: string,\r\n  translations: shape({\r\n    subject: string,\r\n    published: string,\r\n    revised: string,\r\n  }),\r\n};\r\n\r\nexport default RevisedAndPublished;\r\n","import queryString from 'qs';\r\n\r\nconst siteAddressMap = {\r\n  1177: '1177.se',\r\n  RHB: 'rikshandboken-bhv.se',\r\n  VHB: 'vardhandboken.se',\r\n};\r\n\r\nexport const getExternalSiteAdress = (siteIndex) =>\r\n  siteAddressMap[siteIndex] || 'vardpersonal.1177.se';\r\n\r\nexport const getRegionalizedUrl = (href) => {\r\n  if (typeof href !== 'string') return;\r\n\r\n  const qs = queryString.parse(location, { ignoreQueryPrefix: true });\r\n\r\n  const splitPaths = qs.pathname?.split('/').filter(Boolean);\r\n  const region = splitPaths?.length > 1 ? splitPaths[0] : null;\r\n\r\n  if (!region) return href;\r\n\r\n  const url = new URL(href);\r\n\r\n  url.pathname = `/${region}${url.pathname}`;\r\n  return url.href;\r\n};\r\n","/**\r\n * Repo: PWT.PlattformUI\r\n * Component: <List> (default exported), <SearchListItemWrapper> (local)\r\n * @description:\r\n *  A list that displays search results.\r\n *  Can be used with a custom @property SearchListItem component.\r\n *  or the default <ListItem> component.\r\n */\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport ListItem from './listitem';\r\n\r\nconst SearchListItemWrapper = ({ CustomSearchListItem, ...props }) => {\r\n  const theme = classNames({\r\n    'c-related__item': true,\r\n    'c-related__item--is-search': true,\r\n    'c-related__item--has-image': props.Image,\r\n    [`c-related__item--theme-${props.Theme}`]: true,\r\n  });\r\n\r\n  const lastItem = props.isLast ? (\r\n    <span id=\"search-list-last\" tabIndex=\"-1\" />\r\n  ) : null;\r\n\r\n  //Shows the revised component if there is a isNew prop\r\n  let showRevised;\r\n  if (props.IsNew !== undefined && props.IsNew !== null) {\r\n    if (props.EventDate) {\r\n      showRevised = true;\r\n    }\r\n  } else {\r\n    showRevised = false;\r\n  }\r\n  const trackingParams = {\r\n    HitId: props.HitId,\r\n    query: props.query,\r\n    TrackId: props.TrackId,\r\n    DisableClickTracking: props.DisableClickTracking,\r\n  };\r\n  return (\r\n    <li>\r\n      {CustomSearchListItem ? (\r\n        <CustomSearchListItem {...trackingParams} {...props} />\r\n      ) : (\r\n        <ListItem\r\n          className={theme}\r\n          revisedAsPublished={props.revisedAsPublished}\r\n          isNew={props.IsNew}\r\n          showRevised={showRevised}\r\n          eventDate={props.EventDate}\r\n          href={props.Url}\r\n          searchHitHeading={props.SearchHitHeading}\r\n          image={props.Image}\r\n          vignette={props.Vignette}\r\n          heading={props.Heading}\r\n          text={props.Text}\r\n          score={props.Score}\r\n          translations={props.translations}\r\n          subjectHeading={props.SubjectHeading}\r\n          totalHits={props.TotalHits}\r\n          informationtype={props.InformationType}\r\n          selectionCode={props.SelectionCode}\r\n          vardpersonal1177={props.vardpersonal1177}\r\n          primaryCareUrl={props.PrimaryCareUrl}\r\n          specializedCareUrl={props.SpecializedCareUrl}\r\n          isExternalSearchHit={props?.isExternalSearchHit}\r\n          regionalizeSearchHits={props?.regionalizeSearchHits}\r\n          availableLanguagesHeader={props?.availableLanguagesHeader}\r\n          availableLanguages={props?.AvailableLanguages}\r\n          {...trackingParams}\r\n        />\r\n      )}\r\n      {lastItem}\r\n    </li>\r\n  );\r\n};\r\n\r\nconst List = ({\r\n  SearchHits,\r\n  TotalHits,\r\n  children,\r\n  TrackId,\r\n  query,\r\n  translations,\r\n  revisedAsPublished,\r\n  DisableClickTracking,\r\n  CustomSearchListItem = null,\r\n  vardpersonal1177,\r\n  isExternalSearchHit,\r\n  regionalizeSearchHits,\r\n  availableLanguagesHeader,\r\n}) => {\r\n  if (!SearchHits) return null;\r\n  const items = SearchHits.map((item, index) => (\r\n    <SearchListItemWrapper\r\n      translations={translations}\r\n      revisedAsPublished={revisedAsPublished}\r\n      key={index}\r\n      query={query}\r\n      TotalHits={TotalHits}\r\n      DisableClickTracking={DisableClickTracking}\r\n      TrackId={TrackId}\r\n      {...item}\r\n      isLast={index + 1 === SearchHits.length}\r\n      CustomSearchListItem={CustomSearchListItem}\r\n      vardpersonal1177={vardpersonal1177}\r\n      isExternalSearchHit={isExternalSearchHit}\r\n      regionalizeSearchHits={regionalizeSearchHits}\r\n      availableLanguagesHeader={availableLanguagesHeader}\r\n      availableLanguages={item?.AvailableLanguages}\r\n    />\r\n  ));\r\n\r\n  return (\r\n    <div className=\"c-searchlist\" id=\"search\">\r\n      <ul\r\n        className=\"c-related\"\r\n        aria-live=\"polite\"\r\n        data-cy=\"ui-searchform-resultlist\"\r\n      >\r\n        {items}\r\n      </ul>\r\n\r\n      <div className=\"c-searchlist__footer\">{children}</div>\r\n    </div>\r\n  );\r\n};\r\n\r\nList.propTypes = {\r\n  /** (BE) Search block translations */\r\n  translations: PropTypes.object,\r\n  /** (BE) */\r\n  ResultText: PropTypes.string,\r\n  /** (BE) */\r\n  SearchHits: PropTypes.array,\r\n  /** (BE) */\r\n  TrackId: PropTypes.string,\r\n  /** (BE) */\r\n  TotalHits: PropTypes.number,\r\n  /** (BE) */\r\n  EmptySearchResultText: PropTypes.string,\r\n  /** (BE) List of block images */\r\n  SuggestionText: PropTypes.shape({\r\n    Query: PropTypes.string,\r\n    Text: PropTypes.string,\r\n    Url: PropTypes.string,\r\n  }),\r\n  /** (BE) Available languages */\r\n  availableLanguagesHeader: PropTypes.string,\r\n  /** (BE) */\r\n  AvailableLanguages: PropTypes.array,\r\n  query: PropTypes.string,\r\n  hideSearchHeading: PropTypes.bool,\r\n  /** List item component */\r\n  CustomSearchListItem: PropTypes.any,\r\n  vardpersonal1177: PropTypes.bool,\r\n};\r\n\r\nexport default List;\r\n","import classNames from 'classnames';\r\nimport PropTypes, {\r\n  bool,\r\n  number,\r\n  oneOfType,\r\n  shape,\r\n  string,\r\n  array,\r\n} from 'prop-types';\r\nimport React from 'react';\r\nimport A from '../Anchor';\r\nimport RevisedAndPublished from '../RevisedAndPublished';\r\nimport { getRegionalizedUrl } from './external-search-utils';\r\nimport TrackedLink from './tracked-link';\r\n\r\nconst ListItem = ({\r\n  className,\r\n  href,\r\n  image,\r\n  vignette,\r\n  heading,\r\n  text,\r\n  score,\r\n  revisedAsPublished,\r\n  isNew,\r\n  eventDate,\r\n  subjectHeading,\r\n  translations,\r\n  showRevised,\r\n  TrackId,\r\n  query,\r\n  HitId,\r\n  DisableClickTracking,\r\n  informationtype,\r\n  vardpersonal1177,\r\n  selectionCode,\r\n  specializedCareUrl,\r\n  primaryCareUrl,\r\n  isExternalSearchHit,\r\n  regionalizeSearchHits,\r\n  availableLanguagesHeader,\r\n  availableLanguages,\r\n}) => {\r\n  function trackClick() {\r\n    fetch(\r\n      `/api/v2/search/trackclick?hitId=${HitId}&query=${query}&trackId=${TrackId}`\r\n    );\r\n  }\r\n  const itemContainer = classNames({\r\n    'c-related__item__container': true,\r\n    'c-related__empty-container': text?.length === 0,\r\n  });\r\n\r\n  const trackLinkClick = () =>\r\n    !DisableClickTracking && TrackId ? trackClick() : undefined;\r\n  const isVardPersonal1177 =\r\n    (vardpersonal1177 && selectionCode && primaryCareUrl) || specializedCareUrl;\r\n\r\n  const getHref = isVardPersonal1177\r\n    ? primaryCareUrl\r\n      ? primaryCareUrl\r\n      : specializedCareUrl\r\n    : regionalizeSearchHits\r\n    ? getRegionalizedUrl(href)\r\n    : href;\r\n  return (\r\n    <TrackedLink\r\n      HitId={HitId}\r\n      query={query}\r\n      DisableClickTracking={DisableClickTracking}\r\n      TrackId={TrackId}\r\n      className={className}\r\n      href={regionalizeSearchHits ? getRegionalizedUrl(href) : href}\r\n      aria-label={heading}\r\n      containsLinks={\r\n        availableLanguages?.[0] ||\r\n        (vardpersonal1177 &&\r\n          selectionCode &&\r\n          (primaryCareUrl || specializedCareUrl))\r\n          ? true\r\n          : false\r\n      }\r\n    >\r\n      <div className={itemContainer} data-epifind-score={score}>\r\n        {image && (\r\n          <div\r\n            className=\"c-related__item__image\"\r\n            dangerouslySetInnerHTML={{\r\n              __html: `<img src=\"${image}?preset=preset_300\" />`,\r\n            }}\r\n          />\r\n        )}\r\n        {vignette && (\r\n          <span\r\n            className=\"c-related__item__vignette\"\r\n            dangerouslySetInnerHTML={{ __html: vignette }}\r\n          />\r\n        )}\r\n        {(heading && isVardPersonal1177) || availableLanguages?.[0] ? (\r\n          <A\r\n            className=\"c-related__item__anchor\"\r\n            href={getHref}\r\n            onClick={() => {\r\n              trackLinkClick();\r\n            }}\r\n            aria-label={heading}\r\n          >\r\n            <h3\r\n              className=\"c-related__item__heading\"\r\n              dangerouslySetInnerHTML={{ __html: heading }}\r\n            />\r\n            {availableLanguages?.[0] && text && text.length >= 1 && (\r\n              <p\r\n                className=\"c-related__item__text\"\r\n                dangerouslySetInnerHTML={{ __html: text }}\r\n              />\r\n            )}\r\n          </A>\r\n        ) : (\r\n          <h3\r\n            className=\"c-related__item__heading\"\r\n            {...(isExternalSearchHit && {\r\n              'aria-label': `${heading}. ${translations?.leadstoexternalsite}`,\r\n            })}\r\n            dangerouslySetInnerHTML={{ __html: heading }}\r\n          />\r\n        )}\r\n        {informationtype && informationtype.Key !== 'article' && (\r\n          <div\r\n            className={\r\n              informationtype.Key\r\n                ? 'c-related__item__information-type c-related__item__information-type--' +\r\n                  informationtype.Key\r\n                : 'c-related__item__information-type'\r\n            }\r\n          >\r\n            {informationtype.Value}\r\n          </div>\r\n        )}\r\n        {selectionCode &&\r\n          selectionCode !== 'none' &&\r\n          (primaryCareUrl || specializedCareUrl) && (\r\n            <div className=\"c-related__item__selection-code\">\r\n              {primaryCareUrl && specializedCareUrl ? (\r\n                <>\r\n                  <A\r\n                    className=\"c-related__item__selection-code-url\"\r\n                    href={primaryCareUrl}\r\n                    onClick={() => {\r\n                      trackLinkClick();\r\n                    }}\r\n                  >\r\n                    Primärvård\r\n                  </A>\r\n                  <A\r\n                    className=\"c-related__item__selection-code-url\"\r\n                    href={specializedCareUrl}\r\n                    onClick={() => {\r\n                      trackLinkClick();\r\n                    }}\r\n                  >\r\n                    Specialiserad vård\r\n                  </A>\r\n                </>\r\n              ) : (\r\n                <A href={primaryCareUrl ? primaryCareUrl : specializedCareUrl}>\r\n                  {primaryCareUrl ? 'Primärvård' : 'Specialiserad vård'}\r\n                </A>\r\n              )}\r\n            </div>\r\n          )}\r\n        {text && text.length >= 1 && !availableLanguages?.[0] && (\r\n          <p\r\n            className=\"c-related__item__text\"\r\n            dangerouslySetInnerHTML={{ __html: text }}\r\n          />\r\n        )}\r\n        {availableLanguages?.[0] && (\r\n          <div className=\"c-related__item__available-languages\">\r\n            {availableLanguagesHeader && (\r\n              <span id=\"languages-list\">{availableLanguagesHeader}</span>\r\n            )}\r\n            <ul\r\n              className=\"c-related__item__languages\"\r\n              aria-live=\"polite\"\r\n              aria-labelledby=\"languages-list\"\r\n            >\r\n              {availableLanguages.map((language, i) => (\r\n                <li key={i}>\r\n                  <A\r\n                    href={language.Url}\r\n                    onClick={() => trackLinkClick()}\r\n                    className=\"c-related__item__language-link\"\r\n                    lang={language.Name}\r\n                  >\r\n                    {language.NativeName}\r\n                  </A>\r\n                </li>\r\n              ))}\r\n            </ul>\r\n          </div>\r\n        )}\r\n        {showRevised && (\r\n          <RevisedAndPublished\r\n            revisedAsPublished={revisedAsPublished}\r\n            isNew={isNew}\r\n            translations={translations}\r\n            eventDate={eventDate}\r\n            subjectHeading={subjectHeading}\r\n          />\r\n        )}\r\n\r\n        <span className=\"c-related__item__link\"></span>\r\n      </div>\r\n    </TrackedLink>\r\n  );\r\n};\r\n\r\nListItem.propTypes = {\r\n  className: string,\r\n  href: string,\r\n  searchHitHeading: string,\r\n  image: string,\r\n  vignette: string,\r\n  heading: string,\r\n  text: string,\r\n  score: oneOfType([string, number]),\r\n  revisedAsPublished: bool,\r\n  isNew: bool,\r\n  eventDate: string,\r\n  subjectHeading: string,\r\n  translations: shape({\r\n    subject: string,\r\n    published: string,\r\n    revised: string,\r\n  }),\r\n  showRevised: bool,\r\n  HitId: string,\r\n  query: string,\r\n  TrackId: string,\r\n  DisableClickTracking: bool,\r\n  informationtype: PropTypes.object,\r\n  vardpersonal1177: bool,\r\n  availableLanguagesHeader: string,\r\n  availableLanguages: array,\r\n};\r\n\r\nexport default ListItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport A from '../Anchor';\r\n\r\n/**\r\n * Used for custom click tracking with EPI find.\r\n *\r\n * Params `HitId`, `query`, `Trackid` are required to get correct tracking.\r\n *\r\n * Other props will be spread to the native <a> element.\r\n *\r\n */\r\nconst ClickTrackLink = ({\r\n  HitId,\r\n  DisableClickTracking,\r\n  TrackId,\r\n  query,\r\n  children,\r\n  href,\r\n  NewTab,\r\n  className,\r\n  containsLinks,\r\n  ...attr\r\n}) => {\r\n  function trackClick() {\r\n    fetch(\r\n      `/api/v2/search/trackclick?hitId=${HitId}&query=${query}&trackId=${TrackId}`\r\n    );\r\n  }\r\n\r\n  const trackLinkClick = () =>\r\n    !DisableClickTracking && TrackId ? trackClick() : undefined;\r\n\r\n  return containsLinks ? (\r\n    <div className={className} {...attr}>\r\n      {children}\r\n    </div>\r\n  ) : (\r\n    <A\r\n      {...attr}\r\n      onClick={() => {\r\n        trackLinkClick();\r\n      }}\r\n      href={href}\r\n      NewTab={NewTab}\r\n      className={className}\r\n    >\r\n      {children}\r\n    </A>\r\n  );\r\n};\r\n\r\nClickTrackLink.propTypes = {\r\n  /** (BE) */\r\n  HitId: PropTypes.string,\r\n  /** (BE) */\r\n  TrackId: PropTypes.string,\r\n  /** (BE) */\r\n  DisableClickTracking: PropTypes.bool,\r\n  query: PropTypes.string,\r\n  children: PropTypes.node,\r\n  href: PropTypes.string.isRequired,\r\n  NewTab: PropTypes.bool,\r\n  className: PropTypes.string,\r\n  containsLinks: PropTypes.bool,\r\n};\r\n\r\nexport default ClickTrackLink;\r\n"],"names":["WrappedComponent","props","geoLocationIsLoading","setGeoLocationIsLoading","useState","coords","setCoords","geoLocationError","setGetLocationError","_isMounted","useEffect","navigator","geolocation","getCurrentPosition","position","error","_jsx","_objectSpread","libraries","Component","constructor","arguments","shouldLoadMapsApi","window","google","state","googleMapsAPIIsLoading","isError","componentDidMount","pwtMapsIsReady","this","setState","bind","mapApiKey","loadScript","concat","render","componentName","endPoint","length","undefined","callbacks","afterFetchByQuery","afterLoadMorePages","Container","query","queryString","location","search","ignoreQueryPrefix","indices","key","p","SearchApiUrl","isLoading","SearchResult","getComponentName","dispatch","action","getState","fetch","fetchByQuery","updateSearchFromUrl","locationSearch","qs","componentname","Theme","theme","InformationType","informationtype","SearchOriginId","so","BatchSize","batchsize","SortOrder","sortorder","HistoryDays","days","RootLink","rootLink","Categories","category","IsArticleSearch","isArticleSearch","endpoint","site","getExternalEndpoint","searchApiUrl","searchApiIndex","loadMorePages","filterPages","searchOnMount","componentDidUpdate","prevProps","_ref","_location$pathname","apiEndpoint","endsWith","endpointWithSiteIndex","pathnameSegments","pathname","split","filter","Boolean","regionalizedSearch","parseForm","form","obj","elements","querySelectorAll","i","element","name","value","onSubmit","e","preventDefault","href","Search","withRouter","logError","Map","BASE_CLASS","mapElement","React","isMarkersLoading","initialBoundsSet","listeners","map","googleAPI","markers","markerCluster","ticking","addListeners","setInitialBounds","afterMapInit","getSizedIcon","markerOptions","url","icon","scaledSize","maps","Size","width","height","createClusters","clusterMarkerIcons","onClusterClick","MarkerClusterer","batchSize","styles","clusterClass","zoomOnClick","sizedIcon","event","addListener","cluster","getMarkers","forEach","m","setIcon","Promise","resolve","reject","eventListeners","Object","entries","fn","find","o","push","listener","api","removeListeners","removeListener","removeMarkers","marker","setMap","clearMarkers","createMarkers","locations","batchIteration","processMarkerData","bounds","onMarkerClick","LatLngBounds","batchedLocations","splice","shouldFitBounds","initialBounds","Locations","disableFitBounds","setCenter","getCenter","fitBounds","callIfFunction","afterFitBounds","sizedicon","requestAnimationFrame","locationData","Latitude","Longitude","createMarker","LatLng","extend","getPosition","onClick","data","Marker","lat","lng","componentWillUnmount","initMap","zoom","options","center","current","streetViewControl","mapTypeControl","onMapInit","UNSAFE_componentWillReceiveProps","nextProps","onGoogleAPILoad","async","then","catch","markersPerIteration","locationsCopy","useClusters","markerData","ne","initialNE","sw","initialSW","latitude","longitude","log","className","modifiers","componentClass","classNames","mapClass","_jsxs","children","ref","defaultProps","withGoogleMapsAPI","MatomoTrackSearch","SearchCategory","SearchHits","SearchLocation","ExternalSearchHits","_window","_paq","_window3","searchKeyword","tab","_tab$SearchResult","_window2","_tab$SearchResult2","TotalHits","SearchApiIndex","propTypes","PropTypes","PaginationButton","history","useHistory","role","Pagination","NextPage","qsModifiers","qStringify","paginationClass","Modifiers","useReactRouterLink","Spinner","revisedAsPublished","isNew","translations","eventDate","subjectHeading","Date","published","revised","subject","siteAddressMap","RHB","VHB","getExternalSiteAdress","siteIndex","getRegionalizedUrl","_qs$pathname","splitPaths","region","URL","SearchListItemWrapper","CustomSearchListItem","_objectWithoutProperties","_excluded","Image","lastItem","isLast","id","tabIndex","showRevised","IsNew","EventDate","trackingParams","HitId","TrackId","DisableClickTracking","ListItem","Url","searchHitHeading","SearchHitHeading","image","vignette","Vignette","heading","Heading","text","Text","score","Score","SubjectHeading","totalHits","selectionCode","SelectionCode","vardpersonal1177","primaryCareUrl","PrimaryCareUrl","specializedCareUrl","SpecializedCareUrl","isExternalSearchHit","regionalizeSearchHits","availableLanguagesHeader","availableLanguages","AvailableLanguages","_ref2","items","item","index","itemContainer","trackLinkClick","isVardPersonal1177","getHref","TrackedLink","containsLinks","dangerouslySetInnerHTML","__html","A","leadstoexternalsite","Key","Value","_Fragment","language","lang","Name","NativeName","RevisedAndPublished","NewTab","attr"],"sourceRoot":""}