{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/v1/components/Footer/index.css?3c86","webpack:///./src/v1/components/Intro/index.css?c35f","webpack:///./src/v1/components/App.css?9824","webpack:///./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","webpack:///./src/v1/components/VisualStory/index.css?6c70","webpack:///./src/v1/components/Section.css?da1b","webpack:///./src/v1/components/Email/index.css?33a0","webpack:///./src/v1/components/Tips/index.css?5470","webpack:///./src/v1/components/Asterism/index.css?e1b8","webpack:///./src/v1/components/LazyImage/index.css?c2ff","webpack:///./node_modules/domready/ready.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/v1/client.polyfill.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/preact/dist/preact.mjs","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:///./src/lib/error-reporting.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:///./src/lib/google-analytic.js","webpack:///./src/lib/number.js","webpack:///./src/v1/components/Intro/IntroImage/index.js","webpack:///./src/v1/components/HtmlContent/index.js","webpack:///./src/v1/components/Intro/Ingress/index.js","webpack:///./src/v1/components/Intro/Byline/index.js","webpack:///./src/v1/components/Intro/SerumLazySmartPicture/index.js","webpack:///./src/v1/components/Intro/index.js","webpack:///./src/lib/prefersReducedMotion.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/lib/image-url.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Avatar/AvatarImage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Avatar/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/ImageMessage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/TextMessage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/ImagesMessage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Date/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/lib/Figcaption.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/index.js","webpack:///./src/v1/components/Email/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Slideshow/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Slideshow/Slide.js","webpack:///./src/lib/preact-pure-component.js","webpack:///./src/v1/components/VisualStory/cards/DefaultCard.js","webpack:///./src/lib/image-helpers.js","webpack:///./src/v1/components/VisualStory/SmartPicture/index.js","webpack:///./src/v1/components/VisualStory/index.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/scroll.js","webpack:///./src/v1/components/Asterism/index.js","webpack:///./src/v1/components/LazyImage/index.js","webpack:///./src/v1/components/Tips/index.js","webpack:///./src/v1/components/Section.js","webpack:///./src/v1/components/Footer/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/v1/client.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","footer","byline_sharebutton_container","byline_sharebutton_group","byline_sharebutton_item","byline_block","byline_credit_nrklogo","byline_credit_list","byline_credit_list_item","byline_credit_list_item_role","byline_credit_list_item_names","headingWrapper","back","headinglogo","fadeOut","fadeIn","heading__introContainer","heading__spider","heading__background","root--js","heading__ingress","heading__parallaxContainer","heading__screen","heading__desk","heading__man","heading__padding","heading__titleWrapper","heading__title","byline","background-fade-in","root","app","container","factory","isPolopolyIdRegex","isPolopolyId","id","test","widths","ratios","qualities","_baseUrl","hasOption","option","createImageUrl","options","polopolyId","width","ratio","quality","Error","number","args","supportedRatios","Array","isArray","includes","isValidRatio","toString","supportedQualities","isValidQuality","Number","isInteger","isSupportedWidth","closestWidth","goal","targets","isValidGoal","isValid","length","isValidTargets","reduce","prev","curr","Math","abs","getClosestNumber","_ref","url","queryString","_ref2","replace","createQueryString","createUrl","_typeof","define","undefined","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","apply","__WEBPACK_AMD_DEFINE_ARRAY__","visualStory","visualStory__slideshow","visualStory__slide","root--noJs","visualStory__cards","defaultCard","defaultCard__wrapper","defaultCard--right","defaultCard--left","section","section--first","center","chatLog","email__wrapper","email","email--left","email--right","email__header","tips","tipsSpacer","asterism","asterism__imageWrapper","asterism--larger","image","image__clipContainer","image--center","image--wide","listener","fns","doc","hack","loaded","document","documentElement","doScroll","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","push","e","configurable","writable","TypeError","this","register","time","Date","message","filter","assign","arguments","dryRun","a","u","parseStack","errorRegister","window","filename","lineno","colno","line","column","error","then","sendErrorReport","stackTrace","reason","console","log","JSON","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","open","setRequestHeader","send","SimpleErrorReport","__webpack_exports__","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","observe","target","_observationTargets","some","item","element","nodeType","_registerInstance","entry","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","slice","_initThresholds","opt_threshold","threshold","sort","isNaN","_parseRootMargin","opt_rootMargin","margins","split","map","margin","parts","exec","parseFloat","unit","_monitoringIntersections","_monitoringInterval","setInterval","addEvent","_domObserver","MutationObserver","attributes","childList","characterData","subtree","clearInterval","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","parent","getParentNode","atRoot","parentRect","parentComputedStyle","body","overflow","max","min","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","indexOf","index","splice","targetArea","intersectionArea","toFixed","callback","opt_options","timeout","timer","rootMargin","join","node","event","opt_useCapture","attachEvent","detatchEvent","el","err","child","parentNode","host","VNode","preact_options","stack","EMPTY_CHILDREN","h","nodeName","lastSimple","simple","children","pop","String","vnode","extend","obj","props","applyRef","ref","current","defer","Promise","resolve","IS_NON_DIMENSIONAL","items","enqueueRender","component","_dirty","debounceRendering","rerender","renderComponent","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","removeNode","removeChild","setAccessor","old","isSvg","style","cssText","innerHTML","__html","useCapture","substring","eventProxy","_listeners","removeAttribute","removeAttributeNS","setAttributeNS","setAttribute","className","type","mounts","diffLevel","isSvgMode","hydrating","flushMounts","afterMount","componentDidMount","diff","dom","context","mountAll","componentRoot","ownerSVGElement","ret","idiff","appendChild","out","prevSvgMode","splitText","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","originalComponent","oldDom","isDirectOwner","_componentConstructor","isOwner","_parentComponent","constructor","setComponentProps","base","unmountComponent","createComponent","nextBase","buildComponentFromVNode","createElementNS","createElement","firstChild","fc","vchildren","nextSibling","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","len","childrenLen","vlen","_child","__key","trim","insertBefore","innerDiffNode","dangerouslySetInnerHTML","attrs","diffAttributes","unmountOnly","removeChildren","lastChild","next","previousSibling","recyclerComponents","Ctor","inst","render","Component","doRender","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","preact_render","merge","setState","forceUpdate","toArray","nodeList","_toConsumableArray","arr","arr2","from","bem","blockName","_len","modifiers","_key","strings","modifier","objectString","keys","toStrings","b","concat","testPositionSticky","position","isErrorReportingEnabled","simpleErrorReport","shallowEqual","PureComponent","_defineProperty","ViewportIntersections","_this","ViewportIntersections_classCallCheck","ViewportIntersections_getPrototypeOf","ViewportIntersections_assertThisInitialized","intersections","idx","_this2","_this$props","onChange","onEnter","onLeave","elm","intersectionObserver","entries","prevIntersection","childElm","createIntersectionObserver","_this3","_this$props2","isTrackingEnabled","trackAction","action","label","category","ga","sendToGoogleAnalytics","clamp","sizes","baseUrl","createSrc","file","size","createSrcSet","IntroImage","_Component","_getPrototypeOf2","IntroImage_classCallCheck","IntroImage_getPrototypeOf","IntroImage_defineProperty","IntroImage_assertThisInitialized","IntroImage_inherits","nextProps","load","loadImage","visibleSource","matchMedia","matches","dataset","visibleImage","loaderImage","Image","getSourceDataset","srcset","src","decode","updateImage","complete","onload","requestAnimationFrame","currentSrc","_this4","verticalFile","media","srcSet","data-srcset","data-src","alt","data-srcSet","HtmlContent","HtmlContent_classCallCheck","HtmlContent_possibleConstructorReturn","HtmlContent_getPrototypeOf","HtmlContent_inherits","content","dataKey","data-key","Ingress","Ingress_classCallCheck","Ingress_possibleConstructorReturn","Ingress_getPrototypeOf","Ingress_inherits","ingress","viewportHeight","module_ViewportIntersections","handleParagraphEnter","HtmlContent_HtmlContent","Byline","Byline_classCallCheck","Byline_possibleConstructorReturn","Byline_getPrototypeOf","Byline_inherits","class","IMAGE_WIDTHS","createResponsiveSrcSet","opts","imageUrl","SerumLazySmartPicture","SerumLazySmartPicture_classCallCheck","SerumLazySmartPicture_getPrototypeOf","SerumLazySmartPicture_defineProperty","SerumLazySmartPicture_assertThisInitialized","SerumLazySmartPicture_inherits","transform","horizontal","vertical","placeholderVerticalUrl","_objectSpread","placeholderHorizontalUrl","horizontalSourceSet","verticalSourceSet","Intro","Intro_classCallCheck","Intro_getPrototypeOf","Intro_defineProperty","Intro_assertThisInitialized","introElement","parallaxHeight","parallaxContainer","parallaxTop","offsetTop","Intro_inherits","scrollY","onResize","reduceMotion","animate","animating","loop","delta","previous","visible","isVisible","updateLogo","loadImages","updateBackground","previousVisible","updateIllustration","classList","logoElement","contains","remove","add","prevVisible","backgroundElement","visibility","willChange","maximumDistanece","preferredDistance","backgroundOffset","screenElement","deskElement","personElement","percent","loadParallaxImages","titleHeight","href","title","aria-hidden","xlinkHref","SerumLazySmartPicture_SerumLazySmartPicture","Ingress_Ingress","IntroImage_IntroImage","tittel","Byline_Byline","tekst","getImageUrl","_ref$width","_ref$ratio","styles","avatarImage","avatar","avatar__placeholder","avatar--right","date","date--isFirst","message--left","message--showAvatar","message--right","message--isLastInGroup","message__text","message__text--right","message__text--left","message__image","message__images","message__image--expanded","message__image--clickable","message__image--hover","message__image--left","message__image--right","message__name","message__content","message__content--left","message__content--right","message__content--showName","AvatarImage","nopin","data-pin-nopin","Avatar","Avatar_classCallCheck","Avatar_possibleConstructorReturn","Avatar_getPrototypeOf","Avatar_inherits","person","displayImage","side","initials","charAt","toUpperCase","getInitials","ImageMessage","isLastInGroup","showAvatar","showName","imageSrc","TextMessage","ImagesMessage","images","Message","Message_classCallCheck","Message_possibleConstructorReturn","Message_getPrototypeOf","Message_inherits","Date_classCallCheck","Date_possibleConstructorReturn","Date_getPrototypeOf","Date_inherits","isFirst","Figcaption","_ref$figcaption","figcaption","caption","credit","messages","ChatLog","nbsp","fromCharCode","Email","Email_classCallCheck","Email_possibleConstructorReturn","Email_getPrototypeOf","Email_inherits","emails","datetime","to","subject","align","email_header_datetime","Slideshow","viewport","activeIndex","inlineStyle","data-active-index","stacked","active","Slide","DefaultCard","wrapperInlineStyle","marginTop","SmartPicture","horizontalId","verticalId","squareId","defaultUrl","squareSourceSet","VisualStory","VisualStory_classCallCheck","VisualStory_getPrototypeOf","VisualStory_defineProperty","VisualStory_assertThisInitialized","scrollTop","pageYOffset","visibleIndex","slides","handleResize","cardsInlineStyle","paddingBottom","module_Slideshow","slide","Slideshow_Slide","VisualStory_SmartPicture","handleEnter","cards_DefaultCard","Asterism","Asterism_classCallCheck","Asterism_getPrototypeOf","Asterism_assertThisInitialized","Asterism_inherits","placeholderSrc","LazyImage","LazyImage_classCallCheck","LazyImage_getPrototypeOf","LazyImage_assertThisInitialized","LazyImage_inherits","backgroundColor","description","Tips","Section","Section_classCallCheck","Section_getPrototypeOf","Section_assertThisInitialized","text","ensureLoaded","loadContent","Section_inherits","contentList","getContenttype","first","sectionIndex","_slicedToArray","chapter","role","handleContentEnter","RegExp","module_ChatLog","Email_Email","v1_components_VisualStory","Tips_Tips","_element$value","Asterism_Asterism","LazyImage_LazyImage","Footer","Footer_classCallCheck","Footer_possibleConstructorReturn","Footer_getPrototypeOf","Footer_inherits","data-share","rel","subscribe","observer","isDynamicViewport","isTouching","listeners","orientationchange","resize","prevRect","Element","innerWidth","innerHeight","getRect","scroll","touchstart","touchend","unsubscribe","MaxViewportRect","viewport$","MaxViewportObservable","dispose","onViewportChange","App","App_classCallCheck","App_getPrototypeOf","App_defineProperty","App_assertThisInitialized","manus","App_inherits","_this$props$doc","MaxViewportRect_MaxViewportRect","handleViewportChange","Intro_Intro","handleSectionEnter","Section_Section","Footer_Footer","rootElementClassName","domready","getElementsByClassName","isInitialized","prefix","random","substr","createUniqueId","supported","preloadedState","parse","getAttribute","errorEventTrackingEnabled","trackingEnabled","gaInitialize","listenAndCatch","App_App","client_toConsumableArray","querySelectorAll","source","parentElement","querySelector","opacity"],"mappings":"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","file":"v1-bundle-9b1f34b4b294bfea2dc4.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"dh-oscar-edderkopp-footer\",\"byline_sharebutton_container\":\"dh-oscar-edderkopp-byline_sharebutton_container\",\"byline_sharebutton_group\":\"dh-oscar-edderkopp-byline_sharebutton_group\",\"byline_sharebutton_item\":\"dh-oscar-edderkopp-byline_sharebutton_item\",\"byline_block\":\"dh-oscar-edderkopp-byline_block\",\"byline_credit_nrklogo\":\"dh-oscar-edderkopp-byline_credit_nrklogo\",\"byline_credit_list\":\"dh-oscar-edderkopp-byline_credit_list\",\"byline_credit_list_item\":\"dh-oscar-edderkopp-byline_credit_list_item\",\"byline_credit_list_item_role\":\"dh-oscar-edderkopp-byline_credit_list_item_role\",\"byline_credit_list_item_names\":\"dh-oscar-edderkopp-byline_credit_list_item_names\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headingWrapper\":\"dh-oscar-edderkopp-headingWrapper\",\"back\":\"dh-oscar-edderkopp-back\",\"headinglogo\":\"dh-oscar-edderkopp-headinglogo\",\"fadeOut\":\"dh-oscar-edderkopp-fadeOut\",\"fadeIn\":\"dh-oscar-edderkopp-fadeIn\",\"heading__introContainer\":\"dh-oscar-edderkopp-heading__introContainer\",\"heading__spider\":\"dh-oscar-edderkopp-heading__spider\",\"heading__background\":\"dh-oscar-edderkopp-heading__background\",\"root--js\":\"dh-oscar-edderkopp-root--js\",\"heading__ingress\":\"dh-oscar-edderkopp-heading__ingress\",\"heading__parallaxContainer\":\"dh-oscar-edderkopp-heading__parallaxContainer\",\"heading__screen\":\"dh-oscar-edderkopp-heading__screen\",\"heading__desk\":\"dh-oscar-edderkopp-heading__desk\",\"heading__man\":\"dh-oscar-edderkopp-heading__man\",\"heading__padding\":\"dh-oscar-edderkopp-heading__padding\",\"heading__titleWrapper\":\"dh-oscar-edderkopp-heading__titleWrapper\",\"heading__title\":\"dh-oscar-edderkopp-heading__title\",\"byline\":\"dh-oscar-edderkopp-byline\",\"background-fade-in\":\"dh-oscar-edderkopp-background-fade-in\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"dh-oscar-edderkopp-root\",\"app\":\"dh-oscar-edderkopp-app\",\"container\":\"dh-oscar-edderkopp-container\"};","(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 = {\"visualStory\":\"dh-oscar-edderkopp-visualStory\",\"root--js\":\"dh-oscar-edderkopp-root--js\",\"visualStory__slideshow\":\"dh-oscar-edderkopp-visualStory__slideshow\",\"visualStory__slide\":\"dh-oscar-edderkopp-visualStory__slide\",\"root--noJs\":\"dh-oscar-edderkopp-root--noJs\",\"visualStory__cards\":\"dh-oscar-edderkopp-visualStory__cards\",\"defaultCard\":\"dh-oscar-edderkopp-defaultCard\",\"defaultCard__wrapper\":\"dh-oscar-edderkopp-defaultCard__wrapper\",\"defaultCard--right\":\"dh-oscar-edderkopp-defaultCard--right\",\"defaultCard--left\":\"dh-oscar-edderkopp-defaultCard--left\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section\":\"dh-oscar-edderkopp-section\",\"section--first\":\"dh-oscar-edderkopp-section--first\",\"center\":\"dh-oscar-edderkopp-center\",\"chatLog\":\"dh-oscar-edderkopp-chatLog\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"email__wrapper\":\"dh-oscar-edderkopp-email__wrapper\",\"email\":\"dh-oscar-edderkopp-email\",\"email--left\":\"dh-oscar-edderkopp-email--left\",\"email--right\":\"dh-oscar-edderkopp-email--right\",\"email__header\":\"dh-oscar-edderkopp-email__header\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tips\":\"dh-oscar-edderkopp-tips\",\"tipsSpacer\":\"dh-oscar-edderkopp-tipsSpacer\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"asterism\":\"dh-oscar-edderkopp-asterism\",\"asterism__imageWrapper\":\"dh-oscar-edderkopp-asterism__imageWrapper\",\"asterism--larger\":\"dh-oscar-edderkopp-asterism--larger\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image\":\"dh-oscar-edderkopp-image\",\"image__clipContainer\":\"dh-oscar-edderkopp-image__clipContainer\",\"image--center\":\"dh-oscar-edderkopp-image--center\",\"image--wide\":\"dh-oscar-edderkopp-image--wide\"};","/*!\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[\"simple-error-report\"]={})}(this,function(e){\"use strict\";var n=function(){function e(e,n){for(var r=0;r0}}]),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","import 'intersection-observer'\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","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","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 { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nlet isErrorReportingEnabled = false\n\nexport function initialize (errorReportingEnabled) {\n isErrorReportingEnabled = errorReportingEnabled\n}\n\nexport function simpleErrorReport () {\n return new SimpleErrorReport({\n name: 'dh-oscar-edderkopp',\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n })\n}\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;","let isTrackingEnabled = false\n// let label = null\n\nexport function gaInitialize (trackingEnabled) {\n isTrackingEnabled = trackingEnabled\n // label = name\n}\n\nexport function trackAction (action, label) {\n sendToGoogleAnalytics({\n category: 'dh-spesial-oscar-edderkopp',\n action,\n label\n })\n}\n\nfunction sendToGoogleAnalytics ({ category, action, label }) {\n if (window.ga && isTrackingEnabled) {\n window.ga('send', 'event', category, action, label)\n } else {\n if (typeof console !== 'undefined') {\n console.log(category, action, label)\n }\n }\n}\n","\nexport function clamp (number, min, max) {\n return Math.max(min, Math.min(number, max))\n}\n","// @flow\n/** @jsx h */\n/* eslint-disable react/no-deprecated */\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\n\nconst sizes = [100, 480, 600, 900, 1200, 1800, 2400]\n\nconst baseUrl = 'https://pmd-nrk.akamaized.net/nyheter/oscar-edderkopp'\n\nfunction createSrc (file, size) {\n return `${baseUrl}${file}_${size}.png`\n}\n\nfunction createSrcSet (file) {\n return sizes.map(size => `${createSrc(file, size)} ${size}w`).join(', ')\n}\n\ntype ImageProps = {\n file: string,\n verticalFile: string,\n sizes: string,\n load: boolean\n}\n\ntype HTMLSourceElement = HTMLElement & {\n srcset: string\n}\n\ntype DecodeImage = Image & {\n decode?: Function\n}\n\nexport class IntroImage extends Component {\n visibleImage: HTMLImageElement\n visibleSource: HTMLSourceElement\n\n componentWillReceiveProps (nextProps: ImageProps) {\n if (nextProps.load && !this.props.load) {\n this.loadImage()\n }\n }\n\n shouldComponentUpdate () {\n return false\n }\n\n getSourceDataset () {\n if (this.visibleSource && window.matchMedia('(min-aspect-ratio: 1/1)').matches) {\n return this.visibleSource.dataset\n } else {\n return this.visibleImage.dataset\n }\n }\n\n loadImage () {\n const loaderImage: DecodeImage = new Image()\n const dataset = this.getSourceDataset()\n\n loaderImage.sizes = this.visibleImage.sizes || ''\n loaderImage.srcset = dataset.srcset || ''\n loaderImage.src = dataset.src\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 updateImage (loaderImage: HTMLImageElement) {\n requestAnimationFrame(() => {\n const src = loaderImage.currentSrc || loaderImage.src\n this.visibleImage.src = src\n if (this.visibleSource) {\n this.visibleSource.srcset = src\n }\n })\n }\n\n render () {\n const { file, verticalFile, sizes } = this.props\n if (verticalFile) {\n return (\n \n (this.visibleSource = elm)} />\n (this.visibleImage = elm)} />\n \n )\n } else {\n return (\n (this.visibleImage = elm)} />\n )\n }\n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\n\ntype HtmlContentProps = {\n content: string,\n type: 'span' | 'p' | 'div',\n className?: string,\n dataKey?: number\n}\n\nexport class HtmlContent extends Component {\n shouldComponentUpdate (nextProps: HtmlContentProps) {\n return nextProps.content !== this.props.content\n }\n\n render () {\n const { content, className, dataKey } = this.props\n switch (this.props.type) {\n case 'p':\n return

\n case 'div':\n return

\n default:\n return \n }\n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\n\nimport { ViewportIntersections } from '@nrk/dh-feature-components'\nimport { trackAction } from '../../../../lib/google-analytic'\nimport s from '../index.css'\nimport type { IngressElement } from '../../../domain/index'\nimport { HtmlContent } from '../../HtmlContent'\n\ntype IngressProps = {\n ingress: IngressElement[],\n viewportHeight: number\n}\n\nexport class Ingress extends Component {\n shouldComponentUpdate (nextProps: IngressProps) {\n return nextProps.ingress !== this.props.ingress || nextProps.viewportHeight !== this.props.viewportHeight\n }\n\n handleParagraphEnter (element: any, idx: number) {\n trackAction('SHOW_INGRESS', `ingress[${idx}]`)\n }\n\n render () {\n const { viewportHeight, ingress } = this.props\n return = 0 ? 2.3 * viewportHeight : null }}>\n {\n ingress.map((item, idx) => (\n

\n ))\n }\n \n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\nimport s from '../index.css'\n\ntype BylineProps = {\n byline: string\n}\n\nexport class Byline extends Component {\n shouldComponentUpdate (nextProps: BylineProps) {\n return nextProps.byline !== this.props.byline\n }\n\n render () {\n return
\n }\n}\n","// @flow\n\n/** @jsx h */\n/* eslint-disable promise/catch-or-return */\n/* eslint-disable promise/always-return */\n\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils'\nimport { Component, h } from 'preact'\n\ntype ImageQuality = 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0\nconst IMAGE_WIDTHS = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400]\ntype SrcSetOpts = {\n id: string,\n ratio?: string,\n quality?: number\n}\n\nfunction createResponsiveSrcSet (opts: SrcSetOpts) {\n const { id, ratio, quality } = opts\n\n return IMAGE_WIDTHS.map(width => {\n const imageUrl = createImageUrl({ id, width, ratio, quality })\n return `${imageUrl} ${width}w`\n }).join(', ')\n}\n\nexport type ImageRef = {\n id: string,\n quality?: ImageQuality\n}\n\ntype DecodeImage = Image & {\n decode?: Function\n}\n\ntype HTMLSourceElement = HTMLElement & {\n srcset: string\n}\n\ntype Props = {\n alt: string,\n className?: string,\n horizontal: ImageRef,\n vertical: ImageRef\n}\n\nexport class SerumLazySmartPicture extends Component {\n visibleImage: HTMLImageElement\n visibleSource: HTMLSourceElement\n\n componentDidMount () {\n setTimeout(this.loadImage, 100)\n }\n\n shouldComponentUpdate () {\n return false\n }\n\n getSourceDataset () {\n if (window.matchMedia('(min-aspect-ratio: 4/5)').matches) {\n return this.visibleSource.dataset\n } else {\n return this.visibleImage.dataset\n }\n }\n\n loadImage = () => {\n const loaderImage: DecodeImage = new Image()\n const dataset = this.getSourceDataset()\n\n loaderImage.sizes = this.visibleImage.sizes || ''\n loaderImage.srcset = dataset.srcset || ''\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 updateImage (loaderImage: HTMLImageElement) {\n requestAnimationFrame(() => {\n const src = loaderImage.currentSrc || loaderImage.src\n this.visibleImage.src = src\n this.visibleImage.style.filter = 'blur(0.5px)'\n this.visibleImage.style.transform = 'scale(1)'\n if (this.visibleSource) {\n this.visibleSource.srcset = src\n }\n })\n }\n\n render () {\n const { className, alt, horizontal, vertical } = this.props\n\n const placeholderVerticalUrl = createImageUrl({\n ...vertical,\n width: 100,\n ratio: '16:9'\n })\n\n const placeholderHorizontalUrl = createImageUrl({\n ...horizontal,\n width: 100,\n ratio: '16:9'\n })\n\n const horizontalSourceSet = createResponsiveSrcSet({\n ...horizontal,\n ratio: '16:9'\n })\n\n const verticalSourceSet = createResponsiveSrcSet({\n ...vertical,\n ratio: '3:4'\n })\n\n return (\n \n (this.visibleSource = elm)} />\n (this.visibleImage = elm)} />\n \n )\n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\nimport { clamp } from '../../../lib/number'\nimport { prefersReducedMotion } from '../../../lib/prefersReducedMotion'\nimport { IntroImage } from './IntroImage/index'\nimport { Ingress } from './Ingress/index'\nimport { Byline } from './Byline/index'\nimport { SerumLazySmartPicture } from './SerumLazySmartPicture/index'\n\nimport type { BylineType } from '../../domain/index'\nimport s from './index.css'\n\nfunction isVertical () {\n return window && window.matchMedia('screen and (min-aspect-ratio: 1/1)').matches\n}\n\ntype HeadingProps = {\n tittel: string,\n ingress: string[],\n byline: BylineType,\n viewportHeight: number\n}\n\ntype HeadingState = {\n loadParallaxImages: boolean\n}\n\nexport class Intro extends Component {\n animating = false\n height: number\n parallaxHeight: number\n parallaxTop: number\n scrollY: number\n previous: number\n reduceMotion: boolean\n previousVisible: boolean\n introElement: HTMLElement\n backgroundElement: HTMLElement\n parallaxContainer: HTMLElement\n screenElement: HTMLElement\n deskElement: HTMLElement\n personElement: HTMLElement\n logoElement: HTMLElement\n\n componentDidMount () {\n this.scrollY = window.scrollY\n this.height = this.introElement.clientHeight\n this.parallaxHeight = this.parallaxContainer.clientHeight\n this.parallaxTop = this.parallaxContainer.offsetTop\n window.addEventListener('resize', this.onResize)\n this.reduceMotion = prefersReducedMotion()\n this.animate()\n }\n\n componentWillUnmount () {\n this.animating = false\n window.removeEventListener('resize', this.onResize)\n }\n\n onResize = () => {\n this.height = this.introElement.clientHeight\n this.parallaxHeight = this.parallaxContainer.clientHeight\n this.parallaxTop = this.parallaxContainer.offsetTop\n }\n\n animate () {\n const loop = (now: number) => {\n if (!this.animating) {\n return\n }\n const delta = this.previous ? now - this.previous : 0\n const visible = this.isVisible()\n this.updateLogo()\n this.scrollY += (window.scrollY - this.scrollY) * Math.min(delta / 60.0, 0.8)\n this.loadImages()\n if (!this.reduceMotion) {\n this.updateBackground(visible, this.previousVisible, delta)\n this.updateIllustration(visible, this.previousVisible)\n }\n this.previousVisible = visible\n\n this.previous = now\n requestAnimationFrame(loop)\n }\n\n this.animating = true\n requestAnimationFrame(loop)\n }\n\n isVisible () {\n return window.scrollY < this.height\n }\n\n updateLogo () {\n const classList = this.logoElement.classList\n if (!classList) {\n return\n }\n\n if (window.scrollY === 0 && !classList.contains(s.fadeIn)) {\n classList.remove(s.fadeOut)\n classList.add(s.fadeIn)\n } else if (window.scrollY > 0 && !classList.contains(s.fadeOut)) {\n classList.remove(s.fadeIn)\n classList.add(s.fadeOut)\n }\n }\n\n updateBackground (visible: boolean, prevVisible: boolean, delta: number) {\n if (!visible && prevVisible) {\n this.backgroundElement.style.visibility = 'hidden'\n this.backgroundElement.style.willChange = 'auto'\n return\n } else if (visible && !prevVisible) {\n this.backgroundElement.style.visibility = 'inherit'\n this.backgroundElement.style.willChange = 'transform'\n }\n\n const maximumDistanece = Math.max(this.height - this.props.viewportHeight, 0)\n const preferredDistance = this.props.viewportHeight\n\n const maxOffset = Math.min(preferredDistance, maximumDistanece)\n const percent = clamp(this.scrollY / this.height, 0, 1)\n // const backgroundOffset = (this.scrollY - maxOffset * percent).toFixed(2)\n const backgroundOffset = 0 - maxOffset * percent\n this.backgroundElement.style.transform = `translate3d(0, ${backgroundOffset.toFixed(2)}px, 0)`\n }\n\n updateIllustration (visible: boolean, prevVisible: boolean) {\n if (!visible && prevVisible) {\n this.screenElement.style.willChange = 'auto'\n this.deskElement.style.willChange = 'auto'\n this.personElement.style.willChange = 'auto'\n return\n } else if (visible && !prevVisible) {\n this.screenElement.style.willChange = 'transform'\n this.deskElement.style.willChange = 'transform'\n this.personElement.style.willChange = 'transform'\n }\n\n const { viewportHeight } = this.props\n const position = this.parallaxTop - this.scrollY + this.parallaxHeight\n const maxLength = viewportHeight + this.parallaxHeight\n const percent = clamp(position / maxLength, 0, 1) - 0.5\n this.screenElement.style.transform = `translate3d(0, ${percent * -30}%, 0)`\n this.deskElement.style.transform = `rotateX(${45 - percent * 30}deg)`\n this.personElement.style.transform = `translate3d(0, ${percent * 20}%, 0)`\n }\n\n calculateIllustrationMargin () {\n const { viewportHeight } = this.props\n if (viewportHeight < 0) {\n return\n }\n\n if (isVertical()) {\n return -0.4 * viewportHeight\n } else {\n return -0.3 * viewportHeight\n }\n }\n\n loadImages () {\n if (this.scrollY > 0 && !this.state.loadParallaxImages) {\n this.setState({ loadParallaxImages: true })\n }\n }\n\n render () {\n const { viewportHeight } = this.props\n const titleHeight = viewportHeight >= 0 ? 0.4 * viewportHeight : null\n\n return (\n
\n
\n )\n }\n}\n","\nexport function prefersReducedMotion () {\n return matchMedia('(prefers-reduced-motion)').matches\n}\n","import { createImageUrl } from '@nrk/serum-imagecrop-utils';\nexport function getImageUrl(image, options) {\n const _ref = options || {},\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 120 : _ref$width,\n _ref$ratio = _ref.ratio,\n ratio = _ref$ratio === void 0 ? '1:1' : _ref$ratio;\n\n switch (image.type) {\n case 'polopoly-image':\n {\n return createImageUrl({\n id: image.id,\n width,\n ratio\n });\n }\n\n case 'url-image':\n {\n return image.url;\n }\n }\n}","// @jsx h\nimport { h } from 'preact';\nimport { getImageUrl } from '../../lib/image-url';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nexport function AvatarImage(props) {\n const image = props.image,\n alt = props.alt,\n title = props.title;\n return h(\"img\", {\n className: styles.avatarImage,\n title: title,\n src: getImageUrl(image),\n alt: alt,\n nopin: \"no-pin\",\n \"data-pin-nopin\": \"true\"\n });\n}","// @jsx h\nimport { Component, h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { AvatarImage } from './AvatarImage';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nexport class Avatar extends Component {\n render() {\n const person = this.props.person;\n const name = person.name,\n image = person.image;\n const displayImage = image && image.type !== 'none';\n return h(\"div\", {\n \"aria-hidden\": true,\n className: bem(styles.avatar, person.side)\n }, displayImage && h(AvatarImage, {\n image: image,\n alt: person.name,\n title: person.name\n }), !displayImage && h(\"span\", {\n className: styles.avatar__placeholder,\n title: name\n }, getInitials(name)));\n }\n\n}\nexport function getInitials() {\n let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n const initials = name.replace(/\\(.*\\)/, '').trim().split(/[ -]/).map(item => item.charAt(0).toUpperCase());\n if (initials.length < 2) return initials[0];\n return [initials[0], initials[initials.length - 1]].join('');\n}","// @jsx h\nimport { h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { Avatar } from '../../Avatar/index';\nimport { getImageUrl } from '../../lib/image-url';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nexport const ImageMessage = props => {\n const message = props.message,\n isLastInGroup = props.isLastInGroup;\n const from = message.from,\n content = message.content;\n const name = from.name,\n side = from.side,\n display = from.display;\n const showAvatar = ['avatar', 'both'].indexOf(display) !== -1;\n const showName = ['name', 'both'].indexOf(display) !== -1;\n const imageSrc = getImageUrl(content.image, {\n width: 320,\n ratio: '1:1'\n });\n return h(\"div\", {\n className: bem(styles.message, side, {\n showAvatar,\n isLastInGroup\n })\n }, h(\"span\", {\n className: \"nrk-sr\"\n }, name, \":\"), showAvatar && h(Avatar, {\n person: from\n }), h(\"div\", {\n className: bem(styles.message__content, side, {\n showName\n })\n }, h(\"span\", {\n \"aria-hidden\": true,\n className: bem(styles.message__name, side)\n }, showName && name), h(\"span\", {\n className: bem(styles.message__image, side)\n }, h(\"img\", {\n src: imageSrc,\n alt: content.image.alt || '',\n nopin: \"nopin\",\n \"data-pin-nopin\": \"true\"\n }))));\n};","// @jsx h\nimport { h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { Avatar } from '../../Avatar';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nexport const TextMessage = props => {\n const message = props.message,\n isLastInGroup = props.isLastInGroup;\n const from = message.from,\n content = message.content;\n const name = from.name,\n side = from.side,\n display = from.display;\n const showAvatar = ['avatar', 'both'].indexOf(display) !== -1;\n const showName = ['name', 'both'].indexOf(display) !== -1;\n return h(\"div\", {\n className: bem(styles.message, side, {\n showAvatar,\n isLastInGroup\n })\n }, h(\"span\", {\n className: \"nrk-sr\"\n }, name, \":\"), showAvatar && h(Avatar, {\n person: from\n }), h(\"div\", {\n className: bem(styles.message__content, side, {\n showName\n })\n }, h(\"span\", {\n \"aria-hidden\": true,\n className: bem(styles.message__name, side)\n }, showName && name), h(\"span\", {\n className: bem(styles.message__text, side),\n dangerouslySetInnerHTML: {\n __html: content.message\n }\n })));\n};","// @jsx h\nimport { h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { Avatar } from '../../Avatar/index';\nimport { getImageUrl } from '../../lib/image-url';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nexport const ImagesMessage = props => {\n const message = props.message,\n isLastInGroup = props.isLastInGroup;\n const from = message.from,\n content = message.content;\n const name = from.name,\n side = from.side,\n display = from.display;\n const showAvatar = ['avatar', 'both'].indexOf(display) !== -1;\n const showName = ['name', 'both'].indexOf(display) !== -1;\n return h(\"div\", {\n className: bem(styles.message, side, {\n showAvatar,\n isLastInGroup\n })\n }, h(\"span\", {\n className: \"nrk-sr\"\n }, name, \":\"), showAvatar && h(Avatar, {\n person: from\n }), h(\"div\", {\n className: bem(styles.message__content, side, {\n showName\n })\n }, h(\"span\", {\n \"aria-hidden\": true,\n className: bem(styles.message__name, side)\n }, showName && name), h(\"ul\", {\n className: bem(styles.message__images, side)\n }, content.images.map((image, idx) => {\n const imageSrc = getImageUrl(image, {\n width: 160,\n ratio: '1:1'\n });\n return h(\"li\", {\n key: idx\n }, h(\"img\", {\n src: imageSrc,\n alt: image.alt || '',\n nopin: \"nopin\",\n \"data-pin-nopin\": \"true\"\n }));\n }))));\n};","// @jsx h\nimport { Component, h } from 'preact';\nimport { ImageMessage } from './ImageMessage';\nimport { TextMessage } from './TextMessage';\nimport { ImagesMessage } from './ImagesMessage/index';\nexport class Message extends Component {\n render() {\n const _this$props = this.props,\n isLastInGroup = _this$props.isLastInGroup,\n message = _this$props.message;\n const content = message.content;\n const type = content.type;\n\n switch (type) {\n case 'image':\n return h(ImageMessage, {\n message: message,\n isLastInGroup: isLastInGroup\n });\n\n case 'images':\n return h(ImagesMessage, {\n message: message,\n isLastInGroup: isLastInGroup\n });\n\n case 'text':\n return h(TextMessage, {\n message: message,\n isLastInGroup: isLastInGroup\n });\n\n default:\n throw new Error(`Unknown message type ${type}`);\n }\n }\n\n}","// @jsx h\nimport { Component, h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nexport class Date extends Component {\n render() {\n const _this$props = this.props,\n date = _this$props.date,\n index = _this$props.index;\n if (!date) return null;\n return h(\"h4\", {\n className: bem(styles.date, {\n isFirst: index === 0\n }),\n dangerouslySetInnerHTML: {\n __html: date\n }\n });\n }\n\n}","// @jsx h\nimport { h } from 'preact';\nexport function Figcaption(_ref) {\n let _ref$figcaption = _ref.figcaption,\n figcaption = _ref$figcaption === void 0 ? {} : _ref$figcaption;\n const caption = figcaption.caption,\n credit = figcaption.credit;\n\n if (!caption && !credit) {\n return null;\n }\n\n return h(\"figcaption\", null, caption && h(\"p\", null, caption), credit && h(\"small\", null, credit));\n}","// @jsx h\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nimport { Message } from './Message';\nimport { Date } from './Date';\nvar styles = {\n \"chatLog\": \"dhfc-1_0_0-beta_47-chatLog\",\n \"avatarImage\": \"dhfc-1_0_0-beta_47-avatarImage\",\n \"avatar\": \"dhfc-1_0_0-beta_47-avatar\",\n \"avatar__placeholder\": \"dhfc-1_0_0-beta_47-avatar__placeholder\",\n \"avatar--right\": \"dhfc-1_0_0-beta_47-avatar--right\",\n \"date\": \"dhfc-1_0_0-beta_47-date\",\n \"date--isFirst\": \"dhfc-1_0_0-beta_47-date--isFirst\",\n \"message\": \"dhfc-1_0_0-beta_47-message\",\n \"message--left\": \"dhfc-1_0_0-beta_47-message--left\",\n \"message--showAvatar\": \"dhfc-1_0_0-beta_47-message--showAvatar\",\n \"message--right\": \"dhfc-1_0_0-beta_47-message--right\",\n \"message--isLastInGroup\": \"dhfc-1_0_0-beta_47-message--isLastInGroup\",\n \"message__text\": \"dhfc-1_0_0-beta_47-message__text\",\n \"message__text--right\": \"dhfc-1_0_0-beta_47-message__text--right\",\n \"message__text--left\": \"dhfc-1_0_0-beta_47-message__text--left\",\n \"message__image\": \"dhfc-1_0_0-beta_47-message__image\",\n \"message__images\": \"dhfc-1_0_0-beta_47-message__images\",\n \"message__image--expanded\": \"dhfc-1_0_0-beta_47-message__image--expanded\",\n \"message__image--clickable\": \"dhfc-1_0_0-beta_47-message__image--clickable\",\n \"message__image--hover\": \"dhfc-1_0_0-beta_47-message__image--hover\",\n \"message__image--left\": \"dhfc-1_0_0-beta_47-message__image--left\",\n \"message__image--right\": \"dhfc-1_0_0-beta_47-message__image--right\",\n \"message__name\": \"dhfc-1_0_0-beta_47-message__name\",\n \"message__content\": \"dhfc-1_0_0-beta_47-message__content\",\n \"message__content--left\": \"dhfc-1_0_0-beta_47-message__content--left\",\n \"message__content--right\": \"dhfc-1_0_0-beta_47-message__content--right\",\n \"message__content--showName\": \"dhfc-1_0_0-beta_47-message__content--showName\"\n};\nimport { Figcaption } from '../lib/Figcaption';\n\nclass ChatLog extends PureComponent {\n render() {\n const _this$props = this.props,\n messages = _this$props.messages,\n figcaption = _this$props.figcaption;\n const className = `${styles.chatLog}${this.props.className ? ` ${this.props.className}` : ''}`;\n return h(\"div\", {\n className: className\n }, messages.map((message, idx) => [h(Date, {\n date: message.date,\n index: idx,\n key: `date_${idx}`\n }), h(Message, {\n key: idx,\n isLastInGroup: isLastInGroup(messages, idx),\n message: message\n })]), h(Figcaption, {\n figcaption: figcaption\n }));\n }\n\n}\n\nfunction isLastInGroup(messages, index) {\n return messages.length - 1 === index;\n}\n\nexport default ChatLog;","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\nimport { bem } from '@nrk/dh-utils'\n\nimport styles from './index.css'\nimport { HtmlContent } from '../HtmlContent/index'\n\nexport type EmailType = {\n datetime?: string,\n from?: string,\n to?: string,\n subject?: string,\n message: string,\n align?: 'left' | 'right'\n}\n\ntype EmailProps = {\n emails: EmailType[]\n}\n\nconst nbsp = String.fromCharCode(160)\n\nexport class Email extends Component {\n render () {\n const { emails } = this.props\n return (\n
\n {\n emails.map((email, idx) => {\n const { datetime, from, to, subject, message, align } = email\n return (\n
\n
\n {from && (\n
Fra: {from}
\n )}\n {to && (\n
Til: {to}
\n )}\n {datetime && (\n
Sendt: {datetime}
\n )}\n {subject && (\n
Emne: {subject}
\n )}\n
\n \n
\n )\n })\n }\n
\n )\n }\n}\n","// @jsx h\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n \"slideshow\": \"dhfc-1_0_0-beta_47-slideshow\",\n \"slideshow__slide\": \"dhfc-1_0_0-beta_47-slideshow__slide\",\n \"slideshow__slide--stacked\": \"dhfc-1_0_0-beta_47-slideshow__slide--stacked\",\n \"slideshow__slide--visible\": \"dhfc-1_0_0-beta_47-slideshow__slide--visible\",\n \"slideshow__slide--active\": \"dhfc-1_0_0-beta_47-slideshow__slide--active\"\n};\n\nclass Slideshow extends PureComponent {\n render() {\n const _this$props = this.props,\n children = _this$props.children,\n viewport = _this$props.viewport;\n const activeIndex = this.props.activeIndex || 0;\n const className = `${style.slideshow}${this.props.className ? ` ${this.props.className}` : ''}`;\n const inlineStyle = {};\n\n if (viewport && viewport.height > -1) {\n inlineStyle.height = `${viewport.height}px`;\n }\n\n return h(\"div\", {\n className: className,\n style: inlineStyle,\n \"data-active-index\": String(activeIndex)\n }, children.map((child, idx) => {\n if (idx <= activeIndex) {\n child.attributes.stacked = true;\n }\n\n if (idx >= activeIndex - 1 && idx <= activeIndex + 1) {\n child.attributes.visible = true;\n }\n\n child.attributes.active = idx === activeIndex;\n return child;\n }));\n }\n\n}\n\nexport default Slideshow;","// @jsx h\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n \"slideshow\": \"dhfc-1_0_0-beta_47-slideshow\",\n \"slideshow__slide\": \"dhfc-1_0_0-beta_47-slideshow__slide\",\n \"slideshow__slide--stacked\": \"dhfc-1_0_0-beta_47-slideshow__slide--stacked\",\n \"slideshow__slide--visible\": \"dhfc-1_0_0-beta_47-slideshow__slide--visible\",\n \"slideshow__slide--active\": \"dhfc-1_0_0-beta_47-slideshow__slide--active\"\n};\n\nclass Slide extends PureComponent {\n render() {\n const _this$props = this.props,\n active = _this$props.active,\n children = _this$props.children,\n stacked = _this$props.stacked,\n visible = _this$props.visible;\n const className = `${bem(style.slideshow__slide, stacked && 'stacked', visible && 'visible', active && 'active')}${this.props.className ? ` ${this.props.className}` : ''}`;\n return h(\"div\", {\n className: className\n }, children);\n }\n\n}\n\nexport default Slide;","// @flow\n\nimport { Component } from 'preact'\n\nfunction shallowEqual (a: any, b: any) {\n for (let key in a) if (a[key] !== b[key]) return false\n for (let key in b) if (!(key in a)) return false\n return true\n}\n\nclass PureComponent extends Component {\n shouldComponentUpdate (props: Props, state: State) {\n return !(shallowEqual(props, this.props) && shallowEqual(state, this.state))\n }\n}\n\nexport default PureComponent\n","// @flow @jsx h\n\nimport { h } from 'preact'\nimport { bem } from '@nrk/dh-utils'\nimport PureComponent from '../../../../lib/preact-pure-component.js'\nimport style from '../index.css'\n\nimport type { Viewport } from '../types'\n\ntype Props = {\n viewport: Viewport,\n align: 'left' | 'right',\n content: any\n}\n\ntype State = {}\n\nclass DefaultCard extends PureComponent {\n render () {\n const { viewport, align, content } = this.props\n const html = content.replace('-post', '‑post')\n\n const wrapperInlineStyle = {}\n\n if (viewport.height > -1) {\n wrapperInlineStyle.marginTop = `${viewport.height - 10}px`\n }\n\n return (\n
\n \n
\n )\n }\n}\n\nexport default DefaultCard\n","// @flow\n\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils'\n\nexport const IMAGE_WIDTHS = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400]\n\nexport function createSrc (id: string, width: number, quality: number) {\n return createImageUrl({ id, width, quality })\n}\n\nexport function createSrcSet (id: string, quality: number) {\n return IMAGE_WIDTHS.map(width => `${createSrc(id, width, quality)} ${width}w`).join(', ')\n}\n","// @flow\n\n/** @jsx h */\n\nimport { h } from 'preact'\nimport PureComponent from '../../../../lib/preact-pure-component'\nimport { createSrc, createSrcSet } from '../../../../lib/image-helpers'\n\ntype Props = {\n alt: string,\n className?: string,\n horizontalId: string,\n verticalId: string,\n squareId: string\n}\n\nclass SmartPicture extends PureComponent {\n render () {\n const { className, alt, horizontalId, verticalId, squareId } = this.props\n\n const defaultUrl = createSrc(horizontalId, 1600, 0.8)\n const horizontalSourceSet = createSrcSet(horizontalId, 0.8)\n const verticalSourceSet = createSrcSet(verticalId, 0.8)\n const squareSourceSet = createSrcSet(squareId, 0.8)\n\n return (\n \n \n \n \n {alt}\n \n )\n }\n}\n\nexport default SmartPicture\n","// @flow @jsx h\n\nimport { h } from 'preact'\nimport { Slideshow, Slide, ViewportIntersections } from '@nrk/dh-feature-components'\nimport { getScrollTop } from '@nrk/dh-utils'\nimport PureComponent from '../../../lib/preact-pure-component.js'\nimport style from './index.css'\nimport '@nrk/dh-feature-components/dist/module/Slideshow/index.css'\n\n// Import card types\nimport DefaultCard from './cards/DefaultCard'\nimport type { Rect, SlideProps, Viewport } from './types'\nimport SmartPicture from './SmartPicture/index'\n\nexport type Props = {\n slides: SlideProps[],\n viewport: Viewport,\n load: boolean\n}\n\nexport type State = {\n rect: Rect | null,\n visibleIndex: number\n}\n\nclass VisualStory extends PureComponent {\n elm: HTMLDivElement\n\n constructor (props: Props) {\n super(props)\n\n this.state = {\n rect: null,\n visibleIndex: props.slides.length ? 0 : -1\n }\n }\n\n componentDidMount () {\n this.handleResize()\n window.addEventListener('resize', this.handleResize)\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.handleResize)\n }\n\n handleResize = () => {\n const scrollTop = getScrollTop()\n const rect = this.elm.getBoundingClientRect()\n\n this.setState({\n rect: {\n height: rect.height,\n top: rect.top + scrollTop,\n bottom: rect.bottom + scrollTop\n }\n })\n }\n\n handleEnter = (entry: any, idx: number) => {\n this.setState({ visibleIndex: idx })\n }\n\n render () {\n const { slides, viewport, load } = this.props\n const { visibleIndex } = this.state\n\n const cardsInlineStyle = {}\n\n if (viewport.height > -1) {\n cardsInlineStyle.marginTop = `${0 - viewport.height}px`\n cardsInlineStyle.paddingBottom = `${viewport.height}px`\n }\n\n return (\n
(this.elm = elm)} className={style.visualStory}>\n \n {\n slides.map((slide, idx) => (\n \n {load && \n }\n \n ))\n }\n \n \n {\n slides.map((slide, idx) => {\n return (\n \n )\n })\n }\n \n
\n )\n }\n}\n\nexport default VisualStory\n","export function getScrollLeft() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || 0;\n}\n\nexport function getScrollTop() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || 0;\n}","// @flow @jsx h\n/* eslint-disable promise/catch-or-return,react/no-deprecated */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\nimport { createSrc, createSrcSet } from '../../../lib/image-helpers'\nimport { bem } from '@nrk/dh-utils'\nimport styles from './index.css'\n\ntype Props = {\n polopolyId: string,\n alt: string,\n height: string,\n load: boolean,\n modifier?: string\n}\n\ntype DecodeImage = Image & {\n decode?: Function\n}\n\nexport class Asterism extends Component {\n visibleImage: HTMLImageElement\n\n componentWillReceiveProps (nextProps: Props) {\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: DecodeImage = new Image()\n if (this.visibleImage.dataset) {\n loaderImage.srcset = this.visibleImage.dataset.srcset || ''\n loaderImage.sizes = this.visibleImage.sizes || ''\n }\n loaderImage.src = this.visibleImage.dataset.src\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 updateImage (loaderImage: HTMLImageElement) {\n requestAnimationFrame(() => {\n this.visibleImage.src = loaderImage.currentSrc || loaderImage.src\n this.visibleImage.style.filter = 'blur(0)'\n })\n }\n\n render () {\n const { polopolyId, modifier, height, alt } = this.props\n\n if (!polopolyId) {\n return
***
\n }\n const placeholderSrc = createSrc(polopolyId, 100, 0.4)\n const src = createSrc(polopolyId, 1600, 0.6)\n const srcSet = createSrcSet(polopolyId, 0.6)\n const sizes = modifier === 'larger' ? '14em' : '10em'\n\n return (\n
\n
\n (this.visibleImage = elm)} />\n
\n
\n )\n }\n}\n","// @flow @jsx h\n/* eslint-disable promise/catch-or-return,react/no-deprecated */\n/* eslint-disable promise/always-return */\nimport { Component, h } from 'preact'\nimport { createSrc, createSrcSet } from '../../../lib/image-helpers'\nimport styles from './index.css'\nimport { bem } from '@nrk/dh-utils'\n\ntype Props = {\n polopolyId: string,\n alt: string,\n description: string,\n height?: string,\n backgroundColor?: string,\n modifier: string,\n load: boolean\n}\n\ntype DecodeImage = Image & {\n decode?: Function\n}\n\nexport class LazyImage extends Component {\n visibleImage: HTMLImageElement\n\n componentWillReceiveProps (nextProps: Props) {\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: DecodeImage = new Image()\n if (this.visibleImage.dataset) {\n loaderImage.srcset = this.visibleImage.dataset.srcset || ''\n loaderImage.sizes = this.visibleImage.sizes || ''\n }\n loaderImage.src = this.visibleImage.dataset.src\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: HTMLImageElement) {\n requestAnimationFrame(() => {\n this.visibleImage.src = loaderImage.currentSrc || loaderImage.src\n this.visibleImage.style.filter = 'blur(0)'\n })\n }\n\n render () {\n const { polopolyId, modifier, load, height, backgroundColor, alt, description } = this.props\n\n if (!polopolyId) {\n return
Mangler PolopolyId
\n }\n const placeholderSrc = createSrc(polopolyId, 100, 0.6)\n const src = createSrc(polopolyId, 1600, 0.8)\n const srcSet = createSrcSet(polopolyId, 0.8)\n const sizes = (modifier === 'center') ? '(min-width: 460px) 44em, 100vw' : '100vw'\n\n return
\n \n (this.visibleImage = elm)}\n />\n
\n
{description}
\n \n }\n}\n","// @flow @jsx h\nimport { h } from 'preact'\nimport styles from './index.css'\nimport { bem } from '@nrk/dh-utils'\n\ntype Props = {\n modifier: string\n}\n\nexport function Tips (props: Props) {\n return
\n

Har du tips til saken?

\n
\n \n \n \n Epost\n \n |\n Tlf: +47 412 62 381\n |\n Signal: +47 412 62 381\n
\n
\n}\n","// @flow\n/** @jsx h */\n/* eslint-disable jsx-a11y/aria-role */\nimport { Component, h } from 'preact'\nimport { ChatLog, ViewportIntersections } from '@nrk/dh-feature-components'\nimport { bem } from '@nrk/dh-utils'\nimport { trackAction } from '../../lib/google-analytic'\nimport { Email } from './Email/index'\nimport VisualStory from './VisualStory/index'\nimport { Asterism } from './Asterism/index'\nimport { LazyImage } from './LazyImage/index'\nimport { Tips } from './Tips/index'\n\nimport type { ContentType, SectionType } from '../domain/index'\nimport styles from './Section.css'\nimport '@nrk/dh-feature-components/dist/module/ChatLog/index.css'\nimport { HtmlContent } from './HtmlContent/index'\n\nconst nbsp = String.fromCharCode(160)\n\ntype SectionProps = {\n section: SectionType,\n viewport: { width: number, height: number },\n first: boolean,\n index: number\n}\n\ntype SectionState = {\n loadContent: any\n}\n\nexport class Section extends Component {\n constructor () {\n super()\n this.state = { loadContent: [] }\n }\n\n handleContentEnter = (element: any, idx: number) => {\n const sectionIndex = this.props.index\n const key = sectionIndex + '-' + idx\n const contentList = this.props.section.value.text\n const content = contentList[idx]\n const type = content.type\n\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 if (content.type === 'asterism' || content.type === 'image') {\n trackAction('SHOW_CONTENT', `${key}/${type}(${content.value.alt})`)\n } else {\n trackAction('SHOW_CONTENT', `${key}/${type}`)\n }\n }\n\n getContenttype (idx: number) {\n const contentList = this.props.section.value.text\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 (type === 'asterism' || type === 'image' || type === 'visualstory') {\n const loadContent = this.state.loadContent\n if (!loadContent[idx]) {\n loadContent[idx] = true\n this.setState({ loadContent })\n }\n }\n }\n\n render () {\n const { section, viewport, first, index: sectionIndex } = this.props\n const { tittel } = section.value\n const [chapter, title] = tittel.indexOf(':') > -1 ? tittel.split(':') : [null, tittel]\n return (\n
\n
\n

\n \n {chapter && `${chapter}: `}\n {title}\n \n

\n
\n \n {section.value.text && section.value.text.map((element: ContentType, idx) => {\n const key = sectionIndex + '-' + idx\n switch (element.type) {\n case 'text':\n const content = element.value\n .replace('-post', '‑post')\n .replace(new RegExp(nbsp, 'g'), ' ')\n return \n case 'chatlog':\n return
\n case 'emails':\n const emails = element.value || []\n return
\n case 'visualstory':\n return
\n \n
\n case 'tips':\n return
\n case 'asterism':\n const { polopolyId, alt, modifier, height } = element.value\n return
\n case 'image':\n return
\n default:\n return
{JSON.stringify(element, null, 2)}
\n }\n })}\n \n\n
\n )\n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\nimport styles from './index.css'\n\nexport class Footer extends Component<{}> {\n render () {\n return (\n
\n
\n \n\n \n
\n Gå til nrk.no\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`, position: 'absolute' }\n return
(this.elm = elm)} style={inlineStyle} />\n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\nimport { ViewportIntersections } from '@nrk/dh-feature-components'\n\nimport type { BylineType, SectionType } from '../domain/index'\nimport { trackAction } from '../../lib/google-analytic'\nimport { Intro } from './Intro'\nimport { Section } from './Section'\nimport { Footer } from './Footer'\nimport MaxViewportRect from './MaxViewportRect'\n\nimport styles from './App.css'\n\ntype AppProps = {\n doc: {\n tittel: string,\n ingress: string[],\n manus: Array,\n byline: BylineType\n }\n}\n\ntype AppState = {\n viewport: { height: number, width: number }\n}\n\nexport class App extends Component {\n constructor () {\n super()\n this.state = {\n viewport: { height: -1, width: -1 }\n }\n }\n\n handleViewportChange = (viewport: any) => {\n if (this.state.viewport.height !== viewport.height || this.state.viewport.width !== viewport.width) {\n this.setState({ viewport })\n }\n }\n\n handleSectionEnter = (entry: any, idx: number) => {\n if (idx < this.props.doc.manus.length) {\n trackAction('SHOW_SECTION', this.props.doc.manus[idx].value.tittel)\n } else {\n trackAction('SHOW_FOOTER', 'footer')\n }\n }\n\n render () {\n const { manus, tittel, ingress, byline } = this.props.doc\n return (\n
\n \n
\n \n \n {\n manus.map((section, idx) => {\n return \n })\n }\n
\n \n
\n
\n )\n }\n}\n","/* global __HOT__ */\n/** @jsx h */\nimport domready from 'domready'\nimport { h, render } from 'preact'\nimport { createUniqueId, toArray } from '@nrk/dh-utils'\nimport { testPositionSticky } from '@nrk/feature-tests'\nimport { simpleErrorReport, initialize as errorReportingInitialize } from '../lib/error-reporting'\n\nimport { App } from './components/App'\nimport { root as rootElementClassName } from './components/App.css'\nimport { gaInitialize } from '../lib/google-analytic'\n\nwindow[rootElementClassName] = window[rootElementClassName] || {}\n\nfunction init () {\n findElements().forEach(el => {\n el.id = createUniqueId(10, '_')\n window[rootElementClassName][el.id] = true\n\n cutTheMustard(supported => {\n if (supported) {\n // Tell CSS that JS is supported\n el.className = el.className.replace('root--noJs', 'root--js')\n\n // Extract preloaded state sent from server\n const preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'))\n const { errorEventTrackingEnabled, trackingEnabled } = preloadedState\n gaInitialize(trackingEnabled)\n errorReportingInitialize(errorEventTrackingEnabled)\n simpleErrorReport().listenAndCatch()\n\n // ... and render with the exact same props\n render(, el, el.firstChild)\n\n // Enable webpack hot-reloading\n if (__HOT__) {\n // Reload and re-render React application\n module.hot.accept('./client', () => {\n render(require('./components/App').default, el, el.firstChild)\n })\n }\n } else {\n simpleErrorReport().sendErrorReport({ message: 'Warning: This browser does not support `position: sticky`' })\n\n // Load all images that would otherwise be lazy loaded\n const images = [...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 image.style.filter = 'blur(0)'\n image.style.opacity = '1'\n })\n }\n })\n })\n}\n\nfunction findElements () {\n return toArray(document.getElementsByClassName(rootElementClassName))\n .filter(el => !isInitialized(el))\n}\n\nfunction isInitialized (el) {\n return el.id && window[rootElementClassName][el.id]\n}\n\nfunction cutTheMustard (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}"],"sourceRoot":""}