{"version":3,"file":"static/js/5266.ae50e463.chunk.js","mappings":"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","sources":["helpers/keys.js","shared/article-color-usp/article-color-usp-component.jsx","shared/text-and-tabs/text-and-tabs-container-component.jsx","shared/text-and-tabs/text-and-tabs-container-module.jsx","shared/timeline-container/timeline-container-component.jsx","shared/value-cards-container/value-cards-container-component.jsx","shared/_svgs/small/Play.js","shared/youtube-embed/YouTubeEmbed.jsx"],"sourcesContent":["export const generateRandomString = () => {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\"\n let randomString = \"\"\n\n for (let i = 0; i < 5; i++) {\n const randomIndex = Math.floor(Math.random() * characters.length)\n randomString += characters[randomIndex]\n }\n\n return randomString\n}\n","import React, { Component } from \"react\"\n\nexport default class ArticleColorUsp extends Component {\n render() {\n const titleBoxStyle = { \"--title-box-color\": this.props.titleBoxColor, \"--title-box-text-color\": this.props.titleBoxTextColor }\n const containerStyle = { \"--usp-box-color\": this.props.uspBoxColor, \"--usp-box-text-color\": this.props.uspBoxTextColor }\n return (\n <div className={this.props.modifier || \"\"}>\n <div className=\"usp-container\" style={containerStyle}>\n <div className=\"titlebox\" style={titleBoxStyle}>\n {this.props.title}\n </div>\n <div className=\"textcontainer\">\n <div className=\"textboxhead\" dangerouslySetInnerHTML={{ __html: this.props.headline }}></div>\n {this.props.uspTexts && this.props.uspTexts.length > 0 ? (\n <ul className=\"uspbox\">\n {this.props.uspTexts.map((usp, index) => {\n return <li key={index}>{usp}</li>\n })}\n </ul>\n ) : (\n \"\"\n )}\n </div>\n </div>\n </div>\n )\n }\n}\n","import React, { useState, useEffect } from \"react\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport ValueCardsContainer from \"../value-cards-container/value-cards-container-component\"\nimport TimelineContainer from \"../timeline-container/timeline-container-component\"\nimport ArticleColorUspBlock from \"../article-color-usp/article-color-usp-component\"\nimport { generateRandomString } from \"../../helpers/keys\"\nimport useWindowWidth from \"../../hooks/useWindowWidth\"\n\nexport default function TextAndTabsContainer({ headline, subheader, tabContent }) {\n //string regex in replace, replaces spaces with dashes.\n\n const tabLabels = tabContent.map((obj) => obj.tabLabel) || {}\n\n const convertUtfToReadableString = (url) => {\n return (\n (!!url &&\n url\n .replaceAll(\"%20\", \" \")\n .replaceAll(\"%C3%A6\", \"æ\")\n .replaceAll(\"%C3%86\", \"Æ\")\n .replaceAll(\"%C3%B8\", \"ø\")\n .replaceAll(\"%C3%98\", \"Ø\")\n .replaceAll(\"%C3%A5\", \"å\")\n .replaceAll(\"%C3%85\", \"Å\")) ||\n url\n )\n }\n\n const [urlHash] = useState(convertUtfToReadableString(window.location.href.split(\"#\")[1]) || undefined)\n const [matchingTabLabel] = useState(tabLabels.find((tabLabel) => convertUtfToReadableString(tabLabel) === urlHash) || undefined)\n const [activeTab, setActiveTab] = useState(matchingTabLabel || tabLabels[0] || \"\")\n\n useEffect(() => {\n const handleLocationChange = () => {\n // Perform actions when window.location.href changes\n setActiveTab(convertUtfToReadableString(window.location.href.split(\"#\")[1] || \"\") || tabLabels[0])\n }\n\n // Add event listener for 'popstate' event\n window.addEventListener(\"popstate\", handleLocationChange)\n\n // Clean up the event listener on component unmount\n return () => {\n window.removeEventListener(\"popstate\", handleLocationChange)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []) // Empty dependency array to run the effect only once\n\n const htmlTabs =\n tabContent.length > 0\n ? tabContent.map((tab, index) => {\n return (\n <Tab\n key={tab.tabLabel ? tab.tabLabel.replace(/\\s+/g, \"-\") : index}\n Id={index}\n tabHelperText={tab.tabHelperText}\n label={tab.tabLabel}\n activeTab={activeTab}\n setActiveTab={setActiveTab}\n />\n )\n })\n : undefined\n\n const htmlTabContent =\n tabContent.length > 0\n ? tabContent.map((tab, index) => {\n return (\n <TabContent\n key={tab.tabLabel ? tab.tabLabel.replace(/\\s+/g, \"-\") : index}\n Id={index}\n label={tab.tabLabel}\n activeTab={activeTab}\n textContent={tab.textContent}\n blockContent={tab.blockContent}\n />\n )\n })\n : undefined\n\n return (\n <section className=\"text-and-tabs\">\n <div className=\"w--narrow\">\n <div className=\"text-and-tabs-top\">\n <h2 data-epi-property=\"Headline\">{headline}</h2>\n <p data-epi-property=\"Subheader\">{subheader}</p>\n </div>\n <div className={`text-and-tabs-tabs`}>{htmlTabs}</div>\n <div data-epi-property=\"TabContent\" className=\"text-and-tabs-contents\">\n {htmlTabContent}\n </div>\n </div>\n </section>\n )\n}\n\nfunction Tab({ label, tabHelperText, activeTab, setActiveTab }) {\n const tabHandler = () => {\n setActiveTab(label)\n const newUrl = window.location.href.split(\"#\")[0] + \"#\" + label\n window.history.pushState({ urlChange: \"TabNavigation\" }, \"\", newUrl)\n }\n\n return (\n <button\n data-epi-property=\"TabLabel\"\n id={label}\n aria-pressed={label === activeTab ? \"true\" : \"false\"}\n aria-label={tabHelperText + \" \" + label}\n onClick={tabHandler}\n className={label === activeTab ? \"is-active\" : \"inactive\"}\n >\n {label}\n </button>\n )\n}\n\nfunction TabContent({ label, activeTab, textContent, blockContent }) {\n //Component was scoped with functionality to include single block item.\n const extractedBlockContent = blockContent ? blockContent : undefined\n\n useEffect(() => {\n CreateContentBlockElement()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const [epiSortedBlockContent, setEpiSortedBlockContent] = useState([])\n\n const CreateContentBlockElement = () => {\n let htmlBlockElements = []\n\n if (!!extractedBlockContent && extractedBlockContent.length > 0) {\n extractedBlockContent.forEach((element) => {\n switch (element.__type__) {\n case \"ValueCardsContainerBlock\":\n htmlBlockElements.push(\n <div key={generateRandomString()} className=\"text-and-tabs\">\n <ValueCardsContainer contentArea={element.contentArea} />\n </div>,\n )\n break\n case \"TimelineContainerBlock\":\n htmlBlockElements.push(\n <TimelineContainer\n key={generateRandomString()}\n contentArea={element.contentArea}\n isNumbered={element.isNumbered}\n header={element.header}\n description={element.description}\n isVideoFormat={element.isVideoFormat}\n />,\n )\n break\n case \"ArticleColorUspBlock\":\n htmlBlockElements.push(\n <div key={generateRandomString()} className=\"text-and-tabs\">\n <div className=\"article-color-usp-module\">\n <ArticleColorUspBlock\n key={generateRandomString()}\n titleBoxColor={element.titleBoxColor}\n titleBoxTextColor={element.titleBoxTextColor}\n uspBoxColor={element.uspBoxColor}\n uspBoxTextColor={element.uspBoxTextColor}\n modifier={\"w--wider\"}\n title={element.title}\n headline={element.headline}\n uspTexts={element.uspTexts}\n />\n </div>\n </div>,\n )\n break\n\n case \"PresentationTabItemBlock\":\n htmlBlockElements.push(\n <div key={generateRandomString()} className=\"presentation-tabs\">\n <div className=\"presentation-tabs-contents\">\n <PresentationTabContent desktopImage={element.desktopImage} mobileImage={element.mobileImage} />\n </div>\n </div>,\n )\n break\n default:\n break\n }\n })\n\n setEpiSortedBlockContent(\n htmlBlockElements.map((element) => {\n return element\n }),\n )\n }\n }\n\n return (\n <article className={label === activeTab ? \"is-active\" : \"inactive\"}>\n <div data-epi-property=\"TextContent\" className=\"rich-text\">\n {ReactHtmlParser(textContent)}\n </div>\n {epiSortedBlockContent}\n </article>\n )\n}\n\nfunction PresentationTabContent({ label, activeTab, desktopImage, mobileImage }) {\n const windowWidth = useWindowWidth()\n\n return (\n <div className={label === activeTab ? \"is-active\" : \"inactive\"}>\n <img data-epi-property=\"DesktopImage\" src={windowWidth >= 768 ? desktopImage : mobileImage}></img>\n </div>\n )\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport TextAndTabsContainerComponent from \"./text-and-tabs-container-component\"\n\nexport default class TextAndTabsContainerModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n this.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<TextAndTabsContainerComponent {...self.modelJson} />, self.elem)\n }\n}\n","import React from \"react\"\nimport Slider from \"react-slick\"\nimport ReactHTMLParser from \"react-html-parser\"\nimport YoutubeEmbed from \"../youtube-embed/YouTubeEmbed\"\nimport \"./_timeline-container.scss\"\nimport { generateRandomString } from \"../../helpers/keys\"\nimport useWindowWidth from \"../../hooks/useWindowWidth\"\n\nexport default function TimelineContainer({ contentArea, isNumbered, header, description, isVideoFormat }) {\n const timelineElements = contentArea || []\n const windowWidth = useWindowWidth()\n\n var settings = {\n dots: true,\n arrows: false,\n infinite: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n swipe: true,\n variableWidth: false,\n }\n\n if (windowWidth >= 768 && windowWidth < 920) {\n settings.slidesToShow = 2\n }\n\n let htmlTimeline = undefined\n\n //desktop HTML\n htmlTimeline =\n timelineElements.length > 0\n ? timelineElements.map((t, index) => {\n return (\n <TimelineItem\n key={generateRandomString()}\n itemNumber={index + 1}\n timelineText={ReactHTMLParser(t.timelineText)}\n image={t.timelineImage}\n youtube={t.videoId}\n isVideo={isVideoFormat}\n isNumbered={isNumbered}\n />\n )\n })\n : null\n\n //mobile HTML\n if (windowWidth < 768) {\n htmlTimeline = React.createElement(Slider, settings, htmlTimeline)\n }\n\n return (\n <section className=\"block-container\">\n <div\n className={`timeline-container timeline-container${isNumbered ? \"--ordered\" : \"--unordered\"} ${\n isVideoFormat ? \"video-format\" : \"image-format\"\n }`}\n >\n <div className=\"w--normal\">\n {!!header && !!description ? (\n <div className=\"timeline-top\">\n <h3 className=\"\">{header}</h3>\n <p className=\"\">{description}</p>\n </div>\n ) : undefined}\n {htmlTimeline}\n </div>\n </div>\n </section>\n )\n}\n\nfunction TimelineItem({ timelineText, image, youtube, isVideo, itemNumber, isNumbered }) {\n return (\n <div className={`timeline-item ${isVideo ? \" video-format\" : \" image-format\"}`}>\n <article className=\"timeline-element\">\n <div className=\"media-area\">\n {\n //if image, show image markup\n !youtube && image ? (\n //dette scenarie skal have samme aspect ratio som video hvis isVideo er true.\n <img src={image} className={!!isVideo && !youtube && image ? \"video-aspect-ratio\" : \"\"} />\n ) : //if video, show video markup\n youtube ? (\n <YoutubeEmbed embedId={youtube} classDecleration={\"timeline-video\"} backgroundImage={image} />\n ) : undefined\n }\n </div>\n <div className=\"text-area\">\n <div className=\"numberdot\">\n <div aria-hidden=\"true\" className=\"number\">\n {isNumbered ? itemNumber : undefined}\n </div>\n </div>\n <div className=\"text-area-content\">\n <div className=\"rich-text\">{timelineText}</div>\n </div>\n </div>\n </article>\n </div>\n )\n}\n","import React from \"react\"\nimport Slider from \"react-slick\"\nimport Svg from \"../_svgs/svg\"\nimport \"./_value-card.scss\"\nimport useWindowWidth from \"../../hooks/useWindowWidth\"\n\nexport default function ValueCardsContainer({ contentArea }) {\n const valueCards = contentArea || []\n const windowWidth = useWindowWidth()\n\n var settings = {\n dots: true,\n arrows: false,\n infinite: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n swipe: true,\n variableWidth: false,\n }\n\n if (windowWidth >= 768 && windowWidth < 920) {\n settings.slidesToShow = 2\n }\n\n return (\n <section className=\"value-cards-container\">\n <div className=\"w--narrow\">\n {windowWidth >= 768 ? (\n valueCards.length > 0 ? (\n valueCards.map((card) => {\n return (\n <ValueCard\n key={card.header}\n icon={card.icon[0] || null}\n iconUpload={card.iconUpload}\n header={card.header}\n description={card.description}\n />\n )\n })\n ) : null\n ) : (\n <Slider {...settings}>\n {valueCards.length > 0\n ? valueCards.map((card) => {\n return (\n <ValueCard\n key={card.header}\n icon={card.icon[0] || null}\n iconUpload={card.iconUpload}\n header={card.header}\n description={card.description}\n />\n )\n })\n : null}\n </Slider>\n )}\n </div>\n </section>\n )\n}\n\nfunction ValueCard({ icon, iconUpload, header, description }) {\n const svg = icon?.value || undefined\n\n return (\n <div className=\"card-container\">\n <article className=\"value-card\">\n {svg !== \"None\" || undefined ? (\n <Svg iconName={svg} fillColor={\"transparent\"} stroke={\"#000\"} key={svg}></Svg>\n ) : iconUpload ? (\n <div className=\"icon\">\n <img src={iconUpload}></img>\n </div>\n ) : (\n \"\"\n )}\n <h3>{header}</h3>\n <p>{description}</p>\n </article>\n </div>\n )\n}\n","import React from \"react\"\n\nconst SvgPlay = (props) => (\n <svg viewBox=\"0 0 18 18\" {...props}>\n <path d=\"M0 0l18 9-18 9z\" fillRule=\"evenodd\" />\n </svg>\n)\n\nexport default SvgPlay\n","import React, { useState, useEffect } from \"react\"\nimport PropTypes from \"prop-types\"\n// import YoutubePlayer from 'react-youtube-player';\nimport YouTube from \"react-youtube\"\nimport SvgPlay from \"../_svgs/small/Play\"\nimport \"./YouTubeEmbed.scss\"\n\nexport default function YoutubeEmbed({ embedId, classDecleration, backgroundImage, ariaVideoDescription }) {\n const [playbackState, setPlaybackState] = useState(\"paused\")\n const [showVideoHtml, setShowVideoHtml] = useState(false)\n\n const [hasVideoLoaded, setHasVideoLoaded] = useState(false)\n const video = document.getElementById(embedId) || undefined\n\n useEffect(() => {\n if (!!video && !hasVideoLoaded) {\n const handleLoad = () => {\n setHasVideoLoaded(false)\n }\n\n video.addEventListener(\"load\", handleLoad)\n\n return () => {\n video.removeEventListener(\"load\", handleLoad)\n }\n }\n })\n\n const options = {\n playerVars: {\n showinfo: false,\n modestbranding: true,\n allowFullScreen: 1,\n title: \"Embedded Youtube\",\n autoPlay: 1,\n controls: 1,\n loop: 0,\n cc_load_policy: \"0\",\n iv_load_policy: \"3\",\n autohide: 0,\n },\n }\n\n function onPlayerReady(event) {\n var embedCode = event.target.getVideoEmbedCode()\n event.target.playVideo()\n if (document.getElementById(\"embed-code\")) {\n document.getElementById(\"embed-code\").innerHTML = embedCode\n document.getElementById(\"embed-code\").focus()\n }\n }\n\n const playHandler = () => {\n setShowVideoHtml(true)\n setPlaybackState(\"playing\")\n }\n\n let overlayStyle = {\n backgroundImage: `url('http://img.youtube.com/vi/${embedId}/0.jpg')`,\n }\n\n if (backgroundImage) {\n overlayStyle.backgroundImage = `url('${backgroundImage}')`\n }\n\n return (\n <div className={classDecleration}>\n {/* {playbackState !== 'playing' && !!backgroundImage ?\n <button className=\"youtube-overlay\" onClick={playHandler} style={overlayStyle}>\n <div className=\"svg-container\">\n <div className=\"youtube-play-svg\">\n <SvgPlay />\n </div>\n </div>\n </button> : undefined\n } */}\n {showVideoHtml ? (\n <YouTube videoId={embedId} id={embedId} className={\"youtube-video\"} title={\"Embedded Youtube\"} opts={options} onReady={onPlayerReady} />\n ) : (\n <button aria-label={ariaVideoDescription || \"Start Video\"} className=\"youtube-overlay\" onClick={playHandler} style={overlayStyle}>\n <div className=\"svg-container\">\n <div className=\"youtube-play-svg\">\n <SvgPlay />\n </div>\n </div>\n </button>\n )}\n </div>\n )\n}\n\nYoutubeEmbed.propTypes = {\n embedId: PropTypes.string.isRequired,\n classDecleration: PropTypes.string,\n backgroundImage: PropTypes.string,\n}\n"],"names":["generateRandomString","characters","randomString","i","Math","floor","random","ArticleColorUsp","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","titleBoxStyle","this","props","titleBoxColor","titleBoxTextColor","containerStyle","uspBoxColor","uspBoxTextColor","_jsx","className","modifier","children","_jsxs","style","title","dangerouslySetInnerHTML","__html","headline","uspTexts","length","map","usp","index","Component","TextAndTabsContainer","_ref","subheader","tabContent","tabLabels","obj","tabLabel","convertUtfToReadableString","url","replaceAll","_useState","useState","window","location","href","split","undefined","urlHash","_slicedToArray","_useState3","find","matchingTabLabel","_useState5","_useState6","activeTab","setActiveTab","useEffect","handleLocationChange","addEventListener","removeEventListener","htmlTabs","tab","Tab","Id","tabHelperText","label","replace","htmlTabContent","TabContent","textContent","blockContent","_ref2","id","onClick","newUrl","history","pushState","urlChange","_ref3","extractedBlockContent","CreateContentBlockElement","_useState7","_useState8","epiSortedBlockContent","setEpiSortedBlockContent","htmlBlockElements","forEach","element","__type__","push","ValueCardsContainer","contentArea","TimelineContainer","isNumbered","header","description","isVideoFormat","ArticleColorUspBlock","PresentationTabContent","desktopImage","mobileImage","ReactHtmlParser","_ref4","windowWidth","useWindowWidth","src","TextAndTabsContainerModule","elem","self","modelJson","dataset","JSON","parse","init","ReactDOM","TextAndTabsContainerComponent","_objectSpread","timelineElements","settings","dots","arrows","infinite","slidesToShow","slidesToScroll","swipe","variableWidth","htmlTimeline","t","TimelineItem","itemNumber","timelineText","ReactHTMLParser","image","timelineImage","youtube","videoId","isVideo","React","Slider","concat","YoutubeEmbed","embedId","classDecleration","backgroundImage","valueCards","card","ValueCard","icon","iconUpload","svg","Svg","iconName","fillColor","stroke","viewBox","d","fillRule","ariaVideoDescription","_useState2","setPlaybackState","_useState4","showVideoHtml","setShowVideoHtml","hasVideoLoaded","setHasVideoLoaded","video","document","getElementById","handleLoad","overlayStyle","YouTube","opts","playerVars","showinfo","modestbranding","allowFullScreen","autoPlay","controls","loop","cc_load_policy","iv_load_policy","autohide","onReady","event","embedCode","target","getVideoEmbedCode","playVideo","innerHTML","focus","SvgPlay"],"sourceRoot":""}