{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/preact/dist/preact.esm.js","webpack:///./node_modules/date-fns/parse/index.js","webpack:///./node_modules/date-fns/get_iso_year/index.js","webpack:///./src/v2/center/components/pages/GoalShowPage/LikeButton/index.tsx","webpack:///./src/v2/center/components/pages/GoalShowPage/ViewCounter/index.css","webpack:///./node_modules/date-fns/distance_in_words_to_now/index.js","webpack:///./src/v2/center/components/pages/GoalShowPage/Player/ClipNav/index.css","webpack:///./src/v2/center/components/pages/GoalShowPage/Player/ClipNav/index.tsx","webpack:///./src/v2/center/components/pages/GoalShowPage/Player/Video.tsx","webpack:///./node_modules/date-fns/is_date/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_months/index.js","webpack:///./node_modules/date-fns/difference_in_months/index.js","webpack:///./node_modules/date-fns/compare_desc/index.js","webpack:///./src/v2/lib/getContextId.ts","webpack:///./src/v2/lib/promise-utils/safer/utils.ts","webpack:///./src/v2/lib/promise-utils/safer/index.ts","webpack:///./src/v2/center/components/lib/index.css","webpack:///./src/v2/lib/errorReporting.ts","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./src/v2/lib/wait-until.ts","webpack:///./node_modules/unfetch/polyfill.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/promise-polyfill/src/index.js","webpack:///./node_modules/promise-polyfill/src/polyfill.js","webpack:///./src/v2/center/db/firebase.ts","webpack:///./node_modules/date-fns/locale/en/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_days/index.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/scroll.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/index.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/array.js","webpack:///./src/v2/center/components/lib/FadeIn.tsx","webpack:///./node_modules/date-fns/difference_in_milliseconds/index.js","webpack:///./src/v2/lib/scroll-into-view/scroll-into-view.ts","webpack:///./src/v2/lib/scroll-into-view/easings.ts","webpack:///./src/v2/lib/scroll-into-view/utils.ts","webpack:///./node_modules/date-fns/format/index.js","webpack:///./node_modules/date-fns/locale/nb/build_format_locale/index.js","webpack:///./node_modules/date-fns/locale/nb/build_distance_in_words_locale/index.js","webpack:///./node_modules/date-fns/locale/en/build_format_locale/index.js","webpack:///./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","webpack:///./node_modules/date-fns/is_valid/index.js","webpack:///./node_modules/date-fns/start_of_iso_year/index.js","webpack:///./node_modules/date-fns/start_of_week/index.js","webpack:///./src/v2/polopoly/goalshow-player/components/App.css","webpack:///./src/v2/polopoly/goalshow-player/components/App.tsx","webpack:///./src/v2/polopoly/goalshow-player/client.tsx","webpack:///./src/v2/polopoly/goalshow-player/client.polyfills.ts","webpack:///./node_modules/date-fns/get_iso_week/index.js","webpack:///./node_modules/date-fns/start_of_year/index.js","webpack:///./node_modules/date-fns/get_day_of_year/index.js","webpack:///./node_modules/date-fns/locale/nb/index.js","webpack:///./src/v2/center/components/pages/GoalShowPage/Preview/index.css","webpack:///./src/v2/lib/promise-utils/index.ts","webpack:///./node_modules/date-fns/difference_in_seconds/index.js","webpack:///./node_modules/date-fns/start_of_iso_week/index.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./node_modules/domready/ready.js","webpack:///./node_modules/date-fns/compare_asc/index.js","webpack:///./node_modules/process/browser.js","webpack:///./src/v2/center/components/common/Icons/PlayIcon.tsx","webpack:///./src/v2/lib/preact-pure-component.ts","webpack:///./src/v2/center/components/pages/GoalShowPage/ViewCounter/index.tsx","webpack:///./node_modules/timers-browserify/main.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/unfetch/dist/unfetch.es.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./node_modules/date-fns/start_of_day/index.js","webpack:///./src/v2/center/components/pages/GoalShowPage/Preview/ClipsPreview.tsx","webpack:///./src/v2/center/components/pages/GoalShowPage/Player/index.css","webpack:///./node_modules/date-fns/distance_in_words/index.js","webpack:///./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","webpack:///./node_modules/lodash.throttle/index.js","webpack:///./src/v2/lib/shallow-equal.ts","webpack:///./src/v2/center/components/pages/GoalShowPage/LikeButton/index.css"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","19","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","head","document","getElementsByTagName","script","createElement","charset","timeout","nc","setAttribute","src","p","1","2","3","4","13","jsonpScriptSrc","setTimeout","onScriptComplete","type","target","event","onerror","onload","clearTimeout","chunk","errorType","realSrc","error","Error","request","undefined","appendChild","all","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","bind","slice","s","options","stack","EMPTY_CHILDREN","h","nodeName","attributes","lastSimple","child","simple","children","arguments","pop","String","key","vnode","extend","obj","props","defer","then","cloneElement","IS_NON_DIMENSIONAL","items","enqueueRender","component","_dirty","debounceRendering","rerender","list","renderComponent","isNamedNode","node","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","removeNode","parentNode","removeChild","setAccessor","old","isSvg","style","cssText","_typeof","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","setProperty","removeAttribute","ns","removeAttributeNS","setAttributeNS","className","this","mounts","diffLevel","isSvgMode","hydrating","flushMounts","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","ownerSVGElement","ret","idiff","out","prevSvgMode","splitText","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","originalComponent","oldDom","isDirectOwner","_componentConstructor","isOwner","_parentComponent","constructor","setComponentProps","base","unmountComponent","createComponent","nextBase","buildComponentFromVNode","createElementNS","firstChild","fc","vchildren","a","nextSibling","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","innerDiffNode","dangerouslySetInnerHTML","attrs","diffAttributes","unmountOnly","ref","removeChildren","lastChild","next","previousSibling","components","Ctor","inst","render","Component","doRender","splice","state","opts","_disable","__ref","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","shouldComponentUpdate","componentWillUpdate","getChildContext","toUnmount","childComponent","childProps","baseParent","componentRef","t","unshift","componentDidUpdate","afterUpdate","_renderCallbacks","beforeUnmount","componentWillUnmount","inner","collectComponent","merge","setState","callback","forceUpdate","isDate","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","DEFAULT_ADDITIONAL_DIGITS","parseTokenDateTimeDelimeter","parseTokenPlainTime","parseTokenYY","parseTokensYYY","parseTokenYYYY","parseTokensYYYYY","parseTokenMM","parseTokenDDD","parseTokenMMDD","parseTokenWww","parseTokenWwwD","parseTokenHH","parseTokenHHMM","parseTokenHHMMSS","parseTokenTimezone","parseTokenTimezoneZ","parseTokenTimezoneHH","parseTokenTimezoneHHMM","dayOfISOYear","isoYear","week","day","date","Date","setUTCFullYear","getUTCDay","setUTCDate","getUTCDate","argument","dirtyOptions","getTime","additionalDigits","Number","dateStrings","dateString","timeString","array","split","token","exec","time","timezone","splitDateString","parseYearResult","parseTokenYYY","parseTokenYYYYY","yearString","year","parseInt","restDateString","centuryString","parseYear","month","dayOfYear","dayOfWeek","parseDate","offset","timestamp","hours","minutes","parseFloat","seconds","parseTime","timezoneString","absoluteOffset","getTimezoneOffset","parse","startOfISOWeek","dirtyDate","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","setHours","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","Preact","_interopRequireWildcard","_firebase","styles","_dhUtils","_waitUntil","LikeButton","liked","likeCount","hidden","disabled","_callee","id","_ref2","_ref3","_liked","_likeCount","regeneratorRuntime","wrap","_context","prev","firebaseInstance","waitUntil","catch","getLikeState","getLikeCount","sent","_slicedToArray","_this","clip","abrupt","stop","_callee2","_this$state","didLike","newLikeCount","_likeCount2","_context2","Math","max","toggleLikeState","nextProps","_this$state2","_this$props","notClickable","likesFromDb","likes","class","bem","hoverable","LikeIcon","onClick","_ref5","_ref5$liked","xmlns","viewBox","view-count","view-count--hidden","view-count__icon","view-count__text","distanceInWords","now","clip-nav","clip-nav__wrapper","clip-nav__item","preview-item","preview-item__title-wrapper","preview-item__poster","clip-nav__item--passed","clip-nav__item--active","preview-item__play-btn","clip-nav__item--next","preview-item__title-wrapper--lower","preview-item__header-info","preview-item__title","preview-item__info-box","clip-nav__control","clip-nav__control--prev","clip-nav--left-end","clip-nav__control--next","clip-nav--right-end","_preact","_interopRequireDefault","previewStyles","_scrollIntoView","_ClipsPreview","_shallowEqual","_lodash","ClipsNav","_classCallCheck","_getPrototypeOf","_defineProperty","_assertThisInitialized","_this$containerRef","containerRef","scrollLeft","scrollWidth","canScrollLeft","canScrollRight","getBoundingClientRect","width","currentCanScrollLeft","currentCanScrollRight","idx","item","previewRefs","keys","currentRef","firstMatchRef","duration","isInitial","scrollIntoView","direction","res","scrollADistance","_objectSpread","scrollListener","default","handleScroll","shallowEqual","currentIndex","_this2","_objectDestructuringEmpty","_ref","showLikes","showViews","right-end","left-end","el","filter","Boolean","map","active","passed","_onClick","apply","toString","ClipsPreview","handleScrollClick","aria-hidden","xlinkHref","_ClipNav","_promiseUtils","_ViewCounter","_FadeIn","Video","playing","muted","controlsVisible","ludo","requirejs","clipIds","ludoMount","t0","saferPromise","fetchLudo","t1","t2","attempts","delay","ludoInstance","removeAllListeners","loop","mute","autoplay","debug","videoPlayerAspectRatio","autoadvance","features","airplay","chromecast","help","navKeys","poster","title","subtitle","enabled","analytics","ga","trackingId","on","index","onItemChanged","onTimeUpdate","t3","btn","querySelector","HTMLButtonElement","click","play","pause","_this$ludoInstance","isMuted","unmute","set","_this$ludoInstance2","playAt","onPlayClick","seekTo","fullscreen","incrementView","mountLudo","currentClipIds","newClipIds","diffClipIds","subTitle","clips","currentClip","video","video__wrapper","video__title","video__element","VideoDescription","clipLength","onPlayAtIndex","playlist","FadeIn","video__meta","ViewCounter","viewCheck","timeUpdateCount","hasIncremented","_ref4","_asyncToGenerator","mark","_callee4","_context4","incrementViewCount","_x2","_x3","clips1","clips2","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","getMonth","differenceInCalendarMonths","compareAsc","sign","difference","abs","setMonth","timeLeft","timeRight","url","str","matches","match","POLOPOLY_ID_REGEX","extractPolopolyIdFromString","TIMEOUT","cb","Array","isArray","_utils","runWithTimeout","hasTimedout","createTimer","concat","response","runFn","currentAttempt","rerun","currentDelay","getDelay","run","fade-in","fade-in-anim","fade-in--not-loaded","isErrorReportingEnabled","SimpleErrorReport","dryRun","_dhSimpleErrorReport","global","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","create","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","setPrototypeOf","__proto__","awrap","arg","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","self","tryLocsList","iter","result","done","reverse","Context","reset","skipTempReset","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","rootRecord","completion","rval","dispatchException","exception","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","complete","afterLoc","finish","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","fn","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","TypeError","info","pushTryEntry","locs","iteratorMethod","Function","check","maxCount","interval","count","setInterval","clearInterval","fetch","setImmediate","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","documentElement","onreadystatechange","random","source","indexOf","attachEvent","args","task","clearImmediate","setTimeoutFunc","noop","_state","_handled","_value","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","newValue","finale","thisArg","_unhandledRejectionFn","reason","ex","prom","arr","remaining","val","race","warn","_index","globalNS","initializeFirebaseInstance","config","FirebaseClient","assign","_x","buildDistanceInWordsLocale","buildFormatLocale","format","startOfDay","MILLISECONDS_IN_DAY","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","prefix","substr","pageXOffset","pageYOffset","scrollTop","_array","_bem","_scroll","_string","_toConsumableArray","arr2","from","blockName","_len","modifiers","_key","strings","modifier","objectString","toStrings","reduce","b","join","nodeList","_preactPureComponent","loaded","ownClasses","not-loaded","animationDelay","tag","PureComponent","_easings","defaultOptions","easing","easeOutSine","axis","scroll","endPosition","startTime","startPosition","tick","elapsed","requestAnimationFrame","container","_options","calculateScrollOffset","toLeft","defaultScrolLDistanceOptions","distance","_options2","distanceToScroll","canScroll","getCanScroll","initialValue","amountOfChange","sin","PI","calculateCenter","_el$getBoundingClient","left","calculateLeft","targetCenter","containerCenter","getDayOfYear","getISOWeek","getISOYear","isValid","enLocale","formatters","M","MM","addLeadingZeros","Q","ceil","D","getDate","DD","DDD","DDDD","getDay","E","W","WW","YY","YYYY","GG","GGGG","H","getHours","HH","hh","getMinutes","mm","getSeconds","ss","S","floor","getMilliseconds","SS","SSS","Z","formatTimezone","ZZ","X","x","delimeter","absOffset","number","targetLength","output","dirtyFormatStr","formatStr","locale","localeFormatters","formattingTokensRegExp","formatter","input","buildFormatFn","formatFn","buildFormattingTokensRegExp","months3char","monthsFull","weekdays2char","weekdays3char","weekdaysFull","meridiemUppercase","meridiemLowercase","meridiemFull","MMM","MMMM","dd","ddd","dddd","A","aa","formatterToken","distanceInWordsLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","localize","addSuffix","comparison","rem100","ordinal","fourthOfJanuary","weekStartsOn","setDate","root-goalshow-player","_Video","App","firebaseConfig","_domready","_errorReporting","_App","_dhAnalyticsUtils","_getContextId","rootElementClassName","toArray","getElementsByClassName","isInitialized","createUniqueId","getAttribute","preloadedState","JSON","decodeURIComponent","errorTrackingEnabled","createErrorReporter","listenAndCatch","gaPropertyId","metadata","selfId","published","createGoogleAnalyticsTracker","publishedDate","getContextId","location","href","log","sendEvent","category","action","label","find","predicate","k","kValue","writable","startOfISOYear","MILLISECONDS_IN_WEEK","cleanDate","startOfYear","differenceInCalendarDays","preview","preview__title","preview-wrapper","preview-item__header","preview-item__clip-count","preview-item__duration","preview-item__play-icon","preview-item__gradient","preview-item--playlist","like-button","preview-item--tag","preview-item__sub-title","_safer","_toArray","differenceInMilliseconds","startOfWeek","u","g","y","w","referrer","dimension1","dimension2","dimension3","dimension4","dimension5","dimension6","dimension7","dimension10","v","cookieDomain","eventCategory","eventAction","eventLabel","eventValue","nonInteraction","fieldsObject","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","listener","fns","doScroll","readyState","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","argv","version","versions","addListener","once","off","removeListener","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","viewCount","viewCountId","_viewCount","getViewCount","updateViewCount","views","formatedViewCount","formatNumber","toLocaleString","scope","Timeout","clearFn","_id","_clearFn","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","eval","webpackPolyfill","deprecate","paths","XMLHttpRequest","open","headers","setRequestHeader","header","getAllResponseHeaders","ok","status","statusText","responseURL","clone","text","responseText","json","blob","Blob","entries","has","withCredentials","credentials","send","body","register","message","errorRegister","filename","lineno","colno","line","column","sendErrorReport","stringify","isInRegisterWithinRange","addErrorToRegister","_distance_in_words_to_now","_format","_nb","_LikeButton","_PlayIcon","updateCounts","updateLiked","lastUpdated","timeStr","thumbnail","PlayIcon","video__description-block","video__description-block--playlist","video__playlist-count","video__title-block","tag-list","tag-list__item","compareDesc","differenceInSeconds","differenceInMonths","MINUTES_IN_DAY","MINUTES_IN_ALMOST_TWO_DAYS","MINUTES_IN_MONTH","MINUTES_IN_TWO_MONTHS","dirtyDateToCompare","localizeOptions","months","includeSeconds","monthsSinceStartOfYear","years","commonFormatterKeys","formatterKeys","formattingTokens","sort","RegExp","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","root","objectToString","nativeMax","nativeMin","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","cancel","flush","isSymbol","isObjectLike","valueOf","isBinary","like-button--hoverable","like-button__icon-fill","like-button--hidden","like-button__icon","like-button__icon-stroke","like-button__icon--liked","like-button__text"],"mappings":"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","file":"v2-polopoly-goalshow-player-25adf79247c1b23e18f3.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t19: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"1\":\"vendors~Firebase~FirebaseAuth~FirebaseClient~FirebaseDatabase\",\"2\":\"vendors~Firebase~FirebaseClient\",\"3\":\"vendors~FirebaseAuth~FirebaseClient\",\"4\":\"vendors~FirebaseClient~FirebaseDatabase\",\"13\":\"FirebaseClient\"}[chunkId]||chunkId) + \"-\" + {\"1\":\"08d4abf410254a56b612\",\"2\":\"9f44f153be8f275a54be\",\"3\":\"ca805281c9545b586650\",\"4\":\"ffda26a0af368b3e6078\",\"13\":\"50448b535f3e5001d280\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\t\tvar script = document.createElement('script');\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tfunction onScriptComplete(event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\thead.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\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 = \"https://static.nrk.no/dh/module/fotballvm-2018-center/static/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 370);\n","/** Virtual DOM Node */\nfunction VNode() {}\n\n/** Global options\n *\t@public\n *\t@namespace options {Object}\n */\nvar options = {\n\n\t/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n */\n\t//syncComponentUpdates: true,\n\n\t/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n */\n\t//vnode(vnode) { }\n\n\t/** Hook invoked after a component is mounted. */\n\t// afterMount(component) { }\n\n\t/** Hook invoked after the DOM is updated with a component's latest render. */\n\t// afterUpdate(component) { }\n\n\t/** Hook invoked immediately before a component is unmounted. */\n\t// beforeUnmount(component) { }\n};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\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\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\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\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\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\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\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\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) 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\tsetProperty(node, name, value == null ? '' : value);\n\t\tif (value == null || value === false) node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\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\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\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\t// it wasn't a Text node: replace it with one and recycle the old Element\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\t// If the VNode represents a Component, perform a component diff:\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t} // if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\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\t// Optimization: fast-path for elements containing a single TextNode:\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}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\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\t// Build up a map of keyed children and an Array of unkeyed children:\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\t// attempt to find a node based on key matching\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}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (!child && 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\t// morph the matched/found/created DOM child to match vchild (deep)\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\t// remove unused keyed children:\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\t// remove orphaned unkeyed children:\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t} else {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) 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\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\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\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\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\t// add new & update changed attributes\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\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n\tvar name = component.constructor.name;\n\t(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context) {\n\tvar list = components[Ctor.name],\n\t inst;\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\tif (list) {\n\t\tfor (var i = list.length; i--;) {\n\t\t\tif (list[i].constructor === Ctor) {\n\t\t\t\tinst.nextBase = list[i].nextBase;\n\t\t\t\tlist.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tif (component.__ref = props.ref) delete props.ref;\n\tif (component.__key = props.key) delete props.key;\n\n\tif (!component.base || mountAll) {\n\t\tif (component.componentWillMount) component.componentWillMount();\n\t} else if (component.componentWillReceiveProps) {\n\t\tcomponent.componentWillReceiveProps(props, context);\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 (opts !== 0) {\n\t\tif (opts === 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\tif (component.__ref) component.__ref(component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, 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 rendered,\n\t inst,\n\t cbase;\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (opts !== 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\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\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\t\t\t// set up high order component link\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\t// destroy high order component link\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 || opts === 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.unshift(component);\n\t} else if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, previousContext);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\tif (component._renderCallbacks != null) {\n\t\twhile (component._renderCallbacks.length) {\n\t\t\tcomponent._renderCallbacks.pop().call(component);\n\t\t}\n\t}\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\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\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\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\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\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\t// recursively tear down & recollect high-order component children:\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\tcollectComponent(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\n/** Base Component class.\n *\tProvides `setState()` and `forceUpdate()`, which trigger rendering.\n *\t@public\n *\n *\t@example\n *\tclass MyFoo extends Component {\n *\t\trender(props, state) {\n *\t\t\treturn
;\n *\t\t}\n *\t}\n */\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.context = context;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.props = props;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.state = this.state || {};\n}\n\nextend(Component.prototype, {\n\n\t/** Returns a `boolean` indicating if the component should re-render when receiving the given `props` and `state`.\n *\t@param {object} nextProps\n *\t@param {object} nextState\n *\t@param {object} nextContext\n *\t@returns {Boolean} should the component re-render\n *\t@name shouldComponentUpdate\n *\t@function\n */\n\n\t/** Update component state by copying properties from `state` to `this.state`.\n *\t@param {object} state\t\tA hash of state properties to update with new values\n *\t@param {function} callback\tA function to be called once component state is updated\n */\n\tsetState: function setState(state, callback) {\n\t\tvar s = this.state;\n\t\tif (!this.prevState) this.prevState = extend({}, s);\n\t\textend(s, typeof state === 'function' ? state(s, this.props) : state);\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\n\t/** Immediately perform a synchronous re-render of the component.\n *\t@param {function} callback\t\tA function to be called after component is re-rendered.\n *\t@private\n */\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n *\t@param {object} state\t\tThe component's current state\n *\t@param {object} context\t\tContext object (if a parent component has provided context)\n *\t@returns VNode\n */\n\trender: function render() {}\n});\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {Element} [merge]\tAttempt to re-use an existing DOM tree rooted at `merge`\n *\t@public\n *\n *\t@example\n *\t// render a div into :\n *\trender(
hello!
, document.body);\n *\n *\t@example\n *\t// render a \"Thing\" component into #foo:\n *\tconst Thing = ({ name }) => { name };\n *\trender(, document.querySelector('#foo'));\n */\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, Component, render, rerender, options };\n//# sourceMappingURL=preact.esm.js.map\n","var isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n if (isDate(argument)) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument !== 'string') {\n return new Date(argument)\n }\n\n var options = dirtyOptions || {}\n var additionalDigits = options.additionalDigits\n if (additionalDigits == null) {\n additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n } else {\n additionalDigits = Number(additionalDigits)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone)\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = new Date(timestamp + time).getTimezoneOffset()\n offset = new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset()\n }\n\n return new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE)\n } else {\n return new Date(argument)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {}\n var array = dateString.split(parseTokenDateTimeDelimeter)\n var timeString\n\n if (parseTokenPlainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n }\n\n if (timeString) {\n var token = parseTokenTimezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var parseTokenYYY = parseTokensYYY[additionalDigits]\n var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = parseTokenMM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = parseTokenDDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = parseTokenMMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = parseTokenWww.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n return dayOfISOYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = parseTokenWwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n return dayOfISOYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = parseTokenHH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = parseTokenHHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = parseTokenHHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token\n var absoluteOffset\n\n // Z\n token = parseTokenTimezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n // ±hh\n token = parseTokenTimezoneHH.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = parseTokenTimezoneHHMM.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\nmodule.exports = parse\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n\n var fourthOfJanuaryOfNextYear = new Date(0)\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n var fourthOfJanuaryOfThisYear = new Date(0)\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\nmodule.exports = getISOYear\n","// tslint:disable\nimport * as Preact from 'preact'\nimport { firebaseInstance } from '../../../../db/firebase'\nimport { IClip } from '../../../../../types'\nimport * as styles from './index.css'\nimport { bem } from '@nrk/dh-utils'\nimport { sleep } from '../../../../../lib/promise-utils'\nimport { waitUntil } from '../../../../../lib/wait-until'\n\nconst { h, Component } = Preact\n\nclass LikeButton extends Component<\n { clip: IClip; notClickable?: boolean },\n { liked?: boolean; likeCount?: number; hidden: boolean; disabled: boolean }\n> {\n public state = {\n liked: undefined,\n likeCount: undefined,\n hidden: true,\n disabled: false\n }\n public componentDidMount() {\n this.getLikeState(this.props.clip.id)\n }\n\n public componentWillReceiveProps(nextProps: { clip: IClip }) {\n if (this.props.clip.id !== nextProps.clip.id) {\n this.setState({ hidden: true })\n this.getLikeState(nextProps.clip.id)\n }\n }\n\n public getLikeState = async (id: string) => {\n if (!firebaseInstance) {\n await waitUntil(() => !!firebaseInstance, 1000).catch(console.error)\n }\n if (firebaseInstance) {\n const [liked, likeCount] = await Promise.all([\n firebaseInstance.getLikeState(id),\n firebaseInstance.getLikeCount(id)\n ])\n if (id !== this.props.clip.id) return\n this.setState({ liked, likeCount, hidden: false })\n }\n }\n\n public toggleLikeState = async () => {\n const { id } = this.props.clip\n const { liked, likeCount } = this.state\n const didLike: boolean = !liked\n const newLikeCount = didLike ? likeCount + 1 : Math.max(0, likeCount - 1)\n this.setState({\n liked: didLike,\n likeCount: newLikeCount,\n hidden: false,\n disabled: true\n })\n\n await waitUntil(() => !!firebaseInstance, 1000).catch(console.error)\n if (firebaseInstance) {\n await firebaseInstance.toggleLikeState(id)\n const likeCount = await firebaseInstance.getLikeCount(id)\n\n if (id === this.props.clip.id) {\n this.setState({\n likeCount,\n hidden: false,\n disabled: false\n })\n }\n }\n }\n public render() {\n const { liked, likeCount, hidden, disabled } = this.state\n const { clip, notClickable } = this.props\n const { likes: likesFromDb } = clip\n\n if (notClickable) {\n return (\n
\n \n \n {likeCount !== undefined ? likeCount : likesFromDb}\n \n
\n )\n }\n return (\n \n \n\n \n {likeCount !== undefined ? likeCount : likesFromDb}\n \n \n )\n }\n}\n\nconst LikeIcon = ({\n liked = false\n}: {\n unhoverable?: boolean\n liked: boolean\n}) => {\n return (\n \n \n \n \n )\n}\n\nexport { LikeButton }\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"view-count\":\"dh-fotballvm18-view-count\",\"view-count--hidden\":\"dh-fotballvm18-view-count--hidden\",\"view-count__icon\":\"dh-fotballvm18-view-count__icon\",\"view-count__text\":\"dh-fotballvm18-view-count__text\"};","var distanceInWords = require('../distance_in_words/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = distanceInWordsToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = distanceInWordsToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = distanceInWordsToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWordsToNow (dirtyDate, dirtyOptions) {\n return distanceInWords(Date.now(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = distanceInWordsToNow\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"clip-nav\":\"dh-fotballvm18-clip-nav\",\"clip-nav__wrapper\":\"dh-fotballvm18-clip-nav__wrapper\",\"clip-nav__item\":\"dh-fotballvm18-clip-nav__item\",\"preview-item\":\"dh-fotballvm18-preview-item\",\"preview-item__title-wrapper\":\"dh-fotballvm18-preview-item__title-wrapper\",\"preview-item__poster\":\"dh-fotballvm18-preview-item__poster\",\"clip-nav__item--passed\":\"dh-fotballvm18-clip-nav__item--passed\",\"clip-nav__item--active\":\"dh-fotballvm18-clip-nav__item--active\",\"preview-item__play-btn\":\"dh-fotballvm18-preview-item__play-btn\",\"clip-nav__item--next\":\"dh-fotballvm18-clip-nav__item--next\",\"preview-item__title-wrapper--lower\":\"dh-fotballvm18-preview-item__title-wrapper--lower\",\"preview-item__header-info\":\"dh-fotballvm18-preview-item__header-info\",\"preview-item__title\":\"dh-fotballvm18-preview-item__title\",\"preview-item__info-box\":\"dh-fotballvm18-preview-item__info-box\",\"clip-nav__control\":\"dh-fotballvm18-clip-nav__control\",\"clip-nav__control--prev\":\"dh-fotballvm18-clip-nav__control--prev\",\"clip-nav--left-end\":\"dh-fotballvm18-clip-nav--left-end\",\"clip-nav__control--next\":\"dh-fotballvm18-clip-nav__control--next\",\"clip-nav--right-end\":\"dh-fotballvm18-clip-nav--right-end\"};","import Preact from 'preact'\n\nimport * as previewStyles from '../../Preview/index.css'\nimport * as styles from './index.css'\nimport { Clips } from '../../../../../../types'\nimport {\n scrollIntoView,\n scrollADistance\n} from '../../../../../../lib/scroll-into-view/scroll-into-view'\nimport { bem } from '@nrk/dh-utils'\nimport { ClipsPreview } from '../../Preview/ClipsPreview'\nimport { shallowEqual } from '../../../../../../lib/shallow-equal'\nimport throttle from 'lodash.throttle'\n\nconst { h, Component } = Preact\n\ninterface IProps {\n showLikes: boolean\n showViews: boolean\n items: Clips\n currentIndex: number\n onClick: (...args: any[]) => void\n}\n\ninterface IState {\n isInitial: boolean\n canScrollRight: boolean\n canScrollLeft: boolean\n}\n\nclass ClipsNav extends Component {\n public previewRefs: { [key: string]: HTMLElement } | null = {}\n public containerRef: HTMLElement | undefined | null\n public scrollListener = null\n\n constructor(props) {\n super(props)\n this.state = {\n isInitial: true,\n canScrollRight: true,\n canScrollLeft: false\n }\n }\n\n public componentDidMount() {\n this.scrollListener = throttle(this.handleScroll, 16.666)\n this.containerRef.addEventListener('scroll', this.scrollListener)\n }\n\n public componentWillUnmount() {\n this.previewRefs = {}\n this.containerRef.removeEventListener('scroll', this.scrollListener)\n this.containerRef = null\n }\n public shouldComponentUpdate(props, state) {\n return !(shallowEqual(props, this.props) && shallowEqual(state, this.state))\n }\n\n public componentDidUpdate(prevProps: IProps) {\n if (\n this.state.isInitial ||\n this.props.currentIndex !== prevProps.currentIndex\n ) {\n this.scrollIntoView(this.props.currentIndex, true)\n }\n }\n\n public handleScroll = () => {\n const { scrollLeft, scrollWidth } = this.containerRef\n const { width } = this.containerRef.getBoundingClientRect()\n\n const canScrollLeft = scrollLeft > 10\n const canScrollRight = scrollLeft + width + 10 < scrollWidth\n const currentCanScrollLeft = this.state.canScrollLeft\n const currentCanScrollRight = this.state.canScrollRight\n if (\n canScrollLeft !== currentCanScrollLeft ||\n canScrollRight !== currentCanScrollRight\n ) {\n this.setState({ canScrollLeft, canScrollRight })\n }\n }\n\n public scrollIntoView = (idx: number, smooth: boolean = true) => {\n const item = this.props.items[idx]\n if (\n this.previewRefs &&\n Object.keys(this.previewRefs).length &&\n this.containerRef\n ) {\n let currentRef = null\n if (!item) {\n const firstMatchRef = this.props.items[0].id\n currentRef = this.previewRefs[firstMatchRef]\n } else {\n currentRef = this.previewRefs[item.id]\n }\n if (!currentRef) return\n\n const duration = this.state.isInitial ? 0 : 250\n\n scrollIntoView(currentRef, this.containerRef, { duration })\n\n if (this.state.isInitial) {\n this.setState({ isInitial: false })\n }\n }\n }\n\n public handleScrollClick = (direction: 'right' | 'left') => () => {\n const res = scrollADistance(this.containerRef, null, { direction })\n this.setState({ ...res })\n }\n\n public render({}) {\n const { items, currentIndex, onClick, showLikes, showViews } = this.props\n const { canScrollLeft, canScrollRight } = this.state\n\n return (\n \n (this.containerRef = el)}\n class={styles['clip-nav__wrapper']}\n >\n {items &&\n items.filter(Boolean).map((item, idx) => (\n (this.previewRefs[item.id] = el)}\n class={bem(styles['clip-nav__item'], {\n active: idx === currentIndex,\n passed: idx < currentIndex,\n next: idx === currentIndex + 1\n })}\n key={item.id}\n onClick={() => onClick(idx)}\n >\n
\n \n
\n \n ))}\n \n
\n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n
\n
\n )\n }\n}\n\nexport { ClipsNav }\n","import Preact from 'preact'\nimport { Ludo, Clips } from '../../../../../types'\nimport * as styles from './index.css'\nimport { ClipsNav } from './ClipNav'\nimport { shallowEqual } from '../../../../../lib/shallow-equal'\nimport { saferPromise } from '../../../../../lib/promise-utils'\nimport { ViewCounter } from '../ViewCounter'\nimport { LikeButton } from '../LikeButton'\nimport { firebaseInstance } from '../../../../db/firebase'\nimport { waitUntil } from '../../../../../lib/wait-until'\nimport { FadeIn } from '../../../lib/FadeIn'\nimport { bem } from '@nrk/dh-utils'\n\nconst { h, Component } = Preact\n\n/*\nNotes: hvis det bare er et klipp begynner klippet på nytt, den slutter ikke på slutten av et spilleliste.\n\n*/\n\ninterface IProps {\n clips: Clips\n clipIds: string[]\n onItemChanged?: (index: number) => void\n title?: string\n subTitle?: string\n showLikes: boolean\n showViews: boolean\n}\n\ninterface IState {\n time: Array<{ currentTime; duration }>\n currentIndex: number\n controlsVisible: boolean\n playing: boolean\n muted: boolean\n}\n\nclass Video extends Component {\n public autoplayTimeout: NodeJS.Timer = null\n public ludoInstance: any = null\n public ludoMount: HTMLElement = null\n public ludo: Ludo\n public state = {\n time: [],\n playing: false,\n muted: false,\n currentIndex: 0,\n controlsVisible: false\n }\n\n public fetchLudo = async () => {\n if (!this.ludo) {\n await waitUntil(() => !!window.requirejs, 500)\n await new Promise((resolve, reject) =>\n window.requirejs(\n ['https://static.nrk.no/ludo/4.4.44/ludo.js'],\n ludo => {\n if (ludo) {\n this.ludo = ludo\n resolve()\n } else {\n reject()\n }\n }\n )\n )\n }\n }\n\n public mountLudo = async (clipIds: string[]) => {\n try {\n if (!this.ludoMount) return\n if (!this.ludo) {\n await saferPromise(await this.fetchLudo, {\n attempts: 3,\n delay: [250, 2500]\n })\n }\n if (this.ludoInstance) {\n this.ludoInstance.removeAllListeners()\n this.ludoInstance = null\n this.ludoMount.innerHTML = ''\n }\n\n this.ludoInstance = this.ludo(this.ludoMount, clipIds, {\n loop: false,\n mute: false,\n autoplay: false,\n debug: false,\n videoPlayerAspectRatio: '16:9',\n autoadvance: true,\n features: {\n airplay: false,\n chromecast: false,\n help: false,\n navKeys: false\n },\n poster: {\n title: false,\n subtitle: false,\n duration: true\n },\n chromecast: {\n enabled: false\n },\n analytics: {\n ga: {\n trackingId: 'UA-3413696-1'\n }\n }\n })\n\n this.ludoInstance.on('item-changed', e => {\n const index = this.ludoInstance.index()\n\n this.setState({ currentIndex: index })\n if (this.props.onItemChanged) this.props.onItemChanged(index)\n })\n this.ludoInstance.on('play', e => {\n this.setState({ playing: true })\n })\n this.ludoInstance.on('pause', e => {\n this.setState({ playing: false })\n })\n this.ludoInstance.on('unmuted', e => {\n this.setState({ muted: false })\n })\n this.ludoInstance.on('muted', e => {\n this.setState({ muted: true })\n })\n\n this.ludoInstance.on('timeupdate', this.onTimeUpdate)\n } catch (err) {\n console.error('Tried to mount Ludo', err)\n }\n }\n\n public async componentDidMount() {\n this.mountLudo(this.props.clipIds)\n }\n\n public componentWillReceiveProps(nextProps) {\n const currentClipIds = this.props.clipIds\n const newClipIds = nextProps.clipIds\n const diff = diffClipIds(currentClipIds, newClipIds)\n if (diff) {\n this.mountLudo(nextProps.clipIds)\n }\n }\n\n public componentWillUnmount() {\n if (this.ludoInstance) this.ludoInstance.removeAllListeners()\n this.ludoInstance = null\n this.ludoMount = null\n this.ludo = null\n }\n\n public render() {\n const { title, subTitle, clips, showLikes, showViews } = this.props\n const { currentIndex } = this.state\n const currentClip = clips[currentIndex]\n\n return (\n
\n
\n {title ? (\n
\n {subTitle &&
{subTitle}
}\n {title &&

{title}

}\n
\n ) : null}\n\n (this.ludoMount = el)}\n />\n \n
\n\n {clips.length > 1 && (\n \n )}\n
\n )\n }\n\n private onPlayClick = () => {\n try {\n const btn = this.ludoMount.querySelector(\n 'button.ludo-poster__accessible-play-button'\n )\n\n if (btn instanceof HTMLButtonElement) {\n btn.click()\n } else {\n this.ludoInstance.play()\n }\n } catch (err) {\n console.error('Error in play')\n }\n }\n\n private onPauseClick = () => {\n this.ludoInstance.pause()\n }\n\n private onToggleMuteClick = () => {\n const { isMuted, unmute, mute, set } = this.ludoInstance\n if (isMuted()) {\n unmute()\n } else {\n mute()\n }\n }\n\n private onNextClick = () => {\n this.ludoInstance.next()\n }\n\n private onPreviousClick = () => {\n const { playAt, index } = this.ludoInstance\n playAt(index() - 1)\n }\n\n private onPlayAtIndex = (index: number) => {\n const { playAt } = this.ludoInstance\n\n this.onPlayClick()\n playAt(index)\n }\n private onRestartClipClick = () => {\n this.ludoInstance.seekTo(0)\n }\n\n private onFullscreenToggleClick = () => {\n this.ludoInstance.fullscreen()\n }\n\n private onTimeUpdate = (time: number) => {\n incrementView(time, this.props.clipIds[this.state.currentIndex])\n }\n}\n\nconst VideoDescription = ({ currentClip, currentIndex, clipLength }) => {\n const { title, id } = currentClip\n const playlist = clipLength > 1\n return (\n \n
\n {playlist && (\n
\n {currentIndex + 1} av {clipLength}\n
\n )}\n \n {/* */}\n
\n
\n

{title}

\n
\n \n )\n}\n\nconst MIN_TIME_UPDATE = 18\n\nlet viewCheck = {\n id: null,\n timeUpdateCount: 0,\n hasIncremented: false\n}\n\nconst incrementView = async (time: number, id: string) => {\n if (!id) {\n return\n } else if (id !== viewCheck.id) {\n viewCheck = {\n id,\n timeUpdateCount: 0,\n hasIncremented: false\n }\n } else if (viewCheck.hasIncremented) {\n return\n } else if (viewCheck.timeUpdateCount >= MIN_TIME_UPDATE) {\n viewCheck.hasIncremented = true\n viewCheck.timeUpdateCount += 1\n await waitUntil(() => !!firebaseInstance, 1000)\n firebaseInstance.incrementViewCount(id)\n } else {\n viewCheck.timeUpdateCount += 1\n }\n}\n\nexport { Video }\n\nconst diffClipIds = (clips1: string[], clips2: string[]) => {\n if (clips1.length !== clips2.length) return true\n\n const clipsInBoth = clips1.filter((clip, idx) => clip === clips2[idx])\n return clipsInBoth.length !== clips1.length\n}\n","/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n return argument instanceof Date\n}\n\nmodule.exports = isDate\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth()\n\n return yearDiff * 12 + monthDiff\n}\n\nmodule.exports = differenceInCalendarMonths\n","var parse = require('../parse/index.js')\nvar differenceInCalendarMonths = require('../difference_in_calendar_months/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 7\n */\nfunction differenceInMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference)\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastMonthNotFull)\n}\n\nmodule.exports = differenceInMonths\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft > timeRight) {\n return -1\n } else if (timeLeft < timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareDesc\n","const POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g\n\nexport function getContextId(url: string): string | null {\n return extractPolopolyIdFromString(url)\n}\n\nfunction extractPolopolyIdFromString(str: string): string | null {\n const matches = str.match(POLOPOLY_ID_REGEX)\n if (matches && matches.length) {\n return matches[0]\n }\n return null\n}\n","export const createTimer = (TIMEOUT: number, cb: () => void): NodeJS.Timer =>\n setTimeout(cb, TIMEOUT)\n\nexport type Delay = undefined | number | number[]\n\nexport const getDelay = (delay: Delay, idx: number): number => {\n if (!delay) return 0\n\n if (Array.isArray(delay)) {\n return delay[idx] || 0\n }\n\n return delay\n}\n","import { Delay, getDelay, createTimer } from './utils'\n\nconst runWithTimeout = (\n promise: () => Promise,\n time = 0\n): Promise => {\n let hasTimedout = false\n let timeout = null\n\n const runFn = (resolve, reject) => {\n const cb = () => {\n hasTimedout = true\n reject(new Error(`Exceeded timelimit of ${time} milliseconds.`))\n }\n\n timeout = createTimer(time, cb)\n\n promise()\n .then(response => {\n clearTimeout(timeout)\n if (!hasTimedout) {\n resolve(response)\n }\n return response\n })\n .catch(err => {\n reject(err)\n })\n }\n\n return new Promise((resolve, reject) => {\n runFn(resolve, reject)\n })\n}\n\ninterface IOpts {\n delay?: Delay\n attempts?: number\n timeout?: number\n}\n\nconst saferPromise = (\n promise: () => Promise,\n opts: IOpts\n): Promise => {\n const { delay, attempts, timeout } = opts\n let currentAttempt = 0\n\n return new Promise((resolve, reject) => {\n const rerun = res => {\n currentAttempt++\n\n if (currentAttempt < attempts) {\n const currentDelay = getDelay(delay, currentAttempt - 1)\n\n currentDelay ? setTimeout(run, currentDelay) : run()\n } else {\n reject(res)\n }\n }\n\n const run = () =>\n (timeout ? runWithTimeout(promise, timeout) : promise())\n .then(resolve)\n .catch(rerun)\n .catch(reject)\n run()\n })\n}\n\nexport { saferPromise }\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"fade-in\":\"dh-fotballvm18-fade-in\",\"fade-in-anim\":\"dh-fotballvm18-fade-in-anim\",\"fade-in--not-loaded\":\"dh-fotballvm18-fade-in--not-loaded\"};","import { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nexport function createErrorReporter(\n name: string,\n isErrorReportingEnabled: boolean\n) {\n return new SimpleErrorReport({\n name,\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n })\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","const waitUntil = (check: () => boolean, time: number, maxCount?: number) =>\n new Promise((resolve, reject) => {\n let interval = null\n let count = 0\n\n const checkIfPresent = () => {\n if (check()) {\n clearInterval(interval)\n resolve()\n } else if (maxCount !== undefined && count >= maxCount) {\n clearInterval(interval)\n reject()\n } else {\n count += 1\n }\n }\n\n interval = setInterval(checkIfPresent, time)\n })\n\nexport { waitUntil }\n","if (!window.fetch) window.fetch = require('.').default || require('.');\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a