{"version":3,"file":"476.f394015d718dae57a7e7.js","mappings":"qWAEA,IAEMA,EAAyB,SAACC,GAAgB,OAFlB,SAACA,GAAgBA,OAAAA,EAAIC,QAAQ,MAAQ,EAElBC,CAAsBF,GAAO,IAAM,KAgCpF,IARwB,SAACG,GACrB,IAAQC,EAAoDD,EAApDC,OAAQC,EAA4CF,EAA5CE,YAAaC,EAA+BH,EAA/BG,YAAaC,EAAkBJ,EAAlBI,KAASC,E,kXAAI,CAAKL,EAAK,CAAzDC,SAAQC,cAAaC,cAAaC,SACpCE,EAAO,GAAWV,OAATK,GAA4CC,OAAnCN,EAAuBK,GAAQ,MAAgB,OAAZC,GACrDK,EAASJ,EAzBI,SAACA,EAAuBF,GAW3C,OAAOE,EAAYK,KAVU,SAACC,GAC1B,IAAMC,EAAqBd,EAAuBK,GAC5CU,EAAwBC,KAAKC,MAAmB,IAAbJ,GAEzC,MAAQ,iBACOC,OAATT,GAAgCQ,OAAvBC,EAAmB,MAAkBD,OAAdA,EAAW,KAC3CR,OAD8CQ,EAAW,oBAChDC,OAATT,GAAgCU,OAAvBD,EAAmB,MAA6BC,OAAzBA,EAAsB,KAAyB,OAAtBA,EAAsB,kBAI5CG,KAAK,MAcrBC,CAAeZ,EAAaF,GAAU,GAEnE,OAAM,gBAAEe,MAAG,GAACV,IAAKA,EAAKC,OAAQA,EAAQU,QAAQ,OAAOC,IAAKlB,EAAMkB,IAAKd,KAAMA,GAAUC,M,q2BC9BnFc,EAAN,SAAQ,I,mpBAAFA,I,yDACFC,IAAAA,S,MAAAA,WACI,IAAMC,EAAY,cAElB,OAAM,gBACDC,MAAG,CAACC,UAAWF,GACXG,KAAKxB,MAAMyB,UAAQ,gBACfH,MAAG,CAACC,UAAY,GAAY,OAAVF,EAAU,sB,gBACxBK,EAAAA,EAAe,CACZzB,OAAQuB,KAAKxB,MAAMyB,SACnBvB,YAAa,IACbC,YAAa,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MACpDwB,MAAM,iDACNT,IAAI,GACJD,QAAQ,UAEXO,KAAKxB,MAAM4B,sBAAoB,gBAC3BN,MAAG,CAACC,UAAY,GAAY,OAAVF,EAAU,Y,gBACxBQ,MAAG,CAACC,EAAE,MAAMC,EAAE,MAAMC,QAAQ,gB,gBACxBC,OAAI,CAACC,EAAE,kH,gBAM3BZ,MAAG,CAACC,UAAY,GAAY,OAAVF,EAAU,c,gBACxBC,MAAG,CACAC,UAAY,GAAY,OAAVF,EAAU,aACxBc,wBAAyB,CAAEC,OAAQZ,KAAKxB,MAAMqC,W,gBAEjDC,KAAE,CAACf,UAAY,GAAY,OAAVF,EAAU,Y,gBACvBkB,OAAI,CAACJ,wBAAyB,CAAEC,OAAQZ,KAAKxB,MAAMwC,U,gBAEvDlB,MAAG,CACAC,UAAY,GAAY,OAAVF,EAAU,aACxBc,wBAAyB,CAAEC,OAAQZ,KAAKxB,MAAMyC,WAEjDjB,KAAKxB,MAAM0C,MAAI,gBACXpB,MAAG,CACAC,UAAY,GAAY,OAAVF,EAAU,SACxBc,wBAAyB,CAAEC,OAAQZ,KAAKxB,MAAM0C,e,mBAxC1E,CAAyBC,EAAAA,WAiDzB,I,gNCjDA,IAEA,EAFuB3C,SAAAA,GAAS,OAAM,gBAALmB,EAAU,KAAKnB","sources":["webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Shared/ResponsiveImage/responsive-image.tsx","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Hero/heroBanner/hero-banner.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactViews/HeroBanner/hero-banner-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<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\r\n srcUrl: string;\r\n defaultSize: number;\r\n srcSetSizes: number[];\r\n role?: string;\r\n}\r\n\r\nconst ResponsiveImage = (props: ResponsiveImageProps) => {\r\n const { srcUrl, defaultSize, srcSetSizes, role, ...rest } = props;\r\n const src = `${srcUrl}${getQueryParamDelimiter(srcUrl)}w=${defaultSize}`;\r\n const srcSet = srcSetSizes ? generateSrcSet(srcSetSizes, srcUrl) : \"\";\r\n\r\n return <img src={src} srcSet={srcSet} loading=\"lazy\" alt={props.alt} role={role} {...rest} />;\r\n};\r\n\r\nexport default ResponsiveImage;\r\n","import React, { Component } from \"react\";\r\nimport ResponsiveImage from \"../../Shared/ResponsiveImage/responsive-image\";\r\n\r\nclass HeroBanner extends Component {\r\n render() {\r\n const baseClass = \"hero-banner\";\r\n\r\n return (\r\n <div className={baseClass}>\r\n {this.props.ImageSrc && (\r\n <div className={`${baseClass}__picture-wrapper`}>\r\n <ResponsiveImage\r\n srcUrl={this.props.ImageSrc}\r\n defaultSize={800}\r\n srcSetSizes={[375, 450, 640, 768, 1024, 1280, 1440, 1920]}\r\n sizes=\"(max-width: 1240px) 100vw, calc(100vw - 300px)\"\r\n alt=\"\"\r\n loading=\"eager\"\r\n />\r\n {this.props.UseImageClippingMask && (\r\n <div className={`${baseClass}__shape`}>\r\n <svg x=\"0px\" y=\"0px\" viewBox=\"0 0 341 14.3\">\r\n <path d=\"M341,14.3H0V0c0,0,79,5.9,160.9,6.4l0,0c0,0,9.6,0,9.6,7.9c0-7.9,9.6-7.9,9.6-7.9l0,0C262,6,341,0,341,0V14.3z\" />\r\n </svg>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className={`${baseClass}__content`}>\r\n <div\r\n className={`${baseClass}__trumpet`}\r\n dangerouslySetInnerHTML={{ __html: this.props.Trumpet }}\r\n />\r\n <h1 className={`${baseClass}__title`}>\r\n <span dangerouslySetInnerHTML={{ __html: this.props.Title }} />\r\n </h1>\r\n <div\r\n className={`${baseClass}__subtext`}\r\n dangerouslySetInnerHTML={{ __html: this.props.Tagline }}\r\n />\r\n {this.props.Link && (\r\n <div\r\n className={`${baseClass}__cta`}\r\n dangerouslySetInnerHTML={{ __html: this.props.Link }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default HeroBanner;\r\n","import * as React from \"react\";\r\nimport HeroBanner from \"@/ReactComponents/Hero/heroBanner/hero-banner\";\r\n\r\nconst HeroBannerView = props => <HeroBanner {...props} />;\r\n\r\nexport default HeroBannerView;\r\n"],"names":["getQueryParamDelimiter","url","indexOf","hasExistingQueryParam","props","srcUrl","defaultSize","srcSetSizes","role","rest","src","srcSet","map","srcSetSize","parameterDelimiter","srcSetSizeHighDensity","Math","round","join","generateSrcSet","img","loading","alt","HeroBanner","render","baseClass","div","className","this","ImageSrc","ResponsiveImage","sizes","UseImageClippingMask","svg","x","y","viewBox","path","d","dangerouslySetInnerHTML","__html","Trumpet","h1","span","Title","Tagline","Link","Component"],"sourceRoot":""}