{"version":3,"file":"static/chunks/8217.29eabe0fa4e37d05.js","mappings":"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","sources":["webpack://_N_E/./components/AnchorLink/AnchorLink.js","webpack://_N_E/./components/AnchorLink/index.js","webpack://_N_E/./components/CookieOverlay/CookieOverlay.js","webpack://_N_E/./components/CookieOverlay/index.js","webpack://_N_E/./components/LinkList/LinkList.js","webpack://_N_E/./components/LinkList/index.js","webpack://_N_E/./components/Map/Map.js","webpack://_N_E/./components/Map/index.js","webpack://_N_E/./components/MapExpander/MapExpander.js","webpack://_N_E/./components/MapExpander/index.js","webpack://_N_E/./components/MapInfoWindow/MapInfoWindow.js","webpack://_N_E/./components/MapInfoWindow/index.js","webpack://_N_E/./components/AnchorLink/AnchorLink.module.scss","webpack://_N_E/./components/CookieOverlay/CookieOverlay.module.scss","webpack://_N_E/./components/LinkList/LinkList.module.scss","webpack://_N_E/./components/Map/Map.module.scss","webpack://_N_E/./components/MapExpander/MapExpander.module.scss","webpack://_N_E/./components/MapInfoWindow/MapInfoWindow.module.scss"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport s from './AnchorLink.module.scss';\n\nconst AnchorLink = ({ children, title, id, className = '' }) => {\n if (!id) {\n return <span>{title || children}</span>;\n }\n\n const classes = classNames(s['Root'], 'Anchor', {\n [`${className}`]: className,\n });\n return (\n <a className={classes} href={`#${id}`} id={id}>\n <span>{title || children}</span>\n </a>\n );\n};\n\nAnchorLink.propTypes = {\n title: PropTypes.string,\n id: PropTypes.string,\n className: PropTypes.string,\n};\n\nexport default AnchorLink;\n","import AnchorLink from './AnchorLink';\n\nexport default AnchorLink;\n","import PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport styles from './CookieOverlay.module.scss';\nimport Button from '../Button';\n\nconst CookieOverlay = ({\n text,\n buttonText,\n modifiers = [],\n handleClick,\n icon,\n}) => {\n const classes = classNames(\n styles['CookieOverlay'],\n modifiers.map((modifier) => styles[`CookieOverlay--${modifier}`])\n );\n\n return (\n <div className={classes}>\n <p\n className={styles['CookieOverlay__Text']}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <Button\n type=\"Primary\"\n onClick={handleClick}\n text={buttonText}\n icon={icon}\n />\n </div>\n );\n};\n\nCookieOverlay.propTypes = {\n text: PropTypes.string,\n buttonText: PropTypes.string,\n modifiers: PropTypes.arrayOf(PropTypes.string),\n handleClick: PropTypes.func,\n icon: PropTypes.string,\n};\n\nCookieOverlay.defaultProps = {};\n\nexport default CookieOverlay;\n","import CookieOverlay from './CookieOverlay';\n\nexport default CookieOverlay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport AnchorLink from '../AnchorLink';\nimport isEmpty from '../../utils/isEmpty';\nimport styles from './LinkList.module.scss';\n\nconst LinkList = ({ heading, anchorLink, items }) => {\n return (\n <div className={styles['LinkList']}>\n <h2 className={styles['LinkList__Heading']}>\n <AnchorLink\n classNames={styles['LinkList__Heading']}\n title={heading}\n id={anchorLink}\n />\n </h2>\n <div className={styles['LinkList__Links']}>\n {items.map((link, index) => (\n <Link {...link} key={index} />\n ))}\n </div>\n </div>\n );\n};\n\nLinkList.propTypes = {\n heading: PropTypes.string,\n anchorLink: PropTypes.string,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n href: PropTypes.string,\n title: PropTypes.string,\n description: PropTypes.string,\n type: PropTypes.string,\n })\n ),\n};\n\nLinkList.defaultProps = {\n heading: '',\n anchorLink: '',\n items: [],\n};\n\nconst Link = ({ href, title, description, type }) => {\n const classes = classNames(\n styles['LinkList__Link'],\n styles[`LinkList__Link--${type}`],\n {\n [styles['LinkList__Link--HasDescription']]: !isEmpty(description),\n }\n );\n\n return (\n <a className={classes} href={href}>\n <span className={styles['LinkList__Title']}>{title}</span>\n {description && (\n <span className={styles['LinkList__Description']}>\n {description}\n </span>\n )}\n </a>\n );\n};\n\nLink.propTypes = {\n href: PropTypes.string,\n title: PropTypes.string,\n description: PropTypes.string,\n type: PropTypes.string,\n};\n\nLink.defaultProps = {\n href: '',\n title: '',\n description: '',\n type: '',\n};\n\nexport default LinkList;\n","import LinkList from './LinkList';\n\nexport default LinkList;\n","import React, { useEffect, useState, useContext } from 'react';\nimport classNames from 'classnames';\nimport { renderToString } from 'react-dom/server';\nimport PropTypes from 'prop-types';\nimport styles from './Map.module.scss';\nimport GoogleMapReact from 'google-map-react';\nimport BaseContext from '../../containers/BasePage/BaseContext';\nimport CookieOverlay from '../CookieOverlay';\nimport MapInfoWindow from '../MapInfoWindow';\nimport { CookieStateContext } from '../../containers/BasePage/state';\nimport { useTranslation } from 'next-i18next';\n\nconst createMapOptions = () => {\n return {\n clickableIcons: false,\n clickableLabels: false,\n fullscreenControl: false,\n maxZoom: 17,\n };\n};\n\nconst Map = ({\n apiKey,\n items = [],\n newTab = false,\n zoomLevel = 17,\n untranslatedModifiers = [],\n}) => {\n const { googleMapsApiKey } = useContext(BaseContext);\n const mapApiKey = apiKey || googleMapsApiKey;\n\n const { t } = useTranslation('common');\n\n const [map, setMap] = useState(null);\n const [maps, setMaps] = useState(null);\n const [isMapReady, setIsMapReady] = useState(false);\n const [mapBounds, setMapBounds] = useState(null);\n const [infoWindow, setInfoWindow] = useState(null);\n const [showMapWithoutCookieConsent, setShowMapWithoutCookieConsent] =\n useState(false);\n\n const { state } = useContext(CookieStateContext) || {};\n const cookieConsent = state?.categories?.includes('targeting');\n\n const itemGroups =\n items && items.length > 0\n ? items.reduce((acc, item) => {\n const key = item?.type === 'route' ? 'routes' : 'pois';\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(item);\n return acc;\n }, {})\n : {};\n\n const pois = itemGroups?.pois || [];\n const routes = itemGroups?.routes || [];\n const readMoreText = t('map.readMore');\n\n const triggerInfoWindow = ({ lat, lng, text, address, href, readMore }) => {\n infoWindow.setPosition({ lat: parseFloat(lat), lng: parseFloat(lng) });\n infoWindow.setContent(\n renderToString(\n <MapInfoWindow\n title={text || address}\n href={href}\n newTab={newTab}\n readMore={readMore || readMoreText}\n />\n )\n );\n infoWindow.open(map);\n };\n\n useEffect(() => {\n if (infoWindow && items.length === 1) {\n const item = items[0];\n triggerInfoWindow(item);\n }\n }, [infoWindow]);\n\n useEffect(() => {\n if (!maps || !map) return;\n\n if (pois.length === 1 && routes.length <= 0) {\n /* Center map on single point */\n const center = new maps.LatLng(items[0].lat, items[0].lng);\n map.setCenter(center);\n setIsMapReady(true);\n } else if (items.length >= 1) {\n let bounds = new maps.LatLngBounds();\n let processedRoutesCount = 0;\n let kmlLayers = [];\n\n items.forEach(({ lat, lng }) => {\n bounds.extend(\n new maps.LatLng(parseFloat(lat), parseFloat(lng))\n );\n });\n\n if (routes.length > 0) {\n // Load each KML layer and check if it's loaded\n routes.forEach((item) => {\n const routeTitle = item.text || item.address;\n const kmlLayer = new maps.KmlLayer({\n url: `https://www.google.com/maps/d/kml?mid=${item.route}`,\n map: map,\n title: routeTitle,\n suppressInfoWindows: true, // Disable default info window\n });\n kmlLayers.push(kmlLayer);\n\n maps.event.addListener(kmlLayer, 'click', () => {\n triggerInfoWindow(item);\n });\n\n // Listen for when metadata (including viewport) is ready\n maps.event.addListenerOnce(\n kmlLayer,\n 'metadata_changed',\n () => {\n if (kmlLayer.getDefaultViewport()) {\n bounds.union(kmlLayer.getDefaultViewport());\n }\n processedRoutesCount++;\n\n // If all routes are processed (successfully or failed), finalize bounds\n if (processedRoutesCount === routes.length) {\n setMapBounds(bounds);\n setIsMapReady(true);\n }\n }\n );\n\n // Handle KML layer errors explicitly\n maps.event.addListener(kmlLayer, 'status_changed', () => {\n if (kmlLayer.getStatus() !== maps.KmlLayerStatus.OK) {\n console.error(\n `Failed to load route: ${routeTitle}`\n );\n processedRoutesCount++; // Count failed loads too\n\n if (processedRoutesCount === routes.length) {\n setMapBounds(bounds);\n setIsMapReady(true);\n }\n }\n });\n });\n } else {\n // If no routes, fit bounds with only item positions\n setMapBounds(bounds);\n setIsMapReady(true);\n }\n }\n }, [maps, map]);\n\n // Fit map bounds when ready\n useEffect(() => {\n if (isMapReady && mapBounds) {\n map.fitBounds(mapBounds);\n }\n }, [isMapReady, mapBounds]);\n\n const center = {\n lat: parseFloat(60.95),\n lng: parseFloat(20.33),\n };\n\n const classes = classNames(\n styles['Map'],\n 'Map',\n untranslatedModifiers.map((x) => styles[x])\n );\n\n return (\n <div className={classes}>\n <div className={styles['Map__Container']}>\n {!(cookieConsent || showMapWithoutCookieConsent) && (\n <CookieOverlay\n text={t('map.cookieText')}\n buttonText={t('map.cookieButton')}\n modifiers={['Map']}\n handleClick={() => {\n setShowMapWithoutCookieConsent(true);\n }}\n />\n )}\n {(cookieConsent || showMapWithoutCookieConsent) && (\n <GoogleMapReact\n onClick={() => {\n if (infoWindow) {\n infoWindow.close();\n }\n }}\n defaultCenter={center}\n options={createMapOptions}\n bootstrapURLKeys={{ key: mapApiKey }}\n yesIWantToUseGoogleMapApiInternals\n tabIndex={-1}\n onGoogleApiLoaded={({ map, maps }) => {\n setMap(map);\n setMaps(maps);\n setInfoWindow(new maps.InfoWindow());\n }}\n defaultZoom={zoomLevel}>\n {pois.map((item, i) => (\n <Pin\n key={i}\n onClick={() => triggerInfoWindow(item)}\n {...item}\n />\n ))}\n </GoogleMapReact>\n )}\n </div>\n </div>\n );\n};\n\nMap.propTypes = {\n items: PropTypes.array.isRequired,\n apiKey: PropTypes.string.isRequired,\n newTab: PropTypes.bool,\n zoomLevel: PropTypes.number,\n untranslatedModifiers: PropTypes.arrayOf(PropTypes.string),\n};\n\nconst Pin = ({ lng, lat, onClick }) => {\n return (\n <button\n onClick={onClick}\n lat={parseFloat(lat)}\n lng={parseFloat(lng)}\n className={styles['Map__Poi']}\n />\n );\n};\n\nPin.propTypes = {\n map: PropTypes.object,\n lng: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n lat: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n title: PropTypes.string,\n href: PropTypes.string,\n newTab: PropTypes.bool,\n};\n\nexport default Map;\n","import Map from './Map';\n\nexport default Map;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './MapExpander.module.scss';\nimport isEmpty from '../../utils/isEmpty';\nimport Map from '../Map';\nimport { useTranslation } from 'next-i18next';\n\nconst MapExpander = ({ googleMapsApiKey, items = [], zoomLevel = 14 }) => {\n const { t } = useTranslation('common');\n const [isOpen, setIsOpen] = useState(false);\n\n if (isEmpty(items)) {\n return null;\n }\n\n items = items.map((item) => ({\n ...item,\n readMore: item?.url ? null : t('mapExpander.goToMap'),\n href:\n item?.url ||\n `https://maps.google.com/maps/dir/${item.lat},${item.lng}/@${item.lat},${item.lng},16z`,\n }));\n\n return (\n <div className={styles['MapExpander']}>\n <button\n onClick={() => setIsOpen((p) => !p)}\n aria-controls=\"article_map\"\n aria-expanded={isOpen}\n className={styles['MapExpander__Button']}>\n {t('mapExpander.defaultIfNoAddress')}\n </button>\n {isOpen && (\n <div className={styles['MapExpander__Expand']}>\n <Map\n apiKey={googleMapsApiKey}\n items={items}\n newTab\n zoomLevel={zoomLevel}\n untranslatedModifiers={['Map--InExpander']}\n />\n </div>\n )}\n </div>\n );\n};\n\nMapExpander.propTypes = {\n googleMapsApiKey: PropTypes.string,\n items: PropTypes.array,\n zoomLevel: PropTypes.number,\n};\n\nexport default MapExpander;\n","import MapExpander from './MapExpander';\n\nexport default MapExpander;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'next-i18next';\nimport classNames from 'classnames';\nimport { serializeImage } from '../../utils/SerializeImage';\nimport BackgroundImage from '../BackgroundImage';\nimport styles from './MapInfoWindow.module.scss';\n\nconst MapInfoWindow = ({\n href = '',\n readMore,\n title = '',\n image = {},\n newTab = false,\n}) => {\n const { t } = useTranslation('common');\n\n const isExternalLink = href && !href.includes('.visitsweden.');\n const isGoogleMapsLink = href && href.includes('maps.google.com');\n const url = href && !isExternalLink ? `${href}?from_map=1` : href;\n\n // These translations doesn't seem to work, maybe loaded too late, so make sure text is passed to this component\n const defaultReadMore = isGoogleMapsLink\n ? t('mapInfoWindow.goToMap')\n : t('mapInfoWindow.readMore');\n const readMoreText = readMore || defaultReadMore;\n\n const serializedImage = serializeImage(image);\n const sizes = '95px';\n const hasImage = image && image?.src;\n\n const classes = classNames(\n styles['MapInfoWindow'],\n { [styles['MapInfoWindow--HasImage']]: hasImage },\n { [styles['MapInfoWindow--External']]: isExternalLink }\n );\n\n return (\n <div className={classes}>\n <a\n className={styles['MapInfoWindow__Link']}\n href={url}\n target={newTab || isExternalLink ? '_blank' : '_self'}\n rel=\"noreferrer\"\n aria-label={`${title}: ${readMoreText}`}\n />\n <div className={styles['MapInfoWindow__Container']}>\n {hasImage && (\n <div className={styles['MapInfoWindow__Image']}>\n <BackgroundImage\n {...serializedImage}\n sizes={sizes}\n quality={60}\n shouldLazyLoad={false}\n hideAlt={true}\n />\n </div>\n )}\n <div className={styles['MapInfoWindow__Content']}>\n <div className={styles['MapInfoWindow__Text']}>{title}</div>\n <div className={styles['MapInfoWindow__ReadMore']}>\n {readMoreText}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nMapInfoWindow.propTypes = {\n href: PropTypes.string,\n title: PropTypes.string,\n image: PropTypes.object,\n newTab: PropTypes.bool,\n};\n\nMapInfoWindow.defaultProps = {\n href: '',\n title: '',\n image: {},\n newTab: false,\n};\n\nexport default MapInfoWindow;\n","import MapInfoWindow from './MapInfoWindow';\n\nexport default MapInfoWindow;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Root\":\"AnchorLink_Root__gIFSV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CookieOverlay\":\"CookieOverlay_CookieOverlay__IOd5K\",\"CookieOverlay--Map\":\"CookieOverlay_CookieOverlay--Map__eDiam\",\"CookieOverlay--VideoSegment\":\"CookieOverlay_CookieOverlay--VideoSegment__j_A7v\",\"CookieOverlay__Text\":\"CookieOverlay_CookieOverlay__Text__b0dqw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LinkList__Heading\":\"LinkList_LinkList__Heading__tXU5A\",\"LinkList__Description\":\"LinkList_LinkList__Description__ONowf\",\"LinkList__Title\":\"LinkList_LinkList__Title__mzK56\",\"LinkList__Links\":\"LinkList_LinkList__Links__lIjmK\",\"LinkList__Link\":\"LinkList_LinkList__Link__7_sNd\",\"LinkList__Link--HasDescription\":\"LinkList_LinkList__Link--HasDescription__jLWtu\",\"LinkList__Link--Link\":\"LinkList_LinkList__Link--Link__mzsNb\",\"LinkList__Link--Document\":\"LinkList_LinkList__Link--Document__KyOr9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Map\":\"Map_Map__mQv1G\",\"Map__Container\":\"Map_Map__Container__DhtCh\",\"Map__Poi\":\"Map_Map__Poi__CCJNu\",\"Map--InExpander\":\"Map_Map--InExpander__UjBSQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MapExpander\":\"MapExpander_MapExpander__vT1vS\",\"MapExpander__Button\":\"MapExpander_MapExpander__Button__ai6nl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MapInfoWindow__Text\":\"MapInfoWindow_MapInfoWindow__Text__WFD72\",\"MapInfoWindow\":\"MapInfoWindow_MapInfoWindow__1wlBM\",\"MapInfoWindow__Link\":\"MapInfoWindow_MapInfoWindow__Link__aA8Et\",\"MapInfoWindow__Container\":\"MapInfoWindow_MapInfoWindow__Container__gR1VW\",\"MapInfoWindow__Content\":\"MapInfoWindow_MapInfoWindow__Content__7OWmt\",\"MapInfoWindow__Image\":\"MapInfoWindow_MapInfoWindow__Image__K60Ai\",\"MapInfoWindow__ReadMore\":\"MapInfoWindow_MapInfoWindow__ReadMore__swvYi\",\"MapInfoWindow--External\":\"MapInfoWindow_MapInfoWindow--External__B8XLs\"};"],"names":["AnchorLink","children","title","id","className","param","jsx_runtime","jsx","span","classes","classNames","s","concat","a","href","propTypes","PropTypes","components_AnchorLink","CookieOverlay","text","buttonText","modifiers","handleClick","icon","styles","map","modifier","jsxs","div","p","dangerouslySetInnerHTML","__html","Button","type","onClick","defaultProps","components_CookieOverlay","LinkList","heading","anchorLink","items","h2","link","index","react","createElement","Link","key","description","isEmpty","components_LinkList","createMapOptions","clickableIcons","clickableLabels","fullscreenControl","maxZoom","Map","state","apiKey","newTab","zoomLevel","untranslatedModifiers","googleMapsApiKey","useContext","BaseContext","t","useTranslation","setMap","useState","maps","setMaps","isMapReady","setIsMapReady","mapBounds","setMapBounds","infoWindow","setInfoWindow","showMapWithoutCookieConsent","setShowMapWithoutCookieConsent","CookieStateContext","cookieConsent","categories","includes","itemGroups","length","reduce","acc","item","push","pois","routes","readMoreText","triggerInfoWindow","lat","lng","address","readMore","setPosition","parseFloat","setContent","renderToString","MapInfoWindow","open","useEffect","center","LatLng","setCenter","bounds","LatLngBounds","processedRoutesCount","kmlLayers","forEach","extend","routeTitle","kmlLayer","KmlLayer","url","route","suppressInfoWindows","event","addListener","addListenerOnce","getDefaultViewport","union","getStatus","KmlLayerStatus","OK","console","error","fitBounds","x","GoogleMapReact","close","defaultCenter","options","bootstrapURLKeys","yesIWantToUseGoogleMapApiInternals","tabIndex","onGoogleApiLoaded","InfoWindow","defaultZoom","i","Pin","isRequired","button","components_Map","MapExpander","isOpen","setIsOpen","_object_spread_props","_","_object_spread","aria-controls","aria-expanded","components_MapExpander","image","isExternalLink","isGoogleMapsLink","defaultReadMore","serializedImage","serializeImage","hasImage","src","target","rel","aria-label","BackgroundImage","sizes","quality","shouldLazyLoad","hideAlt","components_MapInfoWindow","module","exports"],"sourceRoot":""}