{"version":3,"file":"9061.86726991f743bf842748.js","mappings":"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","sources":["webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Shared/ResponsiveImage/responsive-image.tsx","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/TeaserList/teaser-list-item.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/TeaserList/teaser-list.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactReducers/ArticleTeaserList/article-teaser-list-composer.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Article/article-archive.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactViews/ArticleArchive/article-archive-view.js"],"sourcesContent":["import React from \"react\";\r\n\r\nconst hasExistingQueryParam = (url: string) => url.indexOf(\"?\") > -1;\r\n\r\nconst getQueryParamDelimiter = (url: string) => (hasExistingQueryParam(url) ? \"&\" : \"?\");\r\n\r\nconst generateSrcSet = (srcSetSizes: number[], srcUrl: string) => {\r\n const generateSrcSetString = (srcSetSize: number) => {\r\n const parameterDelimiter = getQueryParamDelimiter(srcUrl);\r\n const srcSetSizeHighDensity = Math.round(srcSetSize * 1.5);\r\n\r\n return `\r\n ${srcUrl}${parameterDelimiter}w=${srcSetSize} ${srcSetSize}w,\r\n ${srcUrl}${parameterDelimiter}w=${srcSetSizeHighDensity} ${srcSetSizeHighDensity}w\r\n `;\r\n };\r\n\r\n return srcSetSizes.map(generateSrcSetString).join(\", \");\r\n};\r\n\r\ninterface ResponsiveImageProps\r\n extends React.DetailedHTMLProps, HTMLImageElement> {\r\n srcUrl: string;\r\n defaultSize: number;\r\n srcSetSizes: number[];\r\n}\r\n\r\nconst ResponsiveImage = (props: ResponsiveImageProps) => {\r\n const { srcUrl, defaultSize, srcSetSizes, ...rest } = props;\r\n const src = `${srcUrl}${getQueryParamDelimiter(srcUrl)}w=${defaultSize}`;\r\n const srcSet = srcSetSizes ? generateSrcSet(srcSetSizes, srcUrl) : \"\";\r\n\r\n return {props.alt};\r\n};\r\n\r\nexport default ResponsiveImage;\r\n","import React, { Component } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport ResponsiveImage from \"ReactComponents/Shared/ResponsiveImage/responsive-image\";\r\n\r\nclass TeaserListItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const item = this.props;\r\n const linkClasses = classNames({\r\n \"video-link\": item.Video\r\n });\r\n\r\n return (\r\n
\r\n
\r\n

\r\n \r\n

\r\n {item.Image && (\r\n
\r\n \r\n
\r\n )}\r\n {item.AreaColorCssClass && (\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n \r\n {item.Tagline && (\r\n

\r\n )}\r\n {item.ShortDescription && (\r\n \r\n )}\r\n

\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default TeaserListItem;\r\n","import React, { Component } from \"react\";\r\nimport TeaserListItem from \"ReactComponents/TeaserList/teaser-list-item\";\r\n\r\nclass TeaserList extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const listType = this.props.ListType ? this.props.ListType : \"\";\r\n const rootClasses = \"teaser-list-container content-module \" + listType;\r\n\r\n return (\r\n
\r\n {(this.props.ListTitle || this.props.ReadMoreLink) && (\r\n
\r\n {this.props.ListTitle && (\r\n \r\n )}\r\n {this.props.ReadMoreLink && (\r\n \r\n )}\r\n
\r\n )}\r\n
    \r\n {this.props.Entries &&\r\n this.props.Entries.map((entry, index) => {\r\n return (\r\n
  • \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default TeaserList;\r\n","import { connect } from \"react-redux\";\r\nimport { articleTeaserListSelector, articleTeaserListActions } from \"./article-teaser-list-reducer\";\r\n\r\nexport function articleTeaserListComposer(Component) {\r\n const mapStateToProps = function (state) {\r\n return {\r\n filters: articleTeaserListSelector.filters(state),\r\n filterIsActive: articleTeaserListSelector.filterIsActive(state),\r\n Articles: articleTeaserListSelector.articles(state),\r\n isLoadingMore: articleTeaserListSelector.isLoadingMore(state),\r\n currentTotalCount: articleTeaserListSelector.currentTotalCount(state)\r\n };\r\n };\r\n\r\n const mapDispatchToProps = function (dispatch) {\r\n return {\r\n filterChanged: filterId => dispatch(articleTeaserListActions.filterChanged(filterId)),\r\n filterReset: () => dispatch(articleTeaserListActions.filterReset()),\r\n articlesLoadMore: () => dispatch(articleTeaserListActions.articlesLoadMore())\r\n };\r\n };\r\n\r\n return connect(mapStateToProps, mapDispatchToProps)(Component);\r\n}\r\n","import React, { Component } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport TeaserList from \"ReactComponents/TeaserList/teaser-list\";\r\nimport { articleTeaserListComposer } from \"ReactReducers/ArticleTeaserList/article-teaser-list-composer\";\r\nimport SpinnerButton from \"ReactComponents/Shared/FormInputs/spinner-button\";\r\n\r\nclass ArticleArchive extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const hasNext = this.props.currentTotalCount > this.props.Articles.length;\r\n const rootClasses = classNames({\r\n \"article-archive\": true,\r\n hasFilter: this.props.filterIsActive\r\n });\r\n\r\n return (\r\n
\r\n \r\n {hasNext && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\nexport default articleTeaserListComposer(ArticleArchive);\r\n","import * as React from \"react\";\r\nimport ArticleArchive from \"@/ReactComponents/Article/article-archive\";\r\n\r\nconst ArticleArchiveView = props => ;\r\n\r\nexport default ArticleArchiveView;\r\n"],"names":["getQueryParamDelimiter","url","indexOf","hasExistingQueryParam","props","srcUrl","defaultSize","srcSetSizes","rest","src","srcSet","map","srcSetSize","parameterDelimiter","srcSetSizeHighDensity","Math","round","join","generateSrcSet","img","loading","alt","TeaserListItem","render","item","this","linkClasses","classNames","Video","div","className","p","dangerouslySetInnerHTML","__html","TrumpetText","a","href","Url","data-video","Image","ResponsiveImage","sizes","AreaColorCssClass","data-area","h3","TitleText","Tagline","ShortDescription","Component","TeaserList","rootClasses","ListType","ListTitle","ReadMoreLink","h2","ul","Entries","entry","index","li","key","articleTeaserListComposer","connect","state","filters","articleTeaserListSelector","filterIsActive","Articles","isLoadingMore","currentTotalCount","dispatch","filterChanged","filterId","articleTeaserListActions","filterReset","articlesLoadMore","ArticleArchive","hasNext","length","hasFilter","SpinnerButton","context","onClick","label","ShowMoreButtonText","isLoading"],"sourceRoot":""}