{"version":3,"sources":["webpack:///./src/Frontend/app/components/wrapper-link/wrapper-link.tsx","webpack:///./src/Frontend/vendor/glueframelib.js","webpack:///./src/Frontend/app/components/video-player/video-player.tsx","webpack:///./src/Frontend/app/types/alignment.ts","webpack:///./src/Frontend/app/components/image-text-cta-slider/image-text-cta-slider-item/image-text-cta-slider-item.tsx","webpack:///./src/Frontend/app/components/image-text-cta-slider/image-text-cta-slider.tsx","webpack:///./src/Frontend/app/views/image-text-cta-slider/image-text-cta-slider-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","webpack:///./src/Frontend/app/types/theme-color.ts"],"names":["linkClassName","href","target","props","className","children","GlueFrame","iframe","appName","$this","this","glueframe","_domain","src","split","slice","join","_method","window","location","postMessage","ready","_readyInterval","setInterval","get","bootstrapped","clearInterval","_processQueue","contentWindow","glueFrameId","Math","floor","Date","getTime","random","_callbackCount","_callbacks","_registerCallback","callback","requireCallback","callbackIdentifier","_queue","_addToQueue","method","args","push","i","length","queueItem","apply","set","prop","force","cbId","value","messageObject","f","JSON","stringify","val","bind","event","triggerQueue","fire","obj","destroy","addEventListener","removeEventListener","_receiveMessage","detachEvent","e","origin","data","parse","a","b","attachEvent","url","autoPlay","autoMute","hideNativePlayBtn","loop","playerId","setDuration","setIsPlaying","isPlaying","isVideoLoaded","setIsVideoLoaded","player","current","duration","splitter","includes","hostName","videoId","videoTokenId","domain","video","componentClasses","baseClass","loading","ref","scrolling","frameBorder","allow","allowFullScreen","HorizontalAlignmentType","VerticalAlignmentType","imageSrc","imageAltText","imageLinkUrl","imageLinkTarget","isTitleH1","title","richText","ctaLink","showCtaAsLink","horizontalAlignContent","CENTER","textAlignContent","bgColor","textColor","BLACK","ctaBgColor","ctaTextColor","WHITE","videoUrl","index","activeSlideIndex","wasActiveSlideIndex","playing","setPlaying","hasContent","contentClasses","buttonClasses","arrowLinkClasses","defaultSize","srcSetSizes","sizes","alt","srcUrl","dangerouslySetInnerHTML","__html","link","isLarge","slides","autoslide","autoslideSpeed","fade","beforeChangeCurrentSlide","setBeforeChangeCurrentSlide","afterChangeCurrentSlide","setAfterChangeCurrentSlide","setActiveSlideIndex","undefined","navigationColor","sliderSettings","slidesToScroll","slidesToShow","infinite","autoplay","autoplaySpeed","speed","focusOnSelect","pauseOnHover","arrows","dots","dotsClass","beforeChange","next","afterChange","customPaging","type","width","height","strokeWidth","fill","r","cx","cy","map","slide","key","render","contextModel","hasOwn","hasOwnProperty","classNames","classes","arguments","arg","argType","Array","isArray","inner","call","module","exports","default","spriteUrl","viewBox","iconId","preserveAspectRatio","onClick","xmlnsXlink","xlinkHref","id","anchorId","hasNoMarginTop","hasNoMarginBottom","isInverted","isSecondary","getQueryParamDelimiter","indexOf","hasExistingQueryParam","generateSrcSet","srcSetSize","parameterDelimiter","srcSetSizeHighDensity","round","generateColumnImageProps","maxColumns","isFullWidth","gridMaxWidthFactor","ResponsiveImage","srcSet","linkHref","linkTarget","titleHtml","ThemeColorType"],"mappings":"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","file":"15.2d9ca1663c457a941e45.js","sourcesContent":["import * as React from \"react\";\r\n\r\nexport interface WrapperLinkProps {\r\n linkClassName?: string;\r\n href: string | undefined;\r\n target?: string;\r\n}\r\n\r\nconst WrapperLink: React.FC<WrapperLinkProps> = ({ linkClassName, href, target, ...props }) => {\r\n if (href) {\r\n return (\r\n <a className={linkClassName} href={href} target={target}>\r\n {props.children}\r\n </a>\r\n );\r\n }\r\n\r\n return <>{props.children}</>;\r\n};\r\n\r\nexport default WrapperLink;\r\n","var GlueFrame = function(iframe, appName) {\r\n\r\n var $this = this;\r\n\r\n // GlueFrame version\r\n $this.glueframe = \"1.1.3\";\r\n\r\n // Allow posting messages only to the domain of the app\r\n var _domain = (\"\"+iframe.src).split(\"/\").slice(0,3).join(\"/\");\r\n\r\n // Determine method of communication with iframe\r\n var _method = (function() {\r\n if (_domain == (\"\"+window.location).split(\"/\").slice(0,3).join(\"/\") ) {\r\n return \"object\";\r\n } else if (typeof window.postMessage !== \"undefined\") {\r\n return \"post\";\r\n } else {\r\n return \"none\";\r\n }\r\n })();\r\n\r\n // Poll the iframe until the app is bootstrapped\r\n $this.ready = false;\r\n var _readyInterval = window.setInterval(function(){\r\n if (!this.ready && _method === \"object\") {\r\n if (iframe.contentWindow[appName] && iframe.contentWindow[appName].bootstrapped) {\r\n $this.ready = true;\r\n window.clearInterval(_readyInterval);\r\n _processQueue();\r\n }\r\n } else if (!this.ready && _method === \"post\") {\r\n $this.get(\"bootstrapped\", function(bootstrapped){\r\n if (bootstrapped) {\r\n $this.ready = true;\r\n window.clearInterval(_readyInterval);\r\n _processQueue();\r\n }\r\n }, true);\r\n }\r\n }, 100);\r\n\r\n $this.glueFrameId = Math.floor((new Date()).getTime()*Math.random());\r\n var _callbackCount = 0;\r\n var _callbacks = {};\r\n\r\n // Store callback functions in the parent window\r\n var _registerCallback = function(callback, requireCallback) {\r\n var callbackIdentifier = $this.glueFrameId + \"_\" + (++_callbackCount);\r\n if (typeof callback === \"function\") {\r\n _callbacks[callbackIdentifier] = callback;\r\n } else if (requireCallback) {\r\n throw \"GlueFrame: Callback not registered correctly.\";\r\n }\r\n return callbackIdentifier;\r\n };\r\n\r\n // Queue up method calls until app is ready\r\n var _queue = [];\r\n var _addToQueue = function(method, args) {\r\n _queue.push({method: method, args: args});\r\n };\r\n\r\n // Loop through queue when app is ready\r\n var _processQueue = function() {\r\n for (var i = 0; i < _queue.length; i += 1) {\r\n var queueItem = _queue[i];\r\n queueItem.method.apply(null, queueItem.args);\r\n }\r\n _queue = [];\r\n $this.set(\"queuedEventsProcessed\", true);\r\n };\r\n\r\n $this.get = function(prop, callback, force) {\r\n if (!$this.ready && !force) {\r\n _addToQueue($this.get, [prop, callback]);\r\n return;\r\n }\r\n var cbId = _registerCallback(callback, true);\r\n if (_method === \"object\") {\r\n var value = iframe.contentWindow[appName].get.apply(null, [prop]);\r\n if (typeof _callbacks[cbId] !== \"undefined\") {\r\n _callbacks[cbId].apply(null, [value]);\r\n }\r\n } else if (_method === \"post\") {\r\n var messageObject = {f: \"get\", args: [prop], cbId: cbId};\r\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), force ? \"*\" : _domain );\r\n }\r\n };\r\n\r\n $this.set = function(prop, val, callback) {\r\n if (!$this.ready) {\r\n _addToQueue($this.set, [prop, val, callback]);\r\n return;\r\n }\r\n var cbId = _registerCallback(callback, false);\r\n if (_method === \"object\") {\r\n var value = iframe.contentWindow[appName].set.apply(null, [prop, val]);\r\n if (typeof _callbacks[cbId] !== \"undefined\") {\r\n _callbacks[cbId].apply(null, [value]);\r\n }\r\n } else if (_method === \"post\") {\r\n var messageObject = {f: \"set\", args: [prop, val], cbId: cbId};\r\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), _domain );\r\n }\r\n };\r\n\r\n $this.bind = function(event, callback, triggerQueue) {\r\n var triggerQueue = triggerQueue || false;\r\n if (!$this.ready) {\r\n _addToQueue($this.bind, [event, callback, true]);\r\n return;\r\n }\r\n var cbId = _registerCallback(callback, true);\r\n if (_method === \"object\") {\r\n iframe.contentWindow[appName].bind.apply(null, [event, callback, triggerQueue]);\r\n } else if (_method === \"post\") {\r\n var messageObject = {f: \"bind\", args: [event], cbId: cbId, triggerQueue: triggerQueue};\r\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), _domain );\r\n }\r\n };\r\n\r\n $this.fire = function(event, obj) {\r\n if (!$this.ready) {\r\n _addToQueue($this.fire, [event, obj]);\r\n return;\r\n }\r\n if (_method === \"object\") {\r\n return iframe.contentWindow[appName].fire.apply(null, [event, obj]);\r\n } else if (_method === \"post\") {\r\n var messageObject = {f: \"fire\", args: [event, obj]};\r\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), _domain );\r\n }\r\n };\r\n\r\n // Remove event listeners, callbacks and intervals\r\n $this.destroy = function(){\r\n if (window.addEventListener) {\r\n window.removeEventListener(\"message\", _receiveMessage, false);\r\n } else {\r\n window.detachEvent(\"onmessage\", _receiveMessage);\r\n }\r\n window.clearInterval(_readyInterval);\r\n _callbacks = {};\r\n };\r\n\r\n // Parse messages received from iframe\r\n var _receiveMessage = function(e) {\r\n \tif (e.origin === _domain) {\r\n var data;\r\n try {\r\n data = JSON.parse(e.data);\r\n }catch(e){}\r\n if (typeof data !== \"undefined\" && typeof data.cbId !== \"undefined\" && typeof _callbacks[data.cbId] === \"function\") {\r\n _callbacks[data.cbId].apply(null, [data.a, data.b]);\r\n }\r\n }\r\n };\r\n\r\n // Listen for message events if need\r\n if (window.addEventListener) {\r\n window.addEventListener(\"message\", _receiveMessage, false);\r\n } else {\r\n window.attachEvent(\"onmessage\", _receiveMessage);\r\n }\r\n\r\n};\r\n\r\n// Converted to es6 module. This should not be an issue in terms of maintainability since the library has not not been updated since April 2017...\r\n// Should any updates be made to the repository (https://github.com/23/GlueFrame), please make sure to include the proper export syntax as below.\r\n\r\n// Original:\r\n // if(typeof(window.onGlueFrameAvailable)=='function') window.onGlueFrameAvailable(GlueFrame);\r\n\r\n // if (typeof module !== 'undefined' && module.exports) {\r\n // module.exports = GlueFrame;\r\n // }\r\n\r\n// New:\r\nexport default GlueFrame\r\n\r\n","import classNames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport GlueFrame from \"../../../vendor/glueframelib\";\r\n\r\nexport interface VideoPlayerProps {\r\n url: string;\r\n autoPlay?: boolean;\r\n autoMute?: boolean;\r\n hideNativePlayBtn?: boolean;\r\n loop?: boolean;\r\n playerId?: string;\r\n setDuration?: (duration: number) => void;\r\n setIsPlaying?: (isPlaying: boolean) => void;\r\n isPlaying?: boolean;\r\n}\r\n\r\nconst VideoPlayer = ({\r\n url,\r\n autoPlay,\r\n autoMute,\r\n hideNativePlayBtn,\r\n loop,\r\n playerId,\r\n setDuration,\r\n setIsPlaying,\r\n isPlaying\r\n}: VideoPlayerProps) => {\r\n const [isVideoLoaded, setIsVideoLoaded] = React.useState(false);\r\n const iframe = React.useRef<HTMLIFrameElement>(null);\r\n const player = React.useRef<any>(null);\r\n\r\n React.useLayoutEffect(() => {\r\n if (iframe.current) {\r\n const glueFrame = new (GlueFrame as any)(iframe.current, \"Player\");\r\n\r\n glueFrame.bind(\"player:video:loaded\", () => {\r\n setIsVideoLoaded(true);\r\n if (setDuration) {\r\n glueFrame.get(\"duration\", (duration?: number) => {\r\n if (duration) {\r\n setDuration(duration);\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (setIsPlaying) {\r\n glueFrame.bind(\"player:video:play\", () => setIsPlaying(true));\r\n glueFrame.bind(\"player:video:pause\", () => setIsPlaying(false));\r\n glueFrame.bind(\"player:video:end\", () => setIsPlaying(false));\r\n }\r\n\r\n player.current = glueFrame;\r\n }\r\n\r\n return () => player.current?.destroy();\r\n }, [iframe]);\r\n\r\n React.useEffect(() => {\r\n player.current?.set(\"playing\", isPlaying);\r\n }, [isPlaying]);\r\n\r\n const src = React.useMemo(() => {\r\n const splitter = url.includes(\"/video/\") ? \"/video/\" : \"/secret/\";\r\n const [hostName, trailing] = url.split(splitter);\r\n const [videoId, videoTokenId] = trailing.split(\"/\");\r\n const domain = `${hostName}/${playerId || \"v\"}.ihtml/player.html`;\r\n const video = `photo%5fid=${videoId}`;\r\n return !!videoTokenId\r\n ? `${domain}?token=${videoTokenId}&source=embed&${video}&autoPlay=${autoPlay ? 1 : 0}&autoMute=${\r\n autoMute ? 1 : 0\r\n }&loop=${loop ? 1 : 0}&hideBigPlay=${hideNativePlayBtn ? 1 : 0}`\r\n : `${domain}?source=site&${video}&autoPlay=${autoPlay ? 1 : 0}&autoMute=${\r\n autoMute ? 1 : 0\r\n }&loop=${loop ? 1 : 0}&hideBigPlay=${hideNativePlayBtn ? 1 : 0}`;\r\n }, [url]);\r\n\r\n const baseClass = \"video-player\";\r\n const componentClasses = classNames(baseClass, { [`${baseClass}--has-loaded`]: isVideoLoaded });\r\n\r\n return (\r\n <div className={componentClasses}>\r\n <iframe\r\n loading=\"lazy\"\r\n ref={iframe}\r\n src={src}\r\n scrolling=\"no\"\r\n frameBorder={0}\r\n allow=\"fullscreen; autoplay\"\r\n allowFullScreen\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default VideoPlayer;\r\n","export enum HorizontalAlignmentType {\r\n LEFT = \"left\",\r\n RIGHT = \"right\",\r\n CENTER = \"center\"\r\n}\r\nexport enum VerticalAlignmentType {\r\n TOP = \"top\",\r\n BOTTOM = \"bottom\",\r\n CENTER = \"center\"\r\n}\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport ResponsiveImage from \"../../responsive-image/responsive-image\";\r\nimport Title from \"~/components/title/title\";\r\nimport CtaButton from \"../../cta-button/cta-button\";\r\nimport { HorizontalAlignmentType } from \"~/types/alignment\";\r\nimport ArrowLink from \"../../arrow-link/arrow-link\";\r\nimport { ThemeColorType } from \"~/types/theme-color\";\r\nimport WrapperLink from \"~/components/wrapper-link/wrapper-link\";\r\nimport VideoPlayer from \"~/components/video-player/video-player\";\r\n\r\nexport interface ImageTextCtaSliderItemProps {\r\n imageSrc?: string;\r\n imageAltText?: string;\r\n imageLinkUrl?: string;\r\n imageLinkTarget?: string;\r\n isTitleH1?: boolean;\r\n title?: string;\r\n richText?: string;\r\n textColor?: ThemeColorType;\r\n textAlignContent?: HorizontalAlignmentType;\r\n ctaLink?: string;\r\n showCtaAsLink?: boolean;\r\n ctaBgColor?: ThemeColorType;\r\n ctaTextColor?: ThemeColorType;\r\n horizontalAlignContent?: HorizontalAlignmentType;\r\n navigationColor?: ThemeColorType;\r\n bgColor?: ThemeColorType;\r\n videoUrl?: string;\r\n index?: number;\r\n activeSlideIndex?: number;\r\n wasActiveSlideIndex?: number;\r\n}\r\n\r\nconst ImageTextCtaSliderItem = ({\r\n imageSrc,\r\n imageAltText,\r\n imageLinkUrl,\r\n imageLinkTarget,\r\n isTitleH1,\r\n title,\r\n richText,\r\n ctaLink,\r\n showCtaAsLink,\r\n horizontalAlignContent = HorizontalAlignmentType.CENTER,\r\n textAlignContent = HorizontalAlignmentType.CENTER,\r\n bgColor,\r\n textColor = ThemeColorType.BLACK,\r\n ctaBgColor = ThemeColorType.BLACK,\r\n ctaTextColor = ThemeColorType.WHITE,\r\n videoUrl,\r\n index,\r\n activeSlideIndex,\r\n wasActiveSlideIndex\r\n}: ImageTextCtaSliderItemProps) => {\r\n const [playing, setPlaying] = React.useState(false);\r\n\r\n const hasContent = title || richText || ctaLink;\r\n const baseClass = \"image-text-cta-slider-item\";\r\n const componentClasses = classNames(\r\n baseClass,\r\n `horizontal-align-${horizontalAlignContent}`,\r\n `text-align-${textAlignContent}`,\r\n `theme-color-${textColor}`,\r\n {\r\n [`theme-bg-${bgColor}`]: !imageLinkUrl && !!bgColor,\r\n [`${baseClass}--has-no-content`]: !hasContent\r\n }\r\n );\r\n const contentClasses = classNames(`${baseClass}__content-wrapper`);\r\n const buttonClasses = classNames(\r\n `${baseClass}__button`,\r\n `theme-bg-${ctaBgColor}`,\r\n `theme-color-${ctaTextColor}`\r\n );\r\n const arrowLinkClasses = classNames(`${baseClass}__link`, `theme-color-${ctaTextColor}`);\r\n\r\n React.useEffect(() => {\r\n if (index === activeSlideIndex) {\r\n setPlaying(true);\r\n }\r\n }, [activeSlideIndex]);\r\n React.useEffect(() => {\r\n if (index === wasActiveSlideIndex && index !== activeSlideIndex) {\r\n setPlaying(false);\r\n }\r\n }, [wasActiveSlideIndex]);\r\n\r\n return (\r\n <WrapperLink linkClassName={`${baseClass}-wrapper-link`} href={imageLinkUrl} target={imageLinkTarget}>\r\n <div className={componentClasses}>\r\n {!videoUrl && imageSrc && (\r\n <ResponsiveImage\r\n className={`${baseClass}__image`}\r\n defaultSize={1366}\r\n srcSetSizes={[320, 375, 480, 640, 768, 1024, 1280, 1366]}\r\n sizes=\"(max-width: 1365px) 100vw, 1366px\"\r\n alt={imageAltText}\r\n srcUrl={imageSrc}\r\n />\r\n )}\r\n\r\n {videoUrl && (\r\n <VideoPlayer url={videoUrl} isPlaying={playing} autoMute loop hideNativePlayBtn />\r\n )}\r\n\r\n {hasContent && (\r\n <div className={contentClasses}>\r\n {title && <Title title={title} isTitleH1={isTitleH1} />}\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 && (\r\n <>\r\n {showCtaAsLink ? (\r\n <ArrowLink className={arrowLinkClasses} link={ctaLink} />\r\n ) : (\r\n <CtaButton className={buttonClasses} link={ctaLink} isLarge />\r\n )}\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </WrapperLink>\r\n );\r\n};\r\n\r\nexport default ImageTextCtaSliderItem;\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport ImageTextCtaSliderItem, {\r\n ImageTextCtaSliderItemProps\r\n} from \"./image-text-cta-slider-item/image-text-cta-slider-item\";\r\nimport Slider, { Settings } from \"react-slick\";\r\nimport { ThemeColorType } from \"~/types/theme-color\";\r\nimport ContentSection from \"../content-section/content-section\";\r\n\r\nexport interface ImageTextCtaSliderProps {\r\n slides: ImageTextCtaSliderItemProps[];\r\n autoslide?: boolean;\r\n autoslideSpeed?: 4000 | 6000;\r\n fade?: boolean;\r\n bgColor?: ThemeColorType;\r\n textColor?: ThemeColorType;\r\n ctaBgColor?: ThemeColorType;\r\n ctaTextColor?: ThemeColorType;\r\n navigationColor?: ThemeColorType;\r\n anchorId?: string;\r\n}\r\n\r\nconst ImageTextCtaSlider = ({\r\n slides,\r\n autoslide = false,\r\n autoslideSpeed = 4000,\r\n fade = false,\r\n bgColor,\r\n textColor,\r\n ctaBgColor,\r\n ctaTextColor,\r\n ...props\r\n}: ImageTextCtaSliderProps) => {\r\n const [beforeChangeCurrentSlide, setBeforeChangeCurrentSlide] = React.useState<number | undefined>(0);\r\n const [afterChangeCurrentSlide, setAfterChangeCurrentSlide] = React.useState<number | undefined>();\r\n const [activeSlideIndex, setActiveSlideIndex] = React.useState(0);\r\n const wasActiveSlideIndex =\r\n activeSlideIndex === afterChangeCurrentSlide ? beforeChangeCurrentSlide : undefined;\r\n const navigationColor =\r\n slides[activeSlideIndex].navigationColor || props.navigationColor || ThemeColorType.BLACK;\r\n\r\n const baseClass = \"image-text-cta-slider\";\r\n const componentClasses = classNames(baseClass, {\r\n [`${baseClass}--auto-slide-speed-${autoslideSpeed}`]: autoslide && autoslideSpeed,\r\n [`${baseClass}--auto-slide`]: autoslide\r\n });\r\n const sliderSettings: Settings = {\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n // Infinite=true creates cloned slides and is only needed if autoplaying\r\n // So for performance we turn it off if no autoplay\r\n // NB: The cloned slides would create problems if we autoplay videos without muting!!!\r\n infinite: autoslide,\r\n autoplay: autoslide,\r\n autoplaySpeed: autoslideSpeed,\r\n speed: 700,\r\n focusOnSelect: false,\r\n fade: fade,\r\n // lazyLoad: \"ondemand\", // Lazy loading would be nice, but then we cannot keep equal height on all slides...🤷â€â™€ï¸\r\n pauseOnHover: true,\r\n arrows: false,\r\n dots: true,\r\n dotsClass: `${baseClass}__dots`,\r\n beforeChange: (current, next) => {\r\n // Inorder to first stop the video after the animation\r\n // we need to get the currentIndex before starting the animation\r\n setBeforeChangeCurrentSlide(current);\r\n setActiveSlideIndex(next);\r\n },\r\n afterChange: current => {\r\n // We cannot get the previous current index at this point,\r\n // but we can set this to figure out that the animation is over\r\n setAfterChangeCurrentSlide(current);\r\n },\r\n customPaging: i => (\r\n <button\r\n type=\"button\"\r\n className={classNames(`${baseClass}__dot`, `theme-color-${navigationColor}`, \"reset-button\")}\r\n >\r\n <svg className=\"progress-ring\" width=\"36\" height=\"36\">\r\n <circle\r\n className=\"progress-ring__circle\"\r\n strokeWidth=\"2\"\r\n fill=\"transparent\"\r\n r=\"16\"\r\n cx=\"18\"\r\n cy=\"18\"\r\n />\r\n </svg>\r\n {i + 1}\r\n </button>\r\n )\r\n };\r\n\r\n return (\r\n <ContentSection className={componentClasses} {...props}>\r\n <Slider {...sliderSettings}>\r\n {slides.map((slide, index) => (\r\n <ImageTextCtaSliderItem\r\n key={index}\r\n {...slide}\r\n bgColor={slide.bgColor || bgColor}\r\n textColor={slide.textColor || textColor}\r\n ctaBgColor={slide.ctaBgColor || ctaBgColor}\r\n ctaTextColor={slide.ctaTextColor || ctaTextColor}\r\n activeSlideIndex={activeSlideIndex}\r\n wasActiveSlideIndex={wasActiveSlideIndex}\r\n index={index}\r\n />\r\n ))}\r\n </Slider>\r\n </ContentSection>\r\n );\r\n};\r\n\r\nexport default ImageTextCtaSlider;\r\n","import * as React from \"react\";\r\nimport ImageTextCtaSlider, {\r\n ImageTextCtaSliderProps\r\n} from \"~/components/image-text-cta-slider/image-text-cta-slider\";\r\n\r\nexport interface IImageTextCtaSliderViewProps {\r\n contextModel: ImageTextCtaSliderProps;\r\n}\r\n\r\nclass ImageTextCtaSliderView extends React.PureComponent<IImageTextCtaSliderViewProps> {\r\n public render() {\r\n return <ImageTextCtaSlider {...this.props.contextModel} />;\r\n }\r\n}\r\n\r\nexport default ImageTextCtaSliderView;\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","export enum ThemeColorType {\r\n BLACK = \"black\",\r\n WHITE = \"white\",\r\n GRAY = \"gray\",\r\n GRAY_LIGHT = \"gray-light\",\r\n BRAND_CTA = \"brand-cta\",\r\n BRAND_1 = \"brand-1\",\r\n BRAND_2 = \"brand-2\",\r\n BRAND_3 = \"brand-3\",\r\n BRAND_4 = \"brand-4\",\r\n BRAND_5 = \"brand-5\"\r\n}\r\n"],"sourceRoot":""}