{"version":3,"sources":["webpack:///./src/Frontend/app/components/image-text-cta-list/image-text-cta-list-item/image-text-cta-list-item.tsx","webpack:///./src/Frontend/app/components/image-text-cta-list/image-text-cta-list.tsx","webpack:///./src/Frontend/app/views/image-text-cta-list/image-text-cta-list-view.tsx","webpack:///./node_modules/classnames/index.js","webpack:///./src/Frontend/app/components/icons/icon.tsx","webpack:///./src/Frontend/app/components/anchor/anchor.tsx","webpack:///./src/Frontend/app/components/content-section/content-section.tsx","webpack:///./src/Frontend/app/components/cta-button/cta-button.tsx","webpack:///./src/Frontend/app/components/arrow-link/arrow-link.tsx","webpack:///./src/Frontend/app/utils/image-utils.ts","webpack:///./src/Frontend/app/components/responsive-image/responsive-image.tsx","webpack:///./src/Frontend/app/components/title/title.tsx"],"names":["LinkOrFragment","props","href","className","linkClassName","target","children","imageSrc","imageAltText","title","richText","ctaLink","ctaUrl","ctaTarget","showCtaAsLink","useCtaAsImageLink","bgColor","textColor","showCtaAsLinkColor","defaultSize","srcSetSizes","sizes","baseClass","rootClasses","arrowLinkClasses","titleClasses","contentClasses","hasContent","srcUrl","alt","dangerouslySetInnerHTML","__html","link","isLarge","isTitleH1","imageTextCtaList","maxColumns","isFullWidth","componentClasses","columnImageProps","map","item","index","key","render","this","contextModel","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","call","join","module","exports","default","spriteUrl","viewBox","iconId","preserveAspectRatio","onClick","xmlnsXlink","xlinkHref","id","type","anchorId","hasNoMarginTop","hasNoMarginBottom","isInverted","isSecondary","getQueryParamDelimiter","url","indexOf","hasExistingQueryParam","generateSrcSet","srcSetSize","parameterDelimiter","srcSetSizeHighDensity","Math","round","generateColumnImageProps","gridMaxWidthFactor","ResponsiveImage","ref","src","srcSet","loading","linkHref","linkTarget","titleHtml"],"mappings":"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","file":"26.28d89253de679c7989bf.js","sourcesContent":["import classNames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ThemeColorType } from \"~/types/theme-color\";\r\nimport { ImageTextCtaReusableProps } from \"~/components/image-text-cta/image-text-cta\";\r\nimport ArrowLink from \"../../arrow-link/arrow-link\";\r\nimport CtaButton from \"../../cta-button/cta-button\";\r\nimport ResponsiveImage from \"../../responsive-image/responsive-image\";\r\n\r\nexport interface ImageTextCtaListItemProps extends ImageTextCtaReusableProps {\r\n bgColor?: ThemeColorType;\r\n textColor?: ThemeColorType;\r\n showCtaAsLinkColor?: ThemeColorType; // Can be converted to ctaTextColor later, if Gyldendal want cta-colors to be configurable\r\n defaultSize?: number;\r\n srcSetSizes?: number[];\r\n sizes?: string;\r\n}\r\n\r\nconst LinkOrFragment = (props: {\r\n children: React.ReactNode;\r\n href: ImageTextCtaListItemProps[\"ctaUrl\"];\r\n target: ImageTextCtaListItemProps[\"ctaUrl\"];\r\n linkClassName?: string;\r\n}) => {\r\n return props.href ? (\r\n <a className={props.linkClassName} href={props.href} target={props.target}>\r\n {props.children}\r\n </a>\r\n ) : (\r\n <>{props.children}</>\r\n );\r\n};\r\n\r\nconst ImageTextCtaListItem = ({\r\n imageSrc,\r\n imageAltText,\r\n title,\r\n richText,\r\n ctaLink,\r\n ctaUrl,\r\n ctaTarget,\r\n showCtaAsLink,\r\n useCtaAsImageLink,\r\n bgColor,\r\n textColor,\r\n showCtaAsLinkColor,\r\n defaultSize,\r\n srcSetSizes,\r\n sizes\r\n}: ImageTextCtaListItemProps) => {\r\n const baseClass = \"image-text-cta-list-item\";\r\n const rootClasses = classNames(baseClass, \"config-column\");\r\n const arrowLinkClasses = classNames(`${baseClass}__link`, {\r\n [`theme-color-${showCtaAsLinkColor}`]: !!showCtaAsLinkColor\r\n });\r\n const titleClasses = classNames(`${baseClass}__title h3-style`, {\r\n [`theme-color-${textColor}`]: !!textColor\r\n });\r\n const contentClasses = classNames(`${baseClass}__content-wrapper`, {\r\n [`theme-bg-${bgColor}`]: !!bgColor,\r\n [`theme-color-${textColor}`]: !!textColor\r\n });\r\n const hasContent = title || richText || ctaLink;\r\n\r\n return (\r\n <div className={rootClasses}>\r\n {imageSrc && defaultSize && (\r\n <div className={`${baseClass}__image-wrapper`}>\r\n <LinkOrFragment href={ctaUrl} target={ctaTarget}>\r\n <ResponsiveImage\r\n srcUrl={imageSrc}\r\n alt={imageAltText}\r\n defaultSize={defaultSize}\r\n srcSetSizes={srcSetSizes}\r\n sizes={sizes}\r\n />\r\n </LinkOrFragment>\r\n </div>\r\n )}\r\n\r\n {hasContent && (\r\n <div className={contentClasses}>\r\n {title && (\r\n <h3 className={titleClasses}>\r\n <LinkOrFragment linkClassName=\"reset-a\" href={ctaUrl} target={ctaTarget}>\r\n {title}\r\n </LinkOrFragment>\r\n </h3>\r\n )}\r\n {richText && (\r\n <div\r\n className={`${baseClass}__rich-text content-rich-text`}\r\n dangerouslySetInnerHTML={{ __html: richText }}\r\n />\r\n )}\r\n {ctaLink && !useCtaAsImageLink && (\r\n <>\r\n {showCtaAsLink ? (\r\n <ArrowLink className={arrowLinkClasses} link={ctaLink} />\r\n ) : (\r\n <CtaButton className={`${baseClass}__button`} link={ctaLink} isLarge />\r\n )}\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ImageTextCtaListItem;\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport Title from \"~/components/title/title\";\r\nimport ImageTextCtaListItem, {\r\n ImageTextCtaListItemProps\r\n} from \"./image-text-cta-list-item/image-text-cta-list-item\";\r\nimport { ThemeColorType } from \"~/types/theme-color\";\r\nimport { generateColumnImageProps } from \"~/utils/image-utils\";\r\nimport ContentSection from \"../content-section/content-section\";\r\n\r\nexport interface ImageTextCtaListProps {\r\n title?: string;\r\n isTitleH1?: boolean;\r\n maxColumns?: number;\r\n isFullWidth?: boolean;\r\n imageTextCtaList?: Array<ImageTextCtaListItemProps>;\r\n bgColor?: ThemeColorType;\r\n textColor?: ThemeColorType;\r\n showCtaAsLinkColor?: ThemeColorType; // Can be converted to ctaTextColor later, if Gyldendal want cta-colors to be configurable\r\n anchorId?: string;\r\n hasNoMarginTop?: boolean;\r\n hasNoMarginBottom?: boolean;\r\n}\r\n\r\nconst ImageTextCtaList = ({\r\n title,\r\n isTitleH1,\r\n imageTextCtaList,\r\n maxColumns = 3,\r\n isFullWidth = false,\r\n bgColor,\r\n textColor,\r\n showCtaAsLinkColor,\r\n ...props\r\n}: ImageTextCtaListProps) => {\r\n const baseClass = \"image-text-cta-list\";\r\n const componentClasses = classNames(baseClass, `config-columns config-columns--columns-${maxColumns}`, {\r\n [`${baseClass}--full-width`]: isFullWidth\r\n });\r\n const columnImageProps = generateColumnImageProps(maxColumns, isFullWidth);\r\n\r\n return (\r\n <ContentSection {...props} className={componentClasses}>\r\n <div className={`${baseClass}__inner`}>\r\n {title && <Title title={title} isTitleH1={isTitleH1} />}\r\n\r\n {imageTextCtaList && (\r\n <div className={`${baseClass}__items`}>\r\n {imageTextCtaList.map((item, index) => (\r\n <ImageTextCtaListItem\r\n key={index}\r\n {...item}\r\n {...columnImageProps}\r\n bgColor={item.bgColor || bgColor}\r\n textColor={item.textColor || textColor}\r\n showCtaAsLinkColor={item.showCtaAsLinkColor || showCtaAsLinkColor}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </ContentSection>\r\n );\r\n};\r\n\r\nexport default ImageTextCtaList;\r\n","import * as React from \"react\";\r\nimport ImageTextCtaList, {\r\n ImageTextCtaListProps\r\n} from \"~/components/image-text-cta-list/image-text-cta-list\";\r\n\r\nexport interface IImageTextCtaListViewProps {\r\n contextModel: ImageTextCtaListProps;\r\n}\r\n\r\nclass ImageTextCtaListView extends React.PureComponent<IImageTextCtaListViewProps> {\r\n public render() {\r\n return <ImageTextCtaList {...this.props.contextModel} />;\r\n }\r\n}\r\n\r\nexport default ImageTextCtaListView;\r\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nexport type TIconNames =\r\n | \"24_expand\"\r\n | \"24_play\"\r\n | \"24_star\"\r\n | \"24_trash\"\r\n | \"32_add-user\"\r\n | \"32_basket\"\r\n | \"32_checkmark-circle\"\r\n | \"32_checkmark\"\r\n | \"32_error\"\r\n | \"32_information\"\r\n | \"32_katalog\"\r\n | \"32_search\"\r\n | \"32_truck-in-motion\"\r\n | \"32_user\"\r\n | \"32_warning\"\r\n | \"icon_16_arrow-down\"\r\n | \"icon_16_arrow-left\"\r\n | \"icon_16_arrow-right-bold\"\r\n | \"icon_16_arrow-right\"\r\n | \"icon_16_arrow-up\"\r\n | \"icon_28_close\"\r\n | \"icon_32_thumbs-up\"\r\n | \"icon_80x41_quotation-mark-gyldendal-dk\"\r\n | \"icon_80x48_quotation-mark\"\r\n | \"icon_checkbox-black\"\r\n | \"icon_checkmark-black\"\r\n | \"icon_download\"\r\n | \"icon_herringbone-narrow\"\r\n | \"icon_herringbone-wide\"\r\n | \"icon_placeholder-email\"\r\n | \"icon_placeholder-lock\"\r\n | \"icon_placeholder-phone-small\"\r\n | \"icon_placeholder-vip-white\"\r\n | \"icon_placeholder_basket\"\r\n | \"icon_placeholder_checkmark\"\r\n | \"icon_placeholder_eye-closed\"\r\n | \"icon_placeholder_eye\"\r\n | \"icon_placeholder_facebook\"\r\n | \"icon_placeholder_filtering\"\r\n | \"icon_placeholder_hamburger\"\r\n | \"icon_placeholder_instagram\"\r\n | \"icon_placeholder_phone\"\r\n | \"icon_placeholder_user\"\r\n | \"icon_read\"\r\n | \"icon_listen\";\r\n\r\nexport interface IIconProps {\r\n iconId: TIconNames;\r\n spriteUrl?: string;\r\n viewBox?: string;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nconst Icon: React.FC<IIconProps> = props => {\r\n const spriteUrl = props.spriteUrl || \"\";\r\n const viewBox = props.viewBox || \"0 0 32 32\";\r\n\r\n return (\r\n <svg\r\n viewBox={viewBox}\r\n className={classNames(props.className, \"icon\", `icon-${props.iconId}`)}\r\n preserveAspectRatio=\"xMidYMid\"\r\n onClick={() => props.onClick && props.onClick()}\r\n >\r\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref={`${spriteUrl}#${props.iconId}`} />\r\n </svg>\r\n );\r\n};\r\n\r\nexport default Icon;\r\n","import * as React from \"react\";\r\n\r\nexport interface AnchorProps {\r\n id?: string;\r\n}\r\n\r\nconst Anchor = ({ id }: AnchorProps) => {\r\n return <div className=\"anchor\" id={id} />;\r\n};\r\n\r\nexport default Anchor;\r\n","import classNames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport Anchor from \"../anchor/anchor\";\r\n\r\nexport interface ContentSectionProps {\r\n className?: string;\r\n type?: \"default\" | \"full\";\r\n anchorId?: string;\r\n hasNoMarginTop?: boolean;\r\n hasNoMarginBottom?: boolean;\r\n}\r\n\r\nconst ContentSection: React.FC<ContentSectionProps> = ({\r\n className,\r\n type = \"default\",\r\n anchorId,\r\n hasNoMarginTop,\r\n hasNoMarginBottom,\r\n ...props\r\n}) => {\r\n const baseClass = \"content-section\";\r\n const componentClasses = classNames(baseClass, className, {\r\n [`${baseClass}--full`]: type === \"full\",\r\n \"anchor-wrapper\": !!anchorId,\r\n \"content-no-margin-top\": hasNoMarginTop,\r\n \"content-no-margin-bottom\": hasNoMarginBottom\r\n });\r\n return (\r\n <section className={componentClasses}>\r\n {anchorId && <Anchor id={anchorId} />}\r\n {props.children}\r\n </section>\r\n );\r\n};\r\n\r\nexport default ContentSection;\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nexport interface ICtaButtonProps {\r\n className?: string;\r\n isLarge?: boolean;\r\n isInverted?: boolean;\r\n isSecondary?: boolean;\r\n link: string;\r\n onClick?(): void;\r\n}\r\n\r\nconst CtaButton = ({ className, isLarge, isInverted, isSecondary, link, onClick }: ICtaButtonProps) => {\r\n const baseClass = \"cta-button\";\r\n const componentClasses = classNames(className, baseClass, {\r\n [`${baseClass}--large`]: isLarge,\r\n [`${baseClass}--inverted`]: isInverted,\r\n [`${baseClass}--secondary`]: isSecondary\r\n });\r\n\r\n return <div onClick={onClick} className={componentClasses} dangerouslySetInnerHTML={{ __html: link }} />;\r\n};\r\n\r\nexport default CtaButton;\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport Icon from \"../icons/icon\";\r\n\r\nexport interface IArrowLinkProps {\r\n className?: string;\r\n link: string;\r\n}\r\n\r\nconst ArrowLink = ({ className, link }: IArrowLinkProps) => {\r\n const baseClass = \"arrow-link\";\r\n const componentClasses = classNames(baseClass, className);\r\n\r\n return (\r\n <div className={componentClasses}>\r\n <Icon iconId=\"icon_16_arrow-right-bold\" />\r\n <span dangerouslySetInnerHTML={{ __html: link }} />\r\n </div>\r\n );\r\n};\r\n\r\nexport default ArrowLink;\r\n","const hasExistingQueryParam = (url: string) => url.indexOf(\"?\") !== -1;\r\n\r\nexport const getQueryParamDelimiter = (url: string) => (hasExistingQueryParam(url) ? \"&\" : \"?\");\r\n\r\nexport const 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\nexport const generateColumnImageProps = (maxColumns: number, isFullWidth?: boolean) => {\r\n // The sizes are column-widths and are not considering padding\r\n const gridMaxWidthFactor = isFullWidth ? 1 : 0.75;\r\n const gridMaxWidth = 1366 * gridMaxWidthFactor;\r\n const defaultSize = gridMaxWidth / maxColumns;\r\n let sizes;\r\n\r\n switch (maxColumns) {\r\n case 5:\r\n sizes = `(max-width: 479px) 100vw, \r\n (max-width: 639px) 75vw,\r\n (max-width: 767px) 50vw,\r\n (max-width: 1023px) ${100 / 3}vw,\r\n (max-width: 1099px) ${(100 / 3) * gridMaxWidthFactor}vw,\r\n (max-width: 1279px) ${(100 / 4) * gridMaxWidthFactor}vw,\r\n ${defaultSize}px`;\r\n case 4:\r\n sizes = `(max-width: 479px) 100vw, \r\n (max-width: 639px) 75vw,\r\n (max-width: 767px) 50vw,\r\n (max-width: 1023px) ${100 / 3}vw,\r\n (max-width: 1099px) ${(100 / 3) * gridMaxWidthFactor}vw,\r\n (max-width: 1279px) ${(100 / 4) * gridMaxWidthFactor}vw,\r\n ${defaultSize}px`;\r\n case 3:\r\n sizes = `(max-width: 479px) 100vw,\r\n (max-width: 639px) 75vw,\r\n (max-width: 767px) 50vw,\r\n (max-width: 1023px) ${100 / 3}vw,\r\n (max-width: 1279px) ${(100 / 3) * gridMaxWidthFactor}vw,\r\n ${defaultSize}px`;\r\n case 2:\r\n sizes = `(max-width: 479px) 100vw,\r\n (max-width: 639px) 75vw,\r\n (max-width: 1023px) ${100 / 2}vw,\r\n (max-width: 1279px) ${(100 / 2) * gridMaxWidthFactor}vw, \r\n ${defaultSize}px`;\r\n case 1:\r\n sizes = `(max-width: 479px) 100vw,\r\n (max-width: 1023px) ${100 * 0.75}vw,\r\n (max-width: 1279px) ${100 * 0.75 * gridMaxWidthFactor}vw,\r\n ${defaultSize * 0.75}px`;\r\n }\r\n\r\n return {\r\n // The sizes are column-widths and are not considering padding\r\n defaultSize: defaultSize,\r\n srcSetSizes: [205, 257, 274, 342, 456, 513, 683, 769, 1025],\r\n sizes: sizes\r\n };\r\n};\r\n","import * as React from \"react\";\r\nimport { generateSrcSet, getQueryParamDelimiter } from \"~/utils/image-utils\";\r\n\r\nexport interface IResponsiveImageProps extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, \"src\"> {\r\n className?: string;\r\n srcUrl: string;\r\n defaultSize: number;\r\n srcSetSizes?: number[];\r\n sizes?: string;\r\n ref?: React.Ref<HTMLImageElement>;\r\n}\r\n\r\nconst ResponsiveImage: React.FC<IResponsiveImageProps> = React.forwardRef(\r\n ({ srcUrl, defaultSize, srcSetSizes, ...props }, ref: React.Ref<HTMLImageElement>) => {\r\n const src = `${srcUrl}${getQueryParamDelimiter(srcUrl)}w=${defaultSize}`;\r\n const srcSet = srcSetSizes ? generateSrcSet(srcSetSizes, srcUrl) : \"\";\r\n\r\n return <img ref={ref} src={src} srcSet={srcSet} {...props} loading=\"lazy\" />;\r\n }\r\n);\r\n\r\nexport default ResponsiveImage;\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nexport interface ITitleProps {\r\n title: string;\r\n isTitleH1?: boolean;\r\n linkHref?: string;\r\n linkTarget?: string;\r\n className?: string;\r\n}\r\n\r\nconst Title = ({ title, isTitleH1, className, linkHref, linkTarget }: ITitleProps) => {\r\n const baseClass = \"title\";\r\n const componentClasses = classNames(baseClass, className, \"h2-style\");\r\n const titleHtml = linkHref ? (\r\n <a className=\"reset-a\" href={linkHref} target={linkTarget}>\r\n {title}\r\n </a>\r\n ) : (\r\n title\r\n );\r\n\r\n return isTitleH1 ? (\r\n <h1 className={componentClasses}>{titleHtml}</h1>\r\n ) : (\r\n <h2 className={componentClasses}>{titleHtml}</h2>\r\n );\r\n};\r\n\r\nexport default Title;\r\n"],"sourceRoot":""}