{"version":3,"file":"static/js/8054.ce0faa3e.chunk.js","mappings":"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","sources":["helpers/keys.js","shared/timeline-container/timeline-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 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\"\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","TimelineContainer","_ref","contentArea","isNumbered","header","description","isVideoFormat","timelineElements","windowWidth","useWindowWidth","settings","dots","arrows","infinite","slidesToShow","slidesToScroll","swipe","variableWidth","htmlTimeline","undefined","length","map","t","index","_jsx","TimelineItem","itemNumber","timelineText","ReactHTMLParser","image","timelineImage","youtube","videoId","isVideo","React","Slider","className","children","concat","_jsxs","_ref2","src","YoutubeEmbed","embedId","classDecleration","backgroundImage","props","_objectSpread","viewBox","d","fillRule","ariaVideoDescription","_useState","useState","_useState2","_slicedToArray","setPlaybackState","_useState3","_useState4","showVideoHtml","setShowVideoHtml","_useState5","_useState6","hasVideoLoaded","setHasVideoLoaded","video","document","getElementById","useEffect","handleLoad","addEventListener","removeEventListener","overlayStyle","YouTube","id","title","opts","playerVars","showinfo","modestbranding","allowFullScreen","autoPlay","controls","loop","cc_load_policy","iv_load_policy","autohide","onReady","event","embedCode","target","getVideoEmbedCode","playVideo","innerHTML","focus","onClick","style","SvgPlay"],"sourceRoot":""}