{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///./src/v1/components/blokker/EpisodevelgerBlokk/index.css?4cf3","webpack:///./src/v1/components/App.css?9824","webpack:///./src/v1/components/blokker/SimpleGallery/index.css?a59c","webpack:///./src/v1/components/blokker/VideoHistorie/index.css?e5e4","webpack:///./src/v1/components/blokker/VitenskapBlokk/index.css?0f4c","webpack:///./src/v1/components/blokker/ImageGallery/index.css?4010","webpack:///./src/v1/components/blokker/VisuellHistorie/index.css?3463","webpack:///./src/lib/VoiceText/index.css?4a26","webpack:///./src/v1/components/Intro/Header/index.css?5ba8","webpack:///./src/v1/components/blokker/VisuellHistorieScroll/index.css?857d","webpack:///./src/v1/components/blokker/DobbelBildeBlokk/index.css?d633","webpack:///./src/v1/components/Footer/index.css?3c86","webpack:///./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","webpack:///./src/v1/components/Intro/index.css?c35f","webpack:///./src/v1/components/Byline/index.css?0882","webpack:///./src/v1/components/blokker/TekstBlokk/Person/index.css?b164","webpack:///./src/v1/components/blokker/TekstBlokk/Faktaboks/index.css?0139","webpack:///./src/v1/components/blokker/TekstBlokk/BildeLydtekst/index.css?c24f","webpack:///./src/v1/components/blokker/TekstBlokk/Inngang/index.css?e242","webpack:///./src/v1/components/blokker/StedintroBildeBlokk/index.css?bee1","webpack:///./src/v1/components/blokker/TekstBlokk/index.css?2169","webpack:///./src/v1/components/blokker/TekstBlokk/VideoElement/index.css?51e4","webpack:///./src/v1/components/blokker/TekstBlokk/LudoElement/index.css?1b21","webpack:///./src/v1/components/blokker/TekstBlokk/Sitat/index.css?d7aa","webpack:///./src/v1/components/grid.css?efd6","webpack:///./src/v1/components/blokker/LevendeStillbildeBlokk/index.css?9094","webpack:///./src/v1/components/blokker/StedintroVideoBlokk/index.css?70c4","webpack:///./src/lib/wrappers/sweetScrollWrapper.js","webpack:///./src/lib/wrappers/lottieWrapper.js","webpack:///./node_modules/domready/ready.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/v1/components/Intro/Logo/index.css?b7f7","webpack:///./src/v1/components/blokker/TekstBlokk/Image/index.css?2687","webpack:///./src/v1/components/blokker/TekstBlokk/VideoElement/VideoContent/index.css?417f","webpack:///./src/v1/components/blokker/TekstBlokk/LevendeStillbilde/index.css?2d28","webpack:///./src/v1/components/blokker/TekstBlokk/Lydtekst/index.css?2a0f","webpack:///./src/v1/components/blokker/BildeBlokk/index.css?92c2","webpack:///./node_modules/preact-scrollchor/dist/scrollchor.js","webpack:///./src/v1/client.publicpath.js","webpack:///./src/v1/client.polyfill.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./src/lib/wrappers/ludoWrapper.js","webpack:///./src/lib/wrappers/howlerWrapper.js","webpack:///./node_modules/preact-scrollchor/dist/utils.js","webpack:///./node_modules/preact-scrollchor/dist/animation-frame.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/array.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./node_modules/@nrk/feature-tests/dist/feature-tests.module.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/lib/preact-pure-component.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ViewportIntersections/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/lib/HtmlContent/index.js","webpack:///./src/lib/provider.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/Video/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/SmartVideo/index.js","webpack:///./src/v1/components/Intro/Header/index.js","webpack:///./src/lib/DisableScroll/index.js","webpack:///./src/v1/components/Intro/Logo/index.js","webpack:///./src/v1/common.js","webpack:///./src/v1/components/Intro/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/helpers.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/SerumResponsivePicture/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/Person/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/Faktaboks/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/lazy/SerumLazyResponsivePicture/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/Image/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/Scrubber.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/TogglePlayButton.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/ToggleMuteButton.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/lib/warn.js","webpack:///./src/v1/components/blokker/TekstBlokk/VideoElement/VideoContent/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/VideoElement/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/LudoElement/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/Sitat/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/LevendeStillbilde/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/Inngang/index.js","webpack:///./src/lib/VoiceText/TogglePlayButton.js","webpack:///./src/lib/VoiceText/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/Lydtekst/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/BildeLydtekst/index.js","webpack:///./src/v1/components/blokker/TekstBlokk/index.js","webpack:///./src/v1/components/blokker/BildeBlokk/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/SerumImage/index.js","webpack:///./src/v1/components/blokker/DobbelBildeBlokk/index.js","webpack:///./src/v1/components/blokker/VitenskapBlokk/index.js","webpack:///./src/v1/components/blokker/LevendeStillbildeBlokk/index.js","webpack:///./src/v1/components/blokker/StedintroVideoBlokk/index.js","webpack:///./src/v1/components/blokker/EpisodevelgerBlokk/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/lazy/SerumLazySmartPicture/index.js","webpack:///./src/v1/components/blokker/StedintroBildeBlokk/index.js","webpack:///./src/v1/components/blokker/ImageGallery/index.js","webpack:///./src/v1/components/blokker/VisuellHistorie/index.js","webpack:///./src/v1/components/blokker/VideoHistorie/index.js","webpack:///./src/v1/components/blokker/VisuellHistorieScroll/index.js","webpack:///./src/v1/components/Footer/index.js","webpack:///./src/v1/components/Byline/index.js","webpack:///./src/v1/components/blokker/SimpleGallery/index.js","webpack:///./node_modules/@nrk/max-viewport-observable/dist/max-viewport-observable.module.js","webpack:///./src/v1/components/MaxViewportRect.js","webpack:///./src/v1/components/App.js","webpack:///./src/lib/getContextId.js","webpack:///./src/v1/client.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js","webpack:///./src/lib/errorReporting.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","0","2","3","4","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","__webpack_exports__","h","cloneElement","createRef","Component","render","rerender","options","VNode","stack","EMPTY_CHILDREN","nodeName","attributes","lastSimple","child","simple","children","arguments","pop","String","vnode","extend","obj","props","applyRef","ref","current","defer","then","IS_NON_DIMENSIONAL","items","enqueueRender","component","_dirty","debounceRendering","renderComponent","isNamedNode","node","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","removeNode","parentNode","removeChild","setAccessor","old","isSvg","style","cssText","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","removeAttribute","removeAttributeNS","setAttributeNS","className","this","mounts","diffLevel","isSvgMode","hydrating","flushMounts","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","ownerSVGElement","ret","idiff","out","prevSvgMode","splitText","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","originalComponent","oldDom","isDirectOwner","_componentConstructor","isOwner","_parentComponent","constructor","setComponentProps","base","unmountComponent","createComponent","nextBase","buildComponentFromVNode","createElementNS","firstChild","fc","vchildren","a","nextSibling","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","innerDiffNode","dangerouslySetInnerHTML","attrs","diffAttributes","unmountOnly","removeChildren","lastChild","next","previousSibling","recyclerComponents","Ctor","inst","doRender","splice","state","renderMode","_disable","__ref","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","snapshot","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","toUnmount","childComponent","childProps","baseParent","componentRef","componentDidUpdate","afterUpdate","_renderCallbacks","beforeUnmount","componentWillUnmount","inner","merge","setState","callback","forceUpdate","preact","episodevelger","episodevelger__spacerLeft","episodevelger__spacerRight","episodevelger__container","episodevelger__titlecontainer","episodevelger__inner","episodevelger__left","episodevelger__right","episodevelger__episodeWrapper","episodevelger__episode","episodevelger__poster","episodevelger__gradient","episodevelger__notpublised","episodevelger__text","episodevelger__title","episodevelger__subtitle","episodevelger__strek","episodevelger__episode--unpublished","root","light","app","background","background--backgroundVisible","byline","content","menu","menuitem","app--dark","app--light","nrklogo","fadeIn","nrklogo--dark","gallery","gallery__groupName","gallery__list","gallery__text","gallery__listItem","gallery__scrollon","gallery__scrollText","gallery__arrowdown","animated","fade_down","gallery__person","gallery__name","person__figure","person__header","flag","person__role","person__amount","person__meta","person__link","dark","person__bio","person","imageGallery","imageGallery__spacerLeft","imageGallery__spacerRight","imageGallery__container","imageGallery__left","imageGallery__right","videoHistorie","videoHistorie__content","root--js","videoHistorie__videoItem","videoHistorie--right","videoHistorie--center","videoHistorie__imageItem","videoHistorie__image","videoHistorie__cardItem","videoHistorie__cardItem--first","videoHistorie__cardItem--last","videoHistorie--active","videoHistorie__cardGradient","videoHistorie__card","videoHistorie__cardItem--current","videoHistorie__card--gray","videoHistorie__card--blue","videoHistorie__card--red","videoHistorie--left","vitenskapBlokk","vitenskapBlokk__gardin","vitenskapBlokk__wrapper","vitenskapBlokk__innerWrapper","vitenskapBlokk__wrapper--visible","vitenskapBlokk__grid","vitenskapBlokk__text","imageGallery__imageWrapper","imageGallery__imageWrapper--visible","imageGallery__image","imageGallery__imageWrapper--vertical","visuellHistorie","visuellHistorie__content","visuellHistorie__imageItem","root--noJs","visuellHistorie--active","visuellHistorie--right","visuellHistorie__imageItem--visible","visuellHistorie__image","visuellHistorie__cardItem","visuellHistorie__cardItem--first","visuellHistorie__cardItem--last","visuellHistorie__cardGradient","visuellHistorie__card","visuellHistorie__cardItem--current","visuellHistorie__card--dark","visuellHistorie__card--gray","visuellHistorie__card--blue","visuellHistorie__card--red","visuellHistorie--left","voiceText","voiceText--active","voiceText__name","voiceText__togglePlayButton","arrow__down","header","header__content","intro__content--optimize","header__stikktittelContainer","header__stikktittelLead","header__stikktittel","header__byline","visuellHistorieScroll","visuellHistorieScroll__content","visuellHistorieScroll__imageItem","visuellHistorieScroll--active","visuellHistorieScroll--right","visuellHistorieScroll__imageItem--visible","visuellHistorieScroll__image","visuellHistorieScroll__image--55","visuellHistorieScroll__image--91","visuellHistorieScroll__image--120","visuellHistorieScroll__imageItem--currentPos0","visuellHistorieScroll__imageItem--currentPos2","visuellHistorieScroll__imageItem--currentPos55","visuellHistorieScroll__imageItem--currentPos91","visuellHistorieScroll__imageItem--currentPos120","visuellHistorieScroll__cardItem","visuellHistorieScroll__cardItem--first","visuellHistorieScroll__cardItem--last","visuellHistorieScroll__cardGradient","visuellHistorieScroll__card","visuellHistorieScroll__cardItem--current","visuellHistorieScroll__card--gray","visuellHistorieScroll__card--blue","visuellHistorieScroll__card--red","visuellHistorieScroll--left","dobbelBildeBlokk","gridAspect","dobbelBildeBlokk__grid","dobbelBildeBlokk__image1","dobbelBildeBlokk__caption1","dobbelBildeBlokk__image2","dobbelBildeBlokk__caption2","dobbelBildeBlokk__text","footer","footer__group","footer__published","footer__navigation","footer__nrklogo","footer__shareButtons","isPolopolyIdRegex","isPolopolyId","id","widths","ratios","qualities","_baseUrl","hasOption","option","createImageUrl","polopolyId","width","ratio","quality","number","args","supportedRatios","Array","isArray","includes","isValidRatio","toString","supportedQualities","isValidQuality","Number","isInteger","errorMessage","isSupportedWidth","closestWidth","goal","targets","isValidGoal","isValid","isValidTargets","reduce","prev","curr","Math","abs","getClosestNumber","_ref","url","queryString","_ref2","createQueryString","createUrl","factory","intro","intro__content","intro__mediaContainer","intro__smartVideo","root--nojs","intro__portrait","app--optimizeIntro","intro__mediaContainer--portraitVisible","intro__blocks","intro__block","intro__blockContent","intro__box","intro__text","intro__content--logoComplete","root--no-enhancement","intro__block--active","scale","squash","byline__content","byline__jobTitle","personIntro","person__content","person__image","person__closewrapper","faktaboks","fakta","fakta__content","fakta__image","fakta__closewrapper","bildeLydtekst","bildeLydtekst__lydtekst","inngang","inngang__header","inngang__merkelapp","stedintroVideoBlokk","stedintroVideoBlokk__video","stedintroVideoBlokk__anim","tekstBlokk","overskrift","videoElement","videoElement__video","ludoElement","ludoElement__video","sitat","sitat--right","sitat__text","sitat--left","levendeStillbildeBlokk","levendeStillbildeBlokk__video","getSweetScroll","default","getLottie","listener","fns","doc","hack","loaded","documentElement","doScroll","readyState","fn","ga","assign","createGoogleAnalyticsTracker","gaPropertyId","self","u","g","y","w","title","publishedDate","referrer","dimension1","dimension2","dimension3","getFullYear","dimension4","getMonth","dimension5","getDate","dimension6","dimension7","dimension10","v","category","action","trackingId","cookieDomain","eventCategory","eventAction","eventLabel","label","eventValue","nonInteraction","fieldsObject","setInterval","clearInterval","sendEvent","configurable","writable","TypeError","register","time","Date","message","filter","dryRun","parseStack","errorRegister","filename","lineno","colno","line","column","sendErrorReport","stackTrace","reason","log","JSON","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","open","setRequestHeader","send","SimpleErrorReport","logo2","logo2__image","pulse","image","videoContent","levendeStillbilde","lydtekst","bildeBlokk","bildeBlokk__bilde","extendStatics","__extends","b","setPrototypeOf","__proto__","__","preact_1","utils_1","Scrollchor","_super","apply","simulateClick","handleClick","_a","beforeAnimate","to","animate","afterAnimate","disableHistory","preventDefault","toNoHash","animateScroll","updateHistory","_this","href","onClick","__webpack_public_path__","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","observe","_observationTargets","some","item","element","nodeType","_registerInstance","entry","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","sort","isNaN","_parseRootMargin","opt_rootMargin","margins","split","map","margin","parts","exec","parseFloat","unit","_monitoringIntersections","_monitoringInterval","addEvent","_domObserver","MutationObserver","childList","characterData","subtree","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","top","bottom","left","right","height","forEach","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","performance","now","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","getParentNode","atRoot","parentRect","parentComputedStyle","body","overflow","max","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","indexOf","index","targetArea","intersectionArea","toFixed","opt_options","timer","rootMargin","join","opt_useCapture","attachEvent","detatchEvent","el","host","getLudo","getHowler","howler","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","rejected","result","done","__generator","_","sent","trys","ops","verb","throw","return","iterator","op","animation_frame_1","easeOutQuad","location","hash","history","replaceState","scrollToken","getElementById","_b","offset","_c","duration","_d","easing","startTime","s0","scrollTop","change","getOffsetTop","animateFn","dt","position","scroll","animationFrame","warn","requestAnimationFrame","toArray","nodeList","_toConsumableArray","arr","arr2","from","bem","blockName","_len","modifiers","_key","strings","modifier","objectString","keys","toStrings","concat","testPositionSticky","shallowEqual","preact_pure_component","[object Object]","_defineProperty","module_ViewportIntersections","super","intersections","idx","_this$props","onChange","onEnter","onLeave","elm","intersectionObserver","entries","prevIntersection","childElm","createIntersectionObserver","_this$props2","HtmlContent_HtmlContent","nextProps","dataKey","_this$props$preventOr","preventOrphans","removeOrphans","data-key","Provider","__CTX__","_objectWithoutPropertiesLoose","connect","mapContextToProps","wrappedComponent","Connected","provider_defineProperty","ctx","_objectSpread","displayName","_extends","source","_objectWithoutProperties","excluded","sourceKeys","Video_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Video_defineProperty","video_Video","isPlaying","isResolvingPlay","onPlay","onPause","onDurationChange","onTimeupdate","currentTime","textTracks","playing","onCaptionCueEnter","onCaptionCueExit","textTrack","track","addTextTrack","language","tracks","captions","addCue","VTTCue","in","text","TextTrackCue","cues","cue","onenter","endTime","onexit","play","pause","onError","playPromise","catch","sources","restProps","eventHandlers","handlePlay","handlePause","handleDurationChange","handleTimeupdate","dataProps","SmartVideo_extends","SmartVideo_objectWithoutProperties","SmartVideo_objectWithoutPropertiesLoose","SmartVideo_defineProperty","SmartVideo_style","smartVideo","smartVideo__720p","smartVideo--horizontal","smartVideo--1080p","smartVideo__960p","smartVideo__1080p","THRESHOLD_1080P","THRESHOLD_HORIZONTAL","video_SmartVideo","prevIsHorizontal","isHorizontal","prevIs1080p","is1080p","seek","viewport","resolution1080p","resolution720p","resolution960p","isValidViewport","1080p","horizontal","Header","fornavn","class","styles","role","header__navn","ScrollKeys","DisableScroll","DisableScroll_defineProperty","scrollTo","keyCode","scrollingElement","on","handleWheel","handleScroll","handleKeydown","off","Logo","Logo_defineProperty","fadeOut","fadingOut","opacity","onComplete","animation","destroy","disableScroll","complete","allowed","VIDEO_BASE_PATH","toVideoSrc","video","poster","mp4","webm","Intro","Intro_defineProperty","activeIntersection","intersection","Intro_objectSpread","nextState","activeIdx","portraitVisible","logoAllowed","logoComplete","etternavn","stikktittel","introVideo","_this$state","preload","muted","playsInline","vertical","Logo_Logo","setLogoComplete","handleChange","Header_Header","IMAGE_WIDTHS","opts","derivedRatio","lib","createResponsiveSrcSet","serum_SerumResponsivePicture","alt","sizes","defaultUrl","horizontalSourceSet","srcSet","Person","connector","expanded","sendGaEvent","linkText","imageId","_intro$split","introStart","introEnd","aria-expanded","handleToggle","focusable","aria-hidden","xlinkHref","Faktaboks","SerumLazyResponsivePicture_objectSpread","ownKeys","sym","getOwnPropertyDescriptor","SerumLazyResponsivePicture_defineProperty","lazy_SerumLazyResponsivePicture","load","loadImage","loaderImage","Image","visibleImage","dataset","srcset","decode","updateImage","currentSrc","_this$props$quality","_this$props$ratio","_this$props$style","placeholderSrc","sourceSet","data-src","data-srcset","caption","Scrubber_defineProperty","Scrubber_style","scrubber","scrubber__bgBar","scrubber__bufferedBar","scrubber__playedBar","VideoPlayer_Scrubber","isScrubbing","evt","onPositionUpdate","nextTime","focus","start","pageX","handleMouseMove","handleMouseUp","move","end","bgElm","floor","touches","clientX","handleTouchMove","handleTouchEnd","handleKeyDown","handleMouseDown","handleTouchStart","handleResize","handleElm","positionTimeout","aria-valuemin","aria-valuemax","aria-valuenow","TogglePlayButton_style","togglePlayButton","togglePlayButton__pauseIcon","togglePlayButton--playing","togglePlayButton__playIcon","TogglePlayButton","ToggleMuteButton_style","toggleMuteButton","toggleMuteButton__volumeIcon","toggleMuteButton--muted","toggleMuteButton__mutedIcon","ToggleMuteButton","VideoPlayer_defineProperty","VideoPlayer_style","videoPlayer","videoPlayer__container","videoPlayer__caption","videoPlayer__controls","videoPlayer__togglePlayButton","videoPlayer__toggleMuteButton","video_VideoPlayer","onUserTogglePlay","onUserToggleMute","handleCaptionCueEnter","handleCaptionCueExit","handleUserTogglePlay","handleScrubberPositionUpdate","handleUserToggleMute","VideoContent","VideoContent_defineProperty","paused","handleVideoError","VideoElement","VideoContent_VideoContent","LudoElement","LudoElement_defineProperty","ludoPlayer","require","ludo","videoElm","analytics","mute","player","_this$props$autoplay","autoplay","Sitat","float","sitatNavn","LevendeStillbilde","vid","loop","disableRemotePlayback","Inngang","setProperty","tittel","merkelapp","VoiceText","VoiceText_defineProperty","progress","sound","startProgress","onStop","stopProgress","stopPropagation","interval","createSound","Howl","mp3","onplay","onpause","handleStop","onstop","onend","handleTogglePlay","active","TogglePlayButton_TogglePlayButton","newLine","Lydtekst","Lydtekst_defineProperty","propsValidated","VoiceText_VoiceText","BildeLydtekst","BildeLydtekst_defineProperty","LOADABLE_CONTENT","VISIBLE_CONTENT","FULLY_VISIBLE_CONTENT","TekstBlokk","TekstBlokk_defineProperty","ensureLoaded","tekst","visibleContent","blockId","trackOnlyOnce","fullyVisibleContent","contentList","block","isVisible","loadContent","getContenttype","trackedKeys","handleContentEnter","handleContentLeave","handleContentChange","Image_Image","_element$value","VideoElement_VideoElement","LudoElement_LudoElement","TekstBlokk_Person_Person","TekstBlokk_Faktaboks_Faktaboks","Sitat_Sitat","LevendeStillbilde_LevendeStillbilde","TekstBlokk_BildeLydtekst_BildeLydtekst","TekstBlokk_Lydtekst_Lydtekst","Inngang_Inngang","BildeBlokk","serum_SerumImage","DobbelBildeBlokk","images","VitenskapBlokk","VitenskapBlokk_defineProperty","visible","handleEnter","handleLeave","contentElement","LevendeStillbildeBlokk","StedintroVideoBlokk","StedintroVideoBlokk_defineProperty","matchMedia","matches","fetch","res","json","lottie","animationData","layers","k","sted","toUpperCase","info","loadAnimation","container","animationElm","renderer","rendererSettings","preserveAspectRatio","setSpeed","aria-label","Link","EpisidevelgerBlokk","EpisodevelgerBlokk_defineProperty","containerWidth","offsetWidth","containerLeftHalf","containerRightHalf","firstImage","lastImage","activeImage","findActiveImage","leftImage","rightImage","setDisplayLeft","setDisplayRight","displayLeft","displayRight","sweetScroll","SweetScroll","hideScrollbar","updateSizes","getStartIndex","barHeight","offsetHeight","marginBottom","maxHeight","secondImage","smooth","offsetLeft","behavior","scrollLeft","matching","leftOfCenter","rightOfCenter","episoder","handleImageChange","intersectionsElm","episode","unpublished","published","episodevelger__image","subtitle","handleScrollLeft","disabled","handleScrollRight","SerumLazySmartPicture_objectSpread","SerumLazySmartPicture_defineProperty","SerumLazySmartPicture_SerumLazySmartPicture","getSourceDataset","mediaQuery","getMediaQuery","visibleSource","fallbackSrc","placeholderVerticalUrl","placeholderHorizontalUrl","verticalSourceSet","media","StedintroBildeBlokk","StedintroBildeBlokk_defineProperty","VERTICAL_ASPECTS","ImageGallery","ImageGallery_defineProperty","changed","VisuellHistorie","VisuellHistorie_defineProperty","storyMargin","VisuellHistorie_objectSpread","cards","_this$props$align","align","_this$state$storyMarg","negativeStoryMargin","startsWith","card","first","last","videoHistorie__video","linecolor","VideoHistorie","VideoHistorie_defineProperty","querySelector","VideoHistorie_objectSpread","started","enableVideoSeek","targetTime","unmounting","calculateTargetTime","getSpeed","normalSpeed","easingDuration","shouldFastForward","prevTime","timestamp","speed","num","decimals","multiplier","pow","round","playbackRate","VisuellHistorieScroll","VisuellHistorieScroll_defineProperty","VisuellHistorieScroll_objectSpread","activeCard","marginLeft","Footer","credits","facebookUrl","twitterUrl","group","gruppenavn","personer","epost","navn","data-share","rel","Byline","bylinebilde","byline__image","SimpleGallery","SimpleGallery_defineProperty","groups","arrowText","nextChapter","shortcut","scrollchor_default","data-name","imageText","person__figureImageText","born","max_viewport_observable_module","subscribe","observer","isDynamicViewport","isTouching","listeners","orientationchange","resize","prevRect","Element","innerWidth","innerHeight","getRect","touchstart","touchend","unsubscribe","MaxViewportRect","MaxViewportRect_defineProperty","viewport$","MaxViewportObservable","dispose","onViewportChange","inlineStyle","ACTIVATABLE_CONTENT","App","App_defineProperty","activeContent","introVisible","backgroundVisible","theme","optimizeIntro","MaxViewportRect_MaxViewportRect","handleViewportChange","handleIntroEnter","handleIntroLeave","Intro_Intro","profilbilde","handleBackgroundEnter","handleBackgroundLeave","Byline_Byline","blokker_TekstBlokk_TekstBlokk","VitenskapBlokk_VitenskapBlokk","BildeBlokk_BildeBlokk","DobbelBildeBlokk_DobbelBildeBlokk","LevendeStillbildeBlokk_LevendeStillbildeBlokk","ImageGallery_ImageGallery","SimpleGallery_SimpleGallery","StedintroVideoBlokk_StedintroVideoBlokk","StedintroBildeBlokk_StedintroBildeBlokk","blokker_VisuellHistorie_VisuellHistorie","blokker_VisuellHistorieScroll_VisuellHistorieScroll","blokker_VideoHistorie_VideoHistorie","EpisodevelgerBlokk_EpisidevelgerBlokk","Footer_Footer","POLOPOLY_ID_REGEX","getContextId","str","match","extractPolopolyIdFromString","rootElementClassName","domready","getElementsByClassName","isInitialized","prefix","random","substr","createUniqueId","getAttribute","errorTrackingEnabled","simpleErrorReport","isErrorReportingEnabled","createErrorReporter","listenAndCatch","callbackFn","testSupport","supported","preloadedState","parse","metadata","selfId","googleAnalyticsTracker","sendError","eventObj","client_objectSpread","provider_Provider","components_App_App","querySelectorAll","parentElement"],"mappings":"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","file":"v1-bundle-72f0ad172fb0bb657b6f.esm.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"sweet-scroll\",\"2\":\"vendors--howler\",\"3\":\"vendors--lottie\",\"4\":\"vendors--ludo\"}[chunkId]||chunkId) + \"-\" + {\"0\":\"fcd4608aa560babf4e53\",\"2\":\"f198b2ec09859a6970b5\",\"3\":\"60c3e4e55351702536f6\",\"4\":\"0139b176ccee3267bcfa\"}[chunkId] + \".esm.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p;\n\twhile (p = items.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.shift()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nfunction createRef() {\n\treturn {};\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"episodevelger\":\"dh-sk-episodevelger\",\"episodevelger__spacerLeft\":\"dh-sk-episodevelger__spacerLeft\",\"episodevelger__spacerRight\":\"dh-sk-episodevelger__spacerRight\",\"episodevelger__container\":\"dh-sk-episodevelger__container\",\"episodevelger__titlecontainer\":\"dh-sk-episodevelger__titlecontainer\",\"episodevelger__inner\":\"dh-sk-episodevelger__inner\",\"episodevelger__left\":\"dh-sk-episodevelger__left\",\"episodevelger__right\":\"dh-sk-episodevelger__right\",\"episodevelger__episodeWrapper\":\"dh-sk-episodevelger__episodeWrapper\",\"episodevelger__episode\":\"dh-sk-episodevelger__episode\",\"episodevelger__poster\":\"dh-sk-episodevelger__poster\",\"episodevelger__gradient\":\"dh-sk-episodevelger__gradient\",\"episodevelger__notpublised\":\"dh-sk-episodevelger__notpublised\",\"episodevelger__text\":\"dh-sk-episodevelger__text\",\"episodevelger__title\":\"dh-sk-episodevelger__title\",\"episodevelger__subtitle\":\"dh-sk-episodevelger__subtitle\",\"episodevelger__strek\":\"dh-sk-episodevelger__strek\",\"episodevelger__episode--unpublished\":\"dh-sk-episodevelger__episode--unpublished\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"dh-sk-root\",\"light\":\"dh-sk-light\",\"app\":\"dh-sk-app\",\"background\":\"dh-sk-background\",\"background--backgroundVisible\":\"dh-sk-background--backgroundVisible\",\"byline\":\"dh-sk-byline\",\"content\":\"dh-sk-content\",\"menu\":\"dh-sk-menu\",\"menuitem\":\"dh-sk-menuitem\",\"app--dark\":\"dh-sk-app--dark\",\"app--light\":\"dh-sk-app--light\",\"nrklogo\":\"dh-sk-nrklogo\",\"fadeIn\":\"dh-sk-fadeIn\",\"nrklogo--dark\":\"dh-sk-nrklogo--dark\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"gallery\":\"dh-sk-gallery\",\"gallery__groupName\":\"dh-sk-gallery__groupName\",\"gallery__list\":\"dh-sk-gallery__list\",\"gallery__text\":\"dh-sk-gallery__text\",\"gallery__listItem\":\"dh-sk-gallery__listItem\",\"gallery__scrollon\":\"dh-sk-gallery__scrollon\",\"gallery__scrollText\":\"dh-sk-gallery__scrollText\",\"gallery__arrowdown\":\"dh-sk-gallery__arrowdown\",\"animated\":\"dh-sk-animated\",\"fade_down\":\"dh-sk-fade_down\",\"gallery__person\":\"dh-sk-gallery__person\",\"gallery__name\":\"dh-sk-gallery__name\",\"person__figure\":\"dh-sk-person__figure\",\"person__header\":\"dh-sk-person__header\",\"flag\":\"dh-sk-flag\",\"person__role\":\"dh-sk-person__role\",\"person__amount\":\"dh-sk-person__amount\",\"person__meta\":\"dh-sk-person__meta\",\"person__link\":\"dh-sk-person__link\",\"dark\":\"dh-sk-dark\",\"light\":\"dh-sk-light\",\"person__bio\":\"dh-sk-person__bio\",\"person\":\"dh-sk-person\",\"imageGallery\":\"dh-sk-imageGallery\",\"imageGallery__spacerLeft\":\"dh-sk-imageGallery__spacerLeft\",\"imageGallery__spacerRight\":\"dh-sk-imageGallery__spacerRight\",\"imageGallery__container\":\"dh-sk-imageGallery__container\",\"imageGallery__left\":\"dh-sk-imageGallery__left\",\"imageGallery__right\":\"dh-sk-imageGallery__right\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"videoHistorie\":\"dh-sk-videoHistorie\",\"videoHistorie__content\":\"dh-sk-videoHistorie__content\",\"root--js\":\"dh-sk-root--js\",\"videoHistorie__videoItem\":\"dh-sk-videoHistorie__videoItem\",\"videoHistorie--right\":\"dh-sk-videoHistorie--right\",\"videoHistorie--center\":\"dh-sk-videoHistorie--center\",\"videoHistorie__imageItem\":\"dh-sk-videoHistorie__imageItem\",\"videoHistorie__image\":\"dh-sk-videoHistorie__image\",\"videoHistorie__cardItem\":\"dh-sk-videoHistorie__cardItem\",\"videoHistorie__cardItem--first\":\"dh-sk-videoHistorie__cardItem--first\",\"videoHistorie__cardItem--last\":\"dh-sk-videoHistorie__cardItem--last\",\"videoHistorie--active\":\"dh-sk-videoHistorie--active\",\"videoHistorie__cardGradient\":\"dh-sk-videoHistorie__cardGradient\",\"videoHistorie__card\":\"dh-sk-videoHistorie__card\",\"videoHistorie__cardItem--current\":\"dh-sk-videoHistorie__cardItem--current\",\"videoHistorie__card--gray\":\"dh-sk-videoHistorie__card--gray\",\"videoHistorie__card--blue\":\"dh-sk-videoHistorie__card--blue\",\"videoHistorie__card--red\":\"dh-sk-videoHistorie__card--red\",\"videoHistorie--left\":\"dh-sk-videoHistorie--left\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"vitenskapBlokk\":\"dh-sk-vitenskapBlokk\",\"vitenskapBlokk__gardin\":\"dh-sk-vitenskapBlokk__gardin\",\"vitenskapBlokk__wrapper\":\"dh-sk-vitenskapBlokk__wrapper\",\"vitenskapBlokk__innerWrapper\":\"dh-sk-vitenskapBlokk__innerWrapper\",\"vitenskapBlokk__wrapper--visible\":\"dh-sk-vitenskapBlokk__wrapper--visible\",\"vitenskapBlokk__grid\":\"dh-sk-vitenskapBlokk__grid\",\"vitenskapBlokk__text\":\"dh-sk-vitenskapBlokk__text\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"imageGallery\":\"dh-sk-imageGallery\",\"imageGallery__spacerLeft\":\"dh-sk-imageGallery__spacerLeft\",\"imageGallery__spacerRight\":\"dh-sk-imageGallery__spacerRight\",\"imageGallery__container\":\"dh-sk-imageGallery__container\",\"imageGallery__left\":\"dh-sk-imageGallery__left\",\"imageGallery__right\":\"dh-sk-imageGallery__right\",\"imageGallery__imageWrapper\":\"dh-sk-imageGallery__imageWrapper\",\"root--js\":\"dh-sk-root--js\",\"imageGallery__imageWrapper--visible\":\"dh-sk-imageGallery__imageWrapper--visible\",\"imageGallery__image\":\"dh-sk-imageGallery__image\",\"imageGallery__imageWrapper--vertical\":\"dh-sk-imageGallery__imageWrapper--vertical\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"visuellHistorie\":\"dh-sk-visuellHistorie\",\"visuellHistorie__content\":\"dh-sk-visuellHistorie__content\",\"root--js\":\"dh-sk-root--js\",\"visuellHistorie__imageItem\":\"dh-sk-visuellHistorie__imageItem\",\"root--noJs\":\"dh-sk-root--noJs\",\"visuellHistorie--active\":\"dh-sk-visuellHistorie--active\",\"visuellHistorie--right\":\"dh-sk-visuellHistorie--right\",\"visuellHistorie__imageItem--visible\":\"dh-sk-visuellHistorie__imageItem--visible\",\"visuellHistorie__image\":\"dh-sk-visuellHistorie__image\",\"visuellHistorie__cardItem\":\"dh-sk-visuellHistorie__cardItem\",\"visuellHistorie__cardItem--first\":\"dh-sk-visuellHistorie__cardItem--first\",\"visuellHistorie__cardItem--last\":\"dh-sk-visuellHistorie__cardItem--last\",\"visuellHistorie__cardGradient\":\"dh-sk-visuellHistorie__cardGradient\",\"visuellHistorie__card\":\"dh-sk-visuellHistorie__card\",\"visuellHistorie__cardItem--current\":\"dh-sk-visuellHistorie__cardItem--current\",\"visuellHistorie__card--dark\":\"dh-sk-visuellHistorie__card--dark\",\"visuellHistorie__card--gray\":\"dh-sk-visuellHistorie__card--gray\",\"visuellHistorie__card--blue\":\"dh-sk-visuellHistorie__card--blue\",\"visuellHistorie__card--red\":\"dh-sk-visuellHistorie__card--red\",\"visuellHistorie--left\":\"dh-sk-visuellHistorie--left\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"voiceText\":\"dh-sk-voiceText\",\"voiceText--active\":\"dh-sk-voiceText--active\",\"voiceText__name\":\"dh-sk-voiceText__name\",\"voiceText__togglePlayButton\":\"dh-sk-voiceText__togglePlayButton\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"arrow__down\":\"dh-sk-arrow__down\",\"animated\":\"dh-sk-animated\",\"header\":\"dh-sk-header\",\"header__content\":\"dh-sk-header__content\",\"intro__content--optimize\":\"dh-sk-intro__content--optimize\",\"header__stikktittelContainer\":\"dh-sk-header__stikktittelContainer\",\"header__stikktittelLead\":\"dh-sk-header__stikktittelLead\",\"header__stikktittel\":\"dh-sk-header__stikktittel\",\"header__byline\":\"dh-sk-header__byline\",\"fade_down\":\"dh-sk-fade_down\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"visuellHistorieScroll\":\"dh-sk-visuellHistorieScroll\",\"visuellHistorieScroll__content\":\"dh-sk-visuellHistorieScroll__content\",\"root--js\":\"dh-sk-root--js\",\"visuellHistorieScroll__imageItem\":\"dh-sk-visuellHistorieScroll__imageItem\",\"root--noJs\":\"dh-sk-root--noJs\",\"visuellHistorieScroll--active\":\"dh-sk-visuellHistorieScroll--active\",\"visuellHistorieScroll--right\":\"dh-sk-visuellHistorieScroll--right\",\"visuellHistorieScroll__imageItem--visible\":\"dh-sk-visuellHistorieScroll__imageItem--visible\",\"visuellHistorieScroll__image\":\"dh-sk-visuellHistorieScroll__image\",\"visuellHistorieScroll__image--55\":\"dh-sk-visuellHistorieScroll__image--55\",\"visuellHistorieScroll__image--91\":\"dh-sk-visuellHistorieScroll__image--91\",\"visuellHistorieScroll__image--120\":\"dh-sk-visuellHistorieScroll__image--120\",\"visuellHistorieScroll__imageItem--currentPos0\":\"dh-sk-visuellHistorieScroll__imageItem--currentPos0\",\"visuellHistorieScroll__imageItem--currentPos2\":\"dh-sk-visuellHistorieScroll__imageItem--currentPos2\",\"visuellHistorieScroll__imageItem--currentPos55\":\"dh-sk-visuellHistorieScroll__imageItem--currentPos55\",\"visuellHistorieScroll__imageItem--currentPos91\":\"dh-sk-visuellHistorieScroll__imageItem--currentPos91\",\"visuellHistorieScroll__imageItem--currentPos120\":\"dh-sk-visuellHistorieScroll__imageItem--currentPos120\",\"visuellHistorieScroll__cardItem\":\"dh-sk-visuellHistorieScroll__cardItem\",\"visuellHistorieScroll__cardItem--first\":\"dh-sk-visuellHistorieScroll__cardItem--first\",\"visuellHistorieScroll__cardItem--last\":\"dh-sk-visuellHistorieScroll__cardItem--last\",\"visuellHistorieScroll__cardGradient\":\"dh-sk-visuellHistorieScroll__cardGradient\",\"visuellHistorieScroll__card\":\"dh-sk-visuellHistorieScroll__card\",\"visuellHistorieScroll__cardItem--current\":\"dh-sk-visuellHistorieScroll__cardItem--current\",\"visuellHistorieScroll__card--gray\":\"dh-sk-visuellHistorieScroll__card--gray\",\"visuellHistorieScroll__card--blue\":\"dh-sk-visuellHistorieScroll__card--blue\",\"visuellHistorieScroll__card--red\":\"dh-sk-visuellHistorieScroll__card--red\",\"visuellHistorieScroll--left\":\"dh-sk-visuellHistorieScroll--left\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dobbelBildeBlokk\":\"dh-sk-dobbelBildeBlokk\",\"gridAspect\":\"dh-sk-gridAspect\",\"dobbelBildeBlokk__grid\":\"dh-sk-dobbelBildeBlokk__grid\",\"dobbelBildeBlokk__image1\":\"dh-sk-dobbelBildeBlokk__image1\",\"dobbelBildeBlokk__caption1\":\"dh-sk-dobbelBildeBlokk__caption1\",\"dobbelBildeBlokk__image2\":\"dh-sk-dobbelBildeBlokk__image2\",\"dobbelBildeBlokk__caption2\":\"dh-sk-dobbelBildeBlokk__caption2\",\"dobbelBildeBlokk__text\":\"dh-sk-dobbelBildeBlokk__text\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"dh-sk-footer\",\"footer__group\":\"dh-sk-footer__group\",\"footer__published\":\"dh-sk-footer__published\",\"footer__navigation\":\"dh-sk-footer__navigation\",\"footer__nrklogo\":\"dh-sk-footer__nrklogo\",\"footer__shareButtons\":\"dh-sk-footer__shareButtons\"};","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.nrkSerumImagecropUtils = {})));\n}(this, (function (exports) { 'use strict';\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/;\n\n function isPolopolyId(id) {\n if (!id) {\n return false;\n }\n return isPolopolyIdRegex.test(id);\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://nrk.no/serum/api/imagecrop/';\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality;\n\n var url = '' + _baseUrl + id;\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality });\n if (queryString) {\n url += '?' + queryString;\n }\n return url;\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality;\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : '';\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : '';\n var widthPart = width ? 'w' + width : '';\n var qualityPart = quality ? '&quality=' + quality : '';\n return 'cropid=' + ratioPart + widthPart + qualityPart;\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error('\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number');\n }\n if (!isValidTargets(targets)) {\n throw new Error('\\n getClosestNumber(goal, targets): targets ' + targets.toString() + ' is invald.\\n Pass an array of numbers');\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return targets.reduce(function (prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev;\n });\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number';\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false;\n }\n var isValid = true;\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false;\n break;\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid;\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidRatio(ratio, supportedRatios): supportedRatios '\" + supportedRatios + \"' is not supported. Pass an array of supported ratios\");\n }\n if (!ratio) {\n return false;\n }\n return supportedRatios.includes(ratio);\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidQuality(quality, supportedQualities): supportedQualities '\" + supportedQualities + \"' is not supported. Pass an array of supported qualities\");\n }\n if (!quality) {\n return false;\n }\n return supportedQualities.includes(quality);\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality;\n\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId);\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n };if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error('\\n createSerumImageUrl(): ratio ' + ratio + ' is not supported.\\n Supported ratios are ' + ratios.toString());\n }\n args.ratio = ratio;\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error('\\n createSerumImageUrl(): quality ' + quality + ' is not supported.\\n Supported qualities are ' + qualities.toString());\n }\n args.quality = quality;\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width;\n throw new Error(errorMessage);\n }\n var isSupportedWidth = widths.includes(width);\n var closestWidth = getClosestNumber(width, widths);\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth;\n }\n }\n\n return createUrl(args);\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option;\n }\n\n function isNumber(number) {\n return Number.isInteger(number);\n }\n\n exports.createImageUrl = createImageUrl;\n exports.ratios = ratios;\n exports.widths = widths;\n exports.qualities = qualities;\n exports.isPolopolyId = isPolopolyId;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"intro\":\"dh-sk-intro\",\"intro__content\":\"dh-sk-intro__content\",\"intro__mediaContainer\":\"dh-sk-intro__mediaContainer\",\"intro__smartVideo\":\"dh-sk-intro__smartVideo\",\"root--nojs\":\"dh-sk-root--nojs\",\"intro__portrait\":\"dh-sk-intro__portrait\",\"app--optimizeIntro\":\"dh-sk-app--optimizeIntro\",\"root--js\":\"dh-sk-root--js\",\"intro__mediaContainer--portraitVisible\":\"dh-sk-intro__mediaContainer--portraitVisible\",\"intro__blocks\":\"dh-sk-intro__blocks\",\"intro__block\":\"dh-sk-intro__block\",\"intro__blockContent\":\"dh-sk-intro__blockContent\",\"intro__box\":\"dh-sk-intro__box\",\"intro__text\":\"dh-sk-intro__text\",\"intro__content--logoComplete\":\"dh-sk-intro__content--logoComplete\",\"root--no-enhancement\":\"dh-sk-root--no-enhancement\",\"intro__block--active\":\"dh-sk-intro__block--active\",\"scale\":\"dh-sk-scale\",\"squash\":\"dh-sk-squash\",\"fadeIn\":\"dh-sk-fadeIn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"byline\":\"dh-sk-byline\",\"byline__content\":\"dh-sk-byline__content\",\"byline__jobTitle\":\"dh-sk-byline__jobTitle\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"personIntro\":\"dh-sk-personIntro\",\"person\":\"dh-sk-person\",\"person__content\":\"dh-sk-person__content\",\"person__image\":\"dh-sk-person__image\",\"person__closewrapper\":\"dh-sk-person__closewrapper\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"faktaboks\":\"dh-sk-faktaboks\",\"fakta\":\"dh-sk-fakta\",\"fakta__content\":\"dh-sk-fakta__content\",\"fakta__image\":\"dh-sk-fakta__image\",\"fakta__closewrapper\":\"dh-sk-fakta__closewrapper\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bildeLydtekst\":\"dh-sk-bildeLydtekst\",\"bildeLydtekst__lydtekst\":\"dh-sk-bildeLydtekst__lydtekst\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inngang\":\"dh-sk-inngang\",\"inngang__header\":\"dh-sk-inngang__header\",\"inngang__merkelapp\":\"dh-sk-inngang__merkelapp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stedintroVideoBlokk\":\"dh-sk-stedintroVideoBlokk\",\"stedintroVideoBlokk__video\":\"dh-sk-stedintroVideoBlokk__video\",\"stedintroVideoBlokk__anim\":\"dh-sk-stedintroVideoBlokk__anim\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tekstBlokk\":\"dh-sk-tekstBlokk\",\"overskrift\":\"dh-sk-overskrift\",\"app--light\":\"dh-sk-app--light\",\"app--dark\":\"dh-sk-app--dark\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"videoElement\":\"dh-sk-videoElement\",\"videoElement__video\":\"dh-sk-videoElement__video\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ludoElement\":\"dh-sk-ludoElement\",\"ludoElement__video\":\"dh-sk-ludoElement__video\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sitat\":\"dh-sk-sitat\",\"sitat--right\":\"dh-sk-sitat--right\",\"sitat__text\":\"dh-sk-sitat__text\",\"sitat--left\":\"dh-sk-sitat--left\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"gridAspect\":\"dh-sk-gridAspect\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"levendeStillbildeBlokk\":\"dh-sk-levendeStillbildeBlokk\",\"levendeStillbildeBlokk__video\":\"dh-sk-levendeStillbildeBlokk__video\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stedintroVideoBlokk\":\"dh-sk-stedintroVideoBlokk\",\"stedintroVideoBlokk__anim\":\"dh-sk-stedintroVideoBlokk__anim\"};","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nexport function getSweetScroll () {\n return import(/* webpackChunkName: \"sweet-scroll\" */ 'sweet-scroll').then(({ default: SweetScroll }) => SweetScroll)\n}\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nexport function getLottie () {\n return import(/* webpackChunkName: \"lottie\", webpackPreload: true */ 'lottie-web').then(({ default: lottie }) => lottie)\n}\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"dh-analytics-utils\"]={})}(this,function(e){\"use strict\";function n(){return window.ga}var t=Object.assign||function(e){for(var n=1;n0}}]),e}(),t=Object.assign||function(e){for(var n=1;n0&&(a.line=o),s>0&&(a.column=s),n.error&&\"function\"==typeof e.parseStack?e.parseStack(n.error).then(function(n){e.sendErrorReport(t({},a,{stackTrace:n}))}):e.sendErrorReport(a)}),window.addEventListener(\"unhandledrejection\",function(n){e.sendErrorReport({message:\"Unhandled Promise Rejection: \"+n.reason})}))}},{key:\"sendErrorReport\",value:function(e){var n,r,t;this.dryRun?\"undefined\"!=typeof console&&console.log(\"Dry run: \"+JSON.stringify(e)):this.errorRegister.isInRegisterWithinRange(e.message,500)||(this.errorRegister.addErrorToRegister(e.message),n=this.url+\"/\"+this.name,r=e,(t=new XMLHttpRequest).open(\"POST\",n),t.setRequestHeader(\"Content-Type\",\"application/json\"),t.send(JSON.stringify(r)))}}]),e}();e.SimpleErrorReport=s,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logo2\":\"dh-sk-logo2\",\"intro__content--optimize\":\"dh-sk-intro__content--optimize\",\"logo2__image\":\"dh-sk-logo2__image\",\"pulse\":\"dh-sk-pulse\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image\":\"dh-sk-image\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"videoContent\":\"dh-sk-videoContent\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"levendeStillbilde\":\"dh-sk-levendeStillbilde\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lydtekst\":\"dh-sk-lydtekst\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bildeBlokk\":\"dh-sk-bildeBlokk\",\"bildeBlokk__bilde\":\"dh-sk-bildeBlokk__bilde\"};","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar preact_1 = require(\"preact\");\nvar utils_1 = require(\"./utils\");\nvar Scrollchor = /** @class */ (function (_super) {\n __extends(Scrollchor, _super);\n function Scrollchor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Scrollchor.prototype.simulateClick = function () {\n this.handleClick();\n };\n Scrollchor.prototype.handleClick = function (event) {\n var _a = this.props, beforeAnimate = _a.beforeAnimate, to = _a.to, animate = _a.animate, afterAnimate = _a.afterAnimate, disableHistory = _a.disableHistory;\n if (beforeAnimate)\n beforeAnimate(event);\n if (event)\n event.preventDefault();\n var toNoHash = to.replace(/^#/, \"\");\n var id = utils_1.animateScroll(toNoHash, animate);\n if (id) {\n if (disableHistory) {\n utils_1.updateHistory();\n }\n else {\n utils_1.updateHistory(id);\n }\n if (afterAnimate)\n afterAnimate(event);\n }\n };\n Scrollchor.prototype.render = function (_a) {\n var _this = this;\n var to = _a.to, children = _a.children;\n return children ? (preact_1.h(\"a\", { href: to, onClick: function (e) { return _this.handleClick(e); } }, children)) : null;\n };\n return Scrollchor;\n}(preact_1.Component));\nexports.default = Scrollchor;\n//# sourceMappingURL=scrollchor.js.map","/* eslint-disable camelcase */\n\ndeclare var __webpack_public_path__\nwindow.__webpack_public_path__ = window['sk-wpp']\n__webpack_public_path__ = window['sk-wpp']\n","/* eslint-disable */\nimport 'intersection-observer'\n\nif (__IS_LEGACY__) {\n require('core-js/shim')\n require('whatwg-fetch')\n}\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n\n(function(window, document) {\n'use strict';\n\n\n// Exits early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}(window, document));\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nexport function getLudo () {\n return import(/* webpackChunkName: \"ludo\", webpackPreload: true */ '@nrk/ludo').then(({ default: ludo }) => ludo)\n}\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nexport function getHowler () {\n return import(/* webpackChunkName: \"howler\", webpackPreload: true */ 'howler').then(howler => howler)\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar animation_frame_1 = require(\"./animation-frame\");\n// Default easing function\n// jQuery easing 'swing'\n// tslint:disable-next-line:no-magic-numbers\nvar easeOutQuad = function (_, t, b, c, d) { return -c * (t /= d) * (t - 2) + b; };\nfunction removeHash() {\n var url = window.location.toString().split(\"#\")[0];\n window.history.replaceState({}, document.title, url);\n}\nfunction updateHistory(id) {\n if (id) {\n window.location.hash = id;\n }\n else {\n removeHash();\n }\n}\nexports.updateHistory = updateHistory;\nfunction getScroll() {\n // like jQuery -> $('html, body').scrollTop\n return document.documentElement.scrollTop || document.body.scrollTop;\n}\nfunction scroll(position) {\n document.documentElement.scrollTop = document.body.scrollTop = position;\n}\nfunction getOffsetTop(element) {\n return element.getBoundingClientRect().top;\n}\nvar scrollToken = -1;\nfunction animateScroll(id, animate) {\n var _this = this;\n var element = id ? document.getElementById(id) : document.body;\n if (!element) {\n console.warn(\"Cannot find element: #\" + id);\n return undefined;\n }\n var _a = animate || {}, \n // default animate object\n _b = _a.offset, \n // default animate object\n offset = _b === void 0 ? 0 : _b, \n // tslint:disable-next-line:no-magic-numbers\n _c = _a.duration, \n // tslint:disable-next-line:no-magic-numbers\n duration = _c === void 0 ? 400 : _c, _d = _a.easing, easing = _d === void 0 ? easeOutQuad : _d;\n var startTime = Date.now();\n scrollToken = startTime;\n var s0 = getScroll();\n var change = getOffsetTop(element) + offset;\n var animateFn = function () { return __awaiter(_this, void 0, void 0, function () {\n var dt, position;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n dt = Date.now() - startTime;\n position = easing(undefined, dt, s0, change, duration);\n scroll(position);\n if (!(dt < duration)) return [3 /*break*/, 2];\n return [4 /*yield*/, animation_frame_1.animationFrame()];\n case 1:\n _a.sent();\n if (scrollToken !== startTime)\n return [2 /*return*/];\n animateFn();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); };\n animateFn();\n return id;\n}\nexports.animateScroll = animateScroll;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction animationFrame() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) { return window.requestAnimationFrame(resolve); })];\n });\n });\n}\nexports.animationFrame = animationFrame;\n//# sourceMappingURL=animation-frame.js.map","export function toArray(nodeList) {\n return [].slice.call(nodeList);\n}","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexport default (function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return typeof modifier === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n});","var hasSupportCache = void 0;\n\nfunction testEventPassiveListener(callback) {\n if (hasSupportCache !== undefined) {\n callback(hasSupportCache);\n return;\n }\n\n hasSupportCache = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n hasSupportCache = true;\n }\n });\n\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n callback(hasSupportCache);\n}\n\nfunction testJs(callback) {\n callback(true);\n}\n\nfunction testJs$1(callback) {\n var el = document.createElement('img');\n\n callback(el.style.objectFit !== undefined);\n}\n\nfunction testPositionSticky(callback) {\n var el = document.createElement('a');\n\n el.style.cssText = 'position: sticky; position: -webkit-sticky; position: -ms-sticky;';\n\n callback(el.style.position.indexOf('sticky') !== -1);\n}\n\nvar videoAutoPlayCache = null;\n\nfunction testVideoAutoPlay(callback) {\n if (typeof window === 'undefined') {\n return callback(false);\n }\n\n if (videoAutoPlayCache !== null) {\n return callback(videoAutoPlayCache);\n }\n\n var videoElm = document.createElement('video');\n\n var isPlaying = false;\n\n videoElm.setAttribute('autoplay', '');\n videoElm.setAttribute('muted', '');\n videoElm.setAttribute('webkit-playsinline', 'webkit-playsinline');\n videoElm.setAttribute('playsinline', 'playsinline');\n\n try {\n if (videoElm.canPlayType('video/ogg')) {\n videoElm.src = 'data:video/ogg;base64,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';\n } else if (videoElm.canPlayType('video/mp4')) {\n videoElm.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n } else {\n return callback(false);\n }\n } catch (_) {\n return callback(false);\n }\n\n videoElm.load();\n var playPromise = videoElm.play();\n\n if (playPromise) {\n playPromise.catch(function (e) {\n // Do nothing\n });\n }\n\n videoElm.oncanplay = function () {\n videoAutoPlayCache = isPlaying;\n callback(videoAutoPlayCache);\n };\n\n videoElm.onplay = function () {\n isPlaying = true;\n };\n}\n\nfunction testReducedMotion(callback) {\n if (typeof window === 'undefined') {\n if (callback) {\n callback(false);\n }\n return false;\n }\n\n var test = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches;\n if (callback) {\n callback(test);\n }\n return test;\n}\n\nvar index = {\n testEventPassiveListener: testEventPassiveListener,\n testJs: testJs,\n testObjectFit: testJs$1,\n testPositionSticky: testPositionSticky,\n testVideoAutoPlay: testVideoAutoPlay,\n testReducedMotion: testReducedMotion\n};\n\nexport default index;\nexport { testEventPassiveListener, testJs, testJs$1 as testObjectFit, testPositionSticky, testVideoAutoPlay, testReducedMotion };\n","import { Component } from 'preact';\n\nfunction shallowEqual(a, b) {\n for (let key in a) if (a[key] !== b[key]) return false;\n\n for (let key in b) if (!(key in a)) return false;\n\n return true;\n}\n\nclass PureComponent extends Component {\n shouldComponentUpdate(props, state) {\n return !(shallowEqual(props, this.props) && shallowEqual(state, this.state));\n }\n\n}\n\nexport default PureComponent;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @jsx h\nimport { toArray } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\n\nclass ViewportIntersections extends PureComponent {\n constructor(props) {\n super();\n\n _defineProperty(this, \"elm\", void 0);\n\n _defineProperty(this, \"intersectionObserver\", void 0);\n\n this.state = {\n intersections: props.children.map((child, idx) => {\n return {\n isIntersecting: false,\n ratio: null\n };\n })\n };\n }\n\n createIntersectionObserver() {\n const _this$props = this.props,\n onChange = _this$props.onChange,\n onEnter = _this$props.onEnter,\n onLeave = _this$props.onLeave,\n rootMargin = _this$props.rootMargin,\n threshold = _this$props.threshold,\n root = _this$props.root;\n const childNodes = toArray(this.elm.childNodes);\n this.intersectionObserver = new IntersectionObserver(entries => {\n const intersections = this.state.intersections.slice(0);\n entries.forEach(entry => {\n const idx = childNodes.indexOf(entry.target);\n const prevIntersection = intersections[idx];\n intersections.splice(idx, 1, {\n isIntersecting: entry.isIntersecting,\n ratio: entry.intersectionRatio\n });\n\n if (onEnter && !prevIntersection.isIntersecting && entry.isIntersecting) {\n onEnter(entry, idx);\n }\n\n if (onLeave && prevIntersection.isIntersecting && !entry.isIntersecting) {\n onLeave(entry, idx);\n }\n });\n this.setState({\n intersections\n });\n\n if (onChange) {\n onChange(intersections);\n }\n }, {\n root: root === 'self' ? this.elm : root,\n rootMargin: rootMargin || '0px 0px 0px 0px',\n threshold: threshold || 1.0\n });\n childNodes.forEach(childElm => this.intersectionObserver.observe(childElm));\n }\n\n componentDidMount() {\n this.createIntersectionObserver();\n }\n\n componentWillUnmount() {\n this.intersectionObserver.disconnect();\n }\n\n componentDidUpdate(previousProps) {\n if (this.props.rootMargin !== previousProps.rootMargin) {\n this.intersectionObserver.disconnect();\n this.createIntersectionObserver();\n }\n }\n\n render() {\n const _this$props2 = this.props,\n className = _this$props2.className,\n children = _this$props2.children,\n style = _this$props2.style;\n return h(\"div\", {\n ref: elm => this.elm = elm,\n className: className,\n style: style\n }, children);\n }\n\n}\n\nexport default ViewportIntersections;","/** @jsx h */\nimport { Component, h } from 'preact';\nexport function removeOrphans() {\n let content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return content.replace('\\n', '').replace(/\\s(((?!­|­|­)[^\\s])*)$/, ' $1').replace(/(­|­|­)([^\\s]*)$/, '$2');\n}\nexport default class HtmlContent extends Component {\n shouldComponentUpdate(nextProps) {\n return nextProps.content !== this.props.content;\n }\n\n render() {\n const _this$props = this.props,\n content = _this$props.content,\n className = _this$props.className,\n dataKey = _this$props.dataKey,\n _this$props$preventOr = _this$props.preventOrphans,\n preventOrphans = _this$props$preventOr === void 0 ? true : _this$props$preventOr;\n const html = preventOrphans ? removeOrphans(content) : content;\n\n switch (this.props.type) {\n case 'p':\n return h(\"p\", {\n className: className,\n dangerouslySetInnerHTML: {\n __html: html\n },\n \"data-key\": dataKey\n });\n\n case 'div':\n return h(\"div\", {\n className: className,\n dangerouslySetInnerHTML: {\n __html: html\n },\n \"data-key\": dataKey\n });\n\n default:\n return h(\"span\", {\n className: className,\n dangerouslySetInnerHTML: {\n __html: html\n },\n \"data-key\": dataKey\n });\n }\n }\n\n}","// @flow @jsx h\nimport { h, Component } from 'preact'\n\nclass Provider extends Component<{ children: Array }, {}> {\n getChildContext () {\n const { children, ...props } = this.props\n return { '__CTX__': props }\n }\n render () {\n return this.props.children[0]\n }\n}\n\nProvider.displayName = 'Provider'\n\ntype MapContextToProps = ({}) => Object\n\nfunction connect (mapContextToProps?: MapContextToProps) {\n return (wrappedComponent: any) => {\n class Connected extends Component<{}, {}> {\n mapContextToProps = (ctx: {}): Object => {\n return mapContextToProps ? mapContextToProps(ctx) : ctx\n }\n render () {\n return h(wrappedComponent, {\n ...this.mapContextToProps(this.context['__CTX__']),\n ...this.props\n })\n }\n }\n Connected.displayName = `connect(${wrappedComponent.displayName ||\n wrappedComponent.name ||\n 'Component'})`\n return Connected\n }\n}\n\nexport { Provider, connect }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @jsx h\n\n/* eslint-disable jsx-a11y/media-has-caption */\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\n\nclass Video extends PureComponent {\n constructor() {\n super(...arguments);\n\n _defineProperty(this, \"elm\", void 0);\n\n _defineProperty(this, \"state\", {\n isPlaying: false,\n isResolvingPlay: false,\n time: 0\n });\n\n _defineProperty(this, \"tracks\", []);\n\n _defineProperty(this, \"handlePlay\", () => {\n const onPlay = this.props.onPlay;\n this.setState({\n isPlaying: true\n });\n\n if (onPlay) {\n onPlay();\n }\n });\n\n _defineProperty(this, \"handlePause\", () => {\n const onPause = this.props.onPause;\n this.setState({\n isPlaying: false\n });\n\n if (onPause) {\n onPause();\n }\n });\n\n _defineProperty(this, \"handleDurationChange\", () => {\n const onDurationChange = this.props.onDurationChange;\n\n if (onDurationChange && this.elm) {\n onDurationChange(this.elm.duration);\n }\n });\n\n _defineProperty(this, \"handleTimeupdate\", () => {\n const onTimeupdate = this.props.onTimeupdate;\n const time = this.elm.currentTime;\n this.setState({\n time\n });\n\n if (onTimeupdate) {\n onTimeupdate(time);\n }\n });\n }\n\n componentDidMount() {\n const _this$props = this.props,\n textTracks = _this$props.textTracks,\n playing = _this$props.playing,\n onCaptionCueEnter = _this$props.onCaptionCueEnter,\n onCaptionCueExit = _this$props.onCaptionCueExit;\n\n if (textTracks) {\n textTracks.forEach(textTrack => {\n const track = this.elm.addTextTrack('subtitles', textTrack.language);\n track.mode = 'hidden';\n this.tracks.push(track);\n\n try {\n textTrack.captions.forEach(a => track.addCue(new window.VTTCue(Number(a.in), Number(a.out), a.text)));\n } catch (_) {\n // ignore error\n textTrack.captions.forEach(a => track.addCue(new window.TextTrackCue(Number(a.in), Number(a.out), a.text)));\n }\n\n for (let i = 0; i < track.cues.length; i++) {\n const cue = track.cues[i];\n\n try {\n cue.onenter = () => {\n if (typeof onCaptionCueEnter !== 'undefined') {\n onCaptionCueEnter({\n in: cue.startTime,\n out: cue.endTime,\n text: cue.text\n });\n }\n };\n\n cue.onexit = () => {\n if (typeof onCaptionCueExit !== 'undefined') {\n onCaptionCueExit();\n }\n };\n } catch (_) {// ignore error\n }\n }\n });\n }\n\n if (playing) {\n this.play();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.playing !== this.props.playing) {\n if (this.props.playing) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n play() {\n const onError = this.props.onError;\n const playPromise = this.elm.play();\n\n if (playPromise) {\n this.setState({\n isResolvingPlay: true\n });\n playPromise.then(() => {\n this.setState({\n isResolvingPlay: false\n });\n }).catch(err => {\n if (onError) {\n onError(err.message);\n }\n\n this.setState({\n isResolvingPlay: false\n });\n });\n }\n }\n\n pause() {\n this.elm.pause();\n }\n\n seek(time) {\n this.elm.currentTime = time;\n }\n\n render() {\n const _this$props2 = this.props,\n playing = _this$props2.playing,\n sources = _this$props2.sources,\n restProps = _objectWithoutProperties(_this$props2, [\"playing\", \"sources\"]);\n\n const isPlaying = this.state.isPlaying;\n const eventHandlers = {\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onDurationChange: this.handleDurationChange,\n onTimeupdate: this.handleTimeupdate\n };\n const dataProps = {};\n\n if (isPlaying) {\n dataProps['data-playing'] = true;\n }\n\n return h(\"video\", _extends({}, restProps, eventHandlers, {\n ref: elm => this.elm = elm\n }, dataProps), sources.map(source => h(\"source\", _extends({}, source, {\n key: source.type\n }))));\n }\n\n}\n\nexport default Video;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @jsx h\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport Video from '../Video';\nvar style = {\n \"smartVideo\": \"dhfc-1_0_0-beta_48-smartVideo\",\n \"smartVideo__720p\": \"dhfc-1_0_0-beta_48-smartVideo__720p\",\n \"smartVideo--horizontal\": \"dhfc-1_0_0-beta_48-smartVideo--horizontal\",\n \"smartVideo--1080p\": \"dhfc-1_0_0-beta_48-smartVideo--1080p\",\n \"smartVideo__960p\": \"dhfc-1_0_0-beta_48-smartVideo__960p\",\n \"smartVideo__1080p\": \"dhfc-1_0_0-beta_48-smartVideo__1080p\"\n};\nconst THRESHOLD_1080P = 960;\nconst THRESHOLD_HORIZONTAL = 2 / 3;\n\nclass SmartVideo extends PureComponent {\n constructor() {\n super(...arguments);\n\n _defineProperty(this, \"resolution720p\", void 0);\n\n _defineProperty(this, \"resolution960p\", void 0);\n\n _defineProperty(this, \"resolution1080p\", void 0);\n\n _defineProperty(this, \"state\", {\n time: 0\n });\n\n _defineProperty(this, \"handleTimeupdate\", time => {\n const onTimeupdate = this.props.onTimeupdate;\n this.setState({\n time\n });\n\n if (onTimeupdate) {\n onTimeupdate(time);\n }\n });\n }\n\n componentDidUpdate(prevProps) {\n const prevIsHorizontal = this.isHorizontal(prevProps);\n const isHorizontal = this.isHorizontal(this.props);\n const prevIs1080p = this.is1080p(prevProps);\n const is1080p = this.is1080p(this.props);\n\n if (prevIsHorizontal !== isHorizontal || is1080p !== prevIs1080p) {\n this.seek(this.state.time);\n }\n }\n\n isHorizontal() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n const viewport = props.viewport;\n\n if (this.props.isHorizontal) {\n return this.props.isHorizontal(viewport);\n } else {\n return viewport.width / viewport.height >= THRESHOLD_HORIZONTAL;\n }\n }\n\n is1080p() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n const viewport = props.viewport;\n\n if (this.props.is1080p) {\n return this.props.is1080p(viewport);\n } else {\n return viewport.width >= THRESHOLD_1080P;\n }\n }\n\n seek(time) {\n const isHorizontal = this.isHorizontal();\n const is1080p = this.is1080p();\n\n if (isHorizontal) {\n if (is1080p) {\n this.resolution1080p.seek(time);\n } else {\n this.resolution720p.seek(time);\n }\n } else {\n this.resolution960p.seek(time);\n }\n }\n\n render() {\n const _this$props = this.props,\n playing = _this$props.playing,\n resolution720p = _this$props.resolution720p,\n resolution960p = _this$props.resolution960p,\n resolution1080p = _this$props.resolution1080p,\n viewport = _this$props.viewport,\n restProps = _objectWithoutProperties(_this$props, [\"playing\", \"resolution720p\", \"resolution960p\", \"resolution1080p\", \"viewport\"]);\n\n if (!resolution720p) {\n throw new Error('Missing `resolution720p` property');\n }\n\n if (!resolution960p) {\n throw new Error('Missing `resolution960p` property');\n }\n\n if (!resolution1080p) {\n throw new Error('Missing `resolution1080p` property');\n }\n\n const isValidViewport = viewport.width > -1 && viewport.height > -1;\n const isHorizontal = this.isHorizontal();\n const is1080p = isHorizontal && this.is1080p();\n const className = `${bem(style.smartVideo, {\n '1080p': is1080p,\n horizontal: isHorizontal\n })}${this.props.className ? ` ${this.props.className}` : ''}`;\n return h(\"div\", {\n className: className\n }, h(Video, _extends({}, resolution720p, restProps, {\n className: style.smartVideo__720p,\n playing: isValidViewport && isHorizontal && !is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: resolution720p => this.resolution720p = resolution720p\n })), h(Video, _extends({}, resolution960p, restProps, {\n className: style.smartVideo__960p,\n playing: isValidViewport && !isHorizontal && !is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: resolution960p => this.resolution960p = resolution960p\n })), h(Video, _extends({}, resolution1080p, restProps, {\n className: style.smartVideo__1080p,\n playing: isValidViewport && isHorizontal && is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: resolution1080p => this.resolution1080p = resolution1080p\n })));\n }\n\n}\n\nexport default SmartVideo;","// @flow @jsx h\n/* eslint-disable jsx-a11y/aria-role */\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\n\ntype Props = {\n fornavn: string,\n viewport: { height: number }\n}\n\nexport class Header extends Component {\n render () {\n const { fornavn } = this.props\n\n return
\n\n
\n

\n
{fornavn}
\n
\n
\n
\n
\n
\n
\n

\n\n
\n
\n }\n}\n\n/*
{stikktittel}
*/\n","const ScrollKeys = [32, 33, 34, 35, 36, 37, 38, 39, 40]\n\nexport class DisableScroll {\n callback\n element\n\n constructor (callback) {\n this.callback = callback\n this.element = document.scrollingElement\n }\n\n on () {\n document.addEventListener('wheel', this.handleWheel)\n document.addEventListener('touchmove', this.handleWheel)\n document.addEventListener('scroll', this.handleScroll)\n document.addEventListener('keydown', this.handleKeydown)\n }\n\n off () {\n document.removeEventListener('wheel', this.handleWheel)\n document.removeEventListener('touchmove', this.handleWheel)\n document.removeEventListener('scroll', this.handleScroll)\n document.removeEventListener('keydown', this.handleKeydown)\n }\n\n handleWheel = (e) => {\n e.preventDefault()\n if (this.callback) {\n this.callback()\n }\n }\n\n handleScroll = () => {\n if (this.element.scrollTop < 1200) {\n window.scrollTo(0, 0)\n if (this.callback) {\n this.callback()\n }\n }\n }\n\n handleKeydown = (e) => {\n if (ScrollKeys.includes(e.keyCode)) {\n e.preventDefault()\n }\n if (this.callback) {\n this.callback()\n }\n }\n}\n","// @flow @jsx h\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\n/* eslint-disable compat/compat */\n\nimport { Component, h } from 'preact'\nimport { DisableScroll } from '../../../../lib/DisableScroll'\n\nimport styles from './index.css'\n\ntype Props = {\n viewport: { height: number },\n allowed: boolean,\n complete: boolean,\n onComplete: () => void\n}\n\nexport class Logo extends Component {\n elm: HTMLElement\n animationElm: HTMLElement\n disableScroll: any\n animation: any\n animationStarted = false\n fadingOut = false\n\n componentDidMount () {\n this.disableScroll = new DisableScroll(this.handleScroll)\n }\n\n componentDidUpdate (previousProps: Props) {\n if (!previousProps.complete && this.props.complete) {\n this.fadeOut()\n } else if (this.props.complete) {\n return\n }\n\n if (!previousProps.allowed && this.props.allowed) {\n // this.show()\n } else if (previousProps.allowed && !this.props.allowed) {\n this.fadeOut()\n }\n }\n\n handleScroll = () => {\n this.fadeOut()\n }\n\n fadeOut = () => {\n if (this.fadingOut) {\n return\n }\n\n this.fadingOut = true\n this.elm.style.opacity = '0'\n setTimeout(() => {\n this.elm.style.display = 'none'\n this.props.onComplete && this.props.onComplete()\n\n if (this.animation) {\n this.animation.destroy()\n }\n\n setTimeout(() => (this.disableScroll.off()), 300)\n }, 200)\n }\n\n handleAnimationComplete = () => {\n setTimeout(() => {\n this.fadeOut()\n }, 2000)\n }\n\n render () {\n return (this.elm = elm)} />\n }\n}\n","// @flow\n\nimport type { VideoType } from './components/domain'\n\nexport const VIDEO_BASE_PATH = 'https://pmd-nrk.akamaized.net/videoloop/is-krigerne/'\n\nexport function toVideoSrc (video: VideoType) {\n return {\n poster: VIDEO_BASE_PATH + video.poster,\n sources: [\n { type: 'video/mp4', src: VIDEO_BASE_PATH + video.mp4 },\n { type: 'video/webm', src: VIDEO_BASE_PATH + video.webm }\n ]\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { SmartVideo, ViewportIntersections } from '@nrk/dh-feature-components'\nimport { bem } from '@nrk/dh-utils'\nimport { Header } from './Header'\nimport { Logo } from './Logo'\nimport { toVideoSrc } from '../../common'\n\n/* styles */\nimport styles from './index.css'\nimport '@nrk/dh-feature-components/dist/module/video/SmartVideo/index.css'\n\n/* types */\nimport type { IntroVideo } from '../domain'\n\ntype Props = {\n introVideo: IntroVideo,\n fornavn: string,\n etternavn: string,\n stikktittel: string,\n byline: string,\n bylinebilde: string,\n viewport: { height: number }\n}\n\ntype State = {\n activeIdx: number,\n logoAllowed: boolean,\n logoComplete: boolean,\n portraitVisible: boolean,\n playing: boolean\n}\n\nexport class Intro extends Component {\n timeout: any\n texts: HTMLElement[] = []\n\n constructor () {\n super()\n this.state = {\n playing: false,\n logoAllowed: false,\n logoComplete: false,\n portraitVisible: false\n }\n }\n\n handleChange = (intersections: any[]) => {\n const activeIntersection = intersections\n .map((intersection, idx) => ({ ...intersection, idx }))\n .filter(intersection => intersection.isIntersecting)\n .sort((a, b) => b.ratio - a.ratio)\n .shift()\n\n let nextState = {}\n if (!activeIntersection) {\n nextState = { activeIdx: -1, playing: false }\n } else {\n const idx = activeIntersection.idx\n if (idx === 0) {\n nextState = { activeIdx: 0, portraitVisible: false, playing: true, logoAllowed: true }\n } else {\n nextState = { activeIdx: -1, portraitVisible: true, playing: false, logoAllowed: false, logoComplete: true }\n }\n }\n\n this.setState(nextState)\n }\n\n setLogoComplete = () => {\n if (!this.state.logoComplete) {\n this.setState({ logoComplete: true })\n }\n }\n\n render () {\n const { fornavn, etternavn, stikktittel, viewport, introVideo } = this.props\n const { playing, logoAllowed, logoComplete, portraitVisible } = this.state\n const rootMargin = `-50% 0px 0px 0px`\n\n return (\n
\n
\n
\n {introVideo && \n }\n\n
\n \n \n {\n }\n
\n \n
\n
\n )\n }\n}\n","import { createImageUrl as libCreateImageUrl } from '@nrk/serum-imagecrop-utils';\nexport const IMAGE_WIDTHS = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400];\nexport function createImageUrl(opts) {\n const id = opts.id,\n ratio = opts.ratio,\n quality = opts.quality,\n width = opts.width;\n const derivedRatio = ratio === 'original' ? null : ratio;\n return libCreateImageUrl({\n id,\n ratio: derivedRatio,\n quality,\n width\n });\n}\nexport function createResponsiveSrcSet(opts) {\n const id = opts.id,\n ratio = opts.ratio,\n quality = opts.quality;\n return IMAGE_WIDTHS.map(width => {\n const imageUrl = createImageUrl({\n id,\n width,\n ratio,\n quality\n });\n return `${imageUrl} ${width}w`;\n }).join(', ');\n}","/** @jsx h */\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport { createResponsiveSrcSet } from '../helpers';\n\nclass SerumResponsivePicture extends PureComponent {\n render() {\n const _this$props = this.props,\n className = _this$props.className,\n alt = _this$props.alt,\n id = _this$props.id,\n quality = _this$props.quality,\n ratio = _this$props.ratio,\n sizes = _this$props.sizes;\n const defaultUrl = createImageUrl({\n id,\n width: 1600,\n quality,\n ratio: ratio || '16:9'\n });\n const horizontalSourceSet = createResponsiveSrcSet({\n id,\n quality,\n ratio: ratio || '16:9'\n });\n return h(\"picture\", {\n className: className\n }, h(\"source\", {\n srcSet: horizontalSourceSet,\n sizes: sizes\n }), h(\"img\", {\n src: defaultUrl,\n alt: alt,\n sizes: sizes\n }));\n }\n\n}\n\nexport default SerumResponsivePicture;","// @flow @jsx h\n\nimport { h, Component } from 'preact'\nimport { SerumResponsivePicture, HtmlContent } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\nimport { connect } from '../../../../../lib/provider'\n\ntype Props = {\n intro: string,\n linkText: string,\n title: string,\n text: string,\n imageId: string,\n sendGaEvent: (Object) => void\n}\n\ntype ContextProps = {\n sendGaEvent?: any => void\n}\n\ntype State = {\n expanded: boolean\n}\n\nclass _Person extends Component {\n constructor () {\n super()\n this.state = {\n expanded: false\n }\n }\n\n handleToggle = (event: Event) => {\n event.preventDefault()\n this.setState({ expanded: !this.state.expanded })\n\n this.props.sendGaEvent &&\n this.props.sendGaEvent({\n action: this.state.expanded ? 'SHOW_PERSON_DETAILS' : 'HIDE_PERSON_DETAILS',\n label: this.props.title\n })\n }\n\n render () {\n const { intro, linkText, title, text, imageId } = this.props\n const { expanded } = this.state\n\n const [introStart, introEnd] = intro.split(linkText)\n\n return
\n

\n {introStart}\n \n \n \n \n {introEnd}\n

\n {expanded && (\n \n )}\n
\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const Person = connector(_Person)\n","// @flow @jsx h\n\nimport { h, Component } from 'preact'\nimport { HtmlContent } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\nimport { connect } from '../../../../../lib/provider'\n\ntype Props = {\n intro: string,\n linkText: string,\n title: string,\n text: string,\n sendGaEvent: (Object) => void\n}\n\ntype ContextProps = {\n sendGaEvent?: any => void\n}\n\ntype State = {\n expanded: boolean\n}\n\nclass _Faktaboks extends Component {\n constructor () {\n super()\n this.state = {\n expanded: false\n }\n }\n\n handleToggle = (event: Event) => {\n event.preventDefault()\n this.setState({ expanded: !this.state.expanded })\n\n this.props.sendGaEvent &&\n this.props.sendGaEvent({\n action: this.state.expanded ? 'SHOW_FAKTABOKS' : 'HIDE_FAKTABOKS',\n label: this.props.title\n })\n }\n\n render () {\n const { intro, linkText, title, text } = this.props\n const { expanded } = this.state\n\n const [introStart, introEnd] = intro.split(linkText)\n\n return
\n

\n {introStart}\n \n \n \n \n {introEnd}\n

\n {expanded && (\n \n )}\n
\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const Faktaboks = connector(_Faktaboks)\n","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/** @jsx h */\n\n/* eslint-disable react/no-deprecated */\nimport { h, Component } from 'preact';\nimport { createImageUrl, createResponsiveSrcSet } from '../../helpers';\n\nclass SerumLazyResponsivePicture extends Component {\n constructor() {\n super(...arguments);\n\n _defineProperty(this, \"visibleImage\", void 0);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.load && !this.props.load) {\n this.loadImage();\n }\n }\n\n shouldComponentUpdate() {\n return false;\n }\n\n loadImage() {\n const loaderImage = new Image();\n\n if (this.visibleImage.dataset) {\n loaderImage.srcset = this.visibleImage.dataset.srcset || '';\n loaderImage.sizes = this.visibleImage.sizes || '';\n }\n\n loaderImage.src = this.visibleImage.dataset.src;\n\n if (typeof loaderImage.decode === 'function') {\n // Use Image Decode API to decode image upfront if available\n // (Unsure if this works when transferring src to other image, but worth the try)\n loaderImage.decode().then(() => this.updateImage(loaderImage));\n } else if (loaderImage.complete) {\n this.updateImage(loaderImage);\n } else {\n loaderImage.onload = () => this.updateImage(loaderImage);\n }\n }\n\n updateImage(loaderImage) {\n requestAnimationFrame(() => {\n this.visibleImage.src = loaderImage.currentSrc || loaderImage.src;\n });\n }\n\n render() {\n const _this$props = this.props,\n className = _this$props.className,\n alt = _this$props.alt,\n id = _this$props.id,\n _this$props$quality = _this$props.quality,\n quality = _this$props$quality === void 0 ? 0.6 : _this$props$quality,\n _this$props$ratio = _this$props.ratio,\n ratio = _this$props$ratio === void 0 ? '16:9' : _this$props$ratio,\n sizes = _this$props.sizes,\n _this$props$style = _this$props.style,\n style = _this$props$style === void 0 ? {} : _this$props$style;\n const placeholderSrc = createImageUrl({\n id,\n width: 100,\n quality: 0.6,\n ratio\n });\n const defaultUrl = createImageUrl({\n id,\n width: 1600,\n quality,\n ratio\n });\n const sourceSet = createResponsiveSrcSet({\n id,\n quality,\n ratio\n });\n return h(\"picture\", {\n className: className,\n style: _objectSpread({}, style, {\n display: 'block',\n overflow: 'hidden'\n })\n }, h(\"img\", {\n src: placeholderSrc,\n alt: alt,\n \"data-src\": defaultUrl,\n \"data-srcset\": sourceSet,\n style: {\n width: '100%'\n },\n sizes: sizes,\n ref: elm => this.visibleImage = elm\n }));\n }\n\n}\n\nexport default SerumLazyResponsivePicture;","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\n\ntype Props = {\n id: string,\n alt: string,\n caption: string,\n ratio: string,\n load: boolean\n}\n\nexport class Image extends Component {\n render () {\n const { id, alt, caption, ratio, load } = this.props\n return
\n \n {caption &&
{caption}
}\n
\n }\n}\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @jsx h\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nvar style = {\n \"scrubber\": \"dhfc-1_0_0-beta_48-scrubber\",\n \"scrubber__bgBar\": \"dhfc-1_0_0-beta_48-scrubber__bgBar\",\n \"scrubber__bufferedBar\": \"dhfc-1_0_0-beta_48-scrubber__bufferedBar\",\n \"scrubber__playedBar\": \"dhfc-1_0_0-beta_48-scrubber__playedBar\"\n};\n\nclass Scrubber extends PureComponent {\n constructor() {\n super(...arguments);\n\n _defineProperty(this, \"bgElm\", void 0);\n\n _defineProperty(this, \"elm\", void 0);\n\n _defineProperty(this, \"handleElm\", void 0);\n\n _defineProperty(this, \"positionTimeout\", void 0);\n\n _defineProperty(this, \"state\", {\n left: 0,\n width: 0,\n isScrubbing: false,\n position: null\n });\n\n _defineProperty(this, \"handleKeyDown\", evt => {\n const _this$props = this.props,\n duration = _this$props.duration,\n time = _this$props.time,\n onPositionUpdate = _this$props.onPositionUpdate;\n\n if (onPositionUpdate) {\n let nextTime = time;\n\n switch (evt.key) {\n case 'ArrowLeft':\n nextTime -= 1;\n break;\n\n case 'ArrowRight':\n nextTime += 1;\n break;\n }\n\n onPositionUpdate(Math.max(Math.min(nextTime / duration, 1), 0));\n }\n });\n\n _defineProperty(this, \"handleMouseDown\", evt => {\n evt.preventDefault();\n this.focus();\n this.start(evt.pageX);\n this.elm.addEventListener('mousemove', this.handleMouseMove);\n window.addEventListener('mouseup', this.handleMouseUp);\n });\n\n _defineProperty(this, \"handleMouseMove\", evt => {\n this.move(evt.pageX);\n });\n\n _defineProperty(this, \"handleMouseUp\", evt => {\n this.focus();\n this.end();\n this.elm.removeEventListener('mousemove', this.handleMouseMove);\n window.removeEventListener('mouseup', this.handleMouseUp);\n });\n\n _defineProperty(this, \"handleResize\", () => {\n const rect = this.bgElm.getBoundingClientRect();\n this.setState({\n left: Math.floor(rect.left),\n width: rect.width\n });\n });\n\n _defineProperty(this, \"handleTouchStart\", evt => {\n if (evt.touches.length === 1) {\n evt.preventDefault();\n this.focus();\n this.start(evt.touches[0].clientX);\n this.elm.addEventListener('touchmove', this.handleTouchMove);\n window.addEventListener('touchend', this.handleTouchEnd);\n }\n });\n\n _defineProperty(this, \"handleTouchMove\", evt => {\n if (evt.touches.length === 1) {\n this.move(evt.touches[0].clientX);\n }\n });\n\n _defineProperty(this, \"handleTouchEnd\", evt => {\n this.focus();\n this.end();\n this.elm.removeEventListener('touchmove', this.handleTouchMove);\n window.removeEventListener('touchend', this.handleTouchEnd);\n });\n }\n\n componentDidMount() {\n if (this.props.onPositionUpdate) {\n this.elm.addEventListener('keydown', this.handleKeyDown);\n this.elm.addEventListener('mousedown', this.handleMouseDown);\n this.elm.addEventListener('touchstart', this.handleTouchStart);\n window.addEventListener('resize', this.handleResize);\n this.handleResize();\n }\n }\n\n componentWillUnmount() {\n if (this.props.onPositionUpdate) {\n this.elm.removeEventListener('keydown', this.handleKeyDown);\n this.elm.removeEventListener('mousedown', this.handleMouseDown);\n this.elm.removeEventListener('touchstart', this.handleTouchStart);\n window.removeEventListener('resize', this.handleResize);\n }\n }\n\n focus() {\n this.handleElm.focus();\n }\n\n start(clientX) {\n if (this.positionTimeout) {\n clearTimeout(this.positionTimeout);\n }\n\n this.setState({\n position: (clientX - this.state.left) / this.state.width,\n isScrubbing: true\n });\n }\n\n move(clientX) {\n this.setState({\n position: Math.max(Math.min((clientX - this.state.left) / this.state.width, 1), 0)\n });\n }\n\n end() {\n if (this.props.onPositionUpdate && this.state.position !== null) {\n this.props.onPositionUpdate(this.state.position);\n }\n\n this.setState({\n isScrubbing: false\n });\n this.positionTimeout = setTimeout(() => {\n this.setState({\n position: null\n });\n }, 350);\n }\n\n render() {\n const _this$props2 = this.props,\n duration = _this$props2.duration,\n time = _this$props2.time;\n const className = `${style.scrubber}${this.props.className ? ` ${this.props.className}` : ''}`;\n const position = this.state.position !== null ? this.state.position : time / duration;\n return h(\"div\", {\n className: className,\n ref: elm => this.elm = elm\n }, h(\"div\", {\n className: style.scrubber__bgBar,\n ref: bgElm => this.bgElm = bgElm\n }), h(\"div\", {\n className: style.scrubber__bufferedBar\n }), h(\"div\", {\n className: style.scrubber__playedBar,\n style: {\n width: `${position * 100}%`\n }\n }), h(\"button\", {\n ref: handleElm => this.handleElm = handleElm,\n role: \"slider\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": duration * 1000,\n \"aria-valuenow\": time * 1000,\n style: {\n left: `${position * 100}%`\n }\n }));\n }\n\n}\n\nexport default Scrubber;","// @jsx h\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nvar style = {\n \"togglePlayButton\": \"dhfc-1_0_0-beta_48-togglePlayButton\",\n \"togglePlayButton__pauseIcon\": \"dhfc-1_0_0-beta_48-togglePlayButton__pauseIcon\",\n \"togglePlayButton--playing\": \"dhfc-1_0_0-beta_48-togglePlayButton--playing\",\n \"togglePlayButton__playIcon\": \"dhfc-1_0_0-beta_48-togglePlayButton__playIcon\"\n};\nexport default function TogglePlayButton(props) {\n const playing = props.playing;\n const className = `${bem(style.togglePlayButton, playing && 'playing')}${props.className ? ` ${props.className}` : ''}`;\n return h(\"button\", {\n className: className,\n onClick: props.onClick\n }, h(\"span\", {\n className: \"nrk-sr\"\n }, playing ? 'Sett video på pause' : 'Spill av video'), h(\"svg\", {\n className: style.togglePlayButton__pauseIcon,\n \"aria-hidden\": \"true\",\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }), h(\"svg\", {\n className: style.togglePlayButton__playIcon,\n \"aria-hidden\": \"true\",\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }));\n}","// @jsx h\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nvar style = {\n \"toggleMuteButton\": \"dhfc-1_0_0-beta_48-toggleMuteButton\",\n \"toggleMuteButton__volumeIcon\": \"dhfc-1_0_0-beta_48-toggleMuteButton__volumeIcon\",\n \"toggleMuteButton--muted\": \"dhfc-1_0_0-beta_48-toggleMuteButton--muted\",\n \"toggleMuteButton__mutedIcon\": \"dhfc-1_0_0-beta_48-toggleMuteButton__mutedIcon\"\n};\nexport default function ToggleMuteButton(props) {\n const muted = props.muted;\n const className = `${bem(style.toggleMuteButton, muted && 'muted')}${props.className ? ` ${props.className}` : ''}`;\n return h(\"button\", {\n className: className,\n onClick: props.onClick\n }, h(\"span\", {\n className: \"nrk-sr\"\n }, muted ? 'Slå på lyd' : 'Slå av lyd'), h(\"svg\", {\n className: style.toggleMuteButton__mutedIcon,\n \"aria-hidden\": \"true\",\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }), h(\"svg\", {\n className: style.toggleMuteButton__volumeIcon,\n \"aria-hidden\": \"true\",\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }));\n}","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @jsx h\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport warn from '../../lib/warn';\nimport Scrubber from './Scrubber';\nimport TogglePlayButton from './TogglePlayButton';\nimport ToggleMuteButton from './ToggleMuteButton';\nvar style = {\n \"videoPlayer\": \"dhfc-1_0_0-beta_48-videoPlayer\",\n \"videoPlayer__container\": \"dhfc-1_0_0-beta_48-videoPlayer__container\",\n \"videoPlayer__caption\": \"dhfc-1_0_0-beta_48-videoPlayer__caption\",\n \"videoPlayer__controls\": \"dhfc-1_0_0-beta_48-videoPlayer__controls\",\n \"videoPlayer__togglePlayButton\": \"dhfc-1_0_0-beta_48-videoPlayer__togglePlayButton\",\n \"videoPlayer__toggleMuteButton\": \"dhfc-1_0_0-beta_48-videoPlayer__toggleMuteButton\"\n};\n\nclass VideoPlayer extends PureComponent {\n constructor() {\n super(...arguments);\n\n _defineProperty(this, \"video\", void 0);\n\n _defineProperty(this, \"state\", {\n caption: null,\n duration: 0,\n isPlaying: false,\n time: 0\n });\n\n _defineProperty(this, \"handleUserTogglePlay\", () => {\n this.props.onUserTogglePlay();\n });\n\n _defineProperty(this, \"handleUserToggleMute\", () => {\n this.props.onUserToggleMute();\n });\n\n _defineProperty(this, \"handleScrubberPositionUpdate\", position => {\n if (this.video) {\n this.video.seek(this.state.duration * position);\n } else {\n warn('[@nrk/dh-feature-components] No video reference');\n }\n });\n\n _defineProperty(this, \"handleCaptionCueEnter\", caption => {\n this.setState({\n caption\n });\n });\n\n _defineProperty(this, \"handleCaptionCueExit\", () => {\n this.setState({\n caption: null\n });\n });\n\n _defineProperty(this, \"handleDurationChange\", duration => {\n this.setState({\n duration\n });\n });\n\n _defineProperty(this, \"handlePlay\", () => {\n const onPlay = this.props.onPlay;\n this.setState({\n isPlaying: true\n });\n\n if (onPlay) {\n onPlay();\n }\n });\n\n _defineProperty(this, \"handlePause\", () => {\n const onPause = this.props.onPause;\n this.setState({\n isPlaying: false\n });\n\n if (onPause) {\n onPause();\n }\n });\n\n _defineProperty(this, \"handleTimeupdate\", time => {\n this.setState({\n time\n });\n });\n }\n\n render() {\n const _this$props = this.props,\n muted = _this$props.muted,\n playing = _this$props.playing,\n video = _this$props.video;\n const _this$state = this.state,\n caption = _this$state.caption,\n duration = _this$state.duration,\n isPlaying = _this$state.isPlaying,\n time = _this$state.time;\n\n if (!video.attributes) {\n throw new Error('The `video` property must be a virtual node');\n }\n\n const className = `${style.videoPlayer}${this.props.className ? ` ${this.props.className}` : ''}`;\n video.attributes.muted = muted;\n video.attributes.playing = playing;\n video.attributes.playsInline = true;\n\n video.attributes.ref = video => this.video = video;\n\n video.attributes.onPlay = this.handlePlay;\n video.attributes.onPause = this.handlePause;\n video.attributes.onCaptionCueEnter = this.handleCaptionCueEnter;\n video.attributes.onCaptionCueExit = this.handleCaptionCueExit;\n video.attributes.onDurationChange = this.handleDurationChange;\n video.attributes.onTimeupdate = this.handleTimeupdate;\n return h(\"div\", {\n className: className\n }, h(\"div\", {\n className: style.videoPlayer__container\n }, video, caption && h(\"div\", {\n className: style.videoPlayer__caption,\n \"aria-hidden\": \"true\"\n }, caption.text.split('\\n').map((text, idx) => h(\"div\", {\n key: String(idx)\n }, h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: text\n }\n })))), h(\"div\", {\n className: style.videoPlayer__controls\n }, h(TogglePlayButton, {\n className: style.videoPlayer__togglePlayButton,\n playing: isPlaying,\n onClick: this.handleUserTogglePlay\n }), h(Scrubber, {\n time: time,\n duration: duration,\n onPositionUpdate: this.handleScrubberPositionUpdate\n }), h(ToggleMuteButton, {\n className: style.videoPlayer__toggleMuteButton,\n muted: muted,\n onClick: this.handleUserToggleMute\n }))));\n }\n\n}\n\nexport default VideoPlayer;","export default function warn() {\n typeof window !== 'undefined' && console && console.warn && console.warn(...arguments);\n}","// @flow @jsx h\n\nimport { Component, h } from 'preact'\nimport { Video, VideoPlayer } from '@nrk/dh-feature-components'\n\nimport '@nrk/dh-feature-components/dist/module/video/VideoPlayer/index.css'\nimport '@nrk/dh-feature-components/dist/module/video/VideoPlayer/Scrubber.css'\nimport '@nrk/dh-feature-components/dist/module/video/VideoPlayer/ToggleMuteButton.css'\nimport '@nrk/dh-feature-components/dist/module/video/VideoPlayer/TogglePlayButton.css'\n\nimport styles from './index.css'\n\ntype VideoSource = {\n type: 'video/mp4' | 'video/webm',\n src: string\n}\n\ntype Props = {\n poster: string,\n sources: VideoSource[],\n playing: boolean,\n textTracks: any[]\n}\n\ntype State = {\n paused: boolean,\n muted: boolean\n}\n\nexport class VideoContent extends Component {\n constructor () {\n super()\n this.state = {\n paused: false,\n muted: true\n }\n }\n\n handleUserToggleMute = () => {\n this.setState({ muted: !this.state.muted })\n }\n\n handleUserTogglePlay = () => {\n this.setState({ paused: !this.state.paused })\n }\n\n handleVideoError = () => {\n this.setState({ paused: true })\n }\n\n render () {\n const { sources, poster, textTracks } = this.props\n const { muted } = this.state\n\n const playing = !!this.props.playing && !this.state.paused\n\n const video = \n\n return (\n \n )\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { VideoContent } from './VideoContent'\n\n/* styles */\nimport styles from './index.css'\n\ntype Props = {\n playing: boolean,\n poster: string,\n mp4: string,\n webm: string\n}\n\nexport class VideoElement extends Component {\n render () {\n const { playing, poster, mp4, webm } = this.props\n const sources = [{ type: 'video/mp4', src: mp4 }, { type: 'video/webm', src: webm }]\n\n return
\n
\n \n
\n
\n }\n}\n","// @flow @jsx h\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\n\n/* styles */\nimport styles from './index.css'\n\ntype Props = {\n playing: boolean,\n id: string,\n autoplay: string\n}\n\nexport class LudoElement extends Component {\n videoElm: HTMLVideoElement\n ludoPlayer: any\n\n componentDidMount () {\n this.ludoPlayer = require('../../../../../lib/wrappers/ludoWrapper').getLudo().then(ludo => {\n return ludo(this.videoElm, this.props.id, {\n analytics: {\n ga: {\n trackingId: 'UA-3413696-1'\n }\n },\n mute: true\n })\n })\n }\n\n play () {\n this.ludoPlayer.then(player => {\n player.play()\n })\n }\n\n pause () {\n this.ludoPlayer.then(player => {\n player.pause()\n })\n }\n\n componentDidUpdate (previousProps: Props) {\n const { autoplay = 'true' } = this.props\n\n if (autoplay === 'true' && this.props.playing && !previousProps.playing) {\n this.play()\n } else if (!this.props.playing && previousProps.playing) {\n this.pause()\n }\n }\n\n render () {\n return
\n
(this.videoElm = elm)} />\n
\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { bem } from '@nrk/dh-utils'\n\n/* styles */\nimport styles from './index.css'\n\ntype Props = {\n sitat: string,\n sitatNavn: string,\n float?: string\n}\n\nexport class Sitat extends Component {\n render () {\n return
\n
\n

{this.props.sitat}

\n {this.props.sitatNavn}\n
\n
\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { Video } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\nimport type { VideoType } from '../../../domain'\nimport { toVideoSrc } from '../../../../common'\n\ntype Props = {\n playing: boolean,\n video: VideoType,\n title: string,\n caption: string\n}\n\nexport class LevendeStillbilde extends Component {\n render () {\n const { playing, video, caption, title } = this.props\n const vid = toVideoSrc(video)\n\n return
\n
\n \n {caption &&
{caption}
}\n
\n
\n }\n}\n","// @flow @jsx h\n\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\nimport { SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\n\ntype Props = {\n tittel: string,\n merkelapp: string,\n url: string,\n polopolyId: string,\n ratio: string,\n load: boolean\n}\n\nexport class Inngang extends Component {\n elm: HTMLElement\n\n componentDidMount () {\n if (this.props.ratio) {\n this.elm.style.setProperty('--inngangHeight', this.props.ratio)\n }\n }\n\n componentDidUpdate (previousProps: Props) {\n if (this.props.ratio !== previousProps.ratio) {\n this.elm.style.setProperty('--inngangHeight', this.props.ratio)\n }\n }\n\n render () {\n const { tittel, merkelapp, url, polopolyId, load } = this.props\n return (this.elm = elm)}>\n {polopolyId &&
\n \n
}\n
\n

{tittel}

\n
{merkelapp}
\n \n \n \n
\n
\n }\n}\n","// @flow @jsx h\n\nimport { bem } from '@nrk/dh-utils'\nimport { h } from 'preact'\nimport style from './index.css'\n\ntype Props = {\n playing: boolean,\n onClick: Function\n}\n\nexport default function TogglePlayButton (props: Props) {\n const { playing } = props\n\n return (\n \n )\n}\n","// @flow @jsx h\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\nimport { bem } from '@nrk/dh-utils'\nimport TogglePlayButton from './TogglePlayButton'\nimport styles from './index.css'\n\ntype Caption = {\n in: number,\n newLine: boolean,\n text: string,\n name?: string\n}\n\ntype Props = {\n mp3: string,\n captions: Caption[],\n onPlay: (position: number) => void,\n onStop: (position: number) => void\n}\n\ntype State = {\n playing: boolean,\n progress: number\n}\n\nexport default class VoiceText extends Component {\n sound: any\n interval: any\n state = {\n playing: false,\n progress: 0\n }\n\n componentDidMount () {\n this.createSound()\n }\n\n createSound () {\n require('../wrappers/howlerWrapper.js').getHowler()\n .then(({ Howl }) => {\n this.sound = new Howl({\n src: [this.props.mp3],\n onplay: this.handlePlay,\n onpause: this.handleStop,\n onstop: this.handleStop,\n onend: this.handleStop\n })\n })\n }\n\n handlePlay = () => {\n try {\n this.props.onPlay(this.sound.seek())\n } catch (e) {\n // Do nothing\n }\n this.setState({ playing: true })\n this.startProgress()\n }\n\n handleStop = () => {\n try {\n this.props.onStop(this.sound.seek())\n } catch (e) {\n // Do nothing\n }\n this.setState({ playing: false })\n this.stopProgress()\n }\n\n handleTogglePlay = (e: Event) => {\n e.stopPropagation()\n if (this.state.playing) {\n this.sound.pause()\n } else {\n this.sound.play()\n }\n }\n\n startProgress = () => {\n if (!this.interval) {\n this.interval = setInterval(() => {\n this.setState({ progress: this.sound.seek() })\n }, 300)\n }\n }\n\n stopProgress = () => {\n if (this.interval) {\n clearInterval(this.interval)\n this.interval = null\n }\n }\n\n render () {\n return
\n 0 })}>\n \n \n {this.props.captions.map((caption, idx) => {\n const active = this.state.progress > caption.in\n return [\n caption.newLine &&
,\n \n {caption.name && {caption.name}: }\n {caption.text}\n \n ]\n })}\n
\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport VoiceText from '../../../../../lib/VoiceText'\n\nimport type Caption from '../../../../../lib/VoiceText'\nimport { connect } from '../../../../../lib/provider'\n\nimport styles from './index.css'\nimport '../../../../../lib/VoiceText/index.css'\n\ntype Props = {\n mp3: string,\n captions: Caption[],\n sendGaEvent: (Object) => void\n}\n\nexport class _Lydtekst extends Component {\n handlePlay = (position: number) => {\n this.props.sendGaEvent({\n action: 'play',\n label: this.props.mp3,\n value: position\n })\n }\n\n handleStop = (position: number) => {\n this.props.sendGaEvent({\n action: 'stop',\n label: this.props.mp3,\n value: position\n })\n }\n\n render () {\n const propsValidated = !!this.props.mp3 && this.props.captions && this.props.captions.length > 0\n return (\n
\n {propsValidated ? () : (
\n Komponenten mangler nødvendig informasjon\n
)}\n
\n )\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const Lydtekst = connector(_Lydtekst)\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\nimport VoiceText from '../../../../../lib/VoiceText'\n\nimport type Caption from '../../../../../lib/VoiceText'\nimport { connect } from '../../../../../lib/provider'\n\nimport styles from './index.css'\nimport '../../../../../lib/VoiceText/index.css'\n\ntype Props = {\n id: string,\n alt: string,\n mp3: string,\n captions: Caption[],\n load: boolean,\n sendGaEvent: (Object) => void\n}\n\nexport class _BildeLydtekst extends Component {\n handlePlay = (position: number) => {\n this.props.sendGaEvent({\n action: 'play',\n label: this.props.mp3,\n value: position\n })\n }\n\n handleStop = (position: number) => {\n this.props.sendGaEvent({\n action: 'stop',\n label: this.props.mp3,\n value: position\n })\n }\n\n render () {\n const { id, alt, load, mp3, captions } = this.props\n\n const propsValidated = !!mp3 && captions && captions.length > 0\n return (\n
\n
\n \n
\n\n {propsValidated ? (
\n \n
) : (
\n Komponenten mangler nødvendig informasjon\n
)}\n
\n )\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const BildeLydtekst = connector(_BildeLydtekst)\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { ViewportIntersections, HtmlContent } from '@nrk/dh-feature-components'\nimport { connect } from '../../../../lib/provider'\nimport { Person } from './Person'\nimport { Faktaboks } from './Faktaboks'\nimport { Image } from './Image'\nimport { VideoElement } from './VideoElement'\nimport { LudoElement } from './LudoElement'\nimport { Sitat } from './Sitat'\nimport { LevendeStillbilde } from './LevendeStillbilde'\nimport { Inngang } from './Inngang'\nimport { Lydtekst } from './Lydtekst'\nimport { BildeLydtekst } from './BildeLydtekst'\n\n/* styles */\nimport styles from './index.css'\n\n/* types */\nimport type { TextType } from '../../domain'\n\ntype Props = {\n tekst: TextType[],\n blockId: number,\n sendGaEvent: (Object) => void\n}\n\ntype State = {\n loadContent: any,\n visibleContent: any,\n fullyVisibleContent: any\n}\n\nconst LOADABLE_CONTENT = ['image', 'inngang', 'bildelydtekst']\nconst VISIBLE_CONTENT = ['levendeStillbilde']\nconst FULLY_VISIBLE_CONTENT = ['video', 'ludo']\n\nclass _TekstBlokk extends Component {\n trackedKeys = {}\n\n constructor () {\n super()\n this.state = {\n loadContent: [],\n visibleContent: [],\n fullyVisibleContent: []\n }\n }\n\n getContenttype (idx: number) {\n const contentList = this.props.tekst\n if (idx < 0 || idx >= contentList.length) {\n return null\n } else {\n return contentList[idx].type\n }\n }\n\n ensureLoaded (idx: number) {\n const type = this.getContenttype(idx)\n if (LOADABLE_CONTENT.indexOf(type) !== -1) {\n const loadContent = this.state.loadContent\n if (!loadContent[idx]) {\n loadContent[idx] = true\n this.setState({ loadContent })\n }\n }\n }\n\n trackOnlyOnce (key: string, action: string, label: string) {\n if (!this.trackedKeys[key]) {\n this.trackedKeys[key] = true\n this.props.sendGaEvent && this.props.sendGaEvent({ action, label })\n }\n }\n\n handleContentEnter = (element: any, idx: number) => {\n this.ensureLoaded(idx - 2)\n this.ensureLoaded(idx - 1)\n this.ensureLoaded(idx)\n this.ensureLoaded(idx + 1)\n this.ensureLoaded(idx + 2)\n\n const contentList = this.props.tekst\n const content = contentList[idx]\n\n if (VISIBLE_CONTENT.indexOf(content.type) !== -1) {\n const visibleContent = this.state.visibleContent\n if (!visibleContent[idx]) {\n visibleContent[idx] = true\n this.setState({ visibleContent })\n }\n }\n\n const key = this.props.blockId + '-' + idx\n this.trackOnlyOnce(key, 'SHOW_CONTENT', `${key}/${content.type}`)\n }\n\n handleContentLeave = (element: any, idx: number) => {\n const contentList = this.props.tekst\n const content = contentList[idx]\n\n if (VISIBLE_CONTENT.indexOf(content.type) !== -1) {\n const visibleContent = this.state.visibleContent\n if (visibleContent[idx]) {\n visibleContent[idx] = false\n this.setState({ visibleContent })\n }\n }\n }\n\n handleContentChange = (intersections: any[]) => {\n const { fullyVisibleContent } = this.state\n const contentList = this.props.tekst\n let change = false\n\n intersections.forEach((block, idx) => {\n const content = contentList[idx]\n if (FULLY_VISIBLE_CONTENT.indexOf(content.type) === -1) {\n return\n }\n\n const isVisible = !!fullyVisibleContent[idx]\n if (isVisible && block.ratio < 0.05) {\n fullyVisibleContent[idx] = false\n change = true\n } else if (!isVisible && block.isIntersecting && block.ratio > 0.95) {\n fullyVisibleContent[idx] = true\n change = true\n }\n })\n\n if (change) {\n this.setState({ fullyVisibleContent })\n }\n }\n\n render () {\n return \n {\n this.props.tekst.map((element, idx) => {\n switch (element.type) {\n case 'text':\n return \n case 'overskrift':\n return

{element.value}

\n case 'image':\n return \n case 'video':\n const { poster, mp4, webm } = element.value\n return \n case 'ludo':\n return \n case 'person':\n return \n case 'faktaboks':\n return \n case 'sitat':\n return \n case 'levendeStillbilde':\n return \n case 'bildelydtekst':\n return \n case 'lydtekst':\n return \n case 'inngang':\n return \n default:\n return
\n                {JSON.stringify(element, null, 2)}\n              
\n }\n })\n\n }\n \n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const TekstBlokk = connector(_TekstBlokk)\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\n\ntype Props = {\n id: string,\n alt: string,\n caption: string,\n load: boolean\n}\n\nexport class BildeBlokk extends Component {\n render () {\n const { id, alt, caption, load } = this.props\n return
\n
\n \n {caption &&
{caption}
}\n
\n
\n }\n}\n","/** @jsx h */\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\n\nclass SerumImage extends PureComponent {\n render() {\n const _this$props = this.props,\n className = _this$props.className,\n alt = _this$props.alt,\n id = _this$props.id,\n quality = _this$props.quality,\n ratio = _this$props.ratio,\n width = _this$props.width;\n const src = createImageUrl({\n id,\n width,\n quality,\n ratio\n });\n return h(\"img\", {\n className: className,\n src: src,\n alt: alt\n });\n }\n\n}\n\nexport default SerumImage;","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { SerumImage } from '@nrk/dh-feature-components'\n\n/* styles */\nimport styles from './index.css'\nimport { gridAspect } from '../../grid.css'\n\n/* types */\nimport type { SimpleImageType } from '../../domain'\n\ntype Props = {\n images: SimpleImageType[],\n}\n\nexport class DobbelBildeBlokk extends Component {\n render () {\n const { images } = this.props\n if (images.length < 2) {\n return
Denne komponenten krever minst 2 bilder.
\n }\n\n return
\n
\n
\n
\n
\n
\n \n
\n
\n \n {images[0].caption}\n \n
\n
\n
\n
\n \n
\n
\n \n {images[1].caption}\n \n
\n
\n
\n
\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { bem } from '@nrk/dh-utils'\nimport { ViewportIntersections, HtmlContent } from '@nrk/dh-feature-components'\n\n/* styles */\nimport styles from './index.css'\n\n/* types */\nimport type { TextType } from '../../domain'\n\ntype Props = {\n tekst: TextType[],\n}\n\ntype State = {\n visible: boolean\n}\n\nexport class VitenskapBlokk extends Component {\n handleEnter = () => {\n this.setState({ visible: true })\n }\n\n handleLeave = () => {\n this.setState({ visible: false })\n }\n\n render () {\n const { visible } = this.state\n return \n
\n\n
\n
\n
\n\n
\n
\n
\n {\n this.props.tekst.map((contentElement, idx) => {\n switch (contentElement.type) {\n case 'text':\n return \n }\n })\n\n }\n
\n
\n
\n
\n \n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { Video } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\nimport type { VideoType } from '../../domain'\nimport { toVideoSrc } from '../../../common'\n\ntype Props = {\n playing: boolean,\n video: VideoType,\n title: string,\n caption: string\n}\n\nexport class LevendeStillbildeBlokk extends Component {\n render () {\n const { playing, video, title, caption } = this.props\n const vid = toVideoSrc(video)\n\n return
\n
\n \n {caption &&
{caption}
}\n
\n
\n }\n}\n","// @flow @jsx h\n\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\n/* eslint-disable jsx-a11y/aria-role */\n/* eslint-disable compat/compat */\n\nimport { Component, h } from 'preact'\nimport { SmartVideo } from '@nrk/dh-feature-components'\nimport { toVideoSrc } from '../../../common'\n\nimport styles from './index.css'\nimport '@nrk/dh-feature-components/dist/module/video/SmartVideo/index.css'\nimport type { VideoType } from '../../domain'\n\ntype Props = {\n sted: string,\n info: string,\n alt: string,\n horizontal: VideoType,\n vertical: VideoType,\n playing: boolean,\n viewport: { width: number, height: number }\n}\n\nexport class StedintroVideoBlokk extends Component {\n animationElm: HTMLElement\n animation: any\n animationData: any\n lottie: any\n\n componentDidMount () {\n Promise.all([\n require('../../../../lib/wrappers/lottieWrapper').getLottie(),\n fetch('https://static.nrk.no/dh/gfx/2019/sporten/vbm/lottie/sted_moh_mal_ny2.json').then(res => res.json())\n ])\n .then(\n ([lottie, animationData]) => {\n animationData.layers[3].t.d.k[0].s.t = this.props.sted.toUpperCase()\n animationData.layers[4].t.d.k[0].s.t = this.props.info\n\n this.lottie = lottie\n this.animationData = animationData\n })\n }\n\n handleEnter () {\n this.animation = this.lottie.loadAnimation({\n container: this.animationElm, // the dom element that will contain the animation\n renderer: 'svg',\n loop: false,\n autoplay: false,\n rendererSettings: { preserveAspectRatio: 'xMinYMax meet' },\n animationData: this.animationData\n })\n this.animation.setSpeed(1.5)\n this.animation.play()\n }\n\n handleLeave () {\n this.animation.destroy()\n delete this.animation\n }\n\n componentDidUpdate (previousProps: Props) {\n if (this.lottie && !previousProps.playing && this.props.playing) {\n this.handleEnter()\n }\n\n if (this.animation && previousProps.playing && !this.props.playing) {\n this.handleLeave()\n }\n }\n\n isHorizontal = () => {\n if (typeof window !== 'undefined' && window.matchMedia) {\n return window.matchMedia('(min-width: 720px)').matches\n } else {\n return false\n }\n }\n\n render () {\n const { playing, horizontal, vertical, viewport } = this.props\n\n return
\n \n (this.animationElm = elm)}\n aria-label={this.props.sted + ' ' + this.props.info} role='text' />\n
\n }\n}\n","// @flow @jsx h\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\nimport { bem, toArray } from '@nrk/dh-utils'\nimport { ViewportIntersections, SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\n\n/* Types */\nimport type { EpisodeType } from '../../domain'\n\n/* Styles */\nimport styles from './index.css'\n\ntype Props = {\n episoder: EpisodeType[],\n load: boolean\n}\n\ntype State = {\n displayLeft: boolean,\n displayRight: boolean,\n loadContent: boolean[],\n visibleContent: boolean[]\n}\n\ntype LinkProps = {\n active: boolean,\n url: string,\n className: string,\n children: any\n}\n\nfunction Link (props: LinkProps) {\n if (props.active) {\n return \n {props.children}\n \n } else {\n return
{props.children}
\n }\n}\n\nexport class EpisidevelgerBlokk extends Component {\n // looping = false\n elm: any\n sweetScroll: any\n\n constructor () {\n super()\n this.state = {\n displayLeft: true,\n displayRight: true,\n loadContent: [],\n visibleContent: []\n }\n }\n\n componentDidMount () {\n if (!('scrollBehavior' in this.elm.style && this.elm.scrollTo)) {\n this.sweetScroll = require('../../../../lib/wrappers/sweetScrollWrapper')\n .getSweetScroll()\n .then(SweetScroll => new SweetScroll({ horizontal: true }, this.elm))\n }\n this.hideScrollbar()\n this.updateSizes()\n window.addEventListener('resize', this.updateSizes)\n\n this.scrollTo(this.elm.children[this.getStartIndex()])\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.updateSizes)\n }\n\n updateSizes = () => {\n /* Calculating width of spacers. Too complicated to do in css */\n const containerWidth = this.elm.offsetWidth\n const containerLeftHalf = containerWidth / 2\n const containerRightHalf = containerWidth / 2\n\n const firstImage = this.elm.children[1]\n const lastImage = this.elm.children[this.elm.children.length - 2]\n\n this.elm.style.setProperty('--ev-component-width', `${this.elm.offsetWidth}px`)\n this.elm.style.setProperty('--ev-left-spacer-width', `${containerLeftHalf - firstImage.offsetWidth / 2}px`)\n this.elm.style.setProperty('--ev-right-spacer-width', `${containerRightHalf - lastImage.offsetWidth / 2}px`)\n }\n\n hideScrollbar () {\n const barHeight = this.elm.offsetHeight - this.elm.clientHeight\n this.elm.style.marginBottom = `-${barHeight}px`\n this.elm.style.maxHeight = `calc(100% + ${barHeight}px)`\n }\n\n getStartIndex () {\n // Calculate width of left half of container, including scroll padding\n const containerWidth = this.elm.offsetWidth\n const containerLeftHalf = containerWidth / 2\n\n const firstImage = this.elm.children[1]\n const secondImage = this.elm.children[2]\n\n if (containerLeftHalf > firstImage.offsetWidth + secondImage.offsetWidth / 2) {\n // Container is wide enough to show first image, when second image is selected\n return 2\n } else {\n return 1\n }\n }\n\n scrollTo (image: HTMLElement, smooth: boolean = false) {\n const elementCenter = image.offsetLeft + image.offsetWidth / 2\n const containerWidth = this.elm.offsetWidth\n const left = elementCenter - containerWidth / 2\n if (this.sweetScroll) {\n this.sweetScroll.then(scroll => (scroll.to({ left })))\n } else {\n this.elm.scrollTo({ left, behavior: smooth ? 'smooth' : 'instant' })\n }\n }\n\n findActiveImage () {\n const containerWidth = this.elm.offsetWidth\n const scrollLeft = this.elm.scrollLeft\n const matching = toArray(this.elm.children).filter(image => {\n const leftOfCenter = image.offsetLeft < scrollLeft + containerWidth / 2\n const rightOfCenter = image.offsetLeft + image.offsetWidth > scrollLeft + containerWidth / 2\n return leftOfCenter && rightOfCenter\n })\n\n if (matching && matching.length > 0) {\n return matching[0]\n } else {\n return undefined\n }\n }\n\n setDisplayLeft (displayLeft: boolean) {\n if (displayLeft !== this.state.displayLeft) {\n this.setState({ displayLeft })\n }\n }\n\n setDisplayRight (displayRight: boolean) {\n if (displayRight !== this.state.displayRight) {\n this.setState({ displayRight })\n }\n }\n\n handleScrollLeft = () => {\n const activeImage = this.findActiveImage()\n if (activeImage && activeImage.previousSibling) {\n this.scrollTo(activeImage.previousSibling, true)\n }\n }\n\n handleScrollRight = () => {\n const activeImage = this.findActiveImage()\n if (activeImage && activeImage.nextSibling) {\n this.scrollTo(activeImage.nextSibling, true)\n }\n }\n\n handleImageChange = (intersections: any[]) => {\n const images = intersections.slice(1, intersections.length - 1)\n\n const visibleContent = images.map((i, idx) => {\n const current = images[idx].isIntersecting\n const next = images[idx + 1] && images[idx + 1].isIntersecting\n const prev = images[idx - 1] && images[idx - 1].isIntersecting\n return current || next || prev\n })\n\n this.setState({ visibleContent: visibleContent })\n\n const leftImage = images[0]\n const rightImage = images[images.length - 1]\n this.setDisplayLeft(leftImage.ratio < 0.95)\n this.setDisplayRight(rightImage.ratio < 0.95)\n }\n\n render () {\n const { episoder, load } = this.props\n const { displayLeft, displayRight, visibleContent } = this.state\n\n return (\n
\n
\n

Vitenskapen bak medaljen

\n
\n
\n (this.elm = intersectionsElm.elm)}>\n
\n {\n episoder.map((episode, idx) => (\n \n
\n \n \n {episode.published !== 'true' &&\n
Kommer snart
}\n
\n
\n
\n {episode.title}\n
\n
\n {episode.subtitle}\n
\n
\n \n
\n
\n
))\n }\n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n )\n }\n}\n","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/** @jsx h */\n\n/* eslint-disable react/no-deprecated */\n\n/* eslint-disable promise/catch-or-return */\n\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact';\nimport { createImageUrl, createResponsiveSrcSet } from '../../helpers';\nexport default class SerumLazySmartPicture extends Component {\n constructor() {\n super(...arguments);\n\n _defineProperty(this, \"visibleImage\", void 0);\n\n _defineProperty(this, \"visibleSource\", void 0);\n\n _defineProperty(this, \"loadImage\", () => {\n const loaderImage = new Image();\n const dataset = this.getSourceDataset();\n loaderImage.sizes = this.visibleImage.sizes || '';\n loaderImage.srcset = dataset.srcset || '';\n\n if (dataset.src) {\n loaderImage.src = dataset.src;\n }\n\n if (loaderImage.decode) {\n // Use Image Decode API to decode image upfront if available\n // (Unsure if this works when transferring src to other image, but worth the try)\n loaderImage.decode().then(() => this.updateImage(loaderImage));\n } else if (loaderImage.complete) {\n this.updateImage(loaderImage);\n } else {\n loaderImage.onload = () => this.updateImage(loaderImage);\n }\n });\n }\n\n componentDidMount() {\n if (this.props.load) {\n setTimeout(this.loadImage, 100);\n }\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.load && !this.props.load) {\n this.loadImage();\n }\n }\n\n shouldComponentUpdate() {\n return false;\n }\n\n getMediaQuery() {\n return this.props.mediaQuery || '(min-aspect-ratio: 4/5)';\n }\n\n getSourceDataset() {\n if (window.matchMedia(this.getMediaQuery()).matches) {\n return this.visibleSource.dataset;\n } else {\n return this.visibleImage.dataset;\n }\n }\n\n updateImage(loaderImage) {\n requestAnimationFrame(() => {\n const src = loaderImage.currentSrc || loaderImage.src;\n this.visibleImage.src = src;\n\n if (this.visibleSource) {\n this.visibleSource.srcset = src;\n }\n });\n }\n\n render() {\n const _this$props = this.props,\n className = _this$props.className,\n alt = _this$props.alt,\n horizontal = _this$props.horizontal,\n vertical = _this$props.vertical,\n sizes = _this$props.sizes;\n const fallbackSrc = createImageUrl(_objectSpread({}, horizontal, {\n width: 1600,\n ratio: horizontal.ratio || '16:9'\n }));\n const placeholderVerticalUrl = createImageUrl(_objectSpread({}, vertical, {\n width: 100,\n ratio: vertical.ratio || '3:4'\n }));\n const placeholderHorizontalUrl = createImageUrl(_objectSpread({}, horizontal, {\n width: 100,\n ratio: horizontal.ratio || '16:9'\n }));\n const horizontalSourceSet = createResponsiveSrcSet(_objectSpread({}, horizontal, {\n ratio: horizontal.ratio || '16:9'\n }));\n const verticalSourceSet = createResponsiveSrcSet(_objectSpread({}, vertical, {\n ratio: vertical.ratio || '3:4'\n }));\n return h(\"picture\", {\n className: className\n }, h(\"source\", {\n media: this.getMediaQuery(),\n srcSet: placeholderHorizontalUrl,\n \"data-srcset\": horizontalSourceSet,\n ref: elm => this.visibleSource = elm\n }), h(\"img\", {\n src: placeholderVerticalUrl,\n \"data-src\": fallbackSrc,\n \"data-srcset\": verticalSourceSet,\n alt: alt,\n sizes: sizes || '100vw',\n ref: elm => this.visibleImage = elm\n }));\n }\n\n}","// @flow @jsx h\n\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\n/* eslint-disable jsx-a11y/aria-role */\n/* eslint-disable compat/compat */\n\nimport { Component, h } from 'preact'\nimport { Video, SerumLazySmartPicture } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\n\ntype Props = {\n sted: string,\n info: string,\n alt: string,\n polopolyId: string,\n load: boolean,\n playing: boolean\n}\n\nexport class StedintroBildeBlokk extends Component {\n animationElm: HTMLElement\n animationData: any\n lottie: any\n animation: any\n video: Video\n\n componentDidMount () {\n Promise.all([\n require('../../../../lib/wrappers/lottieWrapper').getLottie(),\n fetch('https://static.nrk.no/dh/gfx/2019/sporten/vbm/lottie/sted_moh_mal_ny2.json').then(res => res.json())\n ])\n .then(\n ([lottie, animationData]) => {\n animationData.layers[3].t.d.k[0].s.t = this.props.sted.toUpperCase()\n animationData.layers[4].t.d.k[0].s.t = this.props.info\n\n this.lottie = lottie\n this.animationData = animationData\n })\n }\n\n handleEnter () {\n this.animation = this.lottie.loadAnimation({\n container: this.animationElm, // the dom element that will contain the animation\n renderer: 'svg',\n loop: false,\n autoplay: false,\n rendererSettings: { preserveAspectRatio: 'xMinYMax meet' },\n animationData: this.animationData\n })\n this.animation.setSpeed(1.5)\n this.animation.play()\n }\n\n handleLeave () {\n this.animation.destroy()\n delete this.animation\n }\n\n componentDidUpdate (previousProps: Props) {\n if (this.lottie && !previousProps.playing && this.props.playing) {\n this.handleEnter()\n }\n\n if (this.animation && previousProps.playing && !this.props.playing) {\n this.handleLeave()\n }\n }\n\n render () {\n const { load, polopolyId } = this.props\n\n return
\n
\n \n (this.animationElm = elm)}\n aria-label={this.props.sted + ' ' + this.props.info} role='text'\n />\n
\n
\n }\n}\n","// @flow @jsx h\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\nimport { bem, toArray } from '@nrk/dh-utils'\nimport { ViewportIntersections, SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\n\nimport type { SimpleImageType } from '../../domain'\n\nconst VERTICAL_ASPECTS = ['3:4', '34']\n\ntype Props = {\n images: SimpleImageType[],\n load: boolean\n}\n\ntype State = {\n displayLeft: boolean,\n displayRight: boolean,\n loadContent: boolean[],\n visibleContent: boolean[]\n}\n\nexport class ImageGallery extends Component {\n // looping = false\n elm: any\n sweetScroll: any\n\n constructor () {\n super()\n this.state = {\n displayLeft: true,\n displayRight: true,\n loadContent: [],\n visibleContent: []\n }\n }\n\n componentDidMount () {\n if (!('scrollBehavior' in this.elm.style && this.elm.scrollTo)) {\n this.sweetScroll = require('../../../../lib/wrappers/sweetScrollWrapper')\n .getSweetScroll()\n .then(SweetScroll => new SweetScroll({ horizontal: true }, this.elm))\n }\n this.hideScrollbar()\n this.updateSizes()\n window.addEventListener('resize', this.updateSizes)\n\n this.scrollTo(this.elm.children[this.getStartIndex()])\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.updateSizes)\n }\n\n updateSizes = () => {\n /* Calculating width of spacers. Too complicated to do in css */\n const containerWidth = this.elm.offsetWidth\n const containerLeftHalf = containerWidth / 2\n const containerRightHalf = containerWidth / 2\n\n const firstImage = this.elm.children[1]\n const lastImage = this.elm.children[this.elm.children.length - 2]\n\n this.elm.style.setProperty('--bs-component-width', `${this.elm.offsetWidth}px`)\n this.elm.style.setProperty('--bs-left-spacer-width', `${containerLeftHalf - firstImage.offsetWidth / 2}px`)\n this.elm.style.setProperty('--bs-right-spacer-width', `${containerRightHalf - lastImage.offsetWidth / 2}px`)\n }\n\n hideScrollbar () {\n const barHeight = this.elm.offsetHeight - this.elm.clientHeight\n this.elm.style.marginBottom = `-${barHeight}px`\n this.elm.style.maxHeight = `calc(100% + ${barHeight}px)`\n }\n\n getStartIndex () {\n // Calculate width of left half of container, including scroll padding\n const containerWidth = this.elm.offsetWidth\n const containerLeftHalf = containerWidth / 2\n\n const firstImage = this.elm.children[1]\n const secondImage = this.elm.children[2]\n\n if (containerLeftHalf > firstImage.offsetWidth + secondImage.offsetWidth / 2) {\n // Container is wide enough to show first image, when second image is selected\n return 2\n } else {\n return 1\n }\n }\n\n scrollTo (image: HTMLElement, smooth: boolean = false) {\n const elementCenter = image.offsetLeft + image.offsetWidth / 2\n const containerWidth = this.elm.offsetWidth\n const left = elementCenter - containerWidth / 2\n if (this.sweetScroll) {\n this.sweetScroll.then(scroll => (scroll.to({ left })))\n } else {\n this.elm.scrollTo({ left, behavior: smooth ? 'smooth' : 'instant' })\n }\n }\n\n findActiveImage () {\n const containerWidth = this.elm.offsetWidth\n const scrollLeft = this.elm.scrollLeft\n const matching = toArray(this.elm.children).filter(image => {\n const leftOfCenter = image.offsetLeft < scrollLeft + containerWidth / 2\n const rightOfCenter = image.offsetLeft + image.offsetWidth > scrollLeft + containerWidth / 2\n return leftOfCenter && rightOfCenter\n })\n\n if (matching && matching.length > 0) {\n return matching[0]\n } else {\n return undefined\n }\n }\n\n setDisplayLeft (displayLeft: boolean) {\n if (displayLeft !== this.state.displayLeft) {\n this.setState({ displayLeft })\n }\n }\n\n setDisplayRight (displayRight: boolean) {\n if (displayRight !== this.state.displayRight) {\n this.setState({ displayRight })\n }\n }\n\n handleScrollLeft = () => {\n const activeImage = this.findActiveImage()\n if (activeImage && activeImage.previousSibling) {\n this.scrollTo(activeImage.previousSibling, true)\n }\n }\n\n handleScrollRight = () => {\n const activeImage = this.findActiveImage()\n if (activeImage && activeImage.nextSibling) {\n this.scrollTo(activeImage.nextSibling, true)\n }\n }\n\n handleImageChange = (intersections: any[]) => {\n const images = intersections.slice(1, intersections.length - 1)\n images.forEach((image, idx) => {\n if (image.isIntersecting) {\n this.ensureLoaded(idx)\n }\n })\n\n const visibleContent = images.map((i, idx) => {\n const current = images[idx].isIntersecting\n const next = images[idx + 1] && images[idx + 1].isIntersecting\n const prev = images[idx - 1] && images[idx - 1].isIntersecting\n return current || next || prev\n })\n\n this.setState({ visibleContent: visibleContent })\n\n const leftImage = images[0]\n const rightImage = images[images.length - 1]\n this.setDisplayLeft(leftImage.ratio < 0.95)\n this.setDisplayRight(rightImage.ratio < 0.95)\n }\n\n ensureLoaded = (idx: number) => {\n const { loadContent } = this.state\n\n const start = Math.max(idx - 1, 0)\n const end = Math.min(idx + 1, this.props.images.length - 1)\n\n let changed = false\n for (let i = start; i <= end; i++) {\n if (!loadContent[i]) {\n loadContent[i] = true\n changed = true\n }\n }\n\n if (changed) {\n this.setState({ loadContent })\n }\n }\n\n render () {\n const { images } = this.props\n const { displayLeft, displayRight, visibleContent } = this.state\n\n return (\n
\n (this.elm = intersectionsElm.elm)}>\n
\n {\n images.map((image, idx) => (\n \n
\n \n
\n {image.caption}\n
\n
\n
))\n }\n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { Video, ViewportIntersections, SerumLazyResponsivePicture, HtmlContent } from '@nrk/dh-feature-components'\nimport { bem } from '@nrk/dh-utils'\n\nimport styles from './index.css'\n\nimport type { VisuellHistorieCardType } from '../../domain'\nimport { connect } from '../../../../lib/provider'\nimport { toVideoSrc } from '../../../common'\n\ntype Props = {\n cards: VisuellHistorieCardType[],\n align: 'left' | 'right',\n load: boolean,\n active: boolean,\n blockId: number,\n sendGaEvent: (Object) => void\n}\n\ntype State = {\n activeIdx: number,\n storyMargin: string\n}\n\nclass _VisuellHistorie extends Component {\n elm: HTMLElement\n trackedKeys = {}\n\n constructor () {\n super()\n this.state = {\n activeIdx: 0,\n storyMargin: '0px'\n }\n }\n\n componentDidMount () {\n this.updateSizes()\n window.addEventListener('resize', this.updateSizes)\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.updateSizes)\n }\n\n updateSizes = () => {\n const firstImage = this.elm.children[0].children[0]\n const storyMargin = window.getComputedStyle(firstImage).top\n this.setState({ storyMargin })\n }\n\n trackOnlyOnce (key: string, action: string, label: string) {\n if (!this.trackedKeys[key]) {\n this.trackedKeys[key] = true\n this.props.sendGaEvent && this.props.sendGaEvent({ action, label })\n }\n }\n\n handleChange = (intersections: any[]) => {\n const activeIntersection = intersections\n .map((intersection, idx) => ({ ...intersection, idx }))\n .filter(i => i.idx % 2 === 1)\n .filter(i => i.isIntersecting && i.ratio > 0)\n .pop()\n\n if (!activeIntersection) {\n return\n }\n\n const activeIdx = (activeIntersection.idx - 1) / 2\n if (activeIdx !== this.state.activeIdx) {\n this.setState({ activeIdx })\n\n const key = this.props.blockId + '-' + activeIdx\n this.trackOnlyOnce(key, 'SHOW_CONTENT', `${key}/vh-card`)\n }\n }\n\n render () {\n const { cards, align = 'left', active } = this.props\n const { storyMargin = '0px', activeIdx } = this.state\n const negativeStoryMargin = storyMargin.startsWith('-') ? storyMargin.substring(1) : '-' + storyMargin\n const rootMargin = `${negativeStoryMargin} 0px ${negativeStoryMargin} 0px`\n\n return
(this.elm = elm)}>\n \n {\n cards.map((card, index) => {\n const visible = index <= activeIdx && index > activeIdx - 2\n const first = index === 0\n const last = index === cards.length - 1\n const current = index === activeIdx\n\n const video = card.video && toVideoSrc(card.video)\n\n return [\n \n {\n card.polopolyId && \n }\n {\n video && \n }\n
,\n \n
\n \n
\n
\n ]\n })\n }\n \n
\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const VisuellHistorie = connector(_VisuellHistorie)\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { Video, ViewportIntersections, SerumLazyResponsivePicture, HtmlContent } from '@nrk/dh-feature-components'\nimport { bem } from '@nrk/dh-utils'\n\nimport styles from './index.css'\n\nimport type { VideoType, VisuellHistorieCardType } from '../../domain'\nimport { connect } from '../../../../lib/provider'\nimport { toVideoSrc } from '../../../common'\n\nfunction round (num: number, decimals: number) {\n const multiplier = Math.pow(10.0, decimals)\n return Math.round(num * multiplier) / multiplier\n}\n\nfunction easeOutQuad (t) {\n return t * (2 - t)\n}\n\nfunction clamp (n, min, max) {\n return Math.max(Math.min(n, max), min)\n}\n\ntype Props = {\n cards: VisuellHistorieCardType[],\n video: VideoType,\n align: 'left' | 'right',\n load: boolean,\n active: boolean,\n blockId: number,\n sendGaEvent: (Object) => void\n}\n\ntype State = {\n activeIdx: number,\n storyMargin: string,\n started: boolean\n}\n\nclass _VideoHistorie extends Component {\n elm: HTMLElement\n trackedKeys = {}\n videoElm: any\n duration: number\n currentTime: number\n targetTime: number\n unmounting = false\n easingDuration = 0.6\n\n constructor () {\n super()\n this.state = {\n activeIdx: -1,\n storyMargin: '0px',\n started: false\n }\n }\n\n componentDidMount () {\n this.updateSizes()\n window.addEventListener('resize', this.updateSizes)\n\n this.videoElm.elm.setAttribute('autobuffer', 'autobuffer')\n this.enableVideoSeek()\n this.duration = 0\n this.videoElm.elm.currentTime = 0\n this.targetTime = 0\n }\n\n componentWillUnmount () {\n this.unmounting = true\n window.removeEventListener('resize', this.updateSizes)\n }\n\n calculateTargetTime (idx) {\n const { cards } = this.props\n const card = cards[idx]\n if (!card) {\n return null\n }\n\n if (card.targetTime) {\n return parseFloat(card.targetTime)\n } else {\n const length = cards.length - 1\n return this.duration / length * idx\n }\n }\n\n componentDidUpdate (previousProps: Props, previousState: State) {\n const { activeIdx } = this.state\n const { active } = this.props\n if (activeIdx !== previousState.activeIdx) {\n const targetTime = this.calculateTargetTime(activeIdx)\n if (typeof targetTime === 'number') {\n this.targetTime = targetTime\n }\n }\n\n if (active && !previousProps.active) {\n this.enableVideoSeek()\n }\n }\n\n updateSizes = () => {\n const firstImage = this.elm && this.elm.querySelector('.' + styles.videoHistorie__videoItem)\n if (!firstImage) {\n return\n }\n\n const storyMargin = window.getComputedStyle(firstImage).top\n\n if (storyMargin !== this.state.storyMargin) {\n this.setState({ storyMargin })\n }\n }\n\n getSpeed (diff: number) {\n const normalSpeed = clamp(diff / this.easingDuration, -1, 1)\n const multiplier = this.shouldFastForward(diff) ? 2 : 1\n return multiplier * easeOutQuad(normalSpeed)\n }\n\n shouldFastForward (diff: number) {\n if (diff > 0) {\n const targetTime = this.calculateTargetTime(this.state.activeIdx - 1)\n return targetTime && (this.videoElm.elm.currentTime < targetTime)\n } else {\n const targetTime = this.calculateTargetTime(this.state.activeIdx + 1)\n return targetTime && (this.videoElm.elm.currentTime > targetTime)\n }\n }\n\n enableVideoSeek () {\n let prevTime\n const loop = (timestamp) => {\n if (this.unmounting) {\n return\n }\n if (!prevTime) {\n prevTime = timestamp\n }\n\n if (typeof this.targetTime === 'number' && this.videoElm.elm.currentTime !== this.targetTime) {\n /* Approximate normal playback */\n const dt = (timestamp - prevTime) / 1000\n const diff = this.targetTime - this.videoElm.elm.currentTime\n const speed = this.getSpeed(diff)\n\n const nextTime = round(this.videoElm.elm.currentTime + dt * speed, 2.0)\n\n if (speed >= 0) {\n // Use normal playback for better Firefox support\n if (Math.abs(nextTime - this.targetTime) < 0.1) {\n this.videoElm.pause()\n this.videoElm.elm.currentTime = this.targetTime\n } else if (this.videoElm.elm.currentTime !== nextTime) {\n this.videoElm.elm.playbackRate = speed\n if (!this.videoElm.elm.playing) {\n this.videoElm.elm.play()\n }\n // this.videoElm.seek(nextTime)\n // this.videoElm.elm.currentTime = nextTime\n }\n } else {\n this.videoElm.pause()\n if (Math.abs(nextTime - this.targetTime) < 0.1) {\n this.videoElm.elm.currentTime = this.targetTime\n } else if (this.videoElm.elm.currentTime !== nextTime) {\n this.videoElm.elm.currentTime = nextTime\n }\n }\n }\n\n prevTime = timestamp\n if (this.props.active) {\n requestAnimationFrame(loop)\n }\n }\n requestAnimationFrame(loop)\n }\n\n trackOnlyOnce (key: string, action: string, label: string) {\n if (!this.trackedKeys[key]) {\n this.trackedKeys[key] = true\n this.props.sendGaEvent && this.props.sendGaEvent({ action, label })\n }\n }\n\n handleChange = (intersections: any[]) => {\n const activeIntersection = intersections\n .map((intersection, idx) => ({ ...intersection, idx }))\n .filter(i => i.idx % 2 === 1)\n .filter(i => i.isIntersecting && i.ratio > 0)\n .pop()\n\n if (!activeIntersection) {\n return\n }\n\n const activeIdx = (activeIntersection.idx - 1) / 2\n if (activeIdx !== this.state.activeIdx) {\n this.setState({ activeIdx })\n\n const key = this.props.blockId + '-' + activeIdx\n this.trackOnlyOnce(key, 'SHOW_CONTENT', `${key}/vh-card`)\n }\n }\n\n handleDurationChange = (duration: number) => {\n this.duration = duration\n }\n\n handlePlay = () => {\n // Set video as started to cancle playback. Playback should be controlled by cards (activeIdx)\n this.setState({ started: true })\n }\n\n render () {\n const { cards, align = 'left', active, video } = this.props\n const { storyMargin = '0px', activeIdx } = this.state\n const negativeStoryMargin = storyMargin.startsWith('-') ? storyMargin.substring(1) : '-' + storyMargin\n const rootMargin = `${negativeStoryMargin} 0px ${negativeStoryMargin} 0px`\n\n const vid = toVideoSrc(video)\n\n return
(this.elm = elm)}>\n \n {\n cards.map((card, index) => {\n const visible = index <= activeIdx && index > activeIdx - 2\n const first = index === 0\n const last = index === cards.length - 1\n const current = index === activeIdx\n return [\n \n \n
,\n \n
\n \n
\n
\n ]\n })\n }\n
\n (this.videoElm = elm)}\n playing={this.props.active && !this.state.started}\n poster={vid.poster}\n sources={vid.sources}\n className={styles.videoHistorie__video}\n muted\n playsInline\n disableRemotePlayback\n preload='none'\n onPlay={this.handlePlay}\n onDurationChange={this.unmounting ? null : this.handleDurationChange} />\n
\n \n
\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const VideoHistorie = connector(_VideoHistorie)\n","// @flow @jsx h\nimport { Component, h } from 'preact'\nimport { ViewportIntersections, SerumLazyResponsivePicture, HtmlContent } from '@nrk/dh-feature-components'\nimport { bem } from '@nrk/dh-utils'\n\nimport styles from './index.css'\n\nimport type { VisuellHistorieCardType } from '../../domain'\nimport { connect } from '../../../../lib/provider'\n\ntype Props = {\n cards: VisuellHistorieCardType[],\n align: 'left' | 'right',\n load: boolean,\n active: boolean,\n blockId: number,\n sendGaEvent: (Object) => void\n}\n\ntype State = {\n activeIdx: number,\n storyMargin: string\n}\n\nclass _VisuellHistorieScroll extends Component {\n elm: HTMLElement\n trackedKeys = {}\n\n constructor () {\n super()\n this.state = {\n activeIdx: 0,\n storyMargin: '0px'\n }\n }\n\n componentDidMount () {\n this.updateSizes()\n window.addEventListener('resize', this.updateSizes)\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.updateSizes)\n }\n\n updateSizes = () => {\n const firstImage = this.elm.children[0].children[0]\n const storyMargin = window.getComputedStyle(firstImage).top\n this.setState({ storyMargin })\n }\n\n trackOnlyOnce (key: string, action: string, label: string) {\n if (!this.trackedKeys[key]) {\n this.trackedKeys[key] = true\n this.props.sendGaEvent && this.props.sendGaEvent({ action, label })\n }\n }\n\n handleChange = (intersections: any[]) => {\n const activeIntersection = intersections\n .map((intersection, idx) => ({ ...intersection, idx }))\n .filter(i => i.idx % 2 === 1)\n .filter(i => i.isIntersecting && i.ratio > 0)\n .pop()\n\n if (!activeIntersection) {\n return\n }\n\n const activeIdx = (activeIntersection.idx - 1) / 2\n if (activeIdx !== this.state.activeIdx) {\n this.setState({ activeIdx })\n\n const key = this.props.blockId + '-' + activeIdx\n this.trackOnlyOnce(key, 'SHOW_CONTENT', `${key}/vh-card`)\n }\n }\n\n componentDidUpdate () {\n const { cards } = this.props\n const { activeIdx } = this.state\n if (activeIdx > -1 && activeIdx < cards.length) {\n const card = cards[activeIdx]\n this.elm.style.setProperty('--vhs-position', card.position + '%')\n }\n }\n\n render () {\n const { cards, align = 'left', active } = this.props\n const { storyMargin = '0px', activeIdx } = this.state\n const negativeStoryMargin = storyMargin.startsWith('-') ? storyMargin.substring(1) : '-' + storyMargin\n const rootMargin = `${negativeStoryMargin} 0px ${negativeStoryMargin} 0px`\n const activeCard = cards[activeIdx]\n\n return
(this.elm = elm)}>\n \n {\n cards.map((card, index) => {\n const visible = index <= activeIdx && index > activeIdx - 2\n const first = index === 0\n const last = index === cards.length - 1\n const current = index === activeIdx\n return [\n \n \n
,\n \n
\n \n
\n
\n ]\n })\n }\n \n
\n }\n}\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const VisuellHistorieScroll = connector(_VisuellHistorieScroll)\n","// @flow @jsx h\n\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\n\ntype Person = {\n navn: string,\n epost: string\n}\n\ntype Group = {\n gruppenavn: string,\n personer: Person[]\n}\n\ntype FooterType = {\n credits: Group[],\n published: string,\n facebookUrl: string,\n twitterUrl: string\n}\n\ntype Props = {\n footer: FooterType\n}\n\nexport class Footer extends Component {\n render () {\n const { footer } = this.props\n const { credits, published, facebookUrl, twitterUrl } = footer\n return
\n\n {\n credits.map((group, idx) => {\n return
\n

{group.gruppenavn}

\n
    \n {group.personer.map((person, idx) => {\n if (person.epost) {\n return
  • {person.navn}
  • \n } else {\n return
  • {person.navn}
  • \n }\n })}\n
\n
\n })\n }\n\n
{published}
\n
\n
\n \n Gå til nrk.no\n
\n\n \n
\n
\n }\n}\n","// @flow @jsx h\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\nimport { SerumResponsivePicture, HtmlContent } from '@nrk/dh-feature-components'\n\ntype Props = {\n byline: string,\n bylinebilde: string,\n load: boolean\n}\n\nexport class Byline extends Component {\n render () {\n const { byline, bylinebilde, load } = this.props\n return
\n
\n
\n \n
\n \n Journalist\n
\n
\n }\n}\n","// @flow @jsx h\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\n// import { bem, toArray } from '@nrk/dh-utils'\n// import { ViewportIntersections, SerumLazyResponsivePicture } from '@nrk/dh-feature-components'\n\nimport styles from './index.css'\n\nimport type { SimpleGalleryType } from '../../domain'\nimport { HtmlContent } from '@nrk/dh-feature-components'\nimport Scrollchor from 'preact-scrollchor'\n\ntype Props = {\n groups: SimpleGalleryType[],\n arrowText: string,\n overskrift: string,\n nextChapter: string,\n shortcut: string,\n load: boolean\n}\n\ntype State = {\n loadContent: boolean[],\n}\n\nexport class SimpleGallery extends Component {\n // looping = false\n elm: any\n sweetScroll: any\n\n constructor () {\n super()\n this.state = {\n loadContent: []\n }\n }\n\n componentDidMount () {\n window.addEventListener('resize', this.updateSizes)\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.updateSizes)\n }\n\n render () {\n const { groups, arrowText, overskrift, nextChapter, shortcut } = this.props\n return (\n\n
\n {shortcut &&\n  \n }\n

{overskrift}

\n {arrowText &&\n
\n
\n  \n
\n {arrowText}\n
\n }\n
\n
    \n {\n groups.map((image, idx) => (\n
  • \n
    \n
    \n {`Bilde\n {image.imageText && (\n {image.imageText}\n ) }\n
    \n

    {image.navn}

    \n
    \n
    \n Født: {image.born}\n
    \n
    \n
    \n \n
    \n
    \n
  • \n ))\n }\n
\n
\n  \n
\n\n )\n }\n}\n\n/*\n
\n \n
\n {image.caption}\n
\n
\n */\n\n/*\n
\n \n
\n {\n groups.map((image, idx) => (\n \n \n {image.navn}\n \n\n
))\n }\n\n \n \n
\n*/\n","function create() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var root = opts.root;\n\n\n var getRect = function getRect() {\n if (root instanceof Element) {\n var rect = root.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n };\n\n var subscribe = function subscribe(observer) {\n var isDynamicViewport = false;\n var isTouching = false;\n var rect = { width: -1, height: -1 };\n\n var listeners = {\n orientationchange: function orientationchange() {\n rect = { width: -1, height: -1 };\n },\n resize: function resize() {\n var prevRect = rect;\n\n rect = getRect();\n\n if (isDynamicViewport && rect.height < prevRect.height) {\n rect.height = prevRect.height;\n }\n\n observer.next(rect);\n },\n scroll: function scroll() {\n if (isTouching) {\n isDynamicViewport = true;\n window.removeEventListener('scroll', listeners.scroll);\n }\n },\n touchstart: function touchstart() {\n isTouching = true;\n },\n touchend: function touchend() {\n isTouching = false;\n }\n };\n\n window.addEventListener('orientationchange', listeners.orientationchange);\n window.addEventListener('resize', listeners.resize);\n window.addEventListener('scroll', listeners.scroll);\n window.addEventListener('touchstart', listeners.touchstart);\n window.addEventListener('touchend', listeners.touchend);\n\n // Trigger initial \"resize\"\n listeners.resize();\n\n return {\n unsubscribe: function unsubscribe() {\n window.removeEventListener('orientationchange', listeners.orientationchange);\n window.removeEventListener('resize', listeners.resize);\n window.removeEventListener('scroll', listeners.scroll);\n window.removeEventListener('touchstart', listeners.touchstart);\n window.removeEventListener('touchend', listeners.touchend);\n }\n };\n };\n\n return { subscribe: subscribe };\n}\n\nvar index = { create: create };\n\nexport { create };\nexport default index;\n","// @flow\n\n/** @jsx h */\n\nimport MaxViewportObservable from '@nrk/max-viewport-observable'\nimport { Component, h } from 'preact'\n\ntype Props = {\n height?: string,\n onViewportChange: (viewport: any) => void\n}\n\nexport default class MaxViewportRect extends Component {\n dispose: () => void\n elm: HTMLDivElement\n viewport$: any\n\n componentDidMount () {\n this.viewport$ = MaxViewportObservable.create({\n root: this.elm\n })\n\n this.dispose = this.viewport$.subscribe({\n next: (viewport) => {\n this.props.onViewportChange(viewport)\n }\n })\n }\n\n componentWillUnmount () {\n this.dispose()\n }\n\n render () {\n const height = this.props.height || 100\n const inlineStyle = { height: `${height}vh`, width: '100%', position: 'absolute' }\n return
(this.elm = elm)} style={inlineStyle} />\n }\n}\n","// @flow @jsx h\nimport { h, Component } from 'preact'\nimport { bem } from '@nrk/dh-utils'\nimport { ViewportIntersections, HtmlContent } from '@nrk/dh-feature-components'\nimport { connect } from '../../lib/provider'\nimport { Intro } from './Intro'\nimport { TekstBlokk } from './blokker/TekstBlokk'\nimport { BildeBlokk } from './blokker/BildeBlokk'\nimport { DobbelBildeBlokk } from './blokker/DobbelBildeBlokk'\nimport { VitenskapBlokk } from './blokker/VitenskapBlokk'\nimport { LevendeStillbildeBlokk } from './blokker/LevendeStillbildeBlokk'\nimport { StedintroVideoBlokk } from './blokker/StedintroVideoBlokk'\nimport { EpisidevelgerBlokk } from './blokker/EpisodevelgerBlokk'\nimport { StedintroBildeBlokk } from './blokker/StedintroBildeBlokk'\nimport { ImageGallery } from './blokker/ImageGallery'\nimport { VisuellHistorie } from './blokker/VisuellHistorie'\nimport { VideoHistorie } from './blokker/VideoHistorie'\nimport { VisuellHistorieScroll } from './blokker/VisuellHistorieScroll'\nimport { Footer } from './Footer'\nimport { Byline } from './Byline'\nimport { SimpleGallery } from './blokker/SimpleGallery'\n\n/* types */\nimport type { Doc } from './domain'\nimport MaxViewportRect from './MaxViewportRect'\n\n/* style */\nimport styles from './App.css'\n\nconst LOADABLE_CONTENT = ['visuellHistorieBlokk', 'visuellHistorieScrollBlokk', 'bildeBlokk', 'episodevelgerBlokk', 'stedintroBildeBlokk', 'imageGallery']\nconst ACTIVATABLE_CONTENT = ['videoBlokk', 'levendeStillbildeBlokk', 'visuellHistorieBlokk', 'videoHistorie']\nconst FULLY_VISIBLE_CONTENT = ['stedintroVideoBlokk', 'stedintroBildeBlokk']\n\ntype Props = {\n sendGaEvent: (Object) => void,\n doc: Doc\n}\n\ntype State = {\n viewport: { height: number, width: number },\n visibleContent: any,\n fullyVisibleContent: any,\n loadContent: any,\n introVisible: boolean,\n backgroundVisible: boolean\n}\n\nclass _App extends Component {\n elm: HTMLElement\n trackedKeys = {}\n\n constructor () {\n super()\n this.state = {\n viewport: { height: -1, width: -1 },\n visibleContent: [],\n fullyVisibleContent: [],\n loadContent: [],\n backgroundVisible: false,\n introVisible: true\n }\n }\n\n getContenttype (idx: number) {\n const contentList = this.props.doc.tekst\n if (idx < 0 || idx >= contentList.length) {\n return null\n } else {\n return contentList[idx].type\n }\n }\n\n ensureLoaded (idx: number) {\n const type = this.getContenttype(idx)\n if (LOADABLE_CONTENT.indexOf(type) !== -1) {\n const loadContent = this.state.loadContent\n if (!loadContent[idx]) {\n loadContent[idx] = true\n this.setState({ loadContent })\n }\n }\n }\n\n handleViewportChange = (viewport: any) => {\n if (\n this.state.viewport.height !== viewport.height ||\n this.state.viewport.width !== viewport.width\n ) {\n this.elm.style.setProperty('--viewport-height', `${viewport.height}px`)\n this.elm.style.setProperty('--viewport-height--half', `${viewport.height / 2}px`)\n this.setState({ viewport })\n }\n }\n\n handleContentEnter = (element: any, idx: number) => {\n this.ensureLoaded(idx - 1)\n this.ensureLoaded(idx)\n this.ensureLoaded(idx + 1)\n\n const contentList = this.props.doc.tekst\n const content = contentList[idx]\n\n if (ACTIVATABLE_CONTENT.indexOf(content.type) !== -1) {\n const activeContent = this.state.visibleContent\n activeContent[idx] = true\n this.setState({ visibleContent: activeContent })\n }\n\n this.trackOnlyOnce(idx, 'SHOW_CONTENT', `${idx}/${content.type}`)\n }\n\n handleContentLeave = (element: any, idx: number) => {\n const contentList = this.props.doc.tekst\n const content = contentList[idx]\n\n if (ACTIVATABLE_CONTENT.indexOf(content.type) !== -1) {\n const activeContent = this.state.visibleContent\n activeContent[idx] = false\n this.setState({ visibleContent: activeContent })\n }\n }\n\n handleContentChange = (intersections: any[]) => {\n const { fullyVisibleContent } = this.state\n const contentList = this.props.doc.tekst\n let change = false\n\n intersections.forEach((block, idx) => {\n const content = contentList[idx]\n if (FULLY_VISIBLE_CONTENT.indexOf(content.type) === -1) {\n return\n }\n\n const isVisible = !!fullyVisibleContent[idx]\n if (isVisible && block.ratio < 0.05) {\n fullyVisibleContent[idx] = false\n change = true\n } else if (!isVisible && block.isIntersecting && block.ratio > 0.95) {\n fullyVisibleContent[idx] = true\n change = true\n }\n })\n\n if (change) {\n this.setState({ fullyVisibleContent })\n }\n }\n\n handleIntroEnter = () => {\n this.setState({ introVisible: true })\n }\n\n handleIntroLeave = () => {\n this.setState({ introVisible: false })\n }\n\n handleBackgroundEnter = () => {\n this.setState({ backgroundVisible: true })\n }\n\n handleBackgroundLeave = () => {\n this.setState({ backgroundVisible: false })\n }\n\n trackOnlyOnce (key, action: string, label: string) {\n if (!this.trackedKeys[key]) {\n this.trackedKeys[key] = true\n this.props.sendGaEvent && this.props.sendGaEvent({ action, label })\n }\n }\n\n render () {\n const { doc } = this.props\n const { viewport, introVisible, backgroundVisible } = this.state\n\n return (\n (this.elm = elm)}>\n \n \n \n \n \n \n \n\n \n
\n \n \n \n \n {\n (doc.tekst || []).map((item, idx) => {\n switch (item.type) {\n case 'text':\n return \n case 'tekstBlokk':\n return \n case 'vitenskapBlokk':\n return \n case 'bildeBlokk':\n return \n case 'dobbelBildeBlokk':\n return \n case 'levendeStillbildeBlokk':\n return \n case 'imageGallery':\n return \n case 'simpleGallery':\n return \n case 'stedintroVideoBlokk':\n return \n case 'stedintroBildeBlokk':\n return \n case 'visuellHistorieBlokk':\n case 'visuellHistorie':\n return \n case 'visuellHistorieScrollBlokk':\n case 'visuellHistorieScroll':\n return \n case 'videoHistorie':\n return \n case 'episodevelgerBlokk':\n return \n default:\n return
\n                        {JSON.stringify(item, null, 2)}\n                      
\n }\n })\n }\n \n {doc.footer &&
}\n
\n \n \n )\n }\n}\n\n/*\nconst mapContextToProps = context => ({\n ...context,\n sendCustomGaEvent: () => context.sendEvent({ action: 'my custom event action' })\n})\n*/\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const App = connector(_App)\n","// @flow\n\nconst POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g\n\nexport function getContextId (url: string): ?string {\n return extractPolopolyIdFromString(url)\n}\n\nfunction extractPolopolyIdFromString (str: string): ?string {\n const matches = str.match(POLOPOLY_ID_REGEX)\n if (matches && matches.length) {\n return matches[0]\n }\n return null\n}\n","/* global __HOT__ */\n// @jsx h\nimport domready from 'domready'\nimport { h, render } from 'preact'\nimport { toArray, createUniqueId } from '@nrk/dh-utils'\nimport { createGoogleAnalyticsTracker } from '@nrk/dh-analytics-utils'\nimport { testPositionSticky } from '@nrk/feature-tests'\nimport { createErrorReporter } from '../lib/errorReporting'\nimport { App } from './components/App'\nimport { root as rootElementClassName } from './components/App.css'\nimport { getContextId } from '../lib/getContextId'\nimport { Provider as CustomProvider } from '../lib/provider'\n\nwindow[rootElementClassName] = window[rootElementClassName] || {}\n\nfunction init () {\n findElements(rootElementClassName).forEach(el => {\n el.id = createUniqueId()\n window[rootElementClassName][el.id] = true\n\n const name = el.getAttribute('data-name')\n const errorTrackingEnabled = el.getAttribute('data-error-tracking-enabled') === 'true'\n\n // setup error reporting\n const simpleErrorReport = createErrorReporter(name, errorTrackingEnabled)\n simpleErrorReport.listenAndCatch()\n\n testSupport(supported => {\n if (supported) {\n // Extract values sent from server\n const preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'))\n\n // Extract metadata required to create google analytics tracker\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = JSON.parse(el.getAttribute('data-metadata'))\n const { title, selfId, published } = metadata\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document.location.href)\n }\n })\n\n const sendError = (message) => {\n simpleErrorReport.sendErrorReport({ message })\n }\n\n const sendGaEvent = (eventObj) => {\n googleAnalyticsTracker.sendEvent({\n category: `dh-modul-${name}`,\n ...eventObj\n })\n }\n\n // Replace noJs class with js\n el.className = el.className.replace('noJs', 'js')\n\n // ... and render with the exact same props as on server\n render(\n \n \n , el, el.firstChild\n )\n\n // Enable webpack hot-reloading\n if (__HOT__) {\n // Reload and re-render preact application\n module.hot.accept('./client', () => {\n const { App } = require('./components/App')\n const { Provider: CustomProvider } = require('../lib/provider')\n render(\n \n \n , el, el.firstChild)\n })\n }\n } else {\n simpleErrorReport.sendErrorReport({ message: 'Warning: This browser does not support `position: sticky`' })\n\n // Extra class when it doesn't cut the mustard\n el.className = `${el.className} ${rootElementClassName}--no-enhancement`\n\n // Load all images that would otherwise be lazy loaded\n const images = toArray(document.querySelectorAll('img[data-srcset]'))\n images.forEach(image => {\n const source = image.parentElement.querySelector('source')\n if (source) {\n source.srcset = source.dataset.srcset\n }\n\n image.src = image.dataset.src\n image.srcset = image.dataset.srcset\n })\n }\n })\n })\n}\n\nif (__HOT__) {\n require('preact/debug')\n}\n\nfunction findElements (className) {\n return toArray(document.getElementsByClassName(className)).filter(el => !isInitialized(el, className))\n}\n\nfunction isInitialized (el, className) {\n return el.id && window[className][el.id]\n}\n\nfunction testSupport (callbackFn) {\n return testPositionSticky(callbackFn)\n}\n\ndomready(init)\n","export function createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}","// @flow\nimport { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nexport function createErrorReporter (name: string, isErrorReportingEnabled: boolean): SimpleErrorReport {\n return new SimpleErrorReport({\n name: name,\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n })\n}\n"],"sourceRoot":""}