{"version":3,"file":"static/chunks/2890.7456f1b4977851d1.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/ArticleList/ArticleList.js","webpack://_N_E/./components/ArticleList/index.js","webpack://_N_E/./utils/debounce.js","webpack://_N_E/./components/AnchorLink/AnchorLink.module.scss","webpack://_N_E/./components/ArticleList/ArticleList.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 React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport BackgroundImage from '../BackgroundImage';\nimport VisibilitySensor from 'react-visibility-sensor';\nimport { useTranslation } from 'next-i18next';\n\nimport FadeIn from '../../transitions/FadeIn';\n\nimport { serializeImage } from '../../utils/SerializeImage';\nimport debounce from '../../utils/debounce';\nimport { breakpoints } from '../../constants';\n\nimport classNames from 'classnames';\nimport isEmpty from '../../utils/isEmpty';\nimport useMediaQuery from '../../utils/useMediaQuery';\nimport AnchorLink from '../AnchorLink';\n\nimport styles from './ArticleList.module.scss';\n\nconst useScrollPosition = (elem) => {\n const [scrollPosition, setScrollPosition] = useState(0);\n\n const listener = debounce(() => {\n setScrollPosition(elem.current.scrollLeft);\n }, 200);\n\n useEffect(() => {\n if (!elem.current) {\n return;\n }\n\n const el = elem.current;\n\n el.addEventListener('scroll', listener, { passive: true });\n return () => {\n el.removeEventListener('scroll', listener);\n };\n }, [elem, listener]);\n\n return {\n scrollPosition,\n };\n};\n\nconst ArticleList = ({\n id,\n items = [],\n href = '',\n title = '',\n preamble = '',\n usp = '',\n landingType = '',\n isPremium = false,\n whereToGoType = '',\n isRootWhereToGo = false,\n isLeaf = false,\n anchorLink = '',\n // isLandingPage,\n}) => {\n const { t } = useTranslation('common');\n const sliderElement = useRef(null);\n const { scrollPosition } = useScrollPosition(sliderElement);\n const isTablet = useMediaQuery({\n query: `(max-width: ${breakpoints.l}px)`,\n });\n\n const keys = [32, 13];\n\n const slide = (dir, e) => {\n e.preventDefault();\n\n if (e.keyCode && keys.indexOf(e.keyCode) === -1) {\n return;\n }\n\n if (!sliderElement.current) {\n return;\n }\n\n const scrollLength = sliderElement.current.clientWidth / 2;\n\n let scroll = {\n behavior: 'smooth',\n };\n\n if (dir === 'left') {\n scroll.left = scrollPosition - scrollLength;\n } else {\n scroll.left = scrollPosition + scrollLength;\n }\n\n sliderElement.current.scroll(scroll);\n };\n\n if (isEmpty(items)) {\n return null;\n }\n\n // const isSingle = items.length === 1;\n\n const slideRight = (e) => slide('right', e);\n const slideLeft = (e) => slide('left', e);\n\n const percentageScrolled = sliderElement.current\n ? (scrollPosition /\n (sliderElement.current.scrollWidth -\n sliderElement.current.clientWidth)) *\n 100\n : 0;\n const isAtRightEdge = percentageScrolled === 100;\n\n const getVisibleItemsCount = () => {\n if (isTablet) {\n return 2;\n } else {\n return 4;\n }\n };\n\n const visibleItemsCount = getVisibleItemsCount();\n const isScrollable = items.length > visibleItemsCount;\n\n const classes = classNames(styles['ArticleList'], {\n [styles['ArticleList--NonPremium']]: !isPremium,\n [styles['ArticleList--Premium']]: isPremium,\n // [styles[\"ArticleList--Single\"]]: isSingle,\n [styles['ArticleList--Northern']]:\n isRootWhereToGo && whereToGoType == 'northern-sweden',\n [styles['ArticleList--Southern']]:\n isRootWhereToGo && whereToGoType == 'southern-sweden',\n [styles['ArticleList--Central']]:\n isRootWhereToGo && whereToGoType == 'middle-sweden',\n // [styles[\"ArticleList--Narrow\"]]: items.length <= 3 && !isLandingPage,\n [styles['ArticleList--HasIndicator']]: items.length > 4,\n });\n\n const showViewAll = items.length > 4 && !isLeaf;\n\n const titleClasses = classNames(styles['ArticleList__Title'], {\n [styles['ArticleList__Title--Linked']]: href,\n [styles['ArticleList__Title--Arrow']]: showViewAll,\n });\n\n return (\n <div className={classes}>\n <div className={styles['ArticleList__Container']}>\n <div className={styles['ArticleList__TextContainer']}>\n {href && (\n <h2 className={titleClasses}>\n <a href={href}>\n <span className=\"sr-only\">{title}</span>\n </a>\n <span>{title}</span>\n\n {showViewAll && (\n <span\n className={styles['ArticleList__ShowMore']}\n aria-hidden={true}>\n <span\n className={\n styles['ArticleList__ShowMoreText']\n }>\n {t('articleList.viewAll')}\n </span>\n </span>\n )}\n </h2>\n )}\n {!href && (\n <h2 className={styles['ArticleList__Title']}>\n <AnchorLink title={title} id={anchorLink} />\n </h2>\n )}\n {(preamble || usp) && (\n <div className={styles['ArticleList__Preamble']}>\n {usp || preamble}\n </div>\n )}\n\n <div className={styles['ArticleList__Line']} />\n </div>\n\n <FadeIn visible={scrollPosition > 0 && isScrollable}>\n <span>\n <button\n className={styles['ArticleList__ArrowLeft']}\n type=\"button\"\n onClick={(e) => slideLeft(e)}>\n <span className=\"sr-only\">\n {t('articleList.scrollLeft')}\n </span>\n </button>\n </span>\n </FadeIn>\n\n <div className={styles['ArticleList__SlideWrap']}>\n <div\n className={styles['ArticleList__Slidable']}\n tabIndex={-1}\n ref={sliderElement}>\n {items.map((item, i) => (\n <ArticleListCard\n {...item}\n landingType={landingType}\n landingId={id}\n index={i}\n key={i}\n />\n ))}\n </div>\n </div>\n\n <FadeIn visible={!isAtRightEdge && isScrollable}>\n <span>\n <button\n className={styles['ArticleList__ArrowRight']}\n type=\"button\"\n onClick={(e) => slideRight(e)}>\n <span className=\"sr-only\">\n {t('articleList.scrollRight')}\n </span>\n </button>\n </span>\n </FadeIn>\n\n {items.length > 3 && (\n <ArticleListPager\n itemsCount={items.length}\n percentageScrolled={percentageScrolled}\n isScrollable={isScrollable}\n />\n )}\n </div>\n </div>\n );\n};\n\nArticleList.propTypes = {\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n items: PropTypes.array,\n title: PropTypes.string,\n preamble: PropTypes.string,\n usp: PropTypes.string,\n href: PropTypes.string,\n anchorLink: PropTypes.string,\n isPremium: PropTypes.bool,\n isLandingPage: PropTypes.bool,\n isLeaf: PropTypes.bool,\n isRootWhereToGo: PropTypes.bool,\n whereToGoType: PropTypes.string,\n landingType: PropTypes.string,\n};\n\nconst ArticleListCard = ({\n image = {},\n title = '',\n href = '',\n type = '',\n landingType = '',\n landingId,\n index,\n}) => {\n const { t } = useTranslation('common');\n const [isVisible, setIsVisible] = useState(index === 0);\n\n image = serializeImage(image);\n\n const sizes = '(max-width: 768px) 100vw, (max-width: 1280px) 50vw, 375px';\n\n const classes = classNames(\n styles['ArticleList__Card'],\n styles[`ArticleList__Card--${type}`]\n );\n\n const tagMap = {\n external: t('articleList.tagExternal'),\n city: t('articleList.tagCity'),\n region: t('articleList.tagRegion'),\n };\n\n if (landingType === 'what-to-do' && landingId) {\n href = `${href}?what_to_do=${landingId}`;\n }\n\n return (\n <VisibilitySensor onChange={(x) => setIsVisible(index === 0 || x)}>\n <a href={href} className={classes} tabIndex={isVisible ? 0 : -1}>\n <div className={styles['ArticleList__Image']}>\n <BackgroundImage\n {...image}\n quality={60}\n sizes={sizes}\n hideAlt={true}\n />\n </div>\n <div className={styles['ArticleList__CardContent']}>\n <h3 className={styles['ArticleList__CardTitle']}>\n {type && (\n <div\n aria-hidden={true}\n className={styles['ArticleList__Tag']}>\n {tagMap[type]}\n </div>\n )}\n {title}\n </h3>\n </div>\n </a>\n </VisibilitySensor>\n );\n};\n\nArticleListCard.propTypes = {\n image: PropTypes.object,\n title: PropTypes.string,\n href: PropTypes.string,\n type: PropTypes.string,\n landingType: PropTypes.string,\n landingId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n index: PropTypes.number,\n};\n\nconst ArticleListPager = ({\n itemsCount = 0,\n percentageScrolled = 0,\n isScrollable,\n}) => {\n const isResponsive = useMediaQuery({\n query: `(max-width: ${breakpoints.m}px)`,\n });\n\n if (!isResponsive && !isScrollable) {\n return null;\n }\n\n return (\n <div className={styles['ArticleList__Pager']}>\n <div className={styles['ArticleList__PagerBg']}>\n <div\n className={styles['ArticleList__PagerContent']}\n style={{ width: `${percentageScrolled}%` }}></div>\n </div>\n </div>\n );\n};\n\nconst GeneralArticleList = ({ items, landingType }) => {\n const { t } = useTranslation('common');\n const title =\n landingType === 'where-to-go'\n ? t('articleList.generalWhereToGoTitle')\n : t('articleList.generalWhatToDoTitle');\n\n return <ArticleList isLandingPage={true} items={items} title={title} />;\n};\n\nconst MoreInArticleList = ({ items, parentTitle }) => {\n const { t } = useTranslation('common');\n return (\n <ArticleList\n isLandingPage={true}\n items={items}\n title={t('articleList.moreIn', { parentTitle })}\n />\n );\n};\n\nArticleListPager.propTypes = {\n itemsCount: PropTypes.number,\n percentageScrolled: PropTypes.number,\n};\n\nGeneralArticleList.propTypes = {\n items: PropTypes.array,\n landingType: PropTypes.string,\n};\nMoreInArticleList.propTypes = {\n items: PropTypes.array,\n landingType: PropTypes.string,\n parentTitle: PropTypes.string,\n};\n\nexport { GeneralArticleList, MoreInArticleList };\nexport default ArticleList;\n","import ArticleList, {\n GeneralArticleList,\n MoreInArticleList,\n} from './ArticleList';\n\nexport { GeneralArticleList, MoreInArticleList };\nexport default ArticleList;\n","const debounce = (func, wait, immediate) => {\n let timeout;\n return function () {\n const context = this;\n const args = arguments;\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n }, wait);\n if (immediate && !timeout) func.apply(context, args);\n };\n};\n\nexport default debounce;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Root\":\"AnchorLink_Root__gIFSV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ArticleList__Container\":\"ArticleList_ArticleList__Container__91s7N\",\"ArticleList--Premium\":\"ArticleList_ArticleList--Premium__i72Fs\",\"ArticleList__Title\":\"ArticleList_ArticleList__Title__xeyBI\",\"ArticleList__Link\":\"ArticleList_ArticleList__Link__PFaoD\",\"ArticleList__CardTitle\":\"ArticleList_ArticleList__CardTitle__zHO0c\",\"ArticleList--NonPremium\":\"ArticleList_ArticleList--NonPremium__VJYrp\",\"ArticleList__Preamble\":\"ArticleList_ArticleList__Preamble__XC3U6\",\"ArticleList__ShowMore\":\"ArticleList_ArticleList__ShowMore__BYeb9\",\"ArticleList\":\"ArticleList_ArticleList__D4ulu\",\"ArticleList--HasIndicator\":\"ArticleList_ArticleList--HasIndicator__5YByf\",\"ArticleList__TextContainer\":\"ArticleList_ArticleList__TextContainer__pP67j\",\"ArticleList--Northern\":\"ArticleList_ArticleList--Northern__V6_1I\",\"ArticleList--Southern\":\"ArticleList_ArticleList--Southern__rntrZ\",\"ArticleList--Central\":\"ArticleList_ArticleList--Central__zJ0YA\",\"ArticleList__ShowMoreText\":\"ArticleList_ArticleList__ShowMoreText__22TYA\",\"ArticleList__Title--Linked\":\"ArticleList_ArticleList__Title--Linked__XttiH\",\"ArticleList__Line\":\"ArticleList_ArticleList__Line__ps0C3\",\"ArticleList__SlideWrap\":\"ArticleList_ArticleList__SlideWrap__fNLX8\",\"ArticleList__Slidable\":\"ArticleList_ArticleList__Slidable__cQzxZ\",\"ArticleList__Image\":\"ArticleList_ArticleList__Image__2e4KB\",\"ArticleList--Narrow\":\"ArticleList_ArticleList--Narrow__jLB8N\",\"BackgroundImage__Image\":\"ArticleList_BackgroundImage__Image__wgHDg\",\"ArticleList__Card\":\"ArticleList_ArticleList__Card__Yqt_U\",\"ArticleList--Single\":\"ArticleList_ArticleList--Single__YL6A3\",\"ArticleList__CardContent\":\"ArticleList_ArticleList__CardContent__AChYx\",\"ArticleList__Card--city\":\"ArticleList_ArticleList__Card--city__ukdX9\",\"ArticleList__Card--region\":\"ArticleList_ArticleList__Card--region__gR_Pi\",\"ArticleList__Card--external\":\"ArticleList_ArticleList__Card--external__abZcP\",\"ArticleList__Tag\":\"ArticleList_ArticleList__Tag__WNuHr\",\"ArticleList__ArrowRight\":\"ArticleList_ArticleList__ArrowRight__j1wA6\",\"ArticleList__ArrowLeft\":\"ArticleList_ArticleList__ArrowLeft__33Pbf\",\"ArticleList__Pager\":\"ArticleList_ArticleList__Pager__Ooor4\",\"ArticleList__PagerBg\":\"ArticleList_ArticleList__PagerBg__6qxwF\",\"ArticleList__PagerContent\":\"ArticleList_ArticleList__PagerContent__I2UUD\"};"],"names":["AnchorLink","children","title","id","className","param","jsx_runtime","jsx","span","classes","classNames","s","concat","a","href","propTypes","PropTypes","components_AnchorLink","useScrollPosition","scrollPosition","setScrollPosition","useState","listener","debounce","elem","current","scrollLeft","useEffect","el","addEventListener","passive","removeEventListener","ArticleList","items","preamble","usp","landingType","isPremium","whereToGoType","isRootWhereToGo","isLeaf","anchorLink","t","useTranslation","sliderElement","useRef","isTablet","useMediaQuery","query","breakpoints","l","keys","slide","dir","e","preventDefault","keyCode","indexOf","scrollLength","clientWidth","scroll","behavior","left","isEmpty","slideRight","slideLeft","percentageScrolled","scrollWidth","isAtRightEdge","isScrollable","length","styles","showViewAll","titleClasses","div","jsxs","h2","aria-hidden","FadeIn","visible","button","type","onClick","tabIndex","ref","map","item","i","react","createElement","ArticleListCard","landingId","index","key","ArticleListPager","itemsCount","isLandingPage","image","isVisible","setIsVisible","serializeImage","tagMap","external","city","region","VisibilitySensor","onChange","x","BackgroundImage","quality","sizes","hideAlt","h3","m","style","width","GeneralArticleList","MoreInArticleList","parentTitle","components_ArticleList","__webpack_exports__","Z","func","wait","immediate","timeout","context","args","arguments","clearTimeout","setTimeout","apply","module","exports"],"sourceRoot":""}