{"version":3,"sources":["webpack:///./src/modules/Hero/Hero.js","webpack:///./src/modules/HeroFrontpage/HeroFrontpage.js","webpack:///./src/components/Image/ImgElement.js","webpack:///./src/components/Image/Image.js","webpack:///./src/components/Image/imgix-support.js","webpack:///./src/components/Image/helpers.js","webpack:///./src/icons/PlayIcon.js","webpack:///./src/modules/Header/ToggleSearch.js","webpack:///./src/icons/SearchIcon.js"],"names":["Figure","styled","figure","withConfig","displayName","componentId","color","bg","Hero","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","player","state","isPlaying","handleMountVideo","handlePlayClick","triggerFullscreen","handleVideoPlay","setState","articleWrapperEl","document","getElementById","style","marginTop","handleVideoPause","removeProperty","key","value","_this2","_this$props","this","props","video","image","src","React","MediaQuery","query","breakpoints","sm","matches","aspect","Vimeo","Object","assign","ref","controls","useControlsRibbon","onPlay","onPause","onMountVideo","transition","paddingBottom","undefined","Image","cover","maxAspectRatio","defaultProps","StyledSection","section","rem","StyledHeading","Heading","TextWrapper","div","StyledParagraph","Paragraph","attrs","weight","size","_ref","theme","text","getLineHeight","getFontSize","StyledButton","button","StyledLabel","p","HeroFrontpage","_ref2","title","introText","searchButton","fillContainer","tag","level","responsiveSize","label","arial-label","onClick","handleOpenSearch","raffleId","SearchIcon","aria-hidden","marginLeft","getObjectPosition","alignX","alignY","Img","img","blurred","show","_ref3","hide","_ref4","zoomOnHover","ImgElement","_ref5","alt","contain","onLoad","_objectWithoutProperties","_excluded","_useState2","_slicedToArray","useState","renderAsDiv","setRenderAsDiv","useEffect","objectFitSupport","createElement","as","backgroundImage","backgroundSize","backgroundPosition","objectPosition","objectFit","role","Container","_PureComponent","ready","animatedIn","elementWidth","elementHeight","timeout","handleLoad","fadeIn","setTimeout","handleTransitionEnd","handleError","handleMeasure","contentRect","Math","ceil","bounds","width","height","onResize","aspectRatio","min","_objectSpread","fit","crop","focalPoint","auto","x","y","imgixParams","imgixProps","processImage","imageDimensionMap","w","h","dpr","q","blur","clearTimeout","disableBlur","className","_this$state","generateImgixProps","currentSrc","generateSource","generateAspectRatio","Measure","measureRef","generateBlurredSource","onError","onTransitionEnd","PureComponent","withImgix","normalizedWidth","imageQuality","constructUrl","params","preparedParams","keys","filter","k","map","encodeURIComponent","join","Component","InjectedComponent","ConfigContext","Consumer","config","imgixDomain","options","includes","global","devicePixelRatio","supports","body","Svg","svg","name","white","yellow","PlayIcon","rest","viewBox","cursor","id","cx","cy","r","d","link","window","raffleApi","open","e","console","error","alert","fill","xmlns","fillRule","clipRule"],"mappings":"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","file":"static/scripts/hero-514ce629478f68fec8b6.js","sourcesContent":["// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { color } from '../../styles/theme'\nimport { breakpoints } from '../../styles/media'\n\nimport type { ImageViewModel } from '../../types/ImageViewModel'\nimport type { VideoViewModel } from '../../types/VideoViewModel'\nimport type { AreaTypes } from '../../types/enums/AreaTypes'\n\nimport Vimeo from '../../components/Vimeo/Vimeo'\nimport MediaQuery from '../../components/MediaQuery/MediaQuery'\nimport Image from '../../components/Image/Image'\n\nconst Figure = styled.figure`\n position: relative;\n margin: 0;\n overflow: hidden;\n background-color: ${color.bg};\n`\n\nexport type Props = {\n image?: ImageViewModel,\n video?: VideoViewModel,\n area?: AreaTypes,\n}\n\ntype State = {\n isPlaying: boolean,\n}\n\nclass Hero extends React.Component {\n static displayName = 'Hero'\n static defaultProps = {}\n player = null\n\n state = {\n isPlaying: false,\n }\n\n // $FlowFixMe\n handleMountVideo = (player: { triggerFullscreen: Function }) => {\n this.player = player\n }\n\n handlePlayClick = () => {\n if (this.player) {\n this.player.triggerFullscreen()\n }\n }\n\n handleVideoPlay = () => {\n this.setState({ isPlaying: true })\n const articleWrapperEl = document.getElementById('__article-wrapper__')\n if (articleWrapperEl) {\n // Set Article top position, so it doesn't cover Video when playing\n articleWrapperEl.style.marginTop = '0'\n }\n }\n\n handleVideoPause = () => {\n this.setState({ isPlaying: false })\n const articleWrapperEl = document.getElementById('__article-wrapper__')\n if (articleWrapperEl) {\n // remove added inline style, so it goes back to default styling\n articleWrapperEl.style.removeProperty('margin-top')\n }\n }\n\n render() {\n const { video, image } = this.props\n\n if ((!video || !video.src) && (!image || !image.src)) return null\n\n return (\n \n {matches => (\n
\n {video && (\n \n )}\n {image && !video && (\n \n )}\n
\n )}\n
\n )\n }\n}\n\nexport default Hero\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { color } from '../../styles/theme'\nimport { rem } from 'polished'\nimport Paragraph from '../../components/Paragraph/Paragraph'\nimport { getLineHeight, getFontSize } from '../../styles/style-helpers'\nimport SearchIcon from '../../icons/SearchIcon'\nimport Image from '../../components/Image/Image'\nimport Heading from '../../components/Heading/Heading'\nimport handleOpenSearch from '../Header/ToggleSearch'\nimport type { HeroFrontpageViewModel } from '../../types/HeroFrontpageViewModel'\n\nconst StyledSection = styled.section`\n max-width: 1200px;\n margin: 0;\n @media (min-width: 768px) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n padding-left: ${rem(100)};\n }\n @media (min-width: 1024px) {\n padding-left: ${rem(130)};\n }\n @media (min-width: 1200px) {\n padding-left: ${rem(160)};\n }\n @media (min-width: 1440px) {\n padding-left: 0;\n margin: 0 auto;\n }\n`\n\nconst Figure = styled.figure`\n position: relative;\n margin: 0;\n overflow: hidden;\n aspect-ratio: 16/10;\n background-color: ${color.bg};\n @media (min-width: 768px) {\n order: 2;\n object-position: right;\n height: 100%;\n aspect-ratio: 8/7;\n }\n\n @media (min-width: 768px) {\n height: ${rem(700)};\n }\n`\n\nconst StyledHeading = styled(Heading)`\n @media (min-width: 768px) {\n font-size: ${rem(44)};\n }\n`\n\nconst TextWrapper = styled.div`\n padding-block: ${rem(40)};\n padding-inline: ${rem(32)};\n\n @media (min-width: 768px) {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-right: ${rem(72)};\n padding-left: 0;\n }\n`\n\nconst StyledParagraph = styled(Paragraph).attrs({\n weight: 300,\n size: 'large',\n})`\n && {\n color: ${({ theme }) => theme.text};\n line-height: ${getLineHeight('normal')};\n font-size: ${getFontSize('large')};\n\n @media (min-width: 768px) {\n max-width: 80%;\n }\n }\n`\n\nconst StyledButton = styled.button`\n background-color: #ffff;\n border: ${rem(2)} solid #00324552;\n padding-block: ${rem(12)};\n padding-inline: ${rem(16)};\n border-radius: ${rem(4)};\n margin-top: ${rem(12)};\n display: flex;\n width: 100%;\n gap: ${rem(8)};\n align-items: center;\n\n @media (min-width: 768px) {\n margin-top: 0;\n max-width: 80%;\n }\n`\n\nconst StyledLabel = styled.p`\n color: #003245;\n font-size: ${rem(18)};\n margin-top: ${rem(32)};\n`\n\ntype Props = HeroFrontpageViewModel\n\nconst HeroFrontpage = ({ image, title, introText, searchButton }: Props) => {\n return (\n \n
{image && }
\n \n \n {title}\n \n {introText}\n\n {searchButton?.label}\n handleOpenSearch(searchButton?.raffleId)}\n >\n \n \n \n
\n )\n}\n\nHeroFrontpage.defaultProps = {}\nHeroFrontpage.displayName = 'HeroFrontpage'\n\nexport default HeroFrontpage\n","// @flow\nimport React, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { objectFitSupport } from './helpers'\n\nfunction getObjectPosition(alignX, alignY) {\n return alignX || alignY\n ? `${alignX || 'center'} ${alignY || 'center'}`\n : undefined\n}\n\nconst Img = styled.img`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n max-width: none;\n object-fit: cover;\n object-position: center;\n ${({ blurred }) =>\n blurred &&\n `\n opacity: 0.4;\n `}\n\n ${({ show }) =>\n show &&\n `\n transition: opacity 0.4s linear;\n will-change: opacity;\n opacity: 1;\n `}\n\n ${({ hide }) =>\n hide &&\n `\n opacity: 0;\n will-change: opacity;\n `}\n\n ${({ zoomOnHover }) =>\n zoomOnHover &&\n `\n transition: transform 2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n &:hover {\n transform: scale(1.1);\n }\n `} \n`\n\ntype Props = {\n src: string,\n alignX?: 'left' | 'center' | 'right',\n alignY?: 'top' | 'center' | 'bottom',\n alt?: string,\n contain?: boolean,\n cover?: boolean,\n onLoad?: Function,\n blurred?: boolean,\n show?: boolean,\n hide?: boolean,\n zoomOnHover?: boolean,\n}\n\n/**\n * Img Element with ObjectFit fallback in unsupported browsers (IE)\n */\nfunction ImgElement({\n src,\n alt,\n contain,\n cover,\n alignX,\n alignY,\n onLoad,\n blurred,\n ...props\n}: Props) {\n /**\n * If this Image requires unsupported ObjectFit, fallback to a
with backgroundImage\n **/\n const [renderAsDiv, setRenderAsDiv] = useState(false)\n useEffect(() => {\n setRenderAsDiv(\n (alignX || alignY || contain || cover) && !objectFitSupport(),\n )\n }, [])\n\n if (renderAsDiv) {\n if (onLoad) {\n // Trigger the onLoad - could create a dummy image instead that triggers it after the image is actually loaded.\n onLoad()\n }\n return (\n \n )\n }\n\n return (\n \n )\n}\n\nImgElement.defaultProps = {\n contain: false,\n}\n\nexport default ImgElement\n","// @flow\nimport React, { PureComponent } from 'react'\nimport Measure from 'react-measure'\nimport styled from 'styled-components'\n\nimport type { ImageViewModel } from '../../types/ImageViewModel'\nimport type { Bounds, Rect } from './types'\n\nimport processImage, { imageDimensionMap, withImgix } from './imgix-support'\nimport ImgElement from './ImgElement'\n\nconst Container = styled.div`\n position: relative;\n width: 100%;\n ${({ fillContainer }) =>\n fillContainer &&\n `\n position: absolute;\n height: 100%;\n top: 0;\n left: 0;\n `} ${({ aspect }) =>\n aspect &&\n `\n padding-bottom: ${aspect * 100}%;\n `};\n ${({ zoomOnHover }) =>\n zoomOnHover &&\n `\n overflow: hidden\n `}\n`\n\ntype Props = ImageViewModel & {\n onResize?: (bounds: Bounds) => void,\n className?: string,\n zoomOnHover?: boolean,\n}\n\ntype State = {\n animatedIn: boolean,\n ready: boolean,\n elementWidth: number,\n elementHeight: number,\n}\n\n/**\n * Image handles fetching the correct Imgix image, and rendering it onto the page.\n * By default it will load an image that fillContainers the width of it's container, while keeping the original image aspect ratio\n */\nclass Image extends PureComponent {\n static displayName = 'Image'\n static defaultProps = {\n maxAspectRatio: 2,\n width: 1,\n height: 1,\n }\n\n static generateAspectRatio(\n width: number = 1,\n height: number = 1,\n maxAspectRatio: number = 1,\n aspectRatio?: number,\n ) {\n if (aspectRatio) {\n return aspectRatio\n }\n return Math.min(maxAspectRatio, height / width)\n }\n\n static generateImgixProps(props: Props) {\n return {\n fit: props.contain ? 'clip' : 'crop',\n crop: !props.contain\n ? props.focalPoint\n ? 'focalpoint'\n : props.crop\n : undefined,\n auto: ['compress', 'format'],\n 'fp-x': props.focalPoint ? props.focalPoint.x : undefined,\n 'fp-y': props.focalPoint ? props.focalPoint.y : undefined,\n ...props.imgixParams,\n }\n }\n\n static generateSource(\n src: string,\n width: number,\n height: number,\n imgixProps?: Object,\n ) {\n if (width > 0 && height > 0) {\n return processImage(src, {\n ...imgixProps,\n ...imageDimensionMap(width, height),\n })\n }\n\n return null\n }\n\n static generateBlurredSource(\n src: string,\n width: number = 1,\n height: number = 1,\n imgixProps: Object = {},\n ) {\n return processImage(src, {\n ...imgixProps,\n w: Math.ceil(64),\n h: Math.ceil((height / width) * 64),\n dpr: 1,\n q: 50,\n blur: 64,\n })\n }\n\n state = {\n ready: false,\n animatedIn: false,\n elementWidth: 0,\n elementHeight: 0,\n }\n\n timeout = null\n\n componentWillUnmount() {\n if (this.timeout) clearTimeout(this.timeout)\n }\n\n handleLoad = () => {\n if (this.props.fadeIn) {\n this.setState({ ready: true })\n this.timeout = setTimeout(() => {\n this.timeout = null\n this.setState({ animatedIn: true })\n }, 1000)\n } else {\n this.setState({ ready: true, animatedIn: true })\n }\n }\n\n handleTransitionEnd = () => {\n if (this.state.ready) {\n this.setState({ animatedIn: true })\n }\n }\n\n handleError = () => {\n this.setState({ ready: true, animatedIn: true })\n }\n\n handleMeasure = (contentRect: Rect) => {\n this.setState({\n elementWidth: Math.ceil(contentRect.bounds.width),\n elementHeight: Math.ceil(contentRect.bounds.height),\n })\n\n if (this.props.onResize) this.props.onResize(contentRect.bounds)\n }\n\n render() {\n const {\n src,\n fadeIn,\n disableBlur,\n maxAspectRatio,\n fillContainer,\n contain,\n cover,\n alignX,\n alignY,\n width,\n height,\n alt,\n className,\n zoomOnHover,\n aspectRatio,\n } = this.props\n\n const { ready, animatedIn, elementWidth, elementHeight } = this.state\n const imgixProps = Image.generateImgixProps(this.props)\n const currentSrc = Image.generateSource(\n src,\n elementWidth,\n elementHeight,\n imgixProps,\n )\n\n const aspect = !fillContainer\n ? Image.generateAspectRatio(width, height, maxAspectRatio, aspectRatio)\n : null\n\n return (\n \n {({ measureRef }) => {\n return (\n \n {!disableBlur && fadeIn && !animatedIn ? (\n \n ) : null}\n {currentSrc || (!fadeIn && !disableBlur) ? (\n \n ) : null}\n \n )\n }}\n \n )\n }\n}\n\nexport default withImgix(Image)\n","// @flow\nimport * as React from 'react'\nimport { ConfigContext } from '../../App/AppShell'\n\n/* eslint-disable no-param-reassign */\nexport const imageDimensionMap = (\n width: number,\n height: number,\n): { w: number, h: number } => {\n const aspect = height / width\n const normalizedWidth = Math.ceil(width)\n const normalizedHeight = Math.ceil(aspect * normalizedWidth)\n\n return {\n w: normalizedWidth,\n h: normalizedHeight,\n }\n}\n\nfunction imageQuality(dpr: number = 1) {\n return dpr >= 3 ? 30 : dpr === 2 ? 40 : undefined\n}\n\nfunction constructUrl(src, params) {\n const preparedParams = Object.keys(params)\n .filter(k => typeof params[k] !== 'undefined')\n .map(k => `${k}=${encodeURIComponent(params[k])}`)\n .join('&')\n\n return `${src}?${preparedParams}`\n}\n\n/**\n * Construct a URL for an image with an Imgix proxy, expanding image options\n * per the [API reference docs](https://www.imgix.com/docs/reference).\n * @param {String} src src of raw image\n * @param {Object} options map of image API options, in long or short form per expansion rules\n * @return {String} URL of image src transformed by Imgix\n */\nfunction processImage(src: string, options: Object = {}): string {\n if (!src) {\n return ''\n }\n if (!src.includes('imgix.net')) return src\n\n return constructUrl(src, {\n auto: 'format',\n dpr: global.devicePixelRatio || 1,\n q: imageQuality(global.devicePixelRatio),\n ...options,\n })\n}\n\nexport default processImage\n\nexport function withImgix(Component: React.ComponentType) {\n class InjectedComponent extends React.Component {\n render() {\n // todo: maybe check if already has protocol and domain\n if (process.env.NODE_ENV === 'development') {\n return \n }\n\n return (\n \n {config => (\n \n )}\n \n )\n }\n }\n\n return InjectedComponent\n}\n","// @flow\nimport type { ImageRatio } from './types'\n\nconst supports = {}\n\n/**\n * Detect if objectFit is supported on the client\n * @type {boolean}\n */\nexport function objectFitSupport(): boolean {\n if (!supports.objectFit) {\n supports.objectFit = global.document\n ? global.document.body.style.objectFit !== undefined\n : true\n }\n\n return supports.objectFit\n}\n\nexport default {\n objectFitSupport,\n}\n\nexport function generateSrc(\n url: string,\n width: number,\n ratio?: ImageRatio = 'original',\n) {\n if (url && !url.includes('/static/')) {\n const pos = url.lastIndexOf('/')\n return `${url.substr(0, pos)}/${ratio}/${width}/${url.substr(pos + 1)}`\n }\n\n return `${url}?w=${width}&ratio=${ratio || ''}`\n}\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\n\nimport { color } from '../styles/theme'\n\n//TODO\nconst Svg = styled.svg`\n path {\n fill: ${({ theme }) =>\n theme.name === 'kids' || theme.name === 'lgbt'\n ? color.white\n : theme.body};\n }\n\n circle {\n fill: ${({ theme }) =>\n theme.name === 'kids' || theme.name === 'lgbt'\n ? color.yellow\n : color.white};\n }\n`\n\nconst PlayIcon = ({ style, ...rest }: Object) => (\n \n \n \n \n \n \n)\n\nexport default PlayIcon\n","//@flow\n\nexport default function handleOpenSearch(link?: string) {\n try {\n window.raffleApi.open(link)\n } catch (e) {\n console.error(e)\n alert('Søgning er ikke tilgængelig på nuværende tidspunkt')\n }\n}\n","// @flow\nimport * as React from 'react'\n\nconst SearchIcon = ({ style, ...rest }: Object) => {\n return (\n \n \n \n )\n}\n\nexport default SearchIcon\n"],"sourceRoot":""}