{"version":3,"sources":["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/utils/hyphenation.js","webpack:///./src/components/HyphenatedText/HyphenatedText.js","webpack:///./src/components/Spinner/Spinner.js","webpack:///./src/utils/date.js","webpack:///./src/components/Grid/Col.js","webpack:///./src/components/Grid/Row.js","webpack:///./src/components/ListGroup/ListGroup.js","webpack:///./src/components/ListCard/ListCard.js","webpack:///./src/icons/CircleArrowRightIcon.js"],"names":["getObjectPosition","alignX","alignY","concat","undefined","Img","styled","img","withConfig","displayName","componentId","_ref","blurred","_ref2","show","_ref3","hide","_ref4","zoomOnHover","ImgElement","_ref5","src","alt","contain","cover","onLoad","props","_objectWithoutProperties","_excluded","_useState2","_slicedToArray","useState","renderAsDiv","setRenderAsDiv","useEffect","objectFitSupport","React","createElement","Object","assign","as","style","backgroundImage","backgroundSize","backgroundPosition","objectPosition","objectFit","role","defaultProps","Container","div","fillContainer","aspect","Image","_PureComponent","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","state","ready","animatedIn","elementWidth","elementHeight","timeout","handleLoad","fadeIn","setState","setTimeout","handleTransitionEnd","handleError","handleMeasure","contentRect","Math","ceil","bounds","width","height","onResize","key","value","maxAspectRatio","aspectRatio","min","_objectSpread","fit","crop","focalPoint","auto","x","y","imgixParams","imgixProps","processImage","imageDimensionMap","w","h","dpr","q","blur","this","clearTimeout","_this2","_this$props","disableBlur","className","_this$state","generateImgixProps","currentSrc","generateSource","generateAspectRatio","Measure","measureRef","ref","generateBlurredSource","aria-hidden","onError","onTransitionEnd","PureComponent","withImgix","normalizedWidth","imageQuality","constructUrl","params","preparedParams","keys","filter","k","map","encodeURIComponent","join","Component","_React$Component","InjectedComponent","ConfigContext","Consumer","config","imgixDomain","options","includes","global","devicePixelRatio","supports","document","body","hyphenate","createHyphenation","patterns","async","minWordLength","html","HyphenatedText","text","useMemo","Fragment","load8","keyframes","LoaderWrapper","size","Loader","theme","borderPositive","_ref6","Spinner","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","f","s","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","error","controller","signal","months","parseDate","unixTimestamp","callback","date","Date","getTime","console","log","day","getDate","month","getMonth","fullMonth","year","getFullYear","getDateParts","dateWithFullMonth","dateParts","getCurrentDate","fn","_callee","_ref$continent","continent","city","currentDate","timeApiUrl","_context","abort","window","AbortController","fetch","res","json","data","datetime","split","getHours","err","self","_x","diffBetweenTwoDates","numberOfDays","parseInt","diffInTime","now","round","shortPrecision","precision","precise","toFixed","match","renderBreakPoint","columns","dimension","result","css","gridSize","mediaQuery","_templateObject","offset","createQuery","Col","stretch","shrink","align","verticalAlign","DIMENSION_NAMES","xsOffset","smOffset","mdOffset","lgOffset","hdOffset","addGutter","gutter","gutterVal","rem","gutterValOuter","Row","noWrap","xsGutter","smGutter","mdGutter","lgGutter","hdGutter","start","center","end","top","middle","bottom","around","between","first","last","StyledHeading","Heading","attrs","tag","level","marginBottom","responsiveSize","getLineHeight","StyledHeadingRow","StyledCol","SpinnerWrapper","ListGroup","itemsPerColumn","xs","sm","md","title","children","isLoading","getColumnSize","child","itemIndex","keyGen","consecutive","Card","transparent","borderRadius","effects","negative","cardNegativeBackground","cardPositiveBackground","durations","fast","linkHoverTransition","color","accent","StyledWrapper","image","_ref7","_ref8","StyledImage","StyledSubtitleWrapper","StyledSubtitle","span","getFontSize","_ref9","primary","StyledDate","StyledOldDate","_ref10","oldDate","StyledParagraph","Paragraph","LinkIconWrapper","_ref11","StyledLink","Link","TitleLink","ListCard","description","link","displayDate","pretitle","titleLink","isNewsItem","hasModuleHeader","hyphenatedTitle","href","CircleArrowRightIcon","withHover","rest","viewBox","cursor","fill","stroke","strokeLinecap","strokeWidth","x1","x2","y1","y2","points","cx","cy"],"mappings":"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","file":"static/scripts/8-52d323a6b0a4207550de.js","sourcesContent":["// @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 createHyphenation from 'hyphen'\nimport patterns from 'hyphen/patterns/da'\n\nexport const defaultMinWordLength = 15\n\n/**\n * Use the hyphenate function, to split long words with break characters.\n */\nexport const hyphenate = createHyphenation(patterns, {\n async: false,\n minWordLength: defaultMinWordLength,\n})\n\n/**\n * Use the hyphenateHTML function, to split long words within HTML text.\n */\nexport const hyphenateHTML = createHyphenation(patterns, {\n async: false,\n minWordLength: defaultMinWordLength,\n html: true,\n})\n","// @flow\nimport React from 'react'\nimport { hyphenate } from '../../utils/hyphenation'\n\ntype HyphenatedTextProps = {\n text?: string,\n minWordLength?: number,\n}\n\nexport function HyphenatedText({ text, minWordLength }: HyphenatedTextProps) {\n return React.useMemo(\n () => (\n <>\n {text\n ? hyphenate(text, minWordLength ? { minWordLength } : undefined)\n : null}\n \n ),\n [text, minWordLength],\n )\n}\n","// @flow\nimport * as React from 'react'\nimport styled, { keyframes } from 'styled-components'\n\ntype Props = {\n className?: string,\n style?: Object,\n size?: number,\n}\n\nconst load8 = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`\n\nconst LoaderWrapper = styled.div`\n height: ${({ size }) => (size ? `${size}px` : '22px')};\n width: ${({ size }) => (size ? `${size}px` : '22px')};\n`\n\nconst Loader = styled.div`\n position: relative;\n text-indent: -9999em;\n border-top: ${({ theme }) => `2px solid ${theme.body}`};\n border-right: ${({ theme }) => `2px solid ${theme.borderPositive}`};\n border-bottom: ${({ theme }) => `2px solid ${theme.borderPositive}`};\n border-left: ${({ theme }) => `2px solid ${theme.borderPositive}`};\n transform: translateZ(0);\n animation: ${load8} 1.1s infinite linear;\n\n border-radius: 50%;\n width: 100%;\n height: 100%;\n`\n\nconst Spinner = (props: Props) => (\n \n \n \n)\n\nSpinner.displayName = 'Spinner'\nSpinner.defaultProps = {}\n\nexport default Spinner\n","// @flow\nconst months = [\n 'januar',\n 'februar',\n 'marts',\n 'april',\n 'maj',\n 'juni',\n 'juli',\n 'august',\n 'september',\n 'oktober',\n 'november',\n 'december',\n]\n\n// split the date into its relevant part,\n// used to construct the date formats\nconst getDateParts = (date: Date) => ({\n day: `0${date.getDate()}`.slice(-2),\n month: `0${date.getMonth() + 1}`.slice(-2),\n fullMonth: months[date.getMonth()],\n year: date.getFullYear(),\n})\n\n// helper to validate the timestamp and call formatting callback function\n// with the date parts object\nconst parseDate = (unixTimestamp: number, callback: Function) => {\n const date = new Date(unixTimestamp * 1000) // convert to milliseconds\n if (isNaN(date.getTime())) {\n console.log('Invalid date given', unixTimestamp) // eslint-disable-line no-console\n return ''\n }\n return callback(getDateParts(date))\n}\n\n// DD-MM-YYYY\nexport const shortDate = (unixTimestamp: number) =>\n parseDate(unixTimestamp, (dateParts: Object) => {\n const { day, month, year } = dateParts\n return [day, month, year].join('-')\n })\n\n// DD. MMMM, YYYY\nexport const dateWithFullMonth = (unixTimestamp: number) =>\n parseDate(unixTimestamp, (dateParts: Object) => {\n const { day, fullMonth, year } = dateParts\n return `${day}. ${fullMonth}, ${year}`\n })\n\n// MM DD, YYYY\nexport const twitterDateFormat = (unixTimestamp: number) =>\n parseDate(unixTimestamp, (dateParts: Object) => {\n const { day, fullMonth, year } = dateParts\n const shortenedMonth = fullMonth.slice(0, 3)\n return `${shortenedMonth} ${day}, ${year}`\n })\n\nlet controller\nlet signal\nexport const getCurrentDate = async ({\n continent = 'Europe',\n city,\n}: Object) => {\n if (city) {\n if (controller !== undefined) {\n // Cancel the previous request\n controller.abort()\n }\n\n // Feature detect\n if ('AbortController' in window) {\n controller = new AbortController()\n signal = controller.signal\n }\n\n let currentDate = new Date()\n const timeApiUrl = `https://worldtimeapi.org/api/timezone/${continent}/${city}`\n\n await fetch(timeApiUrl, { signal })\n .then(res => res.json())\n .then(data => {\n if (data && data.datetime && typeof data.datetime === 'string') {\n currentDate = new Date(data.datetime.split('.')[0])\n\n if (isNaN(currentDate.getHours())) {\n currentDate = new Date()\n }\n }\n\n return currentDate\n })\n .catch(err => {\n if (err.name === 'AbortError') {\n console.error('ABORTED CURRENT DATE')\n }\n })\n\n return currentDate\n } else {\n return new Date()\n }\n}\n\n// find number of days between two dates and check if it's more or less than \"numberOfDays\"\nexport const diffBetweenTwoDates = (\n unixTimestamp: string,\n numberOfDays: number,\n) => {\n const date = new Date(parseInt(unixTimestamp) * 1000)\n const todaysDate = new Date(Date.now())\n\n // one day in ms\n const oneDay = 1000 * 60 * 60 * 24\n\n // find time difference between two dates\n const diffInTime = todaysDate.getTime() - date.getTime()\n\n // calculate number of days\n const diffInDays = Math.round(diffInTime / oneDay)\n\n return diffInDays > numberOfDays\n}\n","// @flow\nimport * as React from 'react'\nimport styled, { css } from 'styled-components'\nimport config, { createQuery } from './grid-config'\nimport { DIMENSION_NAMES, mediaQuery } from '../../styles/media'\nimport type { Columns } from './grid-config'\nimport type { DimensionNameTypes } from '../../types/enums/DimensionNameTypes'\n\ntype Align = 'left' | 'center' | 'right'\ntype VerticalAlign = 'top' | 'middle' | 'bottom' | 'stretch'\n\ntype Props = {\n xs?: Columns | boolean,\n sm?: Columns | boolean,\n md?: Columns | boolean,\n lg?: Columns | boolean,\n hd?: Columns | boolean,\n xsOffset?: Columns,\n smOffset?: Columns,\n mdOffset?: Columns,\n lgOffset?: Columns,\n hdOffset?: Columns,\n align?: Align,\n verticalAlign?: VerticalAlign,\n stretch?: boolean,\n shrink?: boolean,\n children?: React.Node,\n}\n\n/**\n * Takes a fraction number, and reduce it to a fixed precision, only if needed.\n * Removes all trailing 0's\n **/\nconst shortPrecision = (value: number, precision: number = 6) => {\n const precise = value.toFixed(precision)\n const match = precise.match(/(^\\d+)\\.(\\d!0)?(0+)$/)\n if (match) {\n return `${match[1]}${match[2] ? `.${match[2]}` : ''}`\n }\n return precise\n}\n\nconst renderBreakPoint = (\n columns?: number | boolean,\n dimension?: DimensionNameTypes,\n) => {\n let result\n if (typeof columns === 'number') {\n result = css`\n flex-basis: ${shortPrecision((100 / config.gridSize) * columns)}%;\n max-width: ${shortPrecision((100 / config.gridSize) * columns)}%;\n `\n } else if (columns === true) {\n result = css`\n flex-grow: 1;\n flex-basis: 0;\n max-width: 100%;\n `\n }\n if (columns === false) {\n result = 'display: none;'\n }\n\n if (result) return dimension ? mediaQuery[dimension]`${result}` : result\n\n return null\n}\n\nconst align = (align?: Align) => {\n if (!align) return null\n if (align === 'right')\n return css`\n display: flex;\n justify-content: flex-end;\n `\n if (align === 'center')\n return css`\n display: flex;\n justify-content: center;\n `\n if (align === 'left')\n return css`\n display: flex;\n justify-content: flex-start;\n `\n}\nconst verticalAlign = (align?: VerticalAlign) => {\n if (!align) return null\n if (align === 'stretch')\n return css`\n display: flex;\n align-items: stretch;\n `\n if (align === 'top')\n return css`\n display: flex;\n align-items: flex-start;\n `\n if (align === 'middle')\n return css`\n display: flex;\n align-items: center;\n `\n if (align === 'bottom')\n return css`\n display: flex;\n align-items: flex-end;\n `\n}\n\nconst offset = (key: DimensionNameTypes | boolean, columns?: Columns) => {\n if (columns) {\n return createQuery(\n key,\n css`\n margin-left: ${(100 / config.gridSize) * columns}%;\n `,\n )\n }\n return null\n}\n\nconst Col: React.ComponentType = styled.div`\n box-sizing: border-box;\n flex: ${(p: Props) => (p.stretch ? '1' : '0')} ${(p: Props) =>\n p.shrink ? '1' : '0'} auto;\n \n ${(p: Props) => align(p.align)}\n ${(p: Props) => verticalAlign(p.verticalAlign)}\n ${(p: Props) => DIMENSION_NAMES.map(key => renderBreakPoint(p[key], key))}\n ${(p: Props) => offset('xs', p.xsOffset)}\n ${(p: Props) => offset('sm', p.smOffset)}\n ${(p: Props) => offset('md', p.mdOffset)}\n ${(p: Props) => offset('lg', p.lgOffset)}\n ${(p: Props) => offset('hd', p.hdOffset)}\n`\n\nCol.displayName = 'Col'\n\nexport default Col\n","// @flow\nimport * as React from 'react'\nimport styled, { css } from 'styled-components'\nimport { createQuery } from './grid-config'\nimport Col from './Col'\nimport type { DimensionNameTypes } from '../../types/enums/DimensionNameTypes'\nimport { rem } from 'polished'\n\ntype Props = {\n children: React.ChildrenArray>,\n /** Gutter in 10px increments */\n xsGutter?: number,\n smGutter?: number,\n mdGutter?: number,\n lgGutter?: number,\n hdGutter?: number,\n noWrap?: boolean,\n reverse?: boolean | DimensionNameTypes | Array,\n start?: boolean | DimensionNameTypes | Array,\n center?: boolean | DimensionNameTypes | Array,\n end?: boolean | DimensionNameTypes | Array,\n top?: boolean | DimensionNameTypes | Array,\n middle?: boolean | DimensionNameTypes | Array,\n bottom?: boolean | DimensionNameTypes | Array,\n around?: boolean | DimensionNameTypes | Array,\n between?: boolean | DimensionNameTypes | Array,\n first?: boolean | DimensionNameTypes | Array,\n last?: boolean | DimensionNameTypes | Array,\n}\n\nfunction addGutter(key: DimensionNameTypes | boolean, gutter?: number) {\n if (gutter) {\n const gutterVal = rem((gutter * 10) / 2)\n const gutterValOuter = rem((gutter * 10) / 2 - 1)\n\n return createQuery(\n key,\n css`\n margin-right: -${gutterValOuter};\n margin-left: -${gutterValOuter};\n\n > ${Col} {\n padding-right: ${gutterVal};\n padding-left: ${gutterVal};\n }\n `,\n )\n }\n return null\n}\n\nconst Row: React.ComponentType = styled.div`\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: ${(p: Props) => (p.noWrap ? 'nowrap' : 'wrap')};\n \n ${(p: Props) => addGutter('xs', p.xsGutter)}\n ${(p: Props) => addGutter('sm', p.smGutter)}\n ${(p: Props) => addGutter('md', p.mdGutter)}\n ${(p: Props) => addGutter('lg', p.lgGutter)}\n ${(p: Props) => addGutter('hd', p.hdGutter)}\n ${(p: Props) =>\n createQuery(\n p.reverse,\n css`\n flex-direction: row-reverse;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.start,\n css`\n justify-content: flex-start;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.center,\n css`\n justify-content: center;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.end,\n css`\n justify-content: flex-end;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.top,\n css`\n align-items: flex-start;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.middle,\n css`\n align-items: center;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.bottom,\n css`\n align-items: flex-end;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.around,\n css`\n justify-content: space-around;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.between,\n css`\n justify-content: space-between;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.first,\n css`\n order: -1;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.last,\n css`\n order: 1;\n `,\n )}\n`\n\nRow.displayName = 'Row'\n\nexport default Row\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\n\nimport { getLineHeight } from '../../styles/style-helpers'\n\nimport Heading from '../../components/Heading/Heading'\nimport Col from '../../components/Grid/Col'\nimport Row from '../../components/Grid/Row'\nimport Spinner from '../../components/Spinner/Spinner'\n\ntype Props = {\n title?: string,\n children?: React.Node,\n isLoading?: boolean,\n error?: boolean,\n itemsPerColumn?: 4 | 3 | 2 | 1,\n}\n\ntype State = {}\n\nconst StyledHeading = styled(Heading).attrs({\n tag: 'h2',\n level: 2,\n marginBottom: 'large',\n responsiveSize: true,\n})`\n && {\n line-height: ${getLineHeight('normal')};\n }\n`\n\nconst StyledHeadingRow = styled.div`\n margin: 0 0 ${rem(28)};\n min-height: 1px;\n`\n\nconst StyledCol = styled(Col)`\n margin-bottom: ${rem(20)};\n`\n\nconst SpinnerWrapper = styled.div`\n position: relative;\n height: ${rem(200)};\n margin-bottom: ${rem(40)};\n`\n\nclass ListGroup extends React.Component {\n static displayName = 'ListGroup'\n static defaultProps = {}\n\n getColumnSize() {\n const { itemsPerColumn } = this.props\n switch (itemsPerColumn) {\n case 1:\n return { xs: 12, sm: 12, md: 12 }\n case 2:\n return { xs: 12, sm: 6, md: 6 }\n case 3:\n return { xs: 12, sm: 6, md: 4 }\n default:\n return { xs: 12, sm: 6, md: 3 }\n }\n }\n\n render() {\n const { title, children, isLoading, error } = this.props\n const columns = this.getColumnSize()\n\n return (\n \n {title && (\n \n \n {title}\n \n \n )}\n\n {error &&
Der skete en fejl. Prøv at genindlæse siden.
}\n\n {!error && isLoading && (\n \n \n \n )}\n\n {!error && !isLoading && (\n \n {React.Children.map(children, (child, itemIndex) => (\n \n {child}\n \n ))}\n \n )}\n
\n )\n }\n}\n\nexport default ListGroup\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\nimport consecutive from 'consecutive'\n\nimport type { RelatedListItemViewModel } from '../../types/RelatedListItemViewModel'\n\nimport { getLineHeight, getFontSize } from '../../styles/style-helpers'\nimport { color, effects } from '../../styles/theme'\nimport { durations } from '../../styles/animations'\n\nimport Image from '../../components/Image/Image'\nimport Heading from '../../components/Heading/Heading'\nimport Paragraph from '../../components/Paragraph/Paragraph'\nimport { Link } from '../Link/Link'\nimport CircleArrowRightIcon from '../../icons/CircleArrowRightIcon'\nimport { diffBetweenTwoDates } from '../../utils/date'\nimport { HyphenatedText } from '../HyphenatedText/HyphenatedText'\n\ntype Props = RelatedListItemViewModel & {\n theme?: string,\n hasModuleHeader?: boolean,\n}\n\ntype State = {}\n\nconst keyGen = consecutive()\n\nconst Card = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n height: calc(100% - ${rem(20)});\n margin-bottom: ${rem(20)};\n overflow: hidden;\n border-radius: ${({ transparent, theme }) =>\n transparent ? 0 : rem(theme.borderRadius)};\n border-bottom: ${({ transparent, theme }) =>\n transparent ? effects(theme).borderPositive : '0 none'};\n background: ${({ negative, theme }) =>\n negative ? theme.cardNegativeBackground : theme.cardPositiveBackground};\n ${({ transparent }) => (transparent ? `background: transparent` : null)};\n\n transition: transform ${durations.fast} ease-in-out;\n\n &:hover {\n transform: translateY(-3px);\n }\n\n &:hover img {\n transform: scale(1.1);\n }\n\n &:hover svg {\n transition: ${effects().linkHoverTransition};\n color: ${color.accent};\n }\n`\n\nconst StyledWrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: ${({ transparent }) =>\n transparent ? `0 0 ${rem(38)}` : `${rem(64)} ${rem(40)} ${rem(40)}`};\n ${({ image }) => (image ? 'border-top: 0;' : '')};\n\n ${({ image }) =>\n !!image &&\n `\n padding-top: ${rem(48)};\n `}\n\n ${({ theme }) =>\n (theme.name === 'kids' || theme.name === 'lgbt') &&\n `\n padding: ${rem(36)} ${rem(40)};\n `}\n\n > :last-child {\n margin-bottom: 0;\n }\n`\n\nconst StyledImage = styled(Image)`\n position: relative;\n max-width: 100%;\n padding-top: 75%;\n object-fit: contain;\n height: auto;\n`\n\nconst StyledSubtitleWrapper = styled.div`\n margin-bottom: ${rem(12)};\n\n /* these 3 lines enforce ellipsis effect when text is too wide */\n display: table;\n table-layout: fixed;\n width: 100%;\n`\n\nconst StyledSubtitle = styled.span`\n font-size: ${getFontSize('tiny')};\n font-weight: 700;\n letter-spacing: 1px;\n text-transform: uppercase;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ${({ theme }) => theme.primary};\n`\n\nconst StyledDate = styled(StyledSubtitle)`\n font-size: ${rem(11)};\n opacity: 0.85;\n margin-bottom: ${rem(18)};\n`\n\nconst StyledOldDate = styled(StyledSubtitle)`\n font-size: ${rem(11)};\n color: ${({ theme }) => theme.oldDate};\n`\n\nconst StyledParagraph = styled(Paragraph)`\n margin-bottom: ${rem(32)};\n color: ${props => props.theme.text};\n\n && {\n line-height: ${getLineHeight('normal')};\n }\n`\n\nconst LinkIconWrapper = styled.div`\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n color: ${({ theme }) => theme.primary};\n`\n\nconst StyledLink = styled(Link)`\n cursor: pointer;\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n`\n\nconst TitleLink = styled(Link)`\n cursor: pointer;\n line-height: ${getLineHeight('small')};\n`\n\nclass ListCard extends React.Component {\n static displayName = 'ListCard'\n static defaultProps = {}\n\n render() {\n const {\n image,\n title,\n description,\n link,\n date,\n displayDate,\n pretitle,\n negative,\n transparent,\n titleLink,\n isNewsItem,\n hasModuleHeader,\n } = this.props\n const theme = this.props.theme\n const hyphenatedTitle = \n return (\n \n {image && }\n\n \n {pretitle && (\n \n \n {pretitle}\n \n \n )}\n\n {title && (\n \n {titleLink ? (\n {hyphenatedTitle}\n ) : (\n hyphenatedTitle\n )}\n \n )}\n\n {date && (\n \n {displayDate &&\n isNewsItem &&\n diffBetweenTwoDates(displayDate, 90) ? (\n Ældre nyhed: \n ) : null}\n {date}\n \n )}\n\n {description && {description}}\n\n {link && link.href && (\n <>\n \n \n \n \n \n )}\n \n \n )\n }\n}\n\nexport default ListCard\n","// @flow\nimport * as React from 'react'\nimport withHover from '../hoc/withHover'\n\nconst CircleArrowRightIcon = ({ style, ...rest }: Object) => (\n \n \n \n \n \n \n \n)\n\nexport default withHover>(CircleArrowRightIcon)\n"],"sourceRoot":""}