{"version":3,"sources":["webpack:///v1-bundle-2873dfb6a353e43f17da.js","webpack:///webpack/bootstrap 185896639e6243107111","webpack:///./node_modules/date-fns/parse/index.js","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///./node_modules/date-fns/get_iso_year/index.js","webpack:///./node_modules/date-fns/start_of_iso_week/index.js","webpack:///./node_modules/date-fns/start_of_day/index.js","webpack:///./node_modules/date-fns/add_days/index.js","webpack:///./node_modules/date-fns/add_milliseconds/index.js","webpack:///./node_modules/date-fns/start_of_iso_year/index.js","webpack:///./node_modules/date-fns/compare_asc/index.js","webpack:///./src/lib/@nrk/dh-feature-components/index.js","webpack:///./src/lib/bem.js","webpack:///./node_modules/date-fns/start_of_week/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_days/index.js","webpack:///./node_modules/date-fns/add_months/index.js","webpack:///./node_modules/date-fns/difference_in_milliseconds/index.js","webpack:///./src/v1/components/Article/index.css","webpack:///./node_modules/date-fns/is_date/index.js","webpack:///./node_modules/date-fns/get_days_in_month/index.js","webpack:///./node_modules/date-fns/add_weeks/index.js","webpack:///./node_modules/date-fns/compare_desc/index.js","webpack:///./node_modules/date-fns/difference_in_months/index.js","webpack:///./node_modules/date-fns/difference_in_seconds/index.js","webpack:///./node_modules/date-fns/locale/en/index.js","webpack:///./node_modules/date-fns/end_of_day/index.js","webpack:///./node_modules/date-fns/get_iso_week/index.js","webpack:///./node_modules/date-fns/is_same_week/index.js","webpack:///./src/v1/components/Article/Content/CharacterPresentation/index.css","webpack:///./src/lib/array.js","webpack:///./node_modules/date-fns/add_hours/index.js","webpack:///./node_modules/date-fns/add_iso_years/index.js","webpack:///./node_modules/date-fns/set_iso_year/index.js","webpack:///./node_modules/date-fns/add_minutes/index.js","webpack:///./node_modules/date-fns/add_quarters/index.js","webpack:///./node_modules/date-fns/add_seconds/index.js","webpack:///./node_modules/date-fns/add_years/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_iso_years/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_months/index.js","webpack:///./node_modules/date-fns/get_quarter/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_years/index.js","webpack:///./node_modules/date-fns/difference_in_days/index.js","webpack:///./node_modules/date-fns/sub_iso_years/index.js","webpack:///./node_modules/date-fns/distance_in_words/index.js","webpack:///./node_modules/date-fns/end_of_week/index.js","webpack:///./node_modules/date-fns/end_of_month/index.js","webpack:///./node_modules/date-fns/get_day_of_year/index.js","webpack:///./node_modules/date-fns/start_of_year/index.js","webpack:///./node_modules/date-fns/is_valid/index.js","webpack:///./node_modules/date-fns/is_leap_year/index.js","webpack:///./node_modules/date-fns/get_iso_day/index.js","webpack:///./node_modules/date-fns/is_same_hour/index.js","webpack:///./node_modules/date-fns/start_of_hour/index.js","webpack:///./node_modules/date-fns/is_same_iso_week/index.js","webpack:///./node_modules/date-fns/is_same_iso_year/index.js","webpack:///./node_modules/date-fns/is_same_minute/index.js","webpack:///./node_modules/date-fns/start_of_minute/index.js","webpack:///./node_modules/date-fns/is_same_month/index.js","webpack:///./node_modules/date-fns/is_same_quarter/index.js","webpack:///./node_modules/date-fns/start_of_quarter/index.js","webpack:///./node_modules/date-fns/is_same_second/index.js","webpack:///./node_modules/date-fns/start_of_second/index.js","webpack:///./node_modules/date-fns/is_same_year/index.js","webpack:///./node_modules/date-fns/last_day_of_week/index.js","webpack:///./node_modules/date-fns/set_month/index.js","webpack:///./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","webpack:///./src/lib/@nrk/dh-feature-components/ScrollSlideshow/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Slideshow/index.css","webpack:///./src/lib/@nrk/dh-video-component/index.js","webpack:///./src/v1/components/Skew/index.js","webpack:///./src/v1/client.polyfill.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./src/v1/client.js","webpack:///./node_modules/@nrk/feature-tests/dist/feature-tests.module.js","webpack:///./node_modules/domready/ready.js","webpack:///./src/lib/googleAnalytics.js","webpack:///./src/lib/id.js","webpack:///./src/lib/errorReporting.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/v1/client.css","webpack:///./src/v1/components/Article/index.js","webpack:///./node_modules/@nrk/max-viewport-observable/dist/max-viewport-observable.module.js","webpack:///./src/v1/components/Article/Content/index.js","webpack:///./node_modules/date-fns/index.js","webpack:///./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/are_ranges_overlapping/index.js","webpack:///./node_modules/date-fns/closest_index_to/index.js","webpack:///./node_modules/date-fns/closest_to/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_iso_weeks/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_quarters/index.js","webpack:///./node_modules/date-fns/difference_in_calendar_weeks/index.js","webpack:///./node_modules/date-fns/difference_in_hours/index.js","webpack:///./node_modules/date-fns/difference_in_iso_years/index.js","webpack:///./node_modules/date-fns/difference_in_minutes/index.js","webpack:///./node_modules/date-fns/difference_in_quarters/index.js","webpack:///./node_modules/date-fns/difference_in_weeks/index.js","webpack:///./node_modules/date-fns/difference_in_years/index.js","webpack:///./node_modules/date-fns/locale/en/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/_lib/build_formatting_tokens_reg_exp/index.js","webpack:///./node_modules/date-fns/distance_in_words_strict/index.js","webpack:///./node_modules/date-fns/distance_in_words_to_now/index.js","webpack:///./node_modules/date-fns/each_day/index.js","webpack:///./node_modules/date-fns/end_of_hour/index.js","webpack:///./node_modules/date-fns/end_of_iso_week/index.js","webpack:///./node_modules/date-fns/end_of_iso_year/index.js","webpack:///./node_modules/date-fns/end_of_minute/index.js","webpack:///./node_modules/date-fns/end_of_quarter/index.js","webpack:///./node_modules/date-fns/end_of_second/index.js","webpack:///./node_modules/date-fns/end_of_today/index.js","webpack:///./node_modules/date-fns/end_of_tomorrow/index.js","webpack:///./node_modules/date-fns/end_of_year/index.js","webpack:///./node_modules/date-fns/end_of_yesterday/index.js","webpack:///./node_modules/date-fns/format/index.js","webpack:///./node_modules/date-fns/get_date/index.js","webpack:///./node_modules/date-fns/get_day/index.js","webpack:///./node_modules/date-fns/get_days_in_year/index.js","webpack:///./node_modules/date-fns/get_hours/index.js","webpack:///./node_modules/date-fns/get_iso_weeks_in_year/index.js","webpack:///./node_modules/date-fns/get_milliseconds/index.js","webpack:///./node_modules/date-fns/get_minutes/index.js","webpack:///./node_modules/date-fns/get_month/index.js","webpack:///./node_modules/date-fns/get_overlapping_days_in_ranges/index.js","webpack:///./node_modules/date-fns/get_seconds/index.js","webpack:///./node_modules/date-fns/get_time/index.js","webpack:///./node_modules/date-fns/get_year/index.js","webpack:///./node_modules/date-fns/is_after/index.js","webpack:///./node_modules/date-fns/is_before/index.js","webpack:///./node_modules/date-fns/is_equal/index.js","webpack:///./node_modules/date-fns/is_first_day_of_month/index.js","webpack:///./node_modules/date-fns/is_friday/index.js","webpack:///./node_modules/date-fns/is_future/index.js","webpack:///./node_modules/date-fns/is_last_day_of_month/index.js","webpack:///./node_modules/date-fns/is_monday/index.js","webpack:///./node_modules/date-fns/is_past/index.js","webpack:///./node_modules/date-fns/is_same_day/index.js","webpack:///./node_modules/date-fns/is_saturday/index.js","webpack:///./node_modules/date-fns/is_sunday/index.js","webpack:///./node_modules/date-fns/is_this_hour/index.js","webpack:///./node_modules/date-fns/is_this_iso_week/index.js","webpack:///./node_modules/date-fns/is_this_iso_year/index.js","webpack:///./node_modules/date-fns/is_this_minute/index.js","webpack:///./node_modules/date-fns/is_this_month/index.js","webpack:///./node_modules/date-fns/is_this_quarter/index.js","webpack:///./node_modules/date-fns/is_this_second/index.js","webpack:///./node_modules/date-fns/is_this_week/index.js","webpack:///./node_modules/date-fns/is_this_year/index.js","webpack:///./node_modules/date-fns/is_thursday/index.js","webpack:///./node_modules/date-fns/is_today/index.js","webpack:///./node_modules/date-fns/is_tomorrow/index.js","webpack:///./node_modules/date-fns/is_tuesday/index.js","webpack:///./node_modules/date-fns/is_wednesday/index.js","webpack:///./node_modules/date-fns/is_weekend/index.js","webpack:///./node_modules/date-fns/is_within_range/index.js","webpack:///./node_modules/date-fns/is_yesterday/index.js","webpack:///./node_modules/date-fns/last_day_of_iso_week/index.js","webpack:///./node_modules/date-fns/last_day_of_iso_year/index.js","webpack:///./node_modules/date-fns/last_day_of_month/index.js","webpack:///./node_modules/date-fns/last_day_of_quarter/index.js","webpack:///./node_modules/date-fns/last_day_of_year/index.js","webpack:///./node_modules/date-fns/max/index.js","webpack:///./node_modules/date-fns/min/index.js","webpack:///./node_modules/date-fns/set_date/index.js","webpack:///./node_modules/date-fns/set_day/index.js","webpack:///./node_modules/date-fns/set_day_of_year/index.js","webpack:///./node_modules/date-fns/set_hours/index.js","webpack:///./node_modules/date-fns/set_iso_day/index.js","webpack:///./node_modules/date-fns/set_iso_week/index.js","webpack:///./node_modules/date-fns/set_milliseconds/index.js","webpack:///./node_modules/date-fns/set_minutes/index.js","webpack:///./node_modules/date-fns/set_quarter/index.js","webpack:///./node_modules/date-fns/set_seconds/index.js","webpack:///./node_modules/date-fns/set_year/index.js","webpack:///./node_modules/date-fns/start_of_month/index.js","webpack:///./node_modules/date-fns/start_of_today/index.js","webpack:///./node_modules/date-fns/start_of_tomorrow/index.js","webpack:///./node_modules/date-fns/start_of_yesterday/index.js","webpack:///./node_modules/date-fns/sub_days/index.js","webpack:///./node_modules/date-fns/sub_hours/index.js","webpack:///./node_modules/date-fns/sub_milliseconds/index.js","webpack:///./node_modules/date-fns/sub_minutes/index.js","webpack:///./node_modules/date-fns/sub_months/index.js","webpack:///./node_modules/date-fns/sub_quarters/index.js","webpack:///./node_modules/date-fns/sub_seconds/index.js","webpack:///./node_modules/date-fns/sub_weeks/index.js","webpack:///./node_modules/date-fns/sub_years/index.js","webpack:///./src/v1/components/Article/Content/CharacterPresentation/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Figure/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Figure/index.css","webpack:///./src/lib/@nrk/dh-feature-components/Paragraph/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Paragraph/index.css","webpack:///./src/lib/@nrk/dh-feature-components/PolopolyPicture/index.js","webpack:///./src/lib/image.js","webpack:///./src/lib/@nrk/dh-feature-components/Quote/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Quote/index.css","webpack:///./src/lib/@nrk/dh-feature-components/ScrollSlideshow/index.css","webpack:///./src/lib/@nrk/dh-feature-components/Slideshow/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Slideshow/Background.js","webpack:///./src/lib/@nrk/dh-feature-components/Slideshow/Section.js","webpack:///./src/lib/@nrk/dh-feature-components/UnorderedList/index.js","webpack:///./src/lib/@nrk/dh-feature-components/UnorderedList/index.css","webpack:///./src/lib/@nrk/dh-feature-components/Video/index.js","webpack:///./src/lib/@nrk/dh-feature-components/Video/index.css","webpack:///./src/lib/@nrk/dh-feature-components/Video/Scrubber.js","webpack:///./src/lib/@nrk/dh-feature-components/Video/Scrubber.css","webpack:///./src/lib/@nrk/dh-feature-components/Video/TogglePlayButton.js","webpack:///./src/lib/@nrk/dh-feature-components/Video/TogglePlayButton.css","webpack:///./src/lib/@nrk/dh-feature-components/Video/MuteButton.js","webpack:///./src/lib/@nrk/dh-feature-components/Video/MuteButton.css","webpack:///./src/v1/components/Article/Content/CharacterPresentation/Background.js","webpack:///./src/v1/components/Article/Content/CharacterPresentation/Section.js","webpack:///./src/v1/components/Article/Content/Section/index.js","webpack:///./src/v1/components/Article/Header/index.js","webpack:///./src/v1/components/Article/Header/Byline.js","webpack:///./src/v1/components/Article/Header/Byline.css","webpack:///./src/v1/components/Article/Header/LeadMedia/index.js","webpack:///./src/v1/components/Article/Header/LeadMedia/index.css"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","parse","argument","dirtyOptions","isDate","Date","getTime","options","additionalDigits","DEFAULT_ADDITIONAL_DIGITS","Number","dateStrings","splitDateString","parseYearResult","parseYear","date","year","restDateString","parseDate","offset","timestamp","time","parseTime","timezone","parseTimezone","MILLISECONDS_IN_MINUTE","fullTime","fullTimeDate","getTimezoneOffsetInMilliseconds","fullTimeDateNextDay","setDate","getDate","offsetDiff","dateString","timeString","array","split","parseTokenDateTimeDelimeter","parseTokenPlainTime","test","token","parseTokenTimezone","exec","replace","parseTokenYYY","parseTokensYYY","parseTokenYYYYY","parseTokensYYYYY","parseTokenYYYY","yearString","parseInt","slice","length","parseTokenYY","centuryString","month","week","setUTCFullYear","parseTokenMM","parseTokenDDD","dayOfYear","parseTokenMMDD","day","parseTokenWww","dayOfISOYear","parseTokenWwwD","hours","minutes","parseTokenHH","parseFloat","MILLISECONDS_IN_HOUR","parseTokenHHMM","parseTokenHHMMSS","seconds","timezoneString","absoluteOffset","parseTokenTimezoneZ","parseTokenTimezoneHH","parseTokenTimezoneHHMM","isoYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","getUTCDate","require","__webpack_exports__","h","nodeName","attributes","lastSimple","child","simple","children","EMPTY_CHILDREN","arguments","stack","push","pop","undefined","String","VNode","key","vnode","extend","obj","props","applyRef","ref","value","current","cloneElement","enqueueRender","component","_dirty","items","debounceRendering","defer","rerender","renderComponent","isSameNodeType","node","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","document","createElementNS","createElement","removeNode","parentNode","removeChild","setAccessor","old","style","cssText","IS_NON_DIMENSIONAL","innerHTML","__html","useCapture","substring","addEventListener","eventProxy","removeEventListener","_listeners","e","removeAttribute","ns","removeAttributeNS","setAttributeNS","setAttribute","className","this","type","event","flushMounts","mounts","shift","afterMount","componentDidMount","dom","context","mountAll","parent","componentRoot","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","buildComponentFromVNode","firstChild","fc","vchildren","a","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","unmountOnly","unmountComponent","removeChildren","lastChild","next","previousSibling","attrs","createComponent","Ctor","inst","recyclerComponents","render","Component","constructor","doRender","nextBase","splice","state","setComponentProps","renderMode","_disable","__ref","getDerivedStateFromProps","base","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","snapshot","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","componentDidUpdate","afterUpdate","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","componentWillUnmount","inner","merge","createRef","Promise","resolve","then","bind","setTimeout","setState","callback","forceUpdate","preact","getISOYear","dirtyDate","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","setHours","startOfNextYear","startOfISOWeek","fourthOfJanuaryOfThisYear","startOfThisYear","startOfWeek","weekStartsOn","startOfDay","addDays","dirtyAmount","amount","addMilliseconds","startOfISOYear","fourthOfJanuary","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","timeLeft","dateRight","timeRight","_interopRequireDefault","default","Video","UnorderedList","Slideshow","ScrollSlideshow","Quote","PolopolyPicture","Paragraph","Figure","_Figure2","_Figure","_Paragraph2","_Paragraph","_PolopolyPicture2","_PolopolyPicture","_Quote2","_Quote","_ScrollSlideshow2","_ScrollSlideshow","_Slideshow2","_Slideshow","_UnorderedList2","_UnorderedList","_Video2","_Video","blockName","modifiers","concat","filter","Boolean","map","modifier","join","getDay","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","getTimezoneOffset","timestampRight","Math","round","MILLISECONDS_IN_DAY","addMonths","desiredMonth","getMonth","dateWithDesiredMonth","daysInMonth","getDaysInMonth","setMonth","differenceInMilliseconds","monthIndex","lastDayOfMonth","addWeeks","compareDesc","differenceInMonths","sign","difference","abs","differenceInCalendarMonths","differenceInSeconds","floor","ceil","buildDistanceInWordsLocale","buildFormatLocale","distanceInWords","format","endOfDay","getISOWeek","MILLISECONDS_IN_WEEK","isSameWeek","dateLeftStartOfWeek","dateRightStartOfWeek","toArray","addHours","addISOYears","setISOYear","dirtyISOYear","addMinutes","addQuarters","addSeconds","addYears","differenceInCalendarISOYears","getQuarter","differenceInCalendarYears","differenceInDays","subISOYears","dirtyDateToCompare","comparison","locale","localize","enLocale","localizeOptions","addSuffix","months","includeSeconds","MINUTES_IN_DAY","MINUTES_IN_ALMOST_TWO_DAYS","MINUTES_IN_MONTH","MINUTES_IN_TWO_MONTHS","monthsSinceStartOfYear","years","endOfWeek","endOfMonth","getDayOfYear","startOfYear","cleanDate","isValid","isNaN","TypeError","toString","isLeapYear","getISODay","isSameHour","dateLeftStartOfHour","startOfHour","dateRightStartOfHour","setMinutes","isSameISOWeek","isSameISOYear","dateLeftStartOfYear","dateRightStartOfYear","isSameMinute","dateLeftStartOfMinute","startOfMinute","dateRightStartOfMinute","setSeconds","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","startOfQuarter","dateRightStartOfQuarter","currentMonth","isSameSecond","dateLeftStartOfSecond","startOfSecond","dateRightStartOfSecond","setMilliseconds","isSameYear","lastDayOfWeek","dirtyMonth","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_typeof","Symbol","iterator","global","factory","define","isPolopolyId","id","isPolopolyIdRegex","createUrl","_ref","ratio","width","quality","url","_baseUrl","queryString","createQueryString","_ref2","getClosestNumber","goal","targets","isValidGoal","Error","isValidTargets","reduce","prev","curr","isValidRatio","supportedRatios","Array","isArray","includes","isValidQuality","supportedQualities","createImageUrl","polopolyId","args","hasOption","ratios","qualities","isNumber","errorMessage","isSupportedWidth","widths","closestWidth","option","number","isInteger","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","_createClass","defineProperties","target","descriptor","protoProps","staticProps","_bem2","_bem","_index2","_index","didView","visibleIndex","triggerElms","_Component","sectionElms","intersectionObserver","IntersectionObserver","entries","forEach","entry","idx","indexOf","isIntersecting","onAnalyticsEvent","action","rootMargin","margin","threshold","sectionsElm","sectionElm","observe","disconnect","backgrounds","sections","viewport","scrollSlideshow","backgroundsInlineStyle","backgroundInlineStyle","height","elm","scrollSlideshow__backgrounds","background","scrollSlideshow__background","scrollSlideshow__sections","_temp","_this","_ret","_len","_key","getPrototypeOf","apply","handleCanPlay","onCanPlay","handlePlay","onPlay","handlePause","onPause","handleDurationChange","onDurationChange","handleTimeUpdate","onTimeUpdate","handleEnded","onEnded","captions","playing","onCaptionCueEnter","onCaptionCueExit","track","addTextTrack","addCue","window","VTTCue","in","text","ex","TextTrackCue","mode","cues","cue","onenter","onexit","_","play","muted","pause","currentTime","controls","loop","sources","poster","preload","playsInline","source","src","Skew","polygon","position","points","viewBox","aria-hidden","stroke","fill","fillRule","IntersectionObserverEntry","rootBounds","boundingClientRect","intersectionRect","getEmptyRect","targetRect","targetArea","intersectionArea","intersectionRatio","toFixed","opt_options","root","nodeType","_checkForIntersections","throttle","THROTTLE_TIMEOUT","_callback","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","thresholds","_initThresholds","unit","now","performance","fn","timeout","timer","addEvent","opt_useCapture","attachEvent","removeEvent","detatchEvent","computeRectIntersection","rect1","rect2","top","max","bottom","left","right","getBoundingClientRect","el","rect","err","containsDeep","getParentNode","host","registry","POLL_INTERVAL","USE_MUTATION_OBSERVER","some","item","element","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","takeRecords","records","opt_threshold","sort","opt_rootMargin","marginString","margins","parts","_monitoringIntersections","_monitoringInterval","setInterval","_domObserver","MutationObserver","childList","characterData","subtree","clearInterval","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","_hasCrossedThreshold","getComputedStyle","display","atRoot","parentRect","parentComputedStyle","body","documentElement","overflow","html","clientWidth","clientHeight","_expandRectByRootMargin","newRect","oldRatio","newRatio","index","init","findElements","createUniqueId","cutTheMustard","isSupported","errorReportingEnabled","getAttribute","preloadedState","JSON","createErrorReporter","listenAndCatch","renderApp","console","warn","callbackFn","testPositionSticky","sendAnalyticsEvent","sendEvent","category","label","Article","getElementsByClassName","isInitialized","_extends","assign","_domready2","_domready","_client2","_client","testEventPassiveListener","hasSupportCache","opts","testJs","testJs$1","objectFit","testVideoAutoPlay","videoAutoPlayCache","videoElm","isPlaying","canPlayType","load","playPromise","catch","oncanplay","onplay","testReducedMotion","matchMedia","matches","testObjectFit","definition","listener","fns","doc","hack","doScroll","loaded","readyState","ga","log","random","substr","isErrorReportingEnabled","SimpleErrorReport","dryRun","r","register","message","u","parseStack","errorRegister","filename","lineno","colno","line","column","error","sendErrorReport","stackTrace","reason","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","open","setRequestHeader","send","_maxViewportObservable2","_maxViewportObservable","_Content2","_Content","_Header2","_Header","handleToggleMute","viewport$","maxViewportObservable","subscribe","article","onToggleMute","getRect","Element","innerWidth","innerHeight","observer","isDynamicViewport","isTouching","listeners","orientationchange","resize","prevRect","scroll","touchstart","touchend","unsubscribe","_CharacterPresentation2","_CharacterPresentation","_Section2","_Section","Content","handleRegisterSectionElement","sectionIndex","handleRegisterTriggerElement","triggerElm","sectionTriggerElms","data","section","sectionIntersectionEntries","bodyIntersectionEntries","triggerIndex","mediaBaseUrl","publishedAt","article__content","onRegisterSectionElement","intersectionEntries","onRegisterTriggerElement","article__publishedAt","areRangesOverlapping","closestIndexTo","closestTo","differenceInCalendarISOWeeks","differenceInCalendarQuarters","differenceInCalendarWeeks","differenceInHours","differenceInISOYears","differenceInMinutes","differenceInQuarters","differenceInWeeks","differenceInYears","distanceInWordsStrict","distanceInWordsToNow","eachDay","endOfHour","endOfISOWeek","endOfISOYear","endOfMinute","endOfQuarter","endOfSecond","endOfToday","endOfTomorrow","endOfYear","endOfYesterday","getDaysInYear","getHours","getISOWeeksInYear","getMilliseconds","getMinutes","getOverlappingDaysInRanges","getSeconds","getYear","isAfter","isBefore","isEqual","isFirstDayOfMonth","isFriday","isFuture","isLastDayOfMonth","isMonday","isPast","isSameDay","isSaturday","isSunday","isThisHour","isThisISOWeek","isThisISOYear","isThisMinute","isThisMonth","isThisQuarter","isThisSecond","isThisWeek","isThisYear","isThursday","isToday","isTomorrow","isTuesday","isWednesday","isWeekend","isWithinRange","isYesterday","lastDayOfISOWeek","lastDayOfISOYear","lastDayOfQuarter","lastDayOfYear","setDay","setDayOfYear","setISODay","setISOWeek","setQuarter","setYear","startOfMonth","startOfToday","startOfTomorrow","startOfYesterday","subDays","subHours","subMilliseconds","subMinutes","subMonths","subQuarters","subSeconds","subWeeks","subYears","baseTimezoneOffset","dirtyInitialRangeStartDate","dirtyInitialRangeEndDate","dirtyComparedRangeStartDate","dirtyComparedRangeEndDate","initialStartTime","initialEndTime","comparedStartTime","comparedEndTime","dirtyDatesArray","result","minDistance","dateToCompare","timeToCompare","currentDate","distance","startOfISOWeekLeft","startOfISOWeekRight","startOfWeekLeft","startOfWeekRight","count","distanceInWordsLocale","one","other","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","months3char","monthsFull","weekdays2char","weekdays3char","weekdaysFull","meridiemUppercase","meridiemLowercase","meridiemFull","formatters","formatterToken","ordinal","formattingTokensRegExp","buildFormattingTokensRegExp","rem100","formatterKeys","formattingTokens","commonFormatterKeys","reverse","RegExp","days","mathPartial","partialMethod","MINUTES_IN_YEAR","dirtyStartDate","dirtyEndDate","dirtyStep","startDate","endDate","step","endTime","dates","dirtyFormatStr","formatStr","localeFormatters","buildFormatFn","formatter","match","removeFormattingTokens","output","Function","input","formatTimezone","delimeter","absOffset","addLeadingZeros","targetLength","thisYear","nextYear","valueOf","overlapStartDate","overlapEndDate","differenceInMs","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","tomorrow","startTime","yesterday","dirtyDates","latestTimestamp","earliestTimestamp","dirtyDayOfMonth","dayOfMonth","dirtyDay","currentDay","dirtyDayOfYear","dirtyHours","dirtyISOWeek","isoWeek","dirtyMilliseconds","milliseconds","dirtyMinutes","dirtyQuarter","quarter","oldQuarter","dirtySeconds","dirtyYear","_Background2","_Background","CharacterPresentation","bios","characterSlideshow","bio","FigureCaption","caption","credit","figure__credit","alt","horizontalId","figure","horizontal","paragraph","Picture","vertical","verticalId","defaultUrl","getQualityFromString","horizontalSourceSet","createSrcSet","imageId","supportedWidths","verticalSourceSet","media","srcSet","parsedQuality","desktopSourceSet","mobileSourceSet","qualityString","string","q","quote","quote__content","cite","quote__footer","cx","cy","slides","slide","slideshow","Background","Section","slideshow__section","slideshow__card","align","cardItem","cardItemIdx","unorderedList","_dhVideoComponent2","_dhVideoComponent","_Scrubber2","_Scrubber","_TogglePlayButton2","_TogglePlayButton","_MuteButton2","_MuteButton","handleCaptionCueEnter","handleCaptionCueExit","duration","handlePositionUpdate","video","updateTime","handleTogglePlay","paused","userPaused","video__videoWrapper","video__togglePlayButton","onClick","onPositionUpdate","video__muteButton","video__captionContainer","video__caption","VideoScrubber","isScrubbing","handleKeyDown","evt","nextTime","handleMouseDown","preventDefault","focus","start","pageX","handleMouseMove","handleMouseUp","move","end","handleResize","bgElm","handleTouchStart","touches","clientX","handleTouchMove","handleTouchEnd","handleElm","positionTimeout","clearTimeout","class","videoScrubber","videoScrubber__bgBar","videoScrubber__bufferedBar","videoScrubber__playedBar","role","aria-valuemin","aria-valuemax","aria-valuenow","TogglePlayButton","togglePlayButton","togglePlayButton__pauseIcon","togglePlayButton__playIcon","MuteButton","muteButton","muteButton__mutedIcon","muteButton__volumeIcon","CharactedPresentationBackground","gradientInlineStyle","characterSlideshow__background","characterSlideshow__gradient","CharactedPresentationSection","inlineStyle","paddingBottom","characterSlideshow__section","characterSlideshow__card","characterSlideshow__cardHeader","characterSlideshow__description","description","characterSlideshow__title","title","content","characterSlideshow__content","_Skew2","_Skew","article__section","article__sectionSkewTop","article__sectionHeader","itemIdx","article__quote","article__sectionSkewBottom","Header","headerSkewBottomInlineStyle","article__header","leadMedia","article__headerCopy","article__label","article__title","article__intro","intro","article__dateline","persons","byline","article__headerSkewBottom","_Byline2","_Byline","_LeadMedia2","_LeadMedia","Byline","person","byline__name","LeadMedia","leadMedia__videoLoop","leadMedia__gradient"],"mappings":"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","file":"v1-bundle-2873dfb6a353e43f17da.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\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// 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://dh-static.mesos.nrk.no/dh-trygdis-kvinnefengsel/static/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 68);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getTimezoneOffsetInMilliseconds = __webpack_require__(83);\nvar isDate = __webpack_require__(16);\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 = [/^([+-]\\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 = [/^([+-]\\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) * MILLISECONDS_IN_MINUTE;\n } else {\n var fullTime = timestamp + time;\n var fullTimeDate = new Date(fullTime);\n\n offset = getTimezoneOffsetInMilliseconds(fullTimeDate);\n\n // Adjust time when it's coming from DST\n var fullTimeDateNextDay = new Date(fullTime);\n fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1);\n var offsetDiff = getTimezoneOffsetInMilliseconds(fullTimeDateNextDay) - getTimezoneOffsetInMilliseconds(fullTimeDate);\n if (offsetDiff > 0) {\n offset += offsetDiff;\n }\n }\n\n return new Date(timestamp + time + offset);\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 + 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 + minutes * MILLISECONDS_IN_MINUTE + 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\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cloneElement\", function() { return cloneElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createRef\", function() { return createRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Component\", function() { return Component; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rerender\", function() { return rerender; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"options\", function() { return options; });\nvar VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p;\n\twhile (p = items.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.shift()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nfunction createRef() {\n\treturn {};\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (preact);\n\n//# sourceMappingURL=preact.mjs.map\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar startOfISOWeek = __webpack_require__(3);\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\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfWeek = __webpack_require__(11);\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek(dirtyDate) {\n return startOfWeek(dirtyDate, { weekStartsOn: 1 });\n}\n\nmodule.exports = startOfISOWeek;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay(dirtyDate) {\n var date = parse(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfDay;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added\n * @returns {Date} the new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nfunction addDays(dirtyDate, dirtyAmount) {\n var date = parse(dirtyDate);\n var amount = Number(dirtyAmount);\n date.setDate(date.getDate() + amount);\n return date;\n}\n\nmodule.exports = addDays;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds(dirtyDate, dirtyAmount) {\n var timestamp = parse(dirtyDate).getTime();\n var amount = Number(dirtyAmount);\n return new Date(timestamp + amount);\n}\n\nmodule.exports = addMilliseconds;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getISOYear = __webpack_require__(2);\nvar startOfISOWeek = __webpack_require__(3);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear(dirtyDate) {\n var year = getISOYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}\n\nmodule.exports = startOfISOYear;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates 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:\n * var result = compareAsc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc(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 = compareAsc;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Video = exports.UnorderedList = exports.Slideshow = exports.ScrollSlideshow = exports.Quote = exports.PolopolyPicture = exports.Paragraph = exports.Figure = undefined;\n\nvar _Figure = __webpack_require__(186);\n\nvar _Figure2 = _interopRequireDefault(_Figure);\n\nvar _Paragraph = __webpack_require__(188);\n\nvar _Paragraph2 = _interopRequireDefault(_Paragraph);\n\nvar _PolopolyPicture = __webpack_require__(190);\n\nvar _PolopolyPicture2 = _interopRequireDefault(_PolopolyPicture);\n\nvar _Quote = __webpack_require__(192);\n\nvar _Quote2 = _interopRequireDefault(_Quote);\n\nvar _ScrollSlideshow = __webpack_require__(64);\n\nvar _ScrollSlideshow2 = _interopRequireDefault(_ScrollSlideshow);\n\nvar _Slideshow = __webpack_require__(195);\n\nvar _Slideshow2 = _interopRequireDefault(_Slideshow);\n\nvar _UnorderedList = __webpack_require__(198);\n\nvar _UnorderedList2 = _interopRequireDefault(_UnorderedList);\n\nvar _Video = __webpack_require__(200);\n\nvar _Video2 = _interopRequireDefault(_Video);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Figure = _Figure2.default;\nexports.Paragraph = _Paragraph2.default;\nexports.PolopolyPicture = _PolopolyPicture2.default;\nexports.Quote = _Quote2.default;\nexports.ScrollSlideshow = _ScrollSlideshow2.default;\nexports.Slideshow = _Slideshow2.default;\nexports.UnorderedList = _UnorderedList2.default;\nexports.Video = _Video2.default;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n return [blockName].concat(modifiers.filter(Boolean).map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek(dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;\n\n var date = parse(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfWeek;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfDay = __webpack_require__(4);\n\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days 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 days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n\n var timestampLeft = startOfDayLeft.getTime() - startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n var timestampRight = startOfDayRight.getTime() - startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}\n\nmodule.exports = differenceInCalendarDays;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar getDaysInMonth = __webpack_require__(17);\n\n/**\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added\n * @returns {Date} the new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nfunction addMonths(dirtyDate, dirtyAmount) {\n var date = parse(dirtyDate);\n var amount = Number(dirtyAmount);\n var desiredMonth = date.getMonth() + amount;\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()));\n return date;\n}\n\nmodule.exports = addMonths;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds 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 milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}\n\nmodule.exports = differenceInMilliseconds;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"article\":\"dh-trygdis-kvinnefengsel-article\",\"article__leadMedia\":\"dh-trygdis-kvinnefengsel-article__leadMedia\",\"article__header\":\"dh-trygdis-kvinnefengsel-article__header\",\"article__headerCopy\":\"dh-trygdis-kvinnefengsel-article__headerCopy\",\"article__label\":\"dh-trygdis-kvinnefengsel-article__label\",\"article__title\":\"dh-trygdis-kvinnefengsel-article__title\",\"article__intro\":\"dh-trygdis-kvinnefengsel-article__intro\",\"article__dateline\":\"dh-trygdis-kvinnefengsel-article__dateline\",\"article__headerSkewBottom\":\"dh-trygdis-kvinnefengsel-article__headerSkewBottom\",\"root--js\":\"dh-trygdis-kvinnefengsel-root--js\",\"article__content\":\"dh-trygdis-kvinnefengsel-article__content\",\"article__section\":\"dh-trygdis-kvinnefengsel-article__section\",\"article__sectionSkewTop\":\"dh-trygdis-kvinnefengsel-article__sectionSkewTop\",\"article__sectionSkewBottom\":\"dh-trygdis-kvinnefengsel-article__sectionSkewBottom\",\"article__sectionHeader\":\"dh-trygdis-kvinnefengsel-article__sectionHeader\",\"article__publishedAt\":\"dh-trygdis-kvinnefengsel-article__publishedAt\",\"quote\":\"dh-trygdis-kvinnefengsel-quote\",\"article__quote\":\"dh-trygdis-kvinnefengsel-article__quote\"};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nfunction getDaysInMonth(dirtyDate) {\n var date = parse(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\nmodule.exports = getDaysInMonth;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addDays = __webpack_require__(5);\n\n/**\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added\n * @returns {Date} the new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nfunction addWeeks(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}\n\nmodule.exports = addWeeks;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\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\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar differenceInCalendarMonths = __webpack_require__(36);\nvar compareAsc = __webpack_require__(8);\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\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar differenceInMilliseconds = __webpack_require__(14);\n\n/**\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds 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 seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}\n\nmodule.exports = differenceInSeconds;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar buildDistanceInWordsLocale = __webpack_require__(96);\nvar buildFormatLocale = __webpack_require__(97);\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay(dirtyDate) {\n var date = parse(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfDay;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar startOfISOWeek = __webpack_require__(3);\nvar startOfISOYear = __webpack_require__(7);\n\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\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\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek(dirtyDate) {\n var date = parse(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\n\nmodule.exports = getISOWeek;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfWeek = __webpack_require__(11);\n\n/**\n * @category Week Helpers\n * @summary Are the given dates in the same week?\n *\n * @description\n * Are the given dates in the same week?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the dates are in the same week\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n * new Date(2014, 7, 31),\n * new Date(2014, 8, 4)\n * )\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n * new Date(2014, 7, 31),\n * new Date(2014, 8, 4),\n * {weekStartsOn: 1}\n * )\n * //=> false\n */\nfunction isSameWeek(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions);\n var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions);\n\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}\n\nmodule.exports = isSameWeek;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"characterSlideshow\":\"dh-trygdis-kvinnefengsel-characterSlideshow\",\"scrollSlideshow__sections\":\"dh-trygdis-kvinnefengsel-scrollSlideshow__sections\",\"characterSlideshow__background\":\"dh-trygdis-kvinnefengsel-characterSlideshow__background\",\"characterSlideshow__gradient\":\"dh-trygdis-kvinnefengsel-characterSlideshow__gradient\",\"characterSlideshow__section\":\"dh-trygdis-kvinnefengsel-characterSlideshow__section\",\"characterSlideshow__card\":\"dh-trygdis-kvinnefengsel-characterSlideshow__card\",\"characterSlideshow__card--left\":\"dh-trygdis-kvinnefengsel-characterSlideshow__card--left\",\"characterSlideshow__card--right\":\"dh-trygdis-kvinnefengsel-characterSlideshow__card--right\",\"characterSlideshow__cardHeader\":\"dh-trygdis-kvinnefengsel-characterSlideshow__cardHeader\",\"characterSlideshow__description\":\"dh-trygdis-kvinnefengsel-characterSlideshow__description\",\"characterSlideshow__title\":\"dh-trygdis-kvinnefengsel-characterSlideshow__title\",\"characterSlideshow__content\":\"dh-trygdis-kvinnefengsel-characterSlideshow__content\"};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = toArray;\nfunction toArray(items) {\n return [].slice.call(items);\n}\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMilliseconds = __webpack_require__(6);\n\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added\n * @returns {Date} the new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nfunction addHours(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}\n\nmodule.exports = addHours;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getISOYear = __webpack_require__(2);\nvar setISOYear = __webpack_require__(30);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be added\n * @returns {Date} the new date with the ISO week-numbering years added\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * var result = addISOYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jun 26 2015 00:00:00\n */\nfunction addISOYears(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return setISOYear(dirtyDate, getISOYear(dirtyDate) + amount);\n}\n\nmodule.exports = addISOYears;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar startOfISOYear = __webpack_require__(7);\nvar differenceInCalendarDays = __webpack_require__(12);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoYear - the ISO week-numbering year of the new date\n * @returns {Date} the new date with the ISO week-numbering year setted\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * var result = setISOYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\nfunction setISOYear(dirtyDate, dirtyISOYear) {\n var date = parse(dirtyDate);\n var isoYear = Number(dirtyISOYear);\n var diff = differenceInCalendarDays(date, startOfISOYear(date));\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(isoYear, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n date = startOfISOYear(fourthOfJanuary);\n date.setDate(date.getDate() + diff);\n return date;\n}\n\nmodule.exports = setISOYear;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMilliseconds = __webpack_require__(6);\n\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added\n * @returns {Date} the new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction addMinutes(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}\n\nmodule.exports = addMinutes;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMonths = __webpack_require__(13);\n\n/**\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added\n * @returns {Date} the new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * var result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nfunction addQuarters(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}\n\nmodule.exports = addQuarters;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMilliseconds = __webpack_require__(6);\n\n/**\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added\n * @returns {Date} the new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * var result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nfunction addSeconds(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * 1000);\n}\n\nmodule.exports = addSeconds;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMonths = __webpack_require__(13);\n\n/**\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added\n * @returns {Date} the new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nfunction addYears(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}\n\nmodule.exports = addYears;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getISOYear = __webpack_require__(2);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\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 ISO week-numbering years\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * var result = differenceInCalendarISOYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\nfunction differenceInCalendarISOYears(dirtyDateLeft, dirtyDateRight) {\n return getISOYear(dirtyDateLeft) - getISOYear(dirtyDateRight);\n}\n\nmodule.exports = differenceInCalendarISOYears;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\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\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nfunction getQuarter(dirtyDate) {\n var date = parse(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}\n\nmodule.exports = getQuarter;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years 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 years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}\n\nmodule.exports = differenceInCalendarYears;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar differenceInCalendarDays = __webpack_require__(12);\nvar compareAsc = __webpack_require__(8);\n\n/**\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full days 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 days\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n */\nfunction differenceInDays(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastDayNotFull = compareAsc(dateLeft, dateRight) === -sign;\n return sign * (difference - isLastDayNotFull);\n}\n\nmodule.exports = differenceInDays;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addISOYears = __webpack_require__(29);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be subtracted\n * @returns {Date} the new date with the ISO week-numbering years subtracted\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * var result = subISOYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\nfunction subISOYears(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addISOYears(dirtyDate, -amount);\n}\n\nmodule.exports = subISOYears;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar compareDesc = __webpack_require__(19);\nvar parse = __webpack_require__(0);\nvar differenceInSeconds = __webpack_require__(21);\nvar differenceInMonths = __webpack_require__(20);\nvar enLocale = __webpack_require__(22);\n\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | 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 between dates | 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} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other 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 indicates 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 * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWords(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 1)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = distanceInWords(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWords(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWords(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWords(dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {};\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate);\n\n var locale = options.locale;\n var localize = enLocale.distanceInWords.localize;\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize;\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n };\n\n var dateLeft, dateRight;\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare);\n dateRight = parse(dirtyDate);\n } else {\n dateLeft = parse(dirtyDate);\n dateRight = parse(dirtyDateToCompare);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset();\n var minutes = Math.round(seconds / 60) - offset;\n var months;\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return localize('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return localize('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return localize('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return localize('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return localize('lessThanXMinutes', 1, localizeOptions);\n } else {\n return localize('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return localize('lessThanXMinutes', 1, localizeOptions);\n } else {\n return localize('xMinutes', minutes, localizeOptions);\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return localize('xMinutes', minutes, localizeOptions);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return localize('aboutXHours', 1, localizeOptions);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return localize('aboutXHours', hours, localizeOptions);\n\n // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return localize('xDays', 1, localizeOptions);\n\n // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return localize('xDays', days, localizeOptions);\n\n // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return localize('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft);\n\n // 2 months up to 12 months\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return localize('xMonths', nearestMonth, localizeOptions);\n\n // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return localize('aboutXYears', years, localizeOptions);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return localize('overXYears', years, localizeOptions);\n\n // N years 9 months up to N year 12 months\n } else {\n return localize('almostXYears', years + 1, localizeOptions);\n }\n }\n}\n\nmodule.exports = distanceInWords;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek(dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;\n\n var date = parse(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfWeek;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth(dirtyDate) {\n var date = parse(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfMonth;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar startOfYear = __webpack_require__(45);\nvar differenceInCalendarDays = __webpack_require__(12);\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear(dirtyDate) {\n var date = parse(dirtyDate);\n var diff = differenceInCalendarDays(date, startOfYear(date));\n var dayOfYear = diff + 1;\n return dayOfYear;\n}\n\nmodule.exports = getDayOfYear;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear(dirtyDate) {\n var cleanDate = parse(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfYear;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isDate = __webpack_require__(16);\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid(dirtyDate) {\n if (isDate(dirtyDate)) {\n return !isNaN(dirtyDate);\n } else {\n throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date');\n }\n}\n\nmodule.exports = isValid;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the leap year\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * var result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\nfunction isLeapYear(dirtyDate) {\n var date = parse(dirtyDate);\n var year = date.getFullYear();\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nmodule.exports = isLeapYear;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\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 day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * var result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nfunction getISODay(dirtyDate) {\n var date = parse(dirtyDate);\n var day = date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\nmodule.exports = getISODay;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfHour = __webpack_require__(50);\n\n/**\n * @category Hour Helpers\n * @summary Are the given dates in the same hour?\n *\n * @description\n * Are the given dates in the same hour?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same hour\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * var result = isSameHour(\n * new Date(2014, 8, 4, 6, 0),\n * new Date(2014, 8, 4, 6, 30)\n * )\n * //=> true\n */\nfunction isSameHour(dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfHour = startOfHour(dirtyDateLeft);\n var dateRightStartOfHour = startOfHour(dirtyDateRight);\n\n return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime();\n}\n\nmodule.exports = isSameHour;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * var result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nfunction startOfHour(dirtyDate) {\n var date = parse(dirtyDate);\n date.setMinutes(0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfHour;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameWeek = __webpack_require__(25);\n\n/**\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week?\n *\n * @description\n * Are the given dates in the same ISO week?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * var result = isSameISOWeek(\n * new Date(2014, 8, 1),\n * new Date(2014, 8, 7)\n * )\n * //=> true\n */\nfunction isSameISOWeek(dirtyDateLeft, dirtyDateRight) {\n return isSameWeek(dirtyDateLeft, dirtyDateRight, { weekStartsOn: 1 });\n}\n\nmodule.exports = isSameISOWeek;\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfISOYear = __webpack_require__(7);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week-numbering year\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * var result = isSameISOYear(\n * new Date(2003, 11, 29),\n * new Date(2005, 0, 2)\n * )\n * //=> true\n */\nfunction isSameISOYear(dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfYear = startOfISOYear(dirtyDateLeft);\n var dateRightStartOfYear = startOfISOYear(dirtyDateRight);\n\n return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime();\n}\n\nmodule.exports = isSameISOYear;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfMinute = __webpack_require__(54);\n\n/**\n * @category Minute Helpers\n * @summary Are the given dates in the same minute?\n *\n * @description\n * Are the given dates in the same minute?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same minute\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n * // in the same minute?\n * var result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n */\nfunction isSameMinute(dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft);\n var dateRightStartOfMinute = startOfMinute(dirtyDateRight);\n\n return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime();\n}\n\nmodule.exports = isSameMinute;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * var result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nfunction startOfMinute(dirtyDate) {\n var date = parse(dirtyDate);\n date.setSeconds(0, 0);\n return date;\n}\n\nmodule.exports = startOfMinute;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(\n * new Date(2014, 8, 2),\n * new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameMonth(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}\n\nmodule.exports = isSameMonth;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfQuarter = __webpack_require__(57);\n\n/**\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(\n * new Date(2014, 0, 1),\n * new Date(2014, 2, 8)\n * )\n * //=> true\n */\nfunction isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}\n\nmodule.exports = isSameQuarter;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nfunction startOfQuarter(dirtyDate) {\n var date = parse(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfQuarter;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfSecond = __webpack_require__(59);\n\n/**\n * @category Second Helpers\n * @summary Are the given dates in the same second?\n *\n * @description\n * Are the given dates in the same second?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same second\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n * // in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n */\nfunction isSameSecond(dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft);\n var dateRightStartOfSecond = startOfSecond(dirtyDateRight);\n\n return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime();\n}\n\nmodule.exports = isSameSecond;\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * var result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nfunction startOfSecond(dirtyDate) {\n var date = parse(dirtyDate);\n date.setMilliseconds(0);\n return date;\n}\n\nmodule.exports = startOfSecond;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(\n * new Date(2014, 8, 2),\n * new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameYear(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}\n\nmodule.exports = isSameYear;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the last day of a week\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfWeek(dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;\n\n var date = parse(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + diff);\n return date;\n}\n\nmodule.exports = lastDayOfWeek;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar getDaysInMonth = __webpack_require__(17);\n\n/**\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month setted\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nfunction setMonth(dirtyDate, dirtyMonth) {\n var date = parse(dirtyDate);\n var month = Number(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}\n\nmodule.exports = setMonth;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n(function (global, factory) {\n ( false ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? factory(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : factory(global.nrkSerumImagecropUtils = {});\n})(undefined, function (exports) {\n 'use strict';\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/;\n\n function isPolopolyId(id) {\n if (!id) {\n return false;\n }\n return isPolopolyIdRegex.test(id);\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://nrk.no/serum/api/imagecrop/';\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality;\n\n var url = '' + _baseUrl + id;\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality });\n if (queryString) {\n url += '?' + queryString;\n }\n return url;\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality;\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : '';\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : '';\n var widthPart = width ? 'w' + width : '';\n var qualityPart = quality ? '&quality=' + quality : '';\n return 'cropid=' + ratioPart + widthPart + qualityPart;\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error('\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number');\n }\n if (!isValidTargets(targets)) {\n throw new Error('\\n getClosestNumber(goal, targets): targets ' + targets.toString() + ' is invald.\\n Pass an array of numbers');\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return targets.reduce(function (prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev;\n });\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number';\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false;\n }\n var isValid = true;\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false;\n break;\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid;\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidRatio(ratio, supportedRatios): supportedRatios '\" + supportedRatios + \"' is not supported. Pass an array of supported ratios\");\n }\n if (!ratio) {\n return false;\n }\n return supportedRatios.includes(ratio);\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidQuality(quality, supportedQualities): supportedQualities '\" + supportedQualities + \"' is not supported. Pass an array of supported qualities\");\n }\n if (!quality) {\n return false;\n }\n return supportedQualities.includes(quality);\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality;\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId);\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n };if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error('\\n createSerumImageUrl(): ratio ' + ratio + ' is not supported.\\n Supported ratios are ' + ratios.toString());\n }\n args.ratio = ratio;\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error('\\n createSerumImageUrl(): quality ' + quality + ' is not supported.\\n Supported qualities are ' + qualities.toString());\n }\n args.quality = quality;\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width;\n throw new Error(errorMessage);\n }\n var isSupportedWidth = widths.includes(width);\n var closestWidth = getClosestNumber(width, widths);\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth;\n }\n }\n\n return createUrl(args);\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option;\n }\n\n function isNumber(number) {\n return Number.isInteger(number);\n }\n\n exports.createImageUrl = createImageUrl;\n exports.ratios = ratios;\n exports.widths = widths;\n exports.qualities = qualities;\n exports.isPolopolyId = isPolopolyId;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n});\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _array = __webpack_require__(27);\n\nvar _bem = __webpack_require__(10);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(194);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable compat/compat */\n\nvar ScrollSlideshow = function (_Component) {\n _inherits(ScrollSlideshow, _Component);\n\n function ScrollSlideshow() {\n _classCallCheck(this, ScrollSlideshow);\n\n var _this = _possibleConstructorReturn(this, (ScrollSlideshow.__proto__ || Object.getPrototypeOf(ScrollSlideshow)).call(this));\n\n _this.state = {\n didView: false,\n visibleIndex: 0\n };\n\n _this.triggerElms = [];\n return _this;\n }\n\n _createClass(ScrollSlideshow, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var sectionElms = [];\n\n var intersectionObserver = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var idx = sectionElms.indexOf(entry.target);\n\n if (entry.isIntersecting) {\n if (!_this2.state.didView && _this2.props.onAnalyticsEvent) {\n _this2.props.onAnalyticsEvent({\n action: 'scrollSlideshow/VIEW/' + _this2.props.id\n });\n\n _this2.setState({ didView: true, visibleIndex: idx });\n } else {\n _this2.setState({ visibleIndex: idx });\n }\n }\n });\n }, {\n rootMargin: this.props.margin || '0px 0px 0px 0px',\n threshold: 0\n });\n\n (0, _array.toArray)(this.sectionsElm.childNodes).forEach(function (sectionElm) {\n sectionElms.push(sectionElm.firstChild);\n intersectionObserver.observe(sectionElm.firstChild);\n });\n\n this.intersectionObserver = intersectionObserver;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n backgrounds = _props.backgrounds,\n sections = _props.sections,\n viewport = _props.viewport;\n\n var className = '' + _index2.default.scrollSlideshow + (this.props.className ? ' ' + this.props.className : '');\n var visibleIndex = this.state.visibleIndex;\n\n\n var backgroundsInlineStyle = {};\n var backgroundInlineStyle = {};\n\n if (viewport.height > -1) {\n backgroundsInlineStyle.height = viewport.height + 'px';\n backgroundInlineStyle.height = viewport.height + 'px';\n }\n\n return (0, _preact.h)(\n 'div',\n { ref: function ref(elm) {\n return _this3.elm = elm;\n }, className: className },\n (0, _preact.h)(\n 'div',\n {\n className: _index2.default.scrollSlideshow__backgrounds,\n style: backgroundsInlineStyle\n },\n backgrounds.map(function (background, idx) {\n return (0, _preact.h)(\n 'div',\n {\n key: String(idx),\n className: (0, _bem2.default)(_index2.default.scrollSlideshow__background, idx === visibleIndex && 'visible'),\n style: backgroundInlineStyle\n },\n background\n );\n })\n ),\n (0, _preact.h)(\n 'div',\n {\n ref: function ref(sectionsElm) {\n return _this3.sectionsElm = sectionsElm;\n },\n className: _index2.default.scrollSlideshow__sections\n },\n sections\n )\n );\n }\n }]);\n\n return ScrollSlideshow;\n}(_preact.Component);\n\nexports.default = ScrollSlideshow;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"slideshow\":\"dh-trygdis-kvinnefengsel-slideshow\",\"slideshow__section\":\"dh-trygdis-kvinnefengsel-slideshow__section\",\"slideshow__card\":\"dh-trygdis-kvinnefengsel-slideshow__card\",\"slideshow__card--left\":\"dh-trygdis-kvinnefengsel-slideshow__card--left\",\"slideshow__card--right\":\"dh-trygdis-kvinnefengsel-slideshow__card--right\"};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(1);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable jsx-a11y/media-has-caption */\n\nvar Video = function (_Component) {\n _inherits(Video, _Component);\n\n function Video() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Video);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Video.__proto__ || Object.getPrototypeOf(Video)).call.apply(_ref, [this].concat(args))), _this), _this.handleCanPlay = function (event) {\n var onCanPlay = _this.props.onCanPlay;\n\n if (typeof onCanPlay !== 'undefined') {\n onCanPlay(event);\n }\n }, _this.handlePlay = function (event) {\n var onPlay = _this.props.onPlay;\n\n if (onPlay) {\n onPlay(event);\n }\n }, _this.handlePause = function (event) {\n var onPause = _this.props.onPause;\n\n if (onPause) {\n onPause(event);\n }\n }, _this.handleDurationChange = function (event) {\n var onDurationChange = _this.props.onDurationChange;\n\n if (onDurationChange) {\n onDurationChange(event);\n }\n }, _this.handleTimeUpdate = function (event) {\n var onTimeUpdate = _this.props.onTimeUpdate;\n\n if (onTimeUpdate) {\n onTimeUpdate(event);\n }\n }, _this.handleEnded = function (event) {\n var onEnded = _this.props.onEnded;\n\n if (typeof onEnded !== 'undefined') {\n onEnded(event);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Video, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var elm = this.elm;\n var _props = this.props,\n captions = _props.captions,\n playing = _props.playing,\n onCaptionCueEnter = _props.onCaptionCueEnter,\n onCaptionCueExit = _props.onCaptionCueExit;\n\n elm.addEventListener('canplay', this.handleCanPlay);\n elm.addEventListener('play', this.handlePlay);\n elm.addEventListener('ended', this.handleEnded);\n elm.addEventListener('pause', this.handlePause);\n elm.addEventListener('durationchange', this.handleDurationChange);\n elm.addEventListener('timeupdate', this.handleTimeUpdate);\n\n if (captions) {\n this.track = elm.addTextTrack('subtitles', 'Norsk');\n\n try {\n captions.forEach(function (a) {\n return _this2.track.addCue(new window.VTTCue(Number(a.in), Number(a.out), a.text));\n });\n } catch (ex) {\n captions.forEach(function (a) {\n return _this2.track.addCue(new window.TextTrackCue(Number(a.in), Number(a.out), a.text));\n });\n }\n\n this.track.mode = 'hidden';\n\n var _loop = function _loop(i) {\n var cue = _this2.track.cues[i];\n\n try {\n cue.onenter = function () {\n if (typeof onCaptionCueEnter !== 'undefined') {\n onCaptionCueEnter(cue);\n }\n };\n cue.onexit = function () {\n if (typeof onCaptionCueExit !== 'undefined') {\n onCaptionCueExit();\n }\n };\n } catch (_) {\n // discard error\n }\n };\n\n for (var i = 0; i < this.track.cues.length; i++) {\n _loop(i);\n }\n }\n\n if (playing) {\n elm.play();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _props2 = this.props,\n playing = _props2.playing,\n muted = _props2.muted;\n // Update pause or play state\n\n if (prevProps.playing && !playing) {\n this.elm.pause();\n }\n if (!prevProps.playing && playing) {\n this.elm.play();\n }\n // Updated `muted`\n if (prevProps.muted !== muted) {\n this.elm.muted = muted || false;\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var elm = this.elm;\n\n elm.removeEventListener('canplay', this.handleCanPlay);\n elm.removeEventListener('play', this.handlePlay);\n elm.removeEventListener('ended', this.handleEnded);\n elm.removeEventListener('pause', this.handlePause);\n elm.removeEventListener('durationchange', this.handleDurationChange);\n elm.removeEventListener('timeupdate', this.handleTimeUpdate);\n }\n }, {\n key: 'play',\n value: function play() {\n this.elm.play();\n }\n }, {\n key: 'updateTime',\n value: function updateTime(time) {\n this.elm.currentTime = time;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props3 = this.props,\n controls = _props3.controls,\n loop = _props3.loop,\n sources = _props3.sources,\n poster = _props3.poster;\n\n var preload = this.props.preload || 'none';\n var muted = this.props.muted || false;\n return (0, _preact.h)(\n 'video',\n {\n controls: controls,\n preload: preload,\n ref: function ref(elm) {\n return _this3.elm = elm;\n },\n loop: loop,\n muted: muted,\n playsInline: true,\n poster: poster,\n className: this.props.className,\n style: this.props.style\n },\n sources.map(function (source) {\n return (0, _preact.h)('source', { key: source.src, src: source.src, type: source.type });\n })\n );\n }\n }]);\n\n return Video;\n}(_preact.Component);\n\nexports.default = Video;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = __webpack_require__(1);\n\nfunction Skew(props) {\n var className = props.className;\n\n\n var polygon = void 0;\n\n switch (props.position) {\n case 'top':\n polygon = (0, _preact.h)('polygon', { points: '600 0 600 40 0 40' });\n break;\n\n case 'bottom':\n polygon = (0, _preact.h)('polygon', { points: '0 0 600 0 0 40' });\n break;\n }\n\n return (0, _preact.h)(\n 'svg',\n {\n className: className,\n viewBox: '0 0 600 40',\n 'aria-hidden': 'true',\n style: props.style\n },\n (0, _preact.h)(\n 'g',\n { stroke: 'none', fill: 'none', fillRule: 'evenodd' },\n (0, _preact.h)(\n 'g',\n { fill: 'currentColor' },\n polygon\n )\n )\n );\n} // @jsx h\n\nexports.default = Skew;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69);\nmodule.exports = __webpack_require__(71);\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(70);\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n\n(function (window, document) {\n 'use strict';\n\n // Exits early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n }\n\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n var registry = [];\n\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n function IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n }\n\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n IntersectionObserver.prototype.observe = function (target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({ element: target, entry: null });\n this._monitorIntersections();\n this._checkForIntersections();\n };\n\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n };\n\n /**\n * Stops observing all target elements for intersection changes.\n */\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n };\n\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n };\n\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n };\n\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return { value: parseFloat(parts[1]), unit: parts[2] };\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n };\n\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\n IntersectionObserver.prototype._monitorIntersections = function () {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(this._checkForIntersections, this.POLL_INTERVAL);\n } else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n };\n\n /**\n * Stops polling for intersection changes.\n * @private\n */\n IntersectionObserver.prototype._unmonitorIntersections = function () {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n };\n\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n IntersectionObserver.prototype._checkForIntersections = function () {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body && parent != document.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n };\n\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n };\n\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n };\n\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n return containsDeep(this.root || document, target);\n };\n\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n function now() {\n return window.performance && performance.now && performance.now();\n }\n\n /**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n }\n\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n function containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n }\n\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n }\n\n // Exposes the constructors globally.\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})(window, document);\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // @jsx h\n\n/* global __HOT__ */\n\nvar _featureTests = __webpack_require__(72);\n\nvar _array = __webpack_require__(27);\n\nvar _domready = __webpack_require__(73);\n\nvar _domready2 = _interopRequireDefault(_domready);\n\nvar _googleAnalytics = __webpack_require__(74);\n\nvar _id = __webpack_require__(75);\n\nvar _preact = __webpack_require__(1);\n\nvar _errorReporting = __webpack_require__(76);\n\nvar _client = __webpack_require__(78);\n\nvar _client2 = _interopRequireDefault(_client);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Create initialization cache\nwindow[_client2.default.root] = window[_client2.default.root] || {};\n\nfunction init() {\n findElements().forEach(function (el) {\n el.id = (0, _id.createUniqueId)();\n window[_client2.default.root][el.id] = true;\n\n cutTheMustard(function (isSupported) {\n if (isSupported) {\n // Tell CSS that JS is supported\n el.className = el.className.replace('noJs', 'js');\n\n // Extract error reporting flag\n var errorReportingEnabled = el.getAttribute('data-error-reporting-enabled') === 'true';\n\n // Extract preloaded state sent from server\n var preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'));\n\n // Enable error reporting\n var simpleErrorReport = (0, _errorReporting.createErrorReporter)(errorReportingEnabled);\n simpleErrorReport.listenAndCatch();\n\n // ... and render with the exact same props\n renderApp(el, preloadedState);\n\n // Enable webpack hot-module-reloading\n if (false) {\n // Reload and re-render React application\n module.hot.accept('./client', function () {\n renderApp(el, preloadedState);\n });\n }\n } else {\n console && console.warn && console.warn('Bruker du en gammel nettleser? Oppgrader til Edge, Chrome, Safari, Firefox eller likende.');\n }\n });\n });\n}\n\nfunction cutTheMustard(callbackFn) {\n (0, _featureTests.testPositionSticky)(callbackFn);\n}\n\nfunction sendAnalyticsEvent(event) {\n (0, _googleAnalytics.sendEvent)(_extends({\n category: 'dh-spesial',\n label: 'Trygdekontoret spesial: Mammaer i fengsel'\n }, event));\n}\n\nfunction renderApp(el, props) {\n var Article = __webpack_require__(79).default;\n (0, _preact.render)((0, _preact.h)(Article, _extends({}, props, { onAnalyticsEvent: sendAnalyticsEvent })), el, el.firstChild);\n}\n\nfunction findElements() {\n return (0, _array.toArray)(document.getElementsByClassName(_client2.default.root)).filter(function (el) {\n return !isInitialized(el);\n });\n}\n\nfunction isInitialized(el) {\n return el.id && window[_client2.default.root][el.id];\n}\n\n(0, _domready2.default)(init);\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar hasSupportCache;\nfunction testEventPassiveListener(callback) {\n if (hasSupportCache !== undefined) {\n callback(hasSupportCache);\n return;\n }\n\n hasSupportCache = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n hasSupportCache = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n callback(hasSupportCache);\n}\n\nfunction testJs(callback) {\n callback(true);\n}\n\nfunction testJs$1(callback) {\n var el = document.createElement('img');\n callback(el.style.objectFit !== undefined);\n}\n\nfunction testPositionSticky(callback) {\n var el = document.createElement('a');\n el.style.cssText = 'position: sticky; position: -webkit-sticky; position: -ms-sticky;';\n callback(el.style.position.indexOf('sticky') !== -1);\n}\n\nvar videoAutoPlayCache = null;\nfunction testVideoAutoPlay(callback) {\n if (typeof window === 'undefined') {\n return callback(false);\n }\n\n if (videoAutoPlayCache !== null) {\n return callback(videoAutoPlayCache);\n }\n\n var videoElm = document.createElement('video');\n var isPlaying = false;\n videoElm.setAttribute('autoplay', '');\n videoElm.setAttribute('muted', '');\n videoElm.setAttribute('webkit-playsinline', 'webkit-playsinline');\n videoElm.setAttribute('playsinline', 'playsinline');\n\n try {\n if (videoElm.canPlayType('video/ogg')) {\n videoElm.src = 'data:video/ogg;base64,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';\n } else if (videoElm.canPlayType('video/mp4')) {\n videoElm.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n } else {\n return callback(false);\n }\n } catch (_) {\n return callback(false);\n }\n\n videoElm.load();\n var playPromise = videoElm.play();\n\n if (playPromise) {\n playPromise.catch(function (e) {// Do nothing\n });\n }\n\n videoElm.oncanplay = function () {\n videoAutoPlayCache = isPlaying;\n callback(videoAutoPlayCache);\n };\n\n videoElm.onplay = function () {\n isPlaying = true;\n };\n}\n\nfunction testReducedMotion(callback) {\n if (typeof window === 'undefined') {\n if (callback) {\n callback(false);\n }\n\n return false;\n }\n\n var test = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches;\n\n if (callback) {\n callback(test);\n }\n\n return test;\n}\n\nvar index = {\n testEventPassiveListener: testEventPassiveListener,\n testJs: testJs,\n testObjectFit: testJs$1,\n testPositionSticky: testPositionSticky,\n testVideoAutoPlay: testVideoAutoPlay,\n testReducedMotion: testReducedMotion\n};\n\nexports.default = index;\nexports.testEventPassiveListener = testEventPassiveListener;\nexports.testJs = testJs;\nexports.testObjectFit = testJs$1;\nexports.testPositionSticky = testPositionSticky;\nexports.testVideoAutoPlay = testVideoAutoPlay;\nexports.testReducedMotion = testReducedMotion;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (true) module.exports = definition();else if (typeof define == 'function' && _typeof(define.amd) == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n\n var fns = [],\n _listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sendEvent = sendEvent;\nfunction sendEvent(_ref) {\n var category = _ref.category,\n action = _ref.action,\n label = _ref.label;\n\n if (window.ga) {\n window.ga('send', 'event', category, action, label);\n } else {\n if (typeof console !== 'undefined') {\n console.log('ga.sendEvent', category, action, label);\n }\n }\n}\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createUniqueId = createUniqueId;\nfunction createUniqueId() {\n return \"_\" + Math.random().toString(36).substr(2, 9);\n}\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createErrorReporter = createErrorReporter;\n\nvar _dhSimpleErrorReport = __webpack_require__(77);\n\nfunction createErrorReporter(isErrorReportingEnabled) {\n return new _dhSimpleErrorReport.SimpleErrorReport({\n name: 'dh-trygdis-kvinnefengsel',\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n });\n}\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : n(e[\"simple-error-report\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n var n = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var r = function () {\n function e() {\n !function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.register = [];\n }return n(e, [{ key: \"addErrorToRegister\", value: function value(e) {\n this.register.push({ time: new Date(), message: e });\n } }, { key: \"isInRegisterWithinRange\", value: function value(e, n) {\n return this.register.filter(function (r) {\n return r.message === e && new Date() - r.time < n;\n }).length > 0;\n } }]), e;\n }(),\n t = Object.assign || function (e) {\n for (var n = 1; n < arguments.length; n++) {\n var r = arguments[n];for (var t in r) {\n Object.prototype.hasOwnProperty.call(r, t) && (e[t] = r[t]);\n }\n }return e;\n },\n i = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var o = [],\n s = function () {\n function e(n) {\n var t = n.name,\n i = n.url,\n s = n.dryRun,\n a = void 0 === s || s,\n u = n.parseStack;!function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.name = t, this.url = i, this.errorRegister = new r(), this.dryRun = a, u && (this.parseStack = u), o.push(this.name);\n }return i(e, [{ key: \"listenAndCatch\", value: function value() {\n var e = this;o.length <= 1 && (window.addEventListener(\"error\", function (n) {\n var r = n.message,\n i = n.filename,\n o = n.lineno,\n s = n.colno,\n a = { message: r };\"\" !== i && (a.url = i), o > 0 && (a.line = o), s > 0 && (a.column = s), n.error && \"function\" == typeof e.parseStack ? e.parseStack(n.error).then(function (n) {\n e.sendErrorReport(t({}, a, { stackTrace: n }));\n }) : e.sendErrorReport(a);\n }), window.addEventListener(\"unhandledrejection\", function (n) {\n e.sendErrorReport({ message: \"Unhandled Promise Rejection: \" + n.reason });\n }));\n } }, { key: \"sendErrorReport\", value: function value(e) {\n var n, r, t;this.dryRun ? \"undefined\" != typeof console && console.log(\"Dry run: \" + JSON.stringify(e)) : this.errorRegister.isInRegisterWithinRange(e.message, 500) || (this.errorRegister.addErrorToRegister(e.message), n = this.url + \"/\" + this.name, r = e, (t = new XMLHttpRequest()).open(\"POST\", n), t.setRequestHeader(\"Content-Type\", \"application/json\"), t.send(JSON.stringify(r)));\n } }]), e;\n }();e.SimpleErrorReport = s, Object.defineProperty(e, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"dh-trygdis-kvinnefengsel-root\",\"root--js\":\"dh-trygdis-kvinnefengsel-root--js\",\"root--noJs\":\"dh-trygdis-kvinnefengsel-root--noJs\",\"saksuniversWrapper\":\"dh-trygdis-kvinnefengsel-saksuniversWrapper\"};\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _maxViewportObservable = __webpack_require__(80);\n\nvar _maxViewportObservable2 = _interopRequireDefault(_maxViewportObservable);\n\nvar _preact = __webpack_require__(1);\n\nvar _Content = __webpack_require__(81);\n\nvar _Content2 = _interopRequireDefault(_Content);\n\nvar _Header = __webpack_require__(211);\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _index = __webpack_require__(15);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\nvar Article = function (_Component) {\n _inherits(Article, _Component);\n\n function Article() {\n _classCallCheck(this, Article);\n\n var _this = _possibleConstructorReturn(this, (Article.__proto__ || Object.getPrototypeOf(Article)).call(this));\n\n _this.handleToggleMute = function () {\n _this.setState({ muted: !_this.state.muted });\n };\n\n _this.state = {\n muted: true,\n viewport: {\n width: -1,\n height: -1\n }\n };\n return _this;\n }\n\n _createClass(Article, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.viewport$ = _maxViewportObservable2.default.create({\n root: window\n });\n\n this.viewport$.subscribe({\n next: function next(viewport) {\n _this2.setState({ viewport: viewport });\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _state = this.state,\n muted = _state.muted,\n viewport = _state.viewport;\n\n\n return (0, _preact.h)(\n 'article',\n { className: _index2.default.article },\n (0, _preact.h)(_Header2.default, _extends({}, this.props, { viewport: viewport })),\n (0, _preact.h)(_Content2.default, _extends({}, this.props, {\n muted: muted,\n viewport: viewport,\n onToggleMute: this.handleToggleMute\n }))\n );\n }\n }]);\n\n return Article;\n}(_preact.Component);\n\nexports.default = Article;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction create() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var root = opts.root;\n\n var getRect = function getRect() {\n if (root instanceof Element) {\n var rect = root.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n };\n\n var subscribe = function subscribe(observer) {\n var isDynamicViewport = false;\n var isTouching = false;\n var rect = { width: -1, height: -1 };\n\n var listeners = {\n orientationchange: function orientationchange() {\n rect = { width: -1, height: -1 };\n },\n resize: function resize() {\n var prevRect = rect;\n\n rect = getRect();\n\n if (isDynamicViewport && rect.height < prevRect.height) {\n rect.height = prevRect.height;\n }\n\n observer.next(rect);\n },\n scroll: function scroll() {\n if (isTouching) {\n isDynamicViewport = true;\n window.removeEventListener('scroll', listeners.scroll);\n }\n },\n touchstart: function touchstart() {\n isTouching = true;\n },\n touchend: function touchend() {\n isTouching = false;\n }\n };\n\n window.addEventListener('orientationchange', listeners.orientationchange);\n window.addEventListener('resize', listeners.resize);\n window.addEventListener('scroll', listeners.scroll);\n window.addEventListener('touchstart', listeners.touchstart);\n window.addEventListener('touchend', listeners.touchend);\n\n // Trigger initial \"resize\"\n listeners.resize();\n\n return {\n unsubscribe: function unsubscribe() {\n window.removeEventListener('orientationchange', listeners.orientationchange);\n window.removeEventListener('resize', listeners.resize);\n window.removeEventListener('scroll', listeners.scroll);\n window.removeEventListener('touchstart', listeners.touchstart);\n window.removeEventListener('touchend', listeners.touchend);\n }\n };\n };\n\n return { subscribe: subscribe };\n}\n\nvar index = { create: create };\n\nexports.create = create;\nexports.default = index;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dateFns = __webpack_require__(82);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(15);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _CharacterPresentation = __webpack_require__(185);\n\nvar _CharacterPresentation2 = _interopRequireDefault(_CharacterPresentation);\n\nvar _Section = __webpack_require__(210);\n\nvar _Section2 = _interopRequireDefault(_Section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n// IntersectionObserver is polyfilled:\n/* eslint-disable compat/compat */\n\nvar Content = function (_Component) {\n _inherits(Content, _Component);\n\n function Content(props) {\n _classCallCheck(this, Content);\n\n var _this = _possibleConstructorReturn(this, (Content.__proto__ || Object.getPrototypeOf(Content)).call(this));\n\n _this.handleRegisterSectionElement = function (sectionIndex, sectionElm) {\n _this.sectionElms[sectionIndex] = sectionElm;\n };\n\n _this.handleRegisterTriggerElement = function (sectionIndex, index, triggerElm) {\n if (_this.sectionTriggerElms[sectionIndex]) {\n _this.sectionTriggerElms[sectionIndex][index] = triggerElm;\n }\n };\n\n _this.sectionElms = props.data.body.map(function (section) {\n return null;\n });\n\n _this.sectionTriggerElms = props.data.body.map(function (section) {\n switch (section.type) {\n case 'section':\n return section.value.text.map(function (item) {\n return null;\n });\n\n default:\n return null;\n }\n });\n\n _this.state = {\n sectionIntersectionEntries: props.data.body.map(function (section) {\n return {\n intersectionRatio: -1,\n isIntersecting: false\n };\n }),\n bodyIntersectionEntries: props.data.body.map(function (section) {\n switch (section.type) {\n case 'section':\n return section.value.text.map(function (item) {\n return {\n intersectionRatio: -1,\n isIntersecting: false\n };\n });\n\n default:\n return null;\n }\n })\n };\n return _this;\n }\n\n _createClass(Content, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.intersectionObserver = new IntersectionObserver(function (entries) {\n // let { bodyIntersectionEntries } = this.state\n\n entries.forEach(function (entry) {\n var sectionIndex = -1;\n var index = -1;\n\n // Find indexes\n _this2.sectionTriggerElms.forEach(function (triggerElms, idx) {\n if (triggerElms) {\n var triggerIndex = triggerElms.indexOf(entry.target);\n\n if (triggerIndex > -1) {\n sectionIndex = idx;\n index = triggerIndex;\n }\n }\n });\n\n // Update bodyIntersectionEntries\n if (index > -1) {\n var _bodyIntersectionEntries = _this2.state.bodyIntersectionEntries.slice(0);\n\n // bodyIntersectionEntries = bodyIntersectionEntries.slice(0)\n if (_bodyIntersectionEntries[sectionIndex]) {\n _bodyIntersectionEntries[sectionIndex][index] = {\n isIntersecting: entry.isIntersecting,\n intersectionRatio: entry.intersectionRatio\n };\n }\n\n _this2.setState({ bodyIntersectionEntries: _bodyIntersectionEntries });\n\n return;\n }\n\n sectionIndex = _this2.sectionElms.indexOf(entry.target);\n\n // Update sectionIntersectionEntries\n if (sectionIndex > -1) {\n var _sectionIntersectionEntries = _this2.state.sectionIntersectionEntries.slice(0);\n\n _sectionIntersectionEntries[sectionIndex] = {\n isIntersecting: entry.isIntersecting,\n intersectionRatio: entry.intersectionRatio\n };\n\n _this2.setState({ sectionIntersectionEntries: _sectionIntersectionEntries });\n }\n });\n }, {\n rootMargin: '0px 0px 0px 0px',\n threshold: [0, 0.25, 0.5, 0.75, 1]\n });\n\n // Observe intersection of section elements\n this.sectionElms.forEach(function (sectionElm) {\n if (sectionElm) {\n _this2.intersectionObserver.observe(sectionElm);\n }\n });\n\n // Observe intersections of trigger elements\n this.sectionTriggerElms.forEach(function (triggerElms) {\n if (triggerElms) {\n triggerElms.forEach(function (triggerElm) {\n if (triggerElm) {\n _this2.intersectionObserver.observe(triggerElm);\n }\n });\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n data = _props.data,\n mediaBaseUrl = _props.mediaBaseUrl,\n muted = _props.muted,\n onAnalyticsEvent = _props.onAnalyticsEvent,\n onToggleMute = _props.onToggleMute,\n viewport = _props.viewport;\n var _state = this.state,\n bodyIntersectionEntries = _state.bodyIntersectionEntries,\n sectionIntersectionEntries = _state.sectionIntersectionEntries;\n\n var publishedAt = new Date(data.publishedAt);\n\n return (0, _preact.h)(\n 'div',\n { className: _index2.default.article__content },\n data.body.map(function (item, idx) {\n switch (item.type) {\n case 'characterPresentation':\n return (0, _preact.h)(_CharacterPresentation2.default, _extends({}, item, sectionIntersectionEntries[idx], {\n key: String(idx),\n index: idx,\n mediaBaseUrl: mediaBaseUrl,\n onAnalyticsEvent: onAnalyticsEvent,\n onRegisterSectionElement: _this3.handleRegisterSectionElement,\n viewport: viewport\n }));\n case 'section':\n return (0, _preact.h)(_Section2.default, _extends({}, item, sectionIntersectionEntries[idx], {\n key: String(idx),\n index: idx,\n mediaBaseUrl: mediaBaseUrl,\n muted: muted,\n intersectionEntries: bodyIntersectionEntries[idx],\n onAnalyticsEvent: onAnalyticsEvent,\n onRegisterSectionElement: _this3.handleRegisterSectionElement,\n onRegisterTriggerElement: _this3.handleRegisterTriggerElement,\n onToggleMute: onToggleMute,\n viewport: viewport\n }));\n default:\n return (0, _preact.h)(\n 'div',\n { key: String(idx) },\n JSON.stringify(item, null, 2)\n );\n }\n }),\n (0, _preact.h)(\n 'div',\n { className: _index2.default.article__publishedAt },\n 'Publisert ',\n (0, _dateFns.format)(publishedAt, 'DD.MM.YYYY'),\n ', kl.',\n ' ',\n (0, _dateFns.format)(publishedAt, 'HH:mm')\n )\n );\n }\n }]);\n\n return Content;\n}(_preact.Component);\n\nexports.default = Content;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n addDays: __webpack_require__(5),\n addHours: __webpack_require__(28),\n addISOYears: __webpack_require__(29),\n addMilliseconds: __webpack_require__(6),\n addMinutes: __webpack_require__(31),\n addMonths: __webpack_require__(13),\n addQuarters: __webpack_require__(32),\n addSeconds: __webpack_require__(33),\n addWeeks: __webpack_require__(18),\n addYears: __webpack_require__(34),\n areRangesOverlapping: __webpack_require__(84),\n closestIndexTo: __webpack_require__(85),\n closestTo: __webpack_require__(86),\n compareAsc: __webpack_require__(8),\n compareDesc: __webpack_require__(19),\n differenceInCalendarDays: __webpack_require__(12),\n differenceInCalendarISOWeeks: __webpack_require__(87),\n differenceInCalendarISOYears: __webpack_require__(35),\n differenceInCalendarMonths: __webpack_require__(36),\n differenceInCalendarQuarters: __webpack_require__(88),\n differenceInCalendarWeeks: __webpack_require__(89),\n differenceInCalendarYears: __webpack_require__(38),\n differenceInDays: __webpack_require__(39),\n differenceInHours: __webpack_require__(90),\n differenceInISOYears: __webpack_require__(91),\n differenceInMilliseconds: __webpack_require__(14),\n differenceInMinutes: __webpack_require__(92),\n differenceInMonths: __webpack_require__(20),\n differenceInQuarters: __webpack_require__(93),\n differenceInSeconds: __webpack_require__(21),\n differenceInWeeks: __webpack_require__(94),\n differenceInYears: __webpack_require__(95),\n distanceInWords: __webpack_require__(41),\n distanceInWordsStrict: __webpack_require__(99),\n distanceInWordsToNow: __webpack_require__(100),\n eachDay: __webpack_require__(101),\n endOfDay: __webpack_require__(23),\n endOfHour: __webpack_require__(102),\n endOfISOWeek: __webpack_require__(103),\n endOfISOYear: __webpack_require__(104),\n endOfMinute: __webpack_require__(105),\n endOfMonth: __webpack_require__(43),\n endOfQuarter: __webpack_require__(106),\n endOfSecond: __webpack_require__(107),\n endOfToday: __webpack_require__(108),\n endOfTomorrow: __webpack_require__(109),\n endOfWeek: __webpack_require__(42),\n endOfYear: __webpack_require__(110),\n endOfYesterday: __webpack_require__(111),\n format: __webpack_require__(112),\n getDate: __webpack_require__(113),\n getDay: __webpack_require__(114),\n getDayOfYear: __webpack_require__(44),\n getDaysInMonth: __webpack_require__(17),\n getDaysInYear: __webpack_require__(115),\n getHours: __webpack_require__(116),\n getISODay: __webpack_require__(48),\n getISOWeek: __webpack_require__(24),\n getISOWeeksInYear: __webpack_require__(117),\n getISOYear: __webpack_require__(2),\n getMilliseconds: __webpack_require__(118),\n getMinutes: __webpack_require__(119),\n getMonth: __webpack_require__(120),\n getOverlappingDaysInRanges: __webpack_require__(121),\n getQuarter: __webpack_require__(37),\n getSeconds: __webpack_require__(122),\n getTime: __webpack_require__(123),\n getYear: __webpack_require__(124),\n isAfter: __webpack_require__(125),\n isBefore: __webpack_require__(126),\n isDate: __webpack_require__(16),\n isEqual: __webpack_require__(127),\n isFirstDayOfMonth: __webpack_require__(128),\n isFriday: __webpack_require__(129),\n isFuture: __webpack_require__(130),\n isLastDayOfMonth: __webpack_require__(131),\n isLeapYear: __webpack_require__(47),\n isMonday: __webpack_require__(132),\n isPast: __webpack_require__(133),\n isSameDay: __webpack_require__(134),\n isSameHour: __webpack_require__(49),\n isSameISOWeek: __webpack_require__(51),\n isSameISOYear: __webpack_require__(52),\n isSameMinute: __webpack_require__(53),\n isSameMonth: __webpack_require__(55),\n isSameQuarter: __webpack_require__(56),\n isSameSecond: __webpack_require__(58),\n isSameWeek: __webpack_require__(25),\n isSameYear: __webpack_require__(60),\n isSaturday: __webpack_require__(135),\n isSunday: __webpack_require__(136),\n isThisHour: __webpack_require__(137),\n isThisISOWeek: __webpack_require__(138),\n isThisISOYear: __webpack_require__(139),\n isThisMinute: __webpack_require__(140),\n isThisMonth: __webpack_require__(141),\n isThisQuarter: __webpack_require__(142),\n isThisSecond: __webpack_require__(143),\n isThisWeek: __webpack_require__(144),\n isThisYear: __webpack_require__(145),\n isThursday: __webpack_require__(146),\n isToday: __webpack_require__(147),\n isTomorrow: __webpack_require__(148),\n isTuesday: __webpack_require__(149),\n isValid: __webpack_require__(46),\n isWednesday: __webpack_require__(150),\n isWeekend: __webpack_require__(151),\n isWithinRange: __webpack_require__(152),\n isYesterday: __webpack_require__(153),\n lastDayOfISOWeek: __webpack_require__(154),\n lastDayOfISOYear: __webpack_require__(155),\n lastDayOfMonth: __webpack_require__(156),\n lastDayOfQuarter: __webpack_require__(157),\n lastDayOfWeek: __webpack_require__(61),\n lastDayOfYear: __webpack_require__(158),\n max: __webpack_require__(159),\n min: __webpack_require__(160),\n parse: __webpack_require__(0),\n setDate: __webpack_require__(161),\n setDay: __webpack_require__(162),\n setDayOfYear: __webpack_require__(163),\n setHours: __webpack_require__(164),\n setISODay: __webpack_require__(165),\n setISOWeek: __webpack_require__(166),\n setISOYear: __webpack_require__(30),\n setMilliseconds: __webpack_require__(167),\n setMinutes: __webpack_require__(168),\n setMonth: __webpack_require__(62),\n setQuarter: __webpack_require__(169),\n setSeconds: __webpack_require__(170),\n setYear: __webpack_require__(171),\n startOfDay: __webpack_require__(4),\n startOfHour: __webpack_require__(50),\n startOfISOWeek: __webpack_require__(3),\n startOfISOYear: __webpack_require__(7),\n startOfMinute: __webpack_require__(54),\n startOfMonth: __webpack_require__(172),\n startOfQuarter: __webpack_require__(57),\n startOfSecond: __webpack_require__(59),\n startOfToday: __webpack_require__(173),\n startOfTomorrow: __webpack_require__(174),\n startOfWeek: __webpack_require__(11),\n startOfYear: __webpack_require__(45),\n startOfYesterday: __webpack_require__(175),\n subDays: __webpack_require__(176),\n subHours: __webpack_require__(177),\n subISOYears: __webpack_require__(40),\n subMilliseconds: __webpack_require__(178),\n subMinutes: __webpack_require__(179),\n subMonths: __webpack_require__(180),\n subQuarters: __webpack_require__(181),\n subSeconds: __webpack_require__(182),\n subWeeks: __webpack_require__(183),\n subYears: __webpack_require__(184)\n};\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nmodule.exports = function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n};\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Range Helpers\n * @summary Is the given date range overlapping with another date range?\n *\n * @description\n * Is the given date range overlapping with another date range?\n *\n * @param {Date|String|Number} initialRangeStartDate - the start of the initial range\n * @param {Date|String|Number} initialRangeEndDate - the end of the initial range\n * @param {Date|String|Number} comparedRangeStartDate - the start of the range to compare it with\n * @param {Date|String|Number} comparedRangeEndDate - the end of the range to compare it with\n * @returns {Boolean} whether the date ranges are overlapping\n * @throws {Error} startDate of a date range cannot be after its endDate\n *\n * @example\n * // For overlapping date ranges:\n * areRangesOverlapping(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n * //=> true\n *\n * @example\n * // For non-overlapping date ranges:\n * areRangesOverlapping(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 21), new Date(2014, 0, 22)\n * )\n * //=> false\n */\nfunction areRangesOverlapping(dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {\n var initialStartTime = parse(dirtyInitialRangeStartDate).getTime();\n var initialEndTime = parse(dirtyInitialRangeEndDate).getTime();\n var comparedStartTime = parse(dirtyComparedRangeStartDate).getTime();\n var comparedEndTime = parse(dirtyComparedRangeEndDate).getTime();\n\n if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {\n throw new Error('The start of the range cannot be after the end of the range');\n }\n\n return initialStartTime < comparedEndTime && comparedStartTime < initialEndTime;\n}\n\nmodule.exports = areRangesOverlapping;\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date[]|String[]|Number[]} datesArray - the array to search\n * @returns {Number} an index of the date closest to the given date\n * @throws {TypeError} the second argument must be an instance of Array\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * var dateToCompare = new Date(2015, 8, 6)\n * var datesArray = [\n * new Date(2015, 0, 1),\n * new Date(2016, 0, 1),\n * new Date(2017, 0, 1)\n * ]\n * var result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\nfunction closestIndexTo(dirtyDateToCompare, dirtyDatesArray) {\n if (!(dirtyDatesArray instanceof Array)) {\n throw new TypeError(toString.call(dirtyDatesArray) + ' is not an instance of Array');\n }\n\n var dateToCompare = parse(dirtyDateToCompare);\n var timeToCompare = dateToCompare.getTime();\n\n var result;\n var minDistance;\n\n dirtyDatesArray.forEach(function (dirtyDate, index) {\n var currentDate = parse(dirtyDate);\n var distance = Math.abs(timeToCompare - currentDate.getTime());\n if (result === undefined || distance < minDistance) {\n result = index;\n minDistance = distance;\n }\n });\n\n return result;\n}\n\nmodule.exports = closestIndexTo;\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date[]|String[]|Number[]} datesArray - the array to search\n * @returns {Date} the date from the array closest to the given date\n * @throws {TypeError} the second argument must be an instance of Array\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * var dateToCompare = new Date(2015, 8, 6)\n * var result = closestTo(dateToCompare, [\n * new Date(2000, 0, 1),\n * new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\nfunction closestTo(dirtyDateToCompare, dirtyDatesArray) {\n if (!(dirtyDatesArray instanceof Array)) {\n throw new TypeError(toString.call(dirtyDatesArray) + ' is not an instance of Array');\n }\n\n var dateToCompare = parse(dirtyDateToCompare);\n var timeToCompare = dateToCompare.getTime();\n\n var result;\n var minDistance;\n\n dirtyDatesArray.forEach(function (dirtyDate) {\n var currentDate = parse(dirtyDate);\n var distance = Math.abs(timeToCompare - currentDate.getTime());\n if (result === undefined || distance < minDistance) {\n result = currentDate;\n minDistance = distance;\n }\n });\n\n return result;\n}\n\nmodule.exports = closestTo;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfISOWeek = __webpack_require__(3);\n\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\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 ISO weeks\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * var result = differenceInCalendarISOWeeks(\n * new Date(2014, 6, 21),\n * new Date(2014, 6, 6)\n * )\n * //=> 3\n */\nfunction differenceInCalendarISOWeeks(dirtyDateLeft, dirtyDateRight) {\n var startOfISOWeekLeft = startOfISOWeek(dirtyDateLeft);\n var startOfISOWeekRight = startOfISOWeek(dirtyDateRight);\n\n var timestampLeft = startOfISOWeekLeft.getTime() - startOfISOWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n var timestampRight = startOfISOWeekRight.getTime() - startOfISOWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}\n\nmodule.exports = differenceInCalendarISOWeeks;\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getQuarter = __webpack_require__(37);\nvar parse = __webpack_require__(0);\n\n/**\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters 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 quarters\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\nfunction differenceInCalendarQuarters(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight);\n\n return yearDiff * 4 + quarterDiff;\n}\n\nmodule.exports = differenceInCalendarQuarters;\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfWeek = __webpack_require__(11);\n\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * {weekStartsOn: 1}\n * )\n * //=> 2\n */\nfunction differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n\n var timestampLeft = startOfWeekLeft.getTime() - startOfWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n var timestampRight = startOfWeekRight.getTime() - startOfWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}\n\nmodule.exports = differenceInCalendarWeeks;\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar differenceInMilliseconds = __webpack_require__(14);\n\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours 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 hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours(dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}\n\nmodule.exports = differenceInHours;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar differenceInCalendarISOYears = __webpack_require__(35);\nvar compareAsc = __webpack_require__(8);\nvar subISOYears = __webpack_require__(40);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\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 ISO week-numbering years\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * var result = differenceInISOYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 1\n */\nfunction differenceInISOYears(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarISOYears(dateLeft, dateRight));\n dateLeft = subISOYears(dateLeft, sign * difference);\n\n // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n // if last calendar ISO year is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastISOYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n return sign * (difference - isLastISOYearNotFull);\n}\n\nmodule.exports = differenceInISOYears;\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar differenceInMilliseconds = __webpack_require__(14);\n\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the number of minutes 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 minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n */\nfunction differenceInMinutes(dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}\n\nmodule.exports = differenceInMinutes;\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar differenceInMonths = __webpack_require__(20);\n\n/**\n * @category Quarter Helpers\n * @summary Get the number of full quarters between the given dates.\n *\n * @description\n * Get the number of full quarters 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 quarters\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInQuarters(dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMonths(dirtyDateLeft, dirtyDateRight) / 3;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}\n\nmodule.exports = differenceInQuarters;\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar differenceInDays = __webpack_require__(39);\n\n/**\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks 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 weeks\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 2\n */\nfunction differenceInWeeks(dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}\n\nmodule.exports = differenceInWeeks;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar differenceInCalendarYears = __webpack_require__(38);\nvar compareAsc = __webpack_require__(8);\n\n/**\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years 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 years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 1\n */\nfunction differenceInYears(dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft);\n var dateRight = parse(dirtyDateRight);\n\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight));\n dateLeft.setFullYear(dateLeft.getFullYear() - sign * difference);\n\n // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n return sign * (difference - isLastYearNotFull);\n}\n\nmodule.exports = differenceInYears;\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction buildDistanceInWordsLocale() {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n };\n\n function localize(token, count, options) {\n options = options || {};\n\n var result;\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token];\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one;\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n }\n\n return {\n localize: localize\n };\n}\n\nmodule.exports = buildDistanceInWordsLocale;\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar buildFormattingTokensRegExp = __webpack_require__(98);\n\nfunction buildFormatLocale() {\n // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n var meridiemUppercase = ['AM', 'PM'];\n var meridiemLowercase = ['am', 'pm'];\n var meridiemFull = ['a.m.', 'p.m.'];\n\n var formatters = {\n // Month: Jan, Feb, ..., Dec\n 'MMM': function MMM(date) {\n return months3char[date.getMonth()];\n },\n\n // Month: January, February, ..., December\n 'MMMM': function MMMM(date) {\n return monthsFull[date.getMonth()];\n },\n\n // Day of week: Su, Mo, ..., Sa\n 'dd': function dd(date) {\n return weekdays2char[date.getDay()];\n },\n\n // Day of week: Sun, Mon, ..., Sat\n 'ddd': function ddd(date) {\n return weekdays3char[date.getDay()];\n },\n\n // Day of week: Sunday, Monday, ..., Saturday\n 'dddd': function dddd(date) {\n return weekdaysFull[date.getDay()];\n },\n\n // AM, PM\n 'A': function A(date) {\n return date.getHours() / 12 >= 1 ? meridiemUppercase[1] : meridiemUppercase[0];\n },\n\n // am, pm\n 'a': function a(date) {\n return date.getHours() / 12 >= 1 ? meridiemLowercase[1] : meridiemLowercase[0];\n },\n\n // a.m., p.m.\n 'aa': function aa(date) {\n return date.getHours() / 12 >= 1 ? meridiemFull[1] : meridiemFull[0];\n }\n\n // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n };var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W'];\n ordinalFormatters.forEach(function (formatterToken) {\n formatters[formatterToken + 'o'] = function (date, formatters) {\n return ordinal(formatters[formatterToken](date));\n };\n });\n\n return {\n formatters: formatters,\n formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n };\n}\n\nfunction ordinal(number) {\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n}\n\nmodule.exports = buildFormatLocale;\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar commonFormatterKeys = ['M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd', 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG', 'H', 'HH', 'h', 'hh', 'm', 'mm', 's', 'ss', 'S', 'SS', 'SSS', 'Z', 'ZZ', 'X', 'x'];\n\nfunction buildFormattingTokensRegExp(formatters) {\n var formatterKeys = [];\n for (var key in formatters) {\n if (formatters.hasOwnProperty(key)) {\n formatterKeys.push(key);\n }\n }\n\n var formattingTokens = commonFormatterKeys.concat(formatterKeys).sort().reverse();\n var formattingTokensRegExp = new RegExp('(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g');\n\n return formattingTokensRegExp;\n}\n\nmodule.exports = buildFormattingTokensRegExp;\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar compareDesc = __webpack_require__(19);\nvar parse = __webpack_require__(0);\nvar differenceInSeconds = __webpack_require__(21);\nvar enLocale = __webpack_require__(22);\n\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_YEAR = 525600;\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `distanceInWords`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'s'|'m'|'h'|'d'|'M'|'Y'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.partialMethod='floor'] - which way to round partial units\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWordsStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * var result = distanceInWordsStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWordsStrict(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * var result = distanceInWordsStrict(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {unit: 'm'}\n * )\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 28 January 2015, in months, rounded up?\n * var result = distanceInWordsStrict(\n * new Date(2015, 0, 28),\n * new Date(2015, 0, 1),\n * {unit: 'M', partialMethod: 'ceil'}\n * )\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsStrict(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\nfunction distanceInWordsStrict(dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {};\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate);\n\n var locale = options.locale;\n var localize = enLocale.distanceInWords.localize;\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize;\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n };\n\n var dateLeft, dateRight;\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare);\n dateRight = parse(dirtyDate);\n } else {\n dateLeft = parse(dirtyDate);\n dateRight = parse(dirtyDateToCompare);\n }\n\n var unit;\n var mathPartial = Math[options.partialMethod ? String(options.partialMethod) : 'floor'];\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset();\n var minutes = mathPartial(seconds / 60) - offset;\n var hours, days, months, years;\n\n if (options.unit) {\n unit = String(options.unit);\n } else {\n if (minutes < 1) {\n unit = 's';\n } else if (minutes < 60) {\n unit = 'm';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'h';\n } else if (minutes < MINUTES_IN_MONTH) {\n unit = 'd';\n } else if (minutes < MINUTES_IN_YEAR) {\n unit = 'M';\n } else {\n unit = 'Y';\n }\n }\n\n // 0 up to 60 seconds\n if (unit === 's') {\n return localize('xSeconds', seconds, localizeOptions);\n\n // 1 up to 60 mins\n } else if (unit === 'm') {\n return localize('xMinutes', minutes, localizeOptions);\n\n // 1 up to 24 hours\n } else if (unit === 'h') {\n hours = mathPartial(minutes / 60);\n return localize('xHours', hours, localizeOptions);\n\n // 1 up to 30 days\n } else if (unit === 'd') {\n days = mathPartial(minutes / MINUTES_IN_DAY);\n return localize('xDays', days, localizeOptions);\n\n // 1 up to 12 months\n } else if (unit === 'M') {\n months = mathPartial(minutes / MINUTES_IN_MONTH);\n return localize('xMonths', months, localizeOptions);\n\n // 1 year up to max Date\n } else if (unit === 'Y') {\n years = mathPartial(minutes / MINUTES_IN_YEAR);\n return localize('xYears', years, localizeOptions);\n }\n\n throw new Error('Unknown unit: ' + unit);\n}\n\nmodule.exports = distanceInWordsStrict;\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar distanceInWords = __webpack_require__(41);\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\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Return the array of dates within the specified range.\n *\n * @description\n * Return the array of dates within the specified range.\n *\n * @param {Date|String|Number} startDate - the first date\n * @param {Date|String|Number} endDate - the last date\n * @param {Number} [step=1] - the step between each day\n * @returns {Date[]} the array with starts of days from the day of startDate to the day of endDate\n * @throws {Error} startDate cannot be after endDate\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * var result = eachDay(\n * new Date(2014, 9, 6),\n * new Date(2014, 9, 10)\n * )\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nfunction eachDay(dirtyStartDate, dirtyEndDate, dirtyStep) {\n var startDate = parse(dirtyStartDate);\n var endDate = parse(dirtyEndDate);\n var step = dirtyStep !== undefined ? dirtyStep : 1;\n\n var endTime = endDate.getTime();\n\n if (startDate.getTime() > endTime) {\n throw new Error('The first date cannot be after the second date');\n }\n\n var dates = [];\n\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n\n while (currentDate.getTime() <= endTime) {\n dates.push(parse(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n }\n\n return dates;\n}\n\nmodule.exports = eachDay;\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an hour\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * var result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\nfunction endOfHour(dirtyDate) {\n var date = parse(dirtyDate);\n date.setMinutes(59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfHour;\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar endOfWeek = __webpack_require__(42);\n\n/**\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * var result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfISOWeek(dirtyDate) {\n return endOfWeek(dirtyDate, { weekStartsOn: 1 });\n}\n\nmodule.exports = endOfISOWeek;\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getISOYear = __webpack_require__(2);\nvar startOfISOWeek = __webpack_require__(3);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * var result = endOfISOYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\nfunction endOfISOYear(dirtyDate) {\n var year = getISOYear(dirtyDate);\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuaryOfNextYear);\n date.setMilliseconds(date.getMilliseconds() - 1);\n return date;\n}\n\nmodule.exports = endOfISOYear;\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a minute\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * var result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\nfunction endOfMinute(dirtyDate) {\n var date = parse(dirtyDate);\n date.setSeconds(59, 999);\n return date;\n}\n\nmodule.exports = endOfMinute;\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * var result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfQuarter(dirtyDate) {\n var date = parse(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfQuarter;\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a second\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * var result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\nfunction endOfSecond(dirtyDate) {\n var date = parse(dirtyDate);\n date.setMilliseconds(999);\n return date;\n}\n\nmodule.exports = endOfSecond;\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar endOfDay = __webpack_require__(23);\n\n/**\n * @category Day Helpers\n * @summary Return the end of today.\n *\n * @description\n * Return the end of today.\n *\n * @returns {Date} the end of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfToday()\n * //=> Mon Oct 6 2014 23:59:59.999\n */\nfunction endOfToday() {\n return endOfDay(new Date());\n}\n\nmodule.exports = endOfToday;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * @category Day Helpers\n * @summary Return the end of tomorrow.\n *\n * @description\n * Return the end of tomorrow.\n *\n * @returns {Date} the end of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfTomorrow()\n * //=> Tue Oct 7 2014 23:59:59.999\n */\nfunction endOfTomorrow() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n\n var date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfTomorrow;\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * var result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nfunction endOfYear(dirtyDate) {\n var date = parse(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfYear;\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * @category Day Helpers\n * @summary Return the end of yesterday.\n *\n * @description\n * Return the end of yesterday.\n *\n * @returns {Date} the end of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfYesterday()\n * //=> Sun Oct 5 2014 23:59:59.999\n */\nfunction endOfYesterday() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n\n var date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = endOfYesterday;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getDayOfYear = __webpack_require__(44);\nvar getISOWeek = __webpack_require__(24);\nvar getISOYear = __webpack_require__(2);\nvar parse = __webpack_require__(0);\nvar isValid = __webpack_require__(46);\nvar enLocale = __webpack_require__(22);\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit | Token | Result examples |\n * |-------------------------|-------|----------------------------------|\n * | Month | M | 1, 2, ..., 12 |\n * | | Mo | 1st, 2nd, ..., 12th |\n * | | MM | 01, 02, ..., 12 |\n * | | MMM | Jan, Feb, ..., Dec |\n * | | MMMM | January, February, ..., December |\n * | Quarter | Q | 1, 2, 3, 4 |\n * | | Qo | 1st, 2nd, 3rd, 4th |\n * | Day of month | D | 1, 2, ..., 31 |\n * | | Do | 1st, 2nd, ..., 31st |\n * | | DD | 01, 02, ..., 31 |\n * | Day of year | DDD | 1, 2, ..., 366 |\n * | | DDDo | 1st, 2nd, ..., 366th |\n * | | DDDD | 001, 002, ..., 366 |\n * | Day of week | d | 0, 1, ..., 6 |\n * | | do | 0th, 1st, ..., 6th |\n * | | dd | Su, Mo, ..., Sa |\n * | | ddd | Sun, Mon, ..., Sat |\n * | | dddd | Sunday, Monday, ..., Saturday |\n * | Day of ISO week | E | 1, 2, ..., 7 |\n * | ISO week | W | 1, 2, ..., 53 |\n * | | Wo | 1st, 2nd, ..., 53rd |\n * | | WW | 01, 02, ..., 53 |\n * | Year | YY | 00, 01, ..., 99 |\n * | | YYYY | 1900, 1901, ..., 2099 |\n * | ISO week-numbering year | GG | 00, 01, ..., 99 |\n * | | GGGG | 1900, 1901, ..., 2099 |\n * | AM/PM | A | AM, PM |\n * | | a | am, pm |\n * | | aa | a.m., p.m. |\n * | Hour | H | 0, 1, ... 23 |\n * | | HH | 00, 01, ... 23 |\n * | | h | 1, 2, ..., 12 |\n * | | hh | 01, 02, ..., 12 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | 1/10 of second | S | 0, 1, ..., 9 |\n * | 1/100 of second | SS | 00, 01, ..., 99 |\n * | Millisecond | SSS | 000, 001, ..., 999 |\n * | Timezone | Z | -01:00, +00:00, ... +12:00 |\n * | | ZZ | -0100, +0000, ..., +1200 |\n * | Seconds timestamp | X | 512969520 |\n * | Milliseconds timestamp | x | 512969520900 |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n * new Date(2014, 6, 2),\n * 'Do [de] MMMM YYYY',\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n var options = dirtyOptions || {};\n\n var locale = options.locale;\n var localeFormatters = enLocale.format.formatters;\n var formattingTokensRegExp = enLocale.format.formattingTokensRegExp;\n if (locale && locale.format && locale.format.formatters) {\n localeFormatters = locale.format.formatters;\n\n if (locale.format.formattingTokensRegExp) {\n formattingTokensRegExp = locale.format.formattingTokensRegExp;\n }\n }\n\n var date = parse(dirtyDate);\n\n if (!isValid(date)) {\n return 'Invalid Date';\n }\n\n var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp);\n\n return formatFn(date);\n}\n\nvar formatters = {\n // Month: 1, 2, ..., 12\n 'M': function M(date) {\n return date.getMonth() + 1;\n },\n\n // Month: 01, 02, ..., 12\n 'MM': function MM(date) {\n return addLeadingZeros(date.getMonth() + 1, 2);\n },\n\n // Quarter: 1, 2, 3, 4\n 'Q': function Q(date) {\n return Math.ceil((date.getMonth() + 1) / 3);\n },\n\n // Day of month: 1, 2, ..., 31\n 'D': function D(date) {\n return date.getDate();\n },\n\n // Day of month: 01, 02, ..., 31\n 'DD': function DD(date) {\n return addLeadingZeros(date.getDate(), 2);\n },\n\n // Day of year: 1, 2, ..., 366\n 'DDD': function DDD(date) {\n return getDayOfYear(date);\n },\n\n // Day of year: 001, 002, ..., 366\n 'DDDD': function DDDD(date) {\n return addLeadingZeros(getDayOfYear(date), 3);\n },\n\n // Day of week: 0, 1, ..., 6\n 'd': function d(date) {\n return date.getDay();\n },\n\n // Day of ISO week: 1, 2, ..., 7\n 'E': function E(date) {\n return date.getDay() || 7;\n },\n\n // ISO week: 1, 2, ..., 53\n 'W': function W(date) {\n return getISOWeek(date);\n },\n\n // ISO week: 01, 02, ..., 53\n 'WW': function WW(date) {\n return addLeadingZeros(getISOWeek(date), 2);\n },\n\n // Year: 00, 01, ..., 99\n 'YY': function YY(date) {\n return addLeadingZeros(date.getFullYear(), 4).substr(2);\n },\n\n // Year: 1900, 1901, ..., 2099\n 'YYYY': function YYYY(date) {\n return addLeadingZeros(date.getFullYear(), 4);\n },\n\n // ISO week-numbering year: 00, 01, ..., 99\n 'GG': function GG(date) {\n return String(getISOYear(date)).substr(2);\n },\n\n // ISO week-numbering year: 1900, 1901, ..., 2099\n 'GGGG': function GGGG(date) {\n return getISOYear(date);\n },\n\n // Hour: 0, 1, ... 23\n 'H': function H(date) {\n return date.getHours();\n },\n\n // Hour: 00, 01, ..., 23\n 'HH': function HH(date) {\n return addLeadingZeros(date.getHours(), 2);\n },\n\n // Hour: 1, 2, ..., 12\n 'h': function h(date) {\n var hours = date.getHours();\n if (hours === 0) {\n return 12;\n } else if (hours > 12) {\n return hours % 12;\n } else {\n return hours;\n }\n },\n\n // Hour: 01, 02, ..., 12\n 'hh': function hh(date) {\n return addLeadingZeros(formatters['h'](date), 2);\n },\n\n // Minute: 0, 1, ..., 59\n 'm': function m(date) {\n return date.getMinutes();\n },\n\n // Minute: 00, 01, ..., 59\n 'mm': function mm(date) {\n return addLeadingZeros(date.getMinutes(), 2);\n },\n\n // Second: 0, 1, ..., 59\n 's': function s(date) {\n return date.getSeconds();\n },\n\n // Second: 00, 01, ..., 59\n 'ss': function ss(date) {\n return addLeadingZeros(date.getSeconds(), 2);\n },\n\n // 1/10 of second: 0, 1, ..., 9\n 'S': function S(date) {\n return Math.floor(date.getMilliseconds() / 100);\n },\n\n // 1/100 of second: 00, 01, ..., 99\n 'SS': function SS(date) {\n return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2);\n },\n\n // Millisecond: 000, 001, ..., 999\n 'SSS': function SSS(date) {\n return addLeadingZeros(date.getMilliseconds(), 3);\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n 'Z': function Z(date) {\n return formatTimezone(date.getTimezoneOffset(), ':');\n },\n\n // Timezone: -0100, +0000, ... +1200\n 'ZZ': function ZZ(date) {\n return formatTimezone(date.getTimezoneOffset());\n },\n\n // Seconds timestamp: 512969520\n 'X': function X(date) {\n return Math.floor(date.getTime() / 1000);\n },\n\n // Milliseconds timestamp: 512969520900\n 'x': function x(date) {\n return date.getTime();\n }\n};\n\nfunction buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp) {\n var array = formatStr.match(formattingTokensRegExp);\n var length = array.length;\n\n var i;\n var formatter;\n for (i = 0; i < length; i++) {\n formatter = localeFormatters[array[i]] || formatters[array[i]];\n if (formatter) {\n array[i] = formatter;\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (date) {\n var output = '';\n for (var i = 0; i < length; i++) {\n if (array[i] instanceof Function) {\n output += array[i](date, formatters);\n } else {\n output += array[i];\n }\n }\n return output;\n };\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction formatTimezone(offset, delimeter) {\n delimeter = delimeter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2);\n}\n\nfunction addLeadingZeros(number, targetLength) {\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return output;\n}\n\nmodule.exports = format;\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nfunction getDate(dirtyDate) {\n var date = parse(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}\n\nmodule.exports = getDate;\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of week\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nfunction getDay(dirtyDate) {\n var date = parse(dirtyDate);\n var day = date.getDay();\n return day;\n}\n\nmodule.exports = getDay;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isLeapYear = __webpack_require__(47);\n\n/**\n * @category Year Helpers\n * @summary Get the number of days in a year of the given date.\n *\n * @description\n * Get the number of days in a year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a year\n *\n * @example\n * // How many days are in 2012?\n * var result = getDaysInYear(new Date(2012, 0, 1))\n * //=> 366\n */\nfunction getDaysInYear(dirtyDate) {\n return isLeapYear(dirtyDate) ? 366 : 365;\n}\n\nmodule.exports = getDaysInYear;\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nfunction getHours(dirtyDate) {\n var date = parse(dirtyDate);\n var hours = date.getHours();\n return hours;\n}\n\nmodule.exports = getHours;\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfISOYear = __webpack_require__(7);\nvar addWeeks = __webpack_require__(18);\n\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * @description\n * Get the number of weeks in an ISO week-numbering year of the given date.\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 number of ISO weeks in a year\n *\n * @example\n * // How many weeks are in ISO week-numbering year 2015?\n * var result = getISOWeeksInYear(new Date(2015, 1, 11))\n * //=> 53\n */\nfunction getISOWeeksInYear(dirtyDate) {\n var thisYear = startOfISOYear(dirtyDate);\n var nextYear = startOfISOYear(addWeeks(thisYear, 60));\n var diff = nextYear.valueOf() - thisYear.valueOf();\n // Round the number of weeks to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK);\n}\n\nmodule.exports = getISOWeeksInYear;\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the milliseconds\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * var result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\nfunction getMilliseconds(dirtyDate) {\n var date = parse(dirtyDate);\n var milliseconds = date.getMilliseconds();\n return milliseconds;\n}\n\nmodule.exports = getMilliseconds;\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nfunction getMinutes(dirtyDate) {\n var date = parse(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}\n\nmodule.exports = getMinutes;\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the month\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nfunction getMonth(dirtyDate) {\n var date = parse(dirtyDate);\n var month = date.getMonth();\n return month;\n}\n\nmodule.exports = getMonth;\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\nvar MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000;\n\n/**\n * @category Range Helpers\n * @summary Get the number of days that overlap in two date ranges\n *\n * @description\n * Get the number of days that overlap in two date ranges\n *\n * @param {Date|String|Number} initialRangeStartDate - the start of the initial range\n * @param {Date|String|Number} initialRangeEndDate - the end of the initial range\n * @param {Date|String|Number} comparedRangeStartDate - the start of the range to compare it with\n * @param {Date|String|Number} comparedRangeEndDate - the end of the range to compare it with\n * @returns {Number} the number of days that overlap in two date ranges\n * @throws {Error} startDate of a date range cannot be after its endDate\n *\n * @example\n * // For overlapping date ranges adds 1 for each started overlapping day:\n * getOverlappingDaysInRanges(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping date ranges returns 0:\n * getOverlappingDaysInRanges(\n * new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 21), new Date(2014, 0, 22)\n * )\n * //=> 0\n */\nfunction getOverlappingDaysInRanges(dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {\n var initialStartTime = parse(dirtyInitialRangeStartDate).getTime();\n var initialEndTime = parse(dirtyInitialRangeEndDate).getTime();\n var comparedStartTime = parse(dirtyComparedRangeStartDate).getTime();\n var comparedEndTime = parse(dirtyComparedRangeEndDate).getTime();\n\n if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {\n throw new Error('The start of the range cannot be after the end of the range');\n }\n\n var isOverlapping = initialStartTime < comparedEndTime && comparedStartTime < initialEndTime;\n\n if (!isOverlapping) {\n return 0;\n }\n\n var overlapStartDate = comparedStartTime < initialStartTime ? initialStartTime : comparedStartTime;\n\n var overlapEndDate = comparedEndTime > initialEndTime ? initialEndTime : comparedEndTime;\n\n var differenceInMs = overlapEndDate - overlapStartDate;\n\n return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY);\n}\n\nmodule.exports = getOverlappingDaysInRanges;\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nfunction getSeconds(dirtyDate) {\n var date = parse(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}\n\nmodule.exports = getSeconds;\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nfunction getTime(dirtyDate) {\n var date = parse(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}\n\nmodule.exports = getTime;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the year\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nfunction getYear(dirtyDate) {\n var date = parse(dirtyDate);\n var year = date.getFullYear();\n return year;\n}\n\nmodule.exports = getYear;\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|String|Number} date - the date that should be after the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nfunction isAfter(dirtyDate, dirtyDateToCompare) {\n var date = parse(dirtyDate);\n var dateToCompare = parse(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}\n\nmodule.exports = isAfter;\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|String|Number} date - the date that should be before the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nfunction isBefore(dirtyDate, dirtyDateToCompare) {\n var date = parse(dirtyDate);\n var dateToCompare = parse(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}\n\nmodule.exports = isBefore;\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates 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 {Boolean} the dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0)\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nfunction isEqual(dirtyLeftDate, dirtyRightDate) {\n var dateLeft = parse(dirtyLeftDate);\n var dateRight = parse(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}\n\nmodule.exports = isEqual;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is the first day of a month\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * var result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\nfunction isFirstDayOfMonth(dirtyDate) {\n return parse(dirtyDate).getDate() === 1;\n}\n\nmodule.exports = isFirstDayOfMonth;\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Friday?\n *\n * @description\n * Is the given date Friday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Friday\n *\n * @example\n * // Is 26 September 2014 Friday?\n * var result = isFriday(new Date(2014, 8, 26))\n * //=> true\n */\nfunction isFriday(dirtyDate) {\n return parse(dirtyDate).getDay() === 5;\n}\n\nmodule.exports = isFriday;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Is the given date in the future?\n *\n * @description\n * Is the given date in the future?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * var result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nfunction isFuture(dirtyDate) {\n return parse(dirtyDate).getTime() > new Date().getTime();\n}\n\nmodule.exports = isFuture;\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar endOfDay = __webpack_require__(23);\nvar endOfMonth = __webpack_require__(43);\n\n/**\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nfunction isLastDayOfMonth(dirtyDate) {\n var date = parse(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}\n\nmodule.exports = isLastDayOfMonth;\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Monday?\n *\n * @description\n * Is the given date Monday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Monday\n *\n * @example\n * // Is 22 September 2014 Monday?\n * var result = isMonday(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isMonday(dirtyDate) {\n return parse(dirtyDate).getDay() === 1;\n}\n\nmodule.exports = isMonday;\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Is the given date in the past?\n *\n * @description\n * Is the given date in the past?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * var result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isPast(dirtyDate) {\n return parse(dirtyDate).getTime() < new Date().getTime();\n}\n\nmodule.exports = isPast;\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfDay = __webpack_require__(4);\n\n/**\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(\n * new Date(2014, 8, 4, 6, 0),\n * new Date(2014, 8, 4, 18, 0)\n * )\n * //=> true\n */\nfunction isSameDay(dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}\n\nmodule.exports = isSameDay;\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Saturday?\n *\n * @description\n * Is the given date Saturday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Saturday\n *\n * @example\n * // Is 27 September 2014 Saturday?\n * var result = isSaturday(new Date(2014, 8, 27))\n * //=> true\n */\nfunction isSaturday(dirtyDate) {\n return parse(dirtyDate).getDay() === 6;\n}\n\nmodule.exports = isSaturday;\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Sunday?\n *\n * @description\n * Is the given date Sunday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Sunday\n *\n * @example\n * // Is 21 September 2014 Sunday?\n * var result = isSunday(new Date(2014, 8, 21))\n * //=> true\n */\nfunction isSunday(dirtyDate) {\n return parse(dirtyDate).getDay() === 0;\n}\n\nmodule.exports = isSunday;\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameHour = __webpack_require__(49);\n\n/**\n * @category Hour Helpers\n * @summary Is the given date in the same hour as the current date?\n *\n * @description\n * Is the given date in the same hour as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this hour\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:00:00 in this hour?\n * var result = isThisHour(new Date(2014, 8, 25, 18))\n * //=> true\n */\nfunction isThisHour(dirtyDate) {\n return isSameHour(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisHour;\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameISOWeek = __webpack_require__(51);\n\n/**\n * @category ISO Week Helpers\n * @summary Is the given date in the same ISO week as the current date?\n *\n * @description\n * Is the given date in the same ISO week as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week\n *\n * @example\n * // If today is 25 September 2014, is 22 September 2014 in this ISO week?\n * var result = isThisISOWeek(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isThisISOWeek(dirtyDate) {\n return isSameISOWeek(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisISOWeek;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameISOYear = __webpack_require__(52);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Is the given date in the same ISO week-numbering year as the current date?\n *\n * @description\n * Is the given date in the same ISO week-numbering year as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week-numbering year\n *\n * @example\n * // If today is 25 September 2014,\n * // is 30 December 2013 in this ISO week-numbering year?\n * var result = isThisISOYear(new Date(2013, 11, 30))\n * //=> true\n */\nfunction isThisISOYear(dirtyDate) {\n return isSameISOYear(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisISOYear;\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameMinute = __webpack_require__(53);\n\n/**\n * @category Minute Helpers\n * @summary Is the given date in the same minute as the current date?\n *\n * @description\n * Is the given date in the same minute as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this minute\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:00 in this minute?\n * var result = isThisMinute(new Date(2014, 8, 25, 18, 30))\n * //=> true\n */\nfunction isThisMinute(dirtyDate) {\n return isSameMinute(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisMinute;\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameMonth = __webpack_require__(55);\n\n/**\n * @category Month Helpers\n * @summary Is the given date in the same month as the current date?\n *\n * @description\n * Is the given date in the same month as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this month\n *\n * @example\n * // If today is 25 September 2014, is 15 September 2014 in this month?\n * var result = isThisMonth(new Date(2014, 8, 15))\n * //=> true\n */\nfunction isThisMonth(dirtyDate) {\n return isSameMonth(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisMonth;\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameQuarter = __webpack_require__(56);\n\n/**\n * @category Quarter Helpers\n * @summary Is the given date in the same quarter as the current date?\n *\n * @description\n * Is the given date in the same quarter as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this quarter\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this quarter?\n * var result = isThisQuarter(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisQuarter(dirtyDate) {\n return isSameQuarter(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisQuarter;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameSecond = __webpack_require__(58);\n\n/**\n * @category Second Helpers\n * @summary Is the given date in the same second as the current date?\n *\n * @description\n * Is the given date in the same second as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this second\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:15.000 in this second?\n * var result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n * //=> true\n */\nfunction isThisSecond(dirtyDate) {\n return isSameSecond(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisSecond;\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameWeek = __webpack_require__(25);\n\n/**\n * @category Week Helpers\n * @summary Is the given date in the same week as the current date?\n *\n * @description\n * Is the given date in the same week as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the date is in this week\n *\n * @example\n * // If today is 25 September 2014, is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21))\n * //=> true\n *\n * @example\n * // If today is 25 September 2014 and week starts with Monday\n * // is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21), {weekStartsOn: 1})\n * //=> false\n */\nfunction isThisWeek(dirtyDate, dirtyOptions) {\n return isSameWeek(new Date(), dirtyDate, dirtyOptions);\n}\n\nmodule.exports = isThisWeek;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isSameYear = __webpack_require__(60);\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * var result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisYear(dirtyDate) {\n return isSameYear(new Date(), dirtyDate);\n}\n\nmodule.exports = isThisYear;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Thursday?\n *\n * @description\n * Is the given date Thursday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Thursday\n *\n * @example\n * // Is 25 September 2014 Thursday?\n * var result = isThursday(new Date(2014, 8, 25))\n * //=> true\n */\nfunction isThursday(dirtyDate) {\n return parse(dirtyDate).getDay() === 4;\n}\n\nmodule.exports = isThursday;\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfDay = __webpack_require__(4);\n\n/**\n * @category Day Helpers\n * @summary Is the given date today?\n *\n * @description\n * Is the given date today?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nfunction isToday(dirtyDate) {\n return startOfDay(dirtyDate).getTime() === startOfDay(new Date()).getTime();\n}\n\nmodule.exports = isToday;\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfDay = __webpack_require__(4);\n\n/**\n * @category Day Helpers\n * @summary Is the given date tomorrow?\n *\n * @description\n * Is the given date tomorrow?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is tomorrow\n *\n * @example\n * // If today is 6 October 2014, is 7 October 14:00:00 tomorrow?\n * var result = isTomorrow(new Date(2014, 9, 7, 14, 0))\n * //=> true\n */\nfunction isTomorrow(dirtyDate) {\n var tomorrow = new Date();\n tomorrow.setDate(tomorrow.getDate() + 1);\n return startOfDay(dirtyDate).getTime() === startOfDay(tomorrow).getTime();\n}\n\nmodule.exports = isTomorrow;\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Tuesday?\n *\n * @description\n * Is the given date Tuesday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Tuesday\n *\n * @example\n * // Is 23 September 2014 Tuesday?\n * var result = isTuesday(new Date(2014, 8, 23))\n * //=> true\n */\nfunction isTuesday(dirtyDate) {\n return parse(dirtyDate).getDay() === 2;\n}\n\nmodule.exports = isTuesday;\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Wednesday?\n *\n * @description\n * Is the given date Wednesday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Wednesday\n *\n * @example\n * // Is 24 September 2014 Wednesday?\n * var result = isWednesday(new Date(2014, 8, 24))\n * //=> true\n */\nfunction isWednesday(dirtyDate) {\n return parse(dirtyDate).getDay() === 3;\n}\n\nmodule.exports = isWednesday;\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * var result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nfunction isWeekend(dirtyDate) {\n var date = parse(dirtyDate);\n var day = date.getDay();\n return day === 0 || day === 6;\n}\n\nmodule.exports = isWeekend;\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Range Helpers\n * @summary Is the given date within the range?\n *\n * @description\n * Is the given date within the range?\n *\n * @param {Date|String|Number} date - the date to check\n * @param {Date|String|Number} startDate - the start of range\n * @param {Date|String|Number} endDate - the end of range\n * @returns {Boolean} the date is within the range\n * @throws {Error} startDate cannot be after endDate\n *\n * @example\n * // For the date within the range:\n * isWithinRange(\n * new Date(2014, 0, 3), new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n * //=> true\n *\n * @example\n * // For the date outside of the range:\n * isWithinRange(\n * new Date(2014, 0, 10), new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n * //=> false\n */\nfunction isWithinRange(dirtyDate, dirtyStartDate, dirtyEndDate) {\n var time = parse(dirtyDate).getTime();\n var startTime = parse(dirtyStartDate).getTime();\n var endTime = parse(dirtyEndDate).getTime();\n\n if (startTime > endTime) {\n throw new Error('The start of the range cannot be after the end of the range');\n }\n\n return time >= startTime && time <= endTime;\n}\n\nmodule.exports = isWithinRange;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfDay = __webpack_require__(4);\n\n/**\n * @category Day Helpers\n * @summary Is the given date yesterday?\n *\n * @description\n * Is the given date yesterday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * var result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\nfunction isYesterday(dirtyDate) {\n var yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n return startOfDay(dirtyDate).getTime() === startOfDay(yesterday).getTime();\n}\n\nmodule.exports = isYesterday;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar lastDayOfWeek = __webpack_require__(61);\n\n/**\n * @category ISO Week Helpers\n * @summary Return the last day of an ISO week for the given date.\n *\n * @description\n * Return the last day of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of an ISO week\n *\n * @example\n * // The last day of an ISO week for 2 September 2014 11:55:00:\n * var result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfISOWeek(dirtyDate) {\n return lastDayOfWeek(dirtyDate, { weekStartsOn: 1 });\n}\n\nmodule.exports = lastDayOfISOWeek;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getISOYear = __webpack_require__(2);\nvar startOfISOWeek = __webpack_require__(3);\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the last day of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the last day of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n *\n * @example\n * // The last day of an ISO week-numbering year for 2 July 2005:\n * var result = lastDayOfISOYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 00:00:00\n */\nfunction lastDayOfISOYear(dirtyDate) {\n var year = getISOYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year + 1, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n date.setDate(date.getDate() - 1);\n return date;\n}\n\nmodule.exports = lastDayOfISOYear;\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * var result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfMonth(dirtyDate) {\n var date = parse(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = lastDayOfMonth;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Quarter Helpers\n * @summary Return the last day of a year quarter for the given date.\n *\n * @description\n * Return the last day of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a quarter\n *\n * @example\n * // The last day of a quarter for 2 September 2014 11:55:00:\n * var result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfQuarter(dirtyDate) {\n var date = parse(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = lastDayOfQuarter;\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Return the last day of a year for the given date.\n *\n * @description\n * Return the last day of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a year\n *\n * @example\n * // The last day of a year for 2 September 2014 11:55:00:\n * var result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 00:00:00\n */\nfunction lastDayOfYear(dirtyDate) {\n var date = parse(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = lastDayOfYear;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {...(Date|String|Number)} dates - the dates to compare\n * @returns {Date} the latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max(\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * )\n * //=> Sun Jul 02 1995 00:00:00\n */\nfunction max() {\n var dirtyDates = Array.prototype.slice.call(arguments);\n var dates = dirtyDates.map(function (dirtyDate) {\n return parse(dirtyDate);\n });\n var latestTimestamp = Math.max.apply(null, dates);\n return new Date(latestTimestamp);\n}\n\nmodule.exports = max;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * @param {...(Date|String|Number)} dates - the dates to compare\n * @returns {Date} the earliest of the dates\n *\n * @example\n * // Which of these dates is the earliest?\n * var result = min(\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * )\n * //=> Wed Feb 11 1987 00:00:00\n */\nfunction min() {\n var dirtyDates = Array.prototype.slice.call(arguments);\n var dates = dirtyDates.map(function (dirtyDate) {\n return parse(dirtyDate);\n });\n var earliestTimestamp = Math.min.apply(null, dates);\n return new Date(earliestTimestamp);\n}\n\nmodule.exports = min;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} dayOfMonth - the day of the month of the new date\n * @returns {Date} the new date with the day of the month setted\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * var result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction setDate(dirtyDate, dirtyDayOfMonth) {\n var date = parse(dirtyDate);\n var dayOfMonth = Number(dirtyDayOfMonth);\n date.setDate(dayOfMonth);\n return date;\n}\n\nmodule.exports = setDate;\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar addDays = __webpack_require__(5);\n\n/**\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week setted\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If week starts with Monday, set Sunday to 1 September 2014:\n * var result = setDay(new Date(2014, 8, 1), 0, {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setDay(dirtyDate, dirtyDay, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;\n var date = parse(dirtyDate);\n var day = Number(dirtyDay);\n var currentDay = date.getDay();\n\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n return addDays(date, diff);\n}\n\nmodule.exports = setDay;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Day Helpers\n * @summary Set the day of the year to the given date.\n *\n * @description\n * Set the day of the year to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} dayOfYear - the day of the year of the new date\n * @returns {Date} the new date with the day of the year setted\n *\n * @example\n * // Set the 2nd day of the year to 2 July 2014:\n * var result = setDayOfYear(new Date(2014, 6, 2), 2)\n * //=> Thu Jan 02 2014 00:00:00\n */\nfunction setDayOfYear(dirtyDate, dirtyDayOfYear) {\n var date = parse(dirtyDate);\n var dayOfYear = Number(dirtyDayOfYear);\n date.setMonth(0);\n date.setDate(dayOfYear);\n return date;\n}\n\nmodule.exports = setDayOfYear;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours setted\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nfunction setHours(dirtyDate, dirtyHours) {\n var date = parse(dirtyDate);\n var hours = Number(dirtyHours);\n date.setHours(hours);\n return date;\n}\n\nmodule.exports = setHours;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar addDays = __webpack_require__(5);\nvar getISODay = __webpack_require__(48);\n\n/**\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} day - the day of the ISO week of the new date\n * @returns {Date} the new date with the day of the ISO week setted\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setISODay(dirtyDate, dirtyDay) {\n var date = parse(dirtyDate);\n var day = Number(dirtyDay);\n var currentDay = getISODay(date);\n var diff = day - currentDay;\n return addDays(date, diff);\n}\n\nmodule.exports = setISODay;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar getISOWeek = __webpack_require__(24);\n\n/**\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoWeek - the ISO week of the new date\n * @returns {Date} the new date with the ISO week setted\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * var result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nfunction setISOWeek(dirtyDate, dirtyISOWeek) {\n var date = parse(dirtyDate);\n var isoWeek = Number(dirtyISOWeek);\n var diff = getISOWeek(date) - isoWeek;\n date.setDate(date.getDate() - diff * 7);\n return date;\n}\n\nmodule.exports = setISOWeek;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds setted\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * var result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nfunction setMilliseconds(dirtyDate, dirtyMilliseconds) {\n var date = parse(dirtyDate);\n var milliseconds = Number(dirtyMilliseconds);\n date.setMilliseconds(milliseconds);\n return date;\n}\n\nmodule.exports = setMilliseconds;\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes setted\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nfunction setMinutes(dirtyDate, dirtyMinutes) {\n var date = parse(dirtyDate);\n var minutes = Number(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}\n\nmodule.exports = setMinutes;\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\nvar setMonth = __webpack_require__(62);\n\n/**\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter setted\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nfunction setQuarter(dirtyDate, dirtyQuarter) {\n var date = parse(dirtyDate);\n var quarter = Number(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}\n\nmodule.exports = setQuarter;\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds setted\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nfunction setSeconds(dirtyDate, dirtySeconds) {\n var date = parse(dirtyDate);\n var seconds = Number(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}\n\nmodule.exports = setSeconds;\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year setted\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nfunction setYear(dirtyDate, dirtyYear) {\n var date = parse(dirtyDate);\n var year = Number(dirtyYear);\n date.setFullYear(year);\n return date;\n}\n\nmodule.exports = setYear;\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar parse = __webpack_require__(0);\n\n/**\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfMonth(dirtyDate) {\n var date = parse(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfMonth;\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar startOfDay = __webpack_require__(4);\n\n/**\n * @category Day Helpers\n * @summary Return the start of today.\n *\n * @description\n * Return the start of today.\n *\n * @returns {Date} the start of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nfunction startOfToday() {\n return startOfDay(new Date());\n}\n\nmodule.exports = startOfToday;\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * @category Day Helpers\n * @summary Return the start of tomorrow.\n *\n * @description\n * Return the start of tomorrow.\n *\n * @returns {Date} the start of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfTomorrow()\n * //=> Tue Oct 7 2014 00:00:00\n */\nfunction startOfTomorrow() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n\n var date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfTomorrow;\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * @category Day Helpers\n * @summary Return the start of yesterday.\n *\n * @description\n * Return the start of yesterday.\n *\n * @returns {Date} the start of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfYesterday()\n * //=> Sun Oct 5 2014 00:00:00\n */\nfunction startOfYesterday() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n\n var date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = startOfYesterday;\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addDays = __webpack_require__(5);\n\n/**\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted\n * @returns {Date} the new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nfunction subDays(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}\n\nmodule.exports = subDays;\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addHours = __webpack_require__(28);\n\n/**\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted\n * @returns {Date} the new date with the hours subtracted\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\nfunction subHours(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}\n\nmodule.exports = subHours;\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMilliseconds = __webpack_require__(6);\n\n/**\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}\n\nmodule.exports = subMilliseconds;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMinutes = __webpack_require__(31);\n\n/**\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted\n * @returns {Date} the new date with the mintues subtracted\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nfunction subMinutes(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}\n\nmodule.exports = subMinutes;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addMonths = __webpack_require__(13);\n\n/**\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted\n * @returns {Date} the new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction subMonths(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}\n\nmodule.exports = subMonths;\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addQuarters = __webpack_require__(32);\n\n/**\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted\n * @returns {Date} the new date with the quarters subtracted\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * var result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nfunction subQuarters(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}\n\nmodule.exports = subQuarters;\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addSeconds = __webpack_require__(33);\n\n/**\n * @category Second Helpers\n * @summary Subtract the specified number of seconds from the given date.\n *\n * @description\n * Subtract the specified number of seconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be subtracted\n * @returns {Date} the new date with the seconds subtracted\n *\n * @example\n * // Subtract 30 seconds from 10 July 2014 12:45:00:\n * var result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:44:30\n */\nfunction subSeconds(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addSeconds(dirtyDate, -amount);\n}\n\nmodule.exports = subSeconds;\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addWeeks = __webpack_require__(18);\n\n/**\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted\n * @returns {Date} the new date with the weeks subtracted\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nfunction subWeeks(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}\n\nmodule.exports = subWeeks;\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar addYears = __webpack_require__(34);\n\n/**\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted\n * @returns {Date} the new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nfunction subYears(dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}\n\nmodule.exports = subYears;\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dhFeatureComponents = __webpack_require__(9);\n\nvar _preact = __webpack_require__(1);\n\nvar _Background = __webpack_require__(208);\n\nvar _Background2 = _interopRequireDefault(_Background);\n\nvar _Section = __webpack_require__(209);\n\nvar _Section2 = _interopRequireDefault(_Section);\n\nvar _index = __webpack_require__(26);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable compat/compat */\n\nvar CharacterPresentation = function (_Component) {\n _inherits(CharacterPresentation, _Component);\n\n function CharacterPresentation() {\n _classCallCheck(this, CharacterPresentation);\n\n return _possibleConstructorReturn(this, (CharacterPresentation.__proto__ || Object.getPrototypeOf(CharacterPresentation)).apply(this, arguments));\n }\n\n _createClass(CharacterPresentation, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n mediaBaseUrl = _props.mediaBaseUrl,\n onAnalyticsEvent = _props.onAnalyticsEvent,\n viewport = _props.viewport;\n var _props$value = this.props.value,\n bios = _props$value.bios,\n id = _props$value.id;\n\n\n return (0, _preact.h)(_dhFeatureComponents.ScrollSlideshow, {\n className: _index2.default.characterSlideshow,\n id: id,\n backgrounds: bios.map(function (bio, idx) {\n return (0, _preact.h)(_Background2.default, _extends({}, bio, {\n key: String(idx),\n mediaBaseUrl: mediaBaseUrl,\n viewport: viewport\n }));\n }),\n sections: bios.map(function (bio, idx) {\n return (0, _preact.h)(_Section2.default, _extends({}, bio, { key: String(idx), viewport: viewport }));\n }),\n onAnalyticsEvent: onAnalyticsEvent,\n viewport: viewport\n });\n }\n }]);\n\n return CharacterPresentation;\n}(_preact.Component);\n\nexports.default = CharacterPresentation;\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _dhFeatureComponents = __webpack_require__(9);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(187);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction FigureCaption(props) {\n var _props$value = props.value,\n caption = _props$value.caption,\n credit = _props$value.credit;\n\n\n if (!caption && !credit) {\n return null;\n }\n\n return (0, _preact.h)(\n 'figcaption',\n null,\n caption && caption.map(function (item) {\n switch (item.type) {\n case 'text':\n return (0, _preact.h)('p', { dangerouslySetInnerHTML: { __html: item.value } });\n }\n }),\n credit && (0, _preact.h)(\n 'div',\n { className: _index2.default.figure__credit },\n credit\n )\n );\n} // @jsx h\n\nfunction Figure(props) {\n var _props$value2 = props.value,\n alt = _props$value2.alt,\n horizontalId = _props$value2.horizontalId;\n\n return (0, _preact.h)(\n 'figure',\n { className: _index2.default.figure },\n (0, _preact.h)(_dhFeatureComponents.PolopolyPicture, {\n horizontal: { id: horizontalId, quality: 'best' },\n alt: alt\n }),\n (0, _preact.h)(FigureCaption, props)\n );\n}\n\nexports.default = Figure;\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"figure\":\"dh-trygdis-kvinnefengsel-figure\",\"figure__credit\":\"dh-trygdis-kvinnefengsel-figure__credit\"};\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(189);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// @jsx h\n\nfunction Paragraph(props) {\n var value = props.value;\n\n return (0, _preact.h)('p', {\n className: _index2.default.paragraph,\n dangerouslySetInnerHTML: { __html: value }\n });\n}\n\nexports.default = Paragraph;\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"paragraph\":\"dh-trygdis-kvinnefengsel-paragraph\"};\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(1);\n\nvar _image = __webpack_require__(191);\n\nvar _serumImagecropUtils = __webpack_require__(63);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\nvar Picture = function (_Component) {\n _inherits(Picture, _Component);\n\n function Picture() {\n _classCallCheck(this, Picture);\n\n return _possibleConstructorReturn(this, (Picture.__proto__ || Object.getPrototypeOf(Picture)).apply(this, arguments));\n }\n\n _createClass(Picture, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n alt = _props.alt,\n horizontal = _props.horizontal,\n vertical = _props.vertical;\n\n var horizontalId = horizontal && horizontal.id && horizontal.id;\n var verticalId = vertical && vertical.id && vertical.id.trim();\n\n if (vertical && verticalId) {\n if (!horizontalId) {\n return (0, _preact.h)(\n 'div',\n { className: className },\n 'Mangler ID'\n );\n }\n\n var defaultUrl = (0, _serumImagecropUtils.createImageUrl)({\n id: horizontalId,\n width: 1600,\n quality: (0, _image.getQualityFromString)(horizontal.quality)\n });\n var horizontalSourceSet = (0, _image.createSrcSet)({\n imageId: horizontalId,\n supportedWidths: _image.supportedWidths,\n quality: (0, _image.getQualityFromString)(horizontal.quality)\n });\n var verticalSourceSet = (0, _image.createSrcSet)({\n imageId: verticalId,\n supportedWidths: _image.supportedWidths,\n quality: (0, _image.getQualityFromString)(vertical.quality)\n });\n\n return (0, _preact.h)(\n 'picture',\n { className: className },\n (0, _preact.h)('source', {\n media: '(min-aspect-ratio: 3/4)',\n srcSet: horizontalSourceSet\n }),\n (0, _preact.h)('source', { media: '(max-aspect-ratio: 3/4)', srcSet: verticalSourceSet }),\n (0, _preact.h)('img', { src: defaultUrl, alt: alt })\n );\n } else {\n var _quality = horizontal.quality;\n\n var imageId = horizontal.id && horizontal.id.trim();\n\n if (!imageId) {\n return (0, _preact.h)(\n 'div',\n { className: className },\n 'Mangler ID'\n );\n }\n\n var parsedQuality = (0, _image.getQualityFromString)(_quality);\n var _defaultUrl = (0, _serumImagecropUtils.createImageUrl)({\n id: imageId,\n ratio: '16:9',\n width: 1600,\n parsedQuality: parsedQuality\n });\n var desktopSourceSet = (0, _image.createSrcSet)({\n imageId: imageId,\n ratio: '16:9',\n supportedWidths: _image.supportedWidths,\n quality: parsedQuality\n });\n var mobileSourceSet = (0, _image.createSrcSet)({\n imageId: imageId,\n ratio: '3:4',\n supportedWidths: _image.supportedWidths,\n quality: parsedQuality\n });\n\n return (0, _preact.h)(\n 'picture',\n { className: className },\n (0, _preact.h)('source', { media: '(min-aspect-ratio: 3/4)', srcSet: desktopSourceSet }),\n (0, _preact.h)('img', { src: _defaultUrl, srcSet: mobileSourceSet, alt: alt })\n );\n }\n }\n }]);\n\n return Picture;\n}(_preact.Component);\n\nexports.default = Picture;\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.supportedWidths = undefined;\nexports.createSrcSet = createSrcSet;\nexports.getQualityFromString = getQualityFromString;\n\nvar _serumImagecropUtils = __webpack_require__(63);\n\nvar supportedWidths = exports.supportedWidths = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400];\n\nfunction createSrcSet(_ref) {\n var imageId = _ref.imageId,\n ratio = _ref.ratio,\n supportedWidths = _ref.supportedWidths,\n _ref$quality = _ref.quality,\n quality = _ref$quality === undefined ? 0.7 : _ref$quality;\n\n return supportedWidths.map(function (width) {\n var imageUrl = (0, _serumImagecropUtils.createImageUrl)({ id: imageId, width: width, ratio: ratio, quality: quality });\n return imageUrl + ' ' + width + 'w';\n }).join(', ');\n}\n\nfunction getQualityFromString(qualityString) {\n var qualities = [{\n string: 'very-high',\n quality: 0.8\n }, {\n string: 'high',\n quality: 0.6\n }, {\n string: 'medium',\n quality: 0.3\n }, {\n string: 'low',\n quality: 0.2\n }];\n\n var q = qualities.filter(function (quality) {\n return quality.string === qualityString;\n })[0];\n return q ? q.quality : 0.8;\n}\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(193);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// @jsx h\n\nfunction Quote(props) {\n var value = props.value;\n\n var className = '' + _index2.default.quote + (props.className ? ' ' + props.className : '');\n\n return (0, _preact.h)(\n 'blockquote',\n { className: className },\n (0, _preact.h)(\n 'div',\n { className: _index2.default.quote__content },\n (0, _preact.h)('p', { dangerouslySetInnerHTML: { __html: value.text } })\n ),\n value.cite && (0, _preact.h)(\n 'footer',\n { className: _index2.default.quote__footer },\n (0, _preact.h)(\n 'cite',\n null,\n (0, _preact.h)(\n 'svg',\n { viewBox: '0 0 20 30' },\n (0, _preact.h)('path', { d: 'M 5.5,5.5 L5.5,24.5 L14.5,24.5' }),\n (0, _preact.h)('circle', { cx: '5.5', cy: '5.5', r: '3.5' })\n ),\n (0, _preact.h)('span', {\n dangerouslySetInnerHTML: {\n __html: '\\u2013 ' + (value.cite || '')\n }\n })\n )\n )\n );\n}\n\nexports.default = Quote;\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"quote\":\"dh-trygdis-kvinnefengsel-quote\",\"quote__content\":\"dh-trygdis-kvinnefengsel-quote__content\",\"quote__footer\":\"dh-trygdis-kvinnefengsel-quote__footer\"};\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"scrollSlideshow\":\"dh-trygdis-kvinnefengsel-scrollSlideshow\",\"scrollSlideshow__backgrounds\":\"dh-trygdis-kvinnefengsel-scrollSlideshow__backgrounds\",\"root--js\":\"dh-trygdis-kvinnefengsel-root--js\",\"scrollSlideshow__background\":\"dh-trygdis-kvinnefengsel-scrollSlideshow__background\",\"scrollSlideshow__background--visible\":\"dh-trygdis-kvinnefengsel-scrollSlideshow__background--visible\",\"scrollSlideshow__sections\":\"dh-trygdis-kvinnefengsel-scrollSlideshow__sections\"};\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // @jsx h\n\nvar _ScrollSlideshow = __webpack_require__(64);\n\nvar _ScrollSlideshow2 = _interopRequireDefault(_ScrollSlideshow);\n\nvar _preact = __webpack_require__(1);\n\nvar _Background = __webpack_require__(196);\n\nvar _Background2 = _interopRequireDefault(_Background);\n\nvar _Section = __webpack_require__(197);\n\nvar _Section2 = _interopRequireDefault(_Section);\n\nvar _index = __webpack_require__(65);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Slideshow(props) {\n var mediaBaseUrl = props.mediaBaseUrl,\n viewport = props.viewport;\n var slides = props.value.slides;\n\n\n var backgrounds = slides.map(function (slide, idx) {\n return (0, _preact.h)(_Background2.default, _extends({ key: String(idx) }, slide, { mediaBaseUrl: mediaBaseUrl }));\n });\n\n var sections = slides.map(function (slide, idx) {\n return (0, _preact.h)(_Section2.default, _extends({ key: String(idx) }, slide));\n });\n\n return (0, _preact.h)(_ScrollSlideshow2.default, {\n className: _index2.default.slideshow,\n backgrounds: backgrounds,\n sections: sections,\n viewport: viewport\n });\n}\n\nexports.default = Slideshow;\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _dhFeatureComponents = __webpack_require__(9);\n\nvar _preact = __webpack_require__(1);\n\n// @jsx h\n\nfunction Background(props) {\n // const { type } = props\n\n switch (props.type) {\n case 'image':\n return (0, _preact.h)(_dhFeatureComponents.PolopolyPicture, {\n horizontal: { id: props.horizontalId, quality: 'best' }\n });\n // return \n\n default:\n return (0, _preact.h)(\n 'div',\n null,\n 'Slide'\n );\n }\n}\n\nexports.default = Background;\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bem = __webpack_require__(10);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(65);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Section(props) {\n return (0, _preact.h)(\n 'div',\n { className: _index2.default.slideshow__section },\n (0, _preact.h)(\n 'div',\n { className: (0, _bem2.default)(_index2.default.slideshow__card, props.align) },\n props.caption.map(function (cardItem, cardItemIdx) {\n return (0, _preact.h)('p', {\n key: String(cardItemIdx),\n dangerouslySetInnerHTML: { __html: cardItem.value }\n });\n })\n )\n );\n} // @jsx h\n\nexports.default = Section;\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(199);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// @jsx h\n\nfunction UnorderedList(props) {\n var value = props.value;\n\n return (0, _preact.h)(\n 'ul',\n { className: _index2.default.unorderedList },\n value.map(function (item, idx) {\n return (0, _preact.h)('li', {\n key: String(idx),\n dangerouslySetInnerHTML: { __html: item.value }\n });\n })\n );\n}\n\nexports.default = UnorderedList;\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"unorderedList\":\"dh-trygdis-kvinnefengsel-unorderedList\"};\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dhVideoComponent = __webpack_require__(66);\n\nvar _dhVideoComponent2 = _interopRequireDefault(_dhVideoComponent);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(201);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _Scrubber = __webpack_require__(202);\n\nvar _Scrubber2 = _interopRequireDefault(_Scrubber);\n\nvar _TogglePlayButton = __webpack_require__(204);\n\nvar _TogglePlayButton2 = _interopRequireDefault(_TogglePlayButton);\n\nvar _MuteButton = __webpack_require__(206);\n\nvar _MuteButton2 = _interopRequireDefault(_MuteButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\nvar Video = function (_Component) {\n _inherits(Video, _Component);\n\n function Video() {\n _classCallCheck(this, Video);\n\n var _this = _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).call(this));\n\n _this.handleCaptionCueEnter = function (cue) {\n _this.setState({ caption: cue.text });\n };\n\n _this.handleCaptionCueExit = function () {\n _this.setState({ caption: null });\n };\n\n _this.handleDurationChange = function (event) {\n _this.setState({ duration: event.target.duration });\n };\n\n _this.handleTimeUpdate = function (event) {\n _this.setState({ time: event.target.currentTime });\n };\n\n _this.handlePositionUpdate = function (position) {\n _this.video.updateTime(position * _this.state.duration);\n };\n\n _this.handleTogglePlay = function () {\n var paused = !_this.state.paused;\n _this.setState({ paused: paused, userPaused: paused });\n if (!paused) {\n _this.video.play();\n }\n };\n\n _this.handlePlay = function () {\n _this.setState({ paused: false });\n _this.props.onAnalyticsEvent({\n action: 'video/PLAY/' + _this.props.value.id\n });\n };\n\n _this.handlePause = function () {\n _this.setState({ paused: true });\n _this.props.onAnalyticsEvent({\n action: 'video/PAUSE/' + _this.props.value.id\n });\n };\n\n _this.handleEnded = function () {\n _this.setState({ paused: true });\n };\n\n _this.state = {\n paused: true,\n caption: null,\n muted: true,\n time: 0,\n duration: 0,\n userPaused: false\n };\n return _this;\n }\n\n _createClass(Video, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.props.onRegisterTriggerElement(this.elm);\n }\n\n // handleToggleMute = () => {\n // this.setState({ muted: !this.state.muted })\n // }\n\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n intersectionRatio = _props.intersectionRatio,\n mediaBaseUrl = _props.mediaBaseUrl,\n muted = _props.muted,\n onToggleMute = _props.onToggleMute;\n var _state = this.state,\n caption = _state.caption,\n duration = _state.duration,\n time = _state.time,\n paused = _state.paused,\n userPaused = _state.userPaused;\n var _props$value = this.props.value,\n captions = _props$value.captions,\n poster = _props$value.poster,\n sources = _props$value.sources;\n\n var playing = !userPaused && intersectionRatio > 0.75;\n\n return (0, _preact.h)(\n 'div',\n {\n ref: function ref(elm) {\n return _this2.elm = elm;\n },\n className: _index2.default.video,\n style: this.props.style\n },\n (0, _preact.h)(\n 'div',\n { className: _index2.default.video__videoWrapper },\n sources && (0, _preact.h)(_dhVideoComponent2.default, {\n ref: function ref(video) {\n return _this2.video = video;\n },\n preload: 'auto',\n muted: muted,\n playing: playing,\n captions: captions,\n poster: poster ? '' + mediaBaseUrl + poster : null,\n sources: sources.map(function (source) {\n return _extends({}, source, { src: '' + mediaBaseUrl + source.src });\n }),\n onCaptionCueEnter: this.handleCaptionCueEnter,\n onCaptionCueExit: this.handleCaptionCueExit,\n onDurationChange: this.handleDurationChange,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onTimeUpdate: this.handleTimeUpdate\n }),\n (0, _preact.h)(_TogglePlayButton2.default, {\n className: _index2.default.video__togglePlayButton,\n onClick: this.handleTogglePlay,\n paused: paused\n }),\n (0, _preact.h)(_Scrubber2.default, {\n time: time,\n duration: duration,\n onPositionUpdate: this.handlePositionUpdate\n }),\n (0, _preact.h)(_MuteButton2.default, {\n className: _index2.default.video__muteButton,\n onClick: onToggleMute,\n muted: muted\n }),\n caption && (0, _preact.h)(\n 'div',\n { className: _index2.default.video__captionContainer },\n (0, _preact.h)('div', {\n className: _index2.default.video__caption,\n dangerouslySetInnerHTML: { __html: caption }\n })\n )\n )\n );\n }\n }]);\n\n return Video;\n}(_preact.Component);\n\nexports.default = Video;\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"video\":\"dh-trygdis-kvinnefengsel-video\",\"video__videoWrapper\":\"dh-trygdis-kvinnefengsel-video__videoWrapper\",\"video__togglePlayButton\":\"dh-trygdis-kvinnefengsel-video__togglePlayButton\",\"root--js\":\"dh-trygdis-kvinnefengsel-root--js\",\"video__muteButton\":\"dh-trygdis-kvinnefengsel-video__muteButton\",\"video__captionContainer\":\"dh-trygdis-kvinnefengsel-video__captionContainer\",\"video__caption\":\"dh-trygdis-kvinnefengsel-video__caption\"};\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(1);\n\nvar _Scrubber = __webpack_require__(203);\n\nvar _Scrubber2 = _interopRequireDefault(_Scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\nvar VideoScrubber = function (_Component) {\n _inherits(VideoScrubber, _Component);\n\n function VideoScrubber() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, VideoScrubber);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = VideoScrubber.__proto__ || Object.getPrototypeOf(VideoScrubber)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n left: 0,\n width: 0,\n isScrubbing: false,\n position: null\n }, _this.handleKeyDown = function (evt) {\n var _this$props = _this.props,\n duration = _this$props.duration,\n time = _this$props.time,\n onPositionUpdate = _this$props.onPositionUpdate;\n\n\n if (onPositionUpdate) {\n var nextTime = time;\n\n switch (evt.key) {\n case 'ArrowLeft':\n nextTime -= 1;\n break;\n case 'ArrowRight':\n nextTime += 1;\n break;\n }\n\n onPositionUpdate(Math.max(Math.min(nextTime / duration, 1), 0));\n }\n }, _this.handleMouseDown = function (evt) {\n evt.preventDefault();\n _this.focus();\n _this.start(evt.pageX);\n _this.elm.addEventListener('mousemove', _this.handleMouseMove);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseMove = function (evt) {\n _this.move(evt.pageX);\n }, _this.handleMouseUp = function (evt) {\n _this.focus();\n _this.end();\n _this.elm.removeEventListener('mousemove', _this.handleMouseMove);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleResize = function () {\n var rect = _this.bgElm.getBoundingClientRect();\n\n _this.setState({\n left: Math.floor(rect.left),\n width: rect.width\n });\n }, _this.handleTouchStart = function (evt) {\n if (evt.touches.length === 1) {\n evt.preventDefault();\n _this.focus();\n _this.start(evt.touches[0].clientX);\n _this.elm.addEventListener('touchmove', _this.handleTouchMove);\n window.addEventListener('touchend', _this.handleTouchEnd);\n }\n }, _this.handleTouchMove = function (evt) {\n if (evt.touches.length === 1) {\n _this.move(evt.touches[0].clientX);\n }\n }, _this.handleTouchEnd = function (evt) {\n _this.focus();\n _this.end();\n _this.elm.removeEventListener('touchmove', _this.handleTouchMove);\n window.removeEventListener('touchend', _this.handleTouchEnd);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(VideoScrubber, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.onPositionUpdate) {\n this.elm.addEventListener('keydown', this.handleKeyDown);\n this.elm.addEventListener('mousedown', this.handleMouseDown);\n this.elm.addEventListener('touchstart', this.handleTouchStart);\n window.addEventListener('resize', this.handleResize);\n this.handleResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.onPositionUpdate) {\n this.elm.removeEventListener('keydown', this.handleKeyDown);\n this.elm.removeEventListener('mousedown', this.handleMouseDown);\n this.elm.removeEventListener('touchstart', this.handleTouchStart);\n window.removeEventListener('resize', this.handleResize);\n }\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.handleElm.focus();\n }\n }, {\n key: 'start',\n value: function start(clientX) {\n if (this.positionTimeout) {\n clearTimeout(this.positionTimeout);\n }\n\n this.setState({\n position: (clientX - this.state.left) / this.state.width,\n isScrubbing: true\n });\n }\n }, {\n key: 'move',\n value: function move(clientX) {\n this.setState({\n position: Math.max(Math.min((clientX - this.state.left) / this.state.width, 1), 0)\n });\n }\n }, {\n key: 'end',\n value: function end() {\n var _this2 = this;\n\n if (this.props.onPositionUpdate && this.state.position !== null) {\n this.props.onPositionUpdate(this.state.position);\n }\n\n this.setState({\n isScrubbing: false\n });\n\n this.positionTimeout = setTimeout(function () {\n _this2.setState({\n position: null\n });\n }, 250);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n duration = _props.duration,\n time = _props.time;\n\n var className = this.props.class;\n var position = this.state.position !== null ? this.state.position : time / duration;\n\n return (0, _preact.h)(\n 'div',\n {\n className: '' + _Scrubber2.default.videoScrubber + (className ? ' ' + className : ''),\n ref: function ref(elm) {\n return _this3.elm = elm;\n }\n },\n (0, _preact.h)('div', {\n className: _Scrubber2.default.videoScrubber__bgBar,\n ref: function ref(bgElm) {\n return _this3.bgElm = bgElm;\n }\n }),\n (0, _preact.h)('div', { className: _Scrubber2.default.videoScrubber__bufferedBar }),\n (0, _preact.h)('div', {\n className: _Scrubber2.default.videoScrubber__playedBar,\n style: { width: position * 100 + '%' }\n }),\n (0, _preact.h)('button', {\n ref: function ref(handleElm) {\n return _this3.handleElm = handleElm;\n },\n role: 'slider',\n 'aria-valuemin': '0',\n 'aria-valuemax': duration * 1000,\n 'aria-valuenow': time * 1000,\n style: { left: position * 100 + '%' }\n })\n );\n }\n }]);\n\n return VideoScrubber;\n}(_preact.Component);\n\nexports.default = VideoScrubber;\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"videoScrubber\":\"dh-trygdis-kvinnefengsel-videoScrubber\",\"root--js\":\"dh-trygdis-kvinnefengsel-root--js\",\"videoScrubber__bgBar\":\"dh-trygdis-kvinnefengsel-videoScrubber__bgBar\",\"videoScrubber__bufferedBar\":\"dh-trygdis-kvinnefengsel-videoScrubber__bufferedBar\",\"videoScrubber__playedBar\":\"dh-trygdis-kvinnefengsel-videoScrubber__playedBar\"};\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = TogglePlayButton;\n\nvar _bem = __webpack_require__(10);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _preact = __webpack_require__(1);\n\nvar _TogglePlayButton = __webpack_require__(205);\n\nvar _TogglePlayButton2 = _interopRequireDefault(_TogglePlayButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction TogglePlayButton(props) {\n var paused = props.paused;\n\n var className = '' + (0, _bem2.default)(_TogglePlayButton2.default.togglePlayButton, paused && 'paused') + (props.className ? ' ' + props.className : '');\n\n return (0, _preact.h)(\n 'button',\n { className: className, onClick: props.onClick },\n (0, _preact.h)(\n 'span',\n { className: 'nrk-sr' },\n paused ? 'Spill av video' : 'Sett video på pause'\n ),\n (0, _preact.h)('svg', {\n className: _TogglePlayButton2.default.togglePlayButton__pauseIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }),\n (0, _preact.h)('svg', {\n className: _TogglePlayButton2.default.togglePlayButton__playIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n })\n );\n} // @jsx h\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"togglePlayButton\":\"dh-trygdis-kvinnefengsel-togglePlayButton\",\"togglePlayButton__playIcon\":\"dh-trygdis-kvinnefengsel-togglePlayButton__playIcon\",\"togglePlayButton--paused\":\"dh-trygdis-kvinnefengsel-togglePlayButton--paused\",\"togglePlayButton__pauseIcon\":\"dh-trygdis-kvinnefengsel-togglePlayButton__pauseIcon\"};\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = MuteButton;\n\nvar _bem = __webpack_require__(10);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _preact = __webpack_require__(1);\n\nvar _MuteButton = __webpack_require__(207);\n\nvar _MuteButton2 = _interopRequireDefault(_MuteButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction MuteButton(props) {\n var muted = props.muted;\n\n var className = '' + (0, _bem2.default)(_MuteButton2.default.muteButton, muted && 'muted') + (props.className ? ' ' + props.className : '');\n\n return (0, _preact.h)(\n 'button',\n { className: className, onClick: props.onClick },\n (0, _preact.h)(\n 'span',\n { className: 'nrk-sr' },\n muted ? 'Slå på lyd' : 'Slå av lyd'\n ),\n (0, _preact.h)('svg', {\n className: _MuteButton2.default.muteButton__mutedIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }),\n (0, _preact.h)('svg', {\n className: _MuteButton2.default.muteButton__volumeIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n })\n );\n} // @jsx h\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"muteButton\":\"dh-trygdis-kvinnefengsel-muteButton\",\"muteButton__volumeIcon\":\"dh-trygdis-kvinnefengsel-muteButton__volumeIcon\",\"muteButton--muted\":\"dh-trygdis-kvinnefengsel-muteButton--muted\",\"muteButton__mutedIcon\":\"dh-trygdis-kvinnefengsel-muteButton__mutedIcon\"};\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _dhFeatureComponents = __webpack_require__(9);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(26);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction CharactedPresentationBackground(props) {\n var alt = props.alt,\n horizontalId = props.horizontalId,\n viewport = props.viewport;\n\n // const inlineStyle = {}\n\n var gradientInlineStyle = {};\n\n if (viewport.height > -1) {\n // inlineStyle.height = `${viewport.height}px`\n gradientInlineStyle.height = viewport.height / 2 + 'px';\n }\n\n return (0, _preact.h)(\n 'div',\n { className: _index2.default.characterSlideshow__background },\n (0, _preact.h)(_dhFeatureComponents.PolopolyPicture, {\n horizontal: { id: horizontalId, quality: 'high' },\n alt: alt\n }),\n (0, _preact.h)('div', {\n className: _index2.default.characterSlideshow__gradient,\n 'aria-hidden': 'true',\n style: gradientInlineStyle\n })\n );\n} // @jsx h\n\nexports.default = CharactedPresentationBackground;\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bem = __webpack_require__(10);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(26);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction CharactedPresentationSection(props) {\n var viewport = props.viewport;\n\n\n var inlineStyle = {};\n\n if (viewport.height > -1) {\n inlineStyle.paddingBottom = viewport.height * 0.9 + 'px';\n }\n\n return (0, _preact.h)(\n 'div',\n { className: _index2.default.characterSlideshow__section, style: inlineStyle },\n (0, _preact.h)(\n 'div',\n { className: (0, _bem2.default)(_index2.default.characterSlideshow__card, props.align) },\n (0, _preact.h)(\n 'div',\n { className: _index2.default.characterSlideshow__cardHeader },\n (0, _preact.h)('div', {\n className: _index2.default.characterSlideshow__description,\n dangerouslySetInnerHTML: { __html: props.description }\n }),\n (0, _preact.h)('h2', {\n className: _index2.default.characterSlideshow__title,\n dangerouslySetInnerHTML: { __html: props.title }\n })\n ),\n props.content && (0, _preact.h)(\n 'div',\n { className: _index2.default.characterSlideshow__content },\n props.content.map(function (item, idx) {\n switch (item.type) {\n case 'text':\n return (0, _preact.h)('p', {\n key: String(idx),\n dangerouslySetInnerHTML: { __html: item.value }\n });\n default:\n return (0, _preact.h)('div', null);\n }\n })\n )\n )\n );\n} // @jsx h\n\nexports.default = CharactedPresentationSection;\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dhFeatureComponents = __webpack_require__(9);\n\nvar _preact = __webpack_require__(1);\n\nvar _Skew = __webpack_require__(67);\n\nvar _Skew2 = _interopRequireDefault(_Skew);\n\nvar _index = __webpack_require__(15);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable compat/compat */\n\nvar Section = function (_Component) {\n _inherits(Section, _Component);\n\n function Section() {\n _classCallCheck(this, Section);\n\n var _this = _possibleConstructorReturn(this, (Section.__proto__ || Object.getPrototypeOf(Section)).call(this));\n\n _this.state = {\n didView: false\n };\n return _this;\n }\n\n _createClass(Section, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.props.onRegisterSectionElement(this.props.index, this.elm);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n if (!this.state.didView && !prevProps.isIntersecting && this.props.isIntersecting) {\n this.props.onAnalyticsEvent({\n action: 'section/VIEW/' + this.props.index\n });\n\n setTimeout(function () {\n _this2.setState({ didView: true });\n }, 0);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n index = _props.index,\n _onRegisterTriggerElement = _props.onRegisterTriggerElement,\n value = _props.value,\n intersectionEntries = _props.intersectionEntries,\n mediaBaseUrl = _props.mediaBaseUrl,\n muted = _props.muted,\n onAnalyticsEvent = _props.onAnalyticsEvent,\n onToggleMute = _props.onToggleMute,\n viewport = _props.viewport;\n\n\n return (0, _preact.h)(\n 'div',\n { ref: function ref(elm) {\n return _this3.elm = elm;\n }, className: _index2.default.article__section },\n (0, _preact.h)(_Skew2.default, { className: _index2.default.article__sectionSkewTop, position: 'top' }),\n value.title && (0, _preact.h)('h2', {\n className: _index2.default.article__sectionHeader,\n dangerouslySetInnerHTML: { __html: value.title }\n }),\n value.text.map(function (item, itemIdx) {\n switch (item.type) {\n case 'figure':\n return (0, _preact.h)(_dhFeatureComponents.Figure, _extends({}, item, {\n key: String(itemIdx),\n mediaBaseUrl: mediaBaseUrl\n }));\n case 'quote':\n return (0, _preact.h)(_dhFeatureComponents.Quote, _extends({}, item, {\n key: String(itemIdx),\n className: _index2.default.article__quote\n }));\n case 'text':\n return (0, _preact.h)(_dhFeatureComponents.Paragraph, _extends({}, item, { key: String(itemIdx) }));\n case 'slideshow':\n return (0, _preact.h)(_dhFeatureComponents.Slideshow, _extends({}, item, {\n key: String(itemIdx),\n mediaBaseUrl: mediaBaseUrl,\n viewport: viewport\n }));\n case 'unorderedList':\n return (0, _preact.h)(_dhFeatureComponents.UnorderedList, _extends({}, item, { key: String(itemIdx) }));\n case 'video':\n return (0, _preact.h)(_dhFeatureComponents.Video, _extends({}, item, intersectionEntries[itemIdx], {\n key: String(itemIdx),\n mediaBaseUrl: mediaBaseUrl,\n muted: muted,\n onAnalyticsEvent: onAnalyticsEvent,\n onRegisterTriggerElement: function onRegisterTriggerElement(elm) {\n return _onRegisterTriggerElement(index, itemIdx, elm);\n },\n onToggleMute: onToggleMute\n }));\n default:\n return (0, _preact.h)(\n 'div',\n { key: String(itemIdx) },\n 'item: ',\n item.type\n );\n }\n }),\n (0, _preact.h)(_Skew2.default, { className: _index2.default.article__sectionSkewBottom, position: 'bottom' })\n );\n }\n }]);\n\n return Section;\n}(_preact.Component);\n\nexports.default = Section;\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // @jsx h\n\nvar _preact = __webpack_require__(1);\n\nvar _Skew = __webpack_require__(67);\n\nvar _Skew2 = _interopRequireDefault(_Skew);\n\nvar _index = __webpack_require__(15);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _Byline = __webpack_require__(212);\n\nvar _Byline2 = _interopRequireDefault(_Byline);\n\nvar _LeadMedia = __webpack_require__(214);\n\nvar _LeadMedia2 = _interopRequireDefault(_LeadMedia);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Header(props) {\n var data = props.data,\n mediaBaseUrl = props.mediaBaseUrl,\n viewport = props.viewport;\n\n\n var inlineStyle = {};\n var headerSkewBottomInlineStyle = {};\n\n if (viewport.height > -1) {\n if (viewport.width < 720) {\n inlineStyle.height = viewport.height - 150 + 'px';\n headerSkewBottomInlineStyle.top = viewport.height - 151 + 'px';\n } else {\n inlineStyle.height = viewport.height - 55 + 'px';\n headerSkewBottomInlineStyle.top = viewport.height - 55 + 'px';\n }\n }\n\n return (0, _preact.h)(\n 'header',\n { className: _index2.default.article__header, style: inlineStyle },\n data.leadMedia && (0, _preact.h)(_LeadMedia2.default, _extends({}, data.leadMedia, {\n mediaBaseUrl: mediaBaseUrl,\n viewport: viewport\n })),\n (0, _preact.h)(\n 'div',\n { className: _index2.default.article__headerCopy },\n (0, _preact.h)('div', {\n className: _index2.default.article__label,\n dangerouslySetInnerHTML: { __html: data.label }\n }),\n (0, _preact.h)('h1', {\n className: _index2.default.article__title,\n dangerouslySetInnerHTML: { __html: data.title }\n }),\n (0, _preact.h)('div', {\n className: _index2.default.article__intro,\n dangerouslySetInnerHTML: { __html: data.intro }\n }),\n (0, _preact.h)(_Byline2.default, { className: _index2.default.article__dateline, persons: data.byline })\n ),\n (0, _preact.h)(_Skew2.default, {\n className: _index2.default.article__headerSkewBottom,\n position: 'bottom',\n style: headerSkewBottomInlineStyle\n })\n );\n}\n\nexports.default = Header;\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = __webpack_require__(1);\n\nvar _Byline = __webpack_require__(213);\n\nvar _Byline2 = _interopRequireDefault(_Byline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// @jsx h\n\nvar Byline = function Byline(props) {\n var len = props.persons.length;\n var className = '' + _Byline2.default.byline + (props.className ? ' ' + props.className : '');\n\n return (0, _preact.h)(\n 'div',\n { className: className },\n 'Av',\n ' ',\n props.persons.map(function (person, idx) {\n if (idx === len - 1) {\n return (0, _preact.h)(\n 'span',\n { key: String(idx) },\n '&',\n ' ',\n (0, _preact.h)('span', {\n className: _Byline2.default.byline__name,\n dangerouslySetInnerHTML: { __html: person.name }\n })\n );\n }\n\n if (idx === len - 2) {\n return (0, _preact.h)(\n 'span',\n { key: String(idx) },\n (0, _preact.h)('span', {\n className: _Byline2.default.byline__name,\n dangerouslySetInnerHTML: { __html: person.name }\n }),\n ' '\n );\n }\n\n return (0, _preact.h)(\n 'span',\n { key: String(idx) },\n (0, _preact.h)('span', {\n className: _Byline2.default.byline__name,\n dangerouslySetInnerHTML: { __html: person.name }\n }),\n ',',\n ' '\n );\n })\n );\n};\n\nexports.default = Byline;\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"byline\":\"dh-trygdis-kvinnefengsel-byline\",\"byline__name\":\"dh-trygdis-kvinnefengsel-byline__name\"};\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = __webpack_require__(1);\n\nvar _index = __webpack_require__(215);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _dhVideoComponent = __webpack_require__(66);\n\nvar _dhVideoComponent2 = _interopRequireDefault(_dhVideoComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction LeadMedia(props) {\n var poster = props.poster,\n sources = props.sources,\n type = props.type,\n mediaBaseUrl = props.mediaBaseUrl,\n viewport = props.viewport;\n\n\n var inlineStyle = {};\n var gradientInlineStyle = {};\n\n if (viewport.height > -1) {\n if (viewport.width < 720) {\n inlineStyle.height = viewport.height - 375 + 'px';\n } else {\n inlineStyle.height = viewport.height - 55 + 'px';\n }\n }\n\n if (viewport.width >= 720) {\n gradientInlineStyle.height = viewport.height * 0.7 + 'px';\n }\n\n var children = void 0;\n\n switch (type) {\n case 'videoLoop':\n {\n children = (0, _preact.h)(_dhVideoComponent2.default, {\n className: _index2.default.leadMedia__videoLoop,\n playing: true,\n loop: true,\n poster: '' + mediaBaseUrl + poster,\n sources: sources.map(function (source) {\n return {\n type: source.type,\n src: '' + mediaBaseUrl + source.src\n };\n }),\n mediaBaseUrl: mediaBaseUrl,\n style: inlineStyle\n });\n break;\n }\n }\n\n return (0, _preact.h)(\n 'div',\n { className: _index2.default.leadMedia, style: inlineStyle },\n children,\n (0, _preact.h)('div', { className: _index2.default.leadMedia__gradient, style: gradientInlineStyle })\n );\n} // @jsx h\n\nexports.default = LeadMedia;\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"leadMedia\":\"dh-trygdis-kvinnefengsel-leadMedia\",\"leadMedia__gradient\":\"dh-trygdis-kvinnefengsel-leadMedia__gradient\",\"leadMedia__videoLoop\":\"dh-trygdis-kvinnefengsel-leadMedia__videoLoop\"};\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// v1-bundle-2873dfb6a353e43f17da.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\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// 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://dh-static.mesos.nrk.no/dh-trygdis-kvinnefengsel/static/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 68);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 185896639e6243107111","var getTimezoneOffsetInMilliseconds = require('../_lib/getTimezoneOffsetInMilliseconds/index.js')\nvar 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) * MILLISECONDS_IN_MINUTE\n } else {\n var fullTime = timestamp + time\n var fullTimeDate = new Date(fullTime)\n\n offset = getTimezoneOffsetInMilliseconds(fullTimeDate)\n\n // Adjust time when it's coming from DST\n var fullTimeDateNextDay = new Date(fullTime)\n fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1)\n var offsetDiff =\n getTimezoneOffsetInMilliseconds(fullTimeDateNextDay) -\n getTimezoneOffsetInMilliseconds(fullTimeDate)\n if (offsetDiff > 0) {\n offset += offsetDiff\n }\n }\n\n return new Date(timestamp + time + offset)\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\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/parse/index.js","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p;\n\twhile (p = items.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.shift()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nfunction createRef() {\n\treturn {};\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/preact/dist/preact.mjs\n// module id = 1\n// module chunks = 0","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\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/get_iso_year/index.js","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_iso_week/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfDay\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_day/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added\n * @returns {Date} the new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nfunction addDays (dirtyDate, dirtyAmount) {\n var date = parse(dirtyDate)\n var amount = Number(dirtyAmount)\n date.setDate(date.getDate() + amount)\n return date\n}\n\nmodule.exports = addDays\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_days/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds (dirtyDate, dirtyAmount) {\n var timestamp = parse(dirtyDate).getTime()\n var amount = Number(dirtyAmount)\n return new Date(timestamp + amount)\n}\n\nmodule.exports = addMilliseconds\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_milliseconds/index.js","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(year, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuary)\n return date\n}\n\nmodule.exports = startOfISOYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_iso_year/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates 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:\n * var result = compareAsc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc (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 = compareAsc\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/compare_asc/index.js","// @flow\n\nimport Figure from './Figure'\nimport Paragraph from './Paragraph'\nimport PolopolyPicture from './PolopolyPicture'\nimport Quote from './Quote'\nimport ScrollSlideshow from './ScrollSlideshow'\nimport Slideshow from './Slideshow'\nimport UnorderedList from './UnorderedList'\nimport Video from './Video'\n\nexport {\n Figure,\n Paragraph,\n PolopolyPicture,\n Quote,\n ScrollSlideshow,\n Slideshow,\n UnorderedList,\n Video\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/@nrk/dh-feature-components/index.js","// @flow\n\nexport default (blockName: string, ...modifiers: any[]) => {\n return [blockName]\n .concat(\n modifiers.filter(Boolean).map(modifier => `${blockName}--${modifier}`)\n )\n .join(' ')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/bem.js","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n date.setDate(date.getDate() - diff)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_week/index.js","var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days 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 days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft)\n var startOfDayRight = startOfDay(dirtyDateRight)\n\n var timestampLeft = startOfDayLeft.getTime() -\n startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfDayRight.getTime() -\n startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_calendar_days/index.js","var parse = require('../parse/index.js')\nvar getDaysInMonth = require('../get_days_in_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added\n * @returns {Date} the new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nfunction addMonths (dirtyDate, dirtyAmount) {\n var date = parse(dirtyDate)\n var amount = Number(dirtyAmount)\n var desiredMonth = date.getMonth() + amount\n var dateWithDesiredMonth = new Date(0)\n dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1)\n dateWithDesiredMonth.setHours(0, 0, 0, 0)\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth)\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()))\n return date\n}\n\nmodule.exports = addMonths\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_months/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds 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 milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getTime() - dateRight.getTime()\n}\n\nmodule.exports = differenceInMilliseconds\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_milliseconds/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"article\":\"dh-trygdis-kvinnefengsel-article\",\"article__leadMedia\":\"dh-trygdis-kvinnefengsel-article__leadMedia\",\"article__header\":\"dh-trygdis-kvinnefengsel-article__header\",\"article__headerCopy\":\"dh-trygdis-kvinnefengsel-article__headerCopy\",\"article__label\":\"dh-trygdis-kvinnefengsel-article__label\",\"article__title\":\"dh-trygdis-kvinnefengsel-article__title\",\"article__intro\":\"dh-trygdis-kvinnefengsel-article__intro\",\"article__dateline\":\"dh-trygdis-kvinnefengsel-article__dateline\",\"article__headerSkewBottom\":\"dh-trygdis-kvinnefengsel-article__headerSkewBottom\",\"root--js\":\"dh-trygdis-kvinnefengsel-root--js\",\"article__content\":\"dh-trygdis-kvinnefengsel-article__content\",\"article__section\":\"dh-trygdis-kvinnefengsel-article__section\",\"article__sectionSkewTop\":\"dh-trygdis-kvinnefengsel-article__sectionSkewTop\",\"article__sectionSkewBottom\":\"dh-trygdis-kvinnefengsel-article__sectionSkewBottom\",\"article__sectionHeader\":\"dh-trygdis-kvinnefengsel-article__sectionHeader\",\"article__publishedAt\":\"dh-trygdis-kvinnefengsel-article__publishedAt\",\"quote\":\"dh-trygdis-kvinnefengsel-quote\",\"article__quote\":\"dh-trygdis-kvinnefengsel-article__quote\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Article/index.css\n// module id = 15\n// module chunks = 0","/**\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\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_date/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nfunction getDaysInMonth (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n var monthIndex = date.getMonth()\n var lastDayOfMonth = new Date(0)\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0)\n lastDayOfMonth.setHours(0, 0, 0, 0)\n return lastDayOfMonth.getDate()\n}\n\nmodule.exports = getDaysInMonth\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/get_days_in_month/index.js","var addDays = require('../add_days/index.js')\n\n/**\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added\n * @returns {Date} the new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nfunction addWeeks (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n var days = amount * 7\n return addDays(dirtyDate, days)\n}\n\nmodule.exports = addWeeks\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_weeks/index.js","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\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/compare_desc/index.js","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\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_months/index.js","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds 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 seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInSeconds\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_seconds/index.js","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/locale/en/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfDay\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/end_of_day/index.js","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\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\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/get_iso_week/index.js","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category Week Helpers\n * @summary Are the given dates in the same week?\n *\n * @description\n * Are the given dates in the same week?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the dates are in the same week\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n * new Date(2014, 7, 31),\n * new Date(2014, 8, 4)\n * )\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n * new Date(2014, 7, 31),\n * new Date(2014, 8, 4),\n * {weekStartsOn: 1}\n * )\n * //=> false\n */\nfunction isSameWeek (dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions)\n var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions)\n\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime()\n}\n\nmodule.exports = isSameWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_week/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"characterSlideshow\":\"dh-trygdis-kvinnefengsel-characterSlideshow\",\"scrollSlideshow__sections\":\"dh-trygdis-kvinnefengsel-scrollSlideshow__sections\",\"characterSlideshow__background\":\"dh-trygdis-kvinnefengsel-characterSlideshow__background\",\"characterSlideshow__gradient\":\"dh-trygdis-kvinnefengsel-characterSlideshow__gradient\",\"characterSlideshow__section\":\"dh-trygdis-kvinnefengsel-characterSlideshow__section\",\"characterSlideshow__card\":\"dh-trygdis-kvinnefengsel-characterSlideshow__card\",\"characterSlideshow__card--left\":\"dh-trygdis-kvinnefengsel-characterSlideshow__card--left\",\"characterSlideshow__card--right\":\"dh-trygdis-kvinnefengsel-characterSlideshow__card--right\",\"characterSlideshow__cardHeader\":\"dh-trygdis-kvinnefengsel-characterSlideshow__cardHeader\",\"characterSlideshow__description\":\"dh-trygdis-kvinnefengsel-characterSlideshow__description\",\"characterSlideshow__title\":\"dh-trygdis-kvinnefengsel-characterSlideshow__title\",\"characterSlideshow__content\":\"dh-trygdis-kvinnefengsel-characterSlideshow__content\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Article/Content/CharacterPresentation/index.css\n// module id = 26\n// module chunks = 0","// @flow\n\nexport function toArray (items: any) {\n return [].slice.call(items)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/array.js","var addMilliseconds = require('../add_milliseconds/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\n\n/**\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added\n * @returns {Date} the new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nfunction addHours (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR)\n}\n\nmodule.exports = addHours\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_hours/index.js","var getISOYear = require('../get_iso_year/index.js')\nvar setISOYear = require('../set_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be added\n * @returns {Date} the new date with the ISO week-numbering years added\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * var result = addISOYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jun 26 2015 00:00:00\n */\nfunction addISOYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return setISOYear(dirtyDate, getISOYear(dirtyDate) + amount)\n}\n\nmodule.exports = addISOYears\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_iso_years/index.js","var parse = require('../parse/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoYear - the ISO week-numbering year of the new date\n * @returns {Date} the new date with the ISO week-numbering year setted\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * var result = setISOYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\nfunction setISOYear (dirtyDate, dirtyISOYear) {\n var date = parse(dirtyDate)\n var isoYear = Number(dirtyISOYear)\n var diff = differenceInCalendarDays(date, startOfISOYear(date))\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(isoYear, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n date = startOfISOYear(fourthOfJanuary)\n date.setDate(date.getDate() + diff)\n return date\n}\n\nmodule.exports = setISOYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/set_iso_year/index.js","var addMilliseconds = require('../add_milliseconds/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added\n * @returns {Date} the new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction addMinutes (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE)\n}\n\nmodule.exports = addMinutes\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_minutes/index.js","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added\n * @returns {Date} the new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * var result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nfunction addQuarters (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n var months = amount * 3\n return addMonths(dirtyDate, months)\n}\n\nmodule.exports = addQuarters\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_quarters/index.js","var addMilliseconds = require('../add_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added\n * @returns {Date} the new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * var result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nfunction addSeconds (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMilliseconds(dirtyDate, amount * 1000)\n}\n\nmodule.exports = addSeconds\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_seconds/index.js","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added\n * @returns {Date} the new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nfunction addYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addMonths(dirtyDate, amount * 12)\n}\n\nmodule.exports = addYears\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/add_years/index.js","var getISOYear = require('../get_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\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 ISO week-numbering years\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * var result = differenceInCalendarISOYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\nfunction differenceInCalendarISOYears (dirtyDateLeft, dirtyDateRight) {\n return getISOYear(dirtyDateLeft) - getISOYear(dirtyDateRight)\n}\n\nmodule.exports = differenceInCalendarISOYears\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_calendar_iso_years/index.js","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\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_calendar_months/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nfunction getQuarter (dirtyDate) {\n var date = parse(dirtyDate)\n var quarter = Math.floor(date.getMonth() / 3) + 1\n return quarter\n}\n\nmodule.exports = getQuarter\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/get_quarter/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years 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 years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n return dateLeft.getFullYear() - dateRight.getFullYear()\n}\n\nmodule.exports = differenceInCalendarYears\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_calendar_years/index.js","var parse = require('../parse/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full days 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 days\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n */\nfunction differenceInDays (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight))\n dateLeft.setDate(dateLeft.getDate() - sign * difference)\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastDayNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastDayNotFull)\n}\n\nmodule.exports = differenceInDays\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/difference_in_days/index.js","var addISOYears = require('../add_iso_years/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be subtracted\n * @returns {Date} the new date with the ISO week-numbering years subtracted\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * var result = subISOYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\nfunction subISOYears (dirtyDate, dirtyAmount) {\n var amount = Number(dirtyAmount)\n return addISOYears(dirtyDate, -amount)\n}\n\nmodule.exports = subISOYears\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/sub_iso_years/index.js","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar differenceInMonths = require('../difference_in_months/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_TWO_MONTHS = 86400\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | 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 between dates | 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} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other 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 indicates 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 * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWords(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 1)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = distanceInWords(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWords(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWords(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {}\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n var locale = options.locale\n var localize = enLocale.distanceInWords.localize\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n }\n\n var dateLeft, dateRight\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare)\n dateRight = parse(dirtyDate)\n } else {\n dateLeft = parse(dirtyDate)\n dateRight = parse(dirtyDateToCompare)\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft)\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n var minutes = Math.round(seconds / 60) - offset\n var months\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return localize('lessThanXSeconds', 5, localizeOptions)\n } else if (seconds < 10) {\n return localize('lessThanXSeconds', 10, localizeOptions)\n } else if (seconds < 20) {\n return localize('lessThanXSeconds', 20, localizeOptions)\n } else if (seconds < 40) {\n return localize('halfAMinute', null, localizeOptions)\n } else if (seconds < 60) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', 1, localizeOptions)\n }\n } else {\n if (minutes === 0) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', minutes, localizeOptions)\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return localize('xMinutes', minutes, localizeOptions)\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return localize('aboutXHours', 1, localizeOptions)\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60)\n return localize('aboutXHours', hours, localizeOptions)\n\n // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return localize('xDays', 1, localizeOptions)\n\n // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY)\n return localize('xDays', days, localizeOptions)\n\n // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('aboutXMonths', months, localizeOptions)\n }\n\n months = differenceInMonths(dateRight, dateLeft)\n\n // 2 months up to 12 months\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('xMonths', nearestMonth, localizeOptions)\n\n // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12\n var years = Math.floor(months / 12)\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return localize('aboutXYears', years, localizeOptions)\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return localize('overXYears', years, localizeOptions)\n\n // N years 9 months up to N year 12 months\n } else {\n return localize('almostXYears', years + 1, localizeOptions)\n }\n }\n}\n\nmodule.exports = distanceInWords\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/distance_in_words/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn)\n\n date.setDate(date.getDate() + diff)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/end_of_week/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth (dirtyDate) {\n var date = parse(dirtyDate)\n var month = date.getMonth()\n date.setFullYear(date.getFullYear(), month + 1, 0)\n date.setHours(23, 59, 59, 999)\n return date\n}\n\nmodule.exports = endOfMonth\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/end_of_month/index.js","var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = differenceInCalendarDays(date, startOfYear(date))\n var dayOfYear = diff + 1\n return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/get_day_of_year/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n var cleanDate = parse(dirtyDate)\n var date = new Date(0)\n date.setFullYear(cleanDate.getFullYear(), 0, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_year/index.js","var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n if (isDate(dirtyDate)) {\n return !isNaN(dirtyDate)\n } else {\n throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n }\n}\n\nmodule.exports = isValid\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_valid/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the leap year\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * var result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\nfunction isLeapYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0\n}\n\nmodule.exports = isLeapYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_leap_year/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\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 day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * var result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nfunction getISODay (dirtyDate) {\n var date = parse(dirtyDate)\n var day = date.getDay()\n\n if (day === 0) {\n day = 7\n }\n\n return day\n}\n\nmodule.exports = getISODay\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/get_iso_day/index.js","var startOfHour = require('../start_of_hour/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Are the given dates in the same hour?\n *\n * @description\n * Are the given dates in the same hour?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same hour\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * var result = isSameHour(\n * new Date(2014, 8, 4, 6, 0),\n * new Date(2014, 8, 4, 6, 30)\n * )\n * //=> true\n */\nfunction isSameHour (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfHour = startOfHour(dirtyDateLeft)\n var dateRightStartOfHour = startOfHour(dirtyDateRight)\n\n return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime()\n}\n\nmodule.exports = isSameHour\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_hour/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * var result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nfunction startOfHour (dirtyDate) {\n var date = parse(dirtyDate)\n date.setMinutes(0, 0, 0)\n return date\n}\n\nmodule.exports = startOfHour\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_hour/index.js","var isSameWeek = require('../is_same_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week?\n *\n * @description\n * Are the given dates in the same ISO week?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * var result = isSameISOWeek(\n * new Date(2014, 8, 1),\n * new Date(2014, 8, 7)\n * )\n * //=> true\n */\nfunction isSameISOWeek (dirtyDateLeft, dirtyDateRight) {\n return isSameWeek(dirtyDateLeft, dirtyDateRight, {weekStartsOn: 1})\n}\n\nmodule.exports = isSameISOWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_iso_week/index.js","var startOfISOYear = require('../start_of_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week-numbering year\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * var result = isSameISOYear(\n * new Date(2003, 11, 29),\n * new Date(2005, 0, 2)\n * )\n * //=> true\n */\nfunction isSameISOYear (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfYear = startOfISOYear(dirtyDateLeft)\n var dateRightStartOfYear = startOfISOYear(dirtyDateRight)\n\n return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime()\n}\n\nmodule.exports = isSameISOYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_iso_year/index.js","var startOfMinute = require('../start_of_minute/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Are the given dates in the same minute?\n *\n * @description\n * Are the given dates in the same minute?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same minute\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n * // in the same minute?\n * var result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n */\nfunction isSameMinute (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft)\n var dateRightStartOfMinute = startOfMinute(dirtyDateRight)\n\n return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime()\n}\n\nmodule.exports = isSameMinute\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_minute/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * var result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nfunction startOfMinute (dirtyDate) {\n var date = parse(dirtyDate)\n date.setSeconds(0, 0)\n return date\n}\n\nmodule.exports = startOfMinute\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_minute/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(\n * new Date(2014, 8, 2),\n * new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameMonth (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getFullYear() === dateRight.getFullYear() &&\n dateLeft.getMonth() === dateRight.getMonth()\n}\n\nmodule.exports = isSameMonth\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_month/index.js","var startOfQuarter = require('../start_of_quarter/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(\n * new Date(2014, 0, 1),\n * new Date(2014, 2, 8)\n * )\n * //=> true\n */\nfunction isSameQuarter (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft)\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight)\n\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime()\n}\n\nmodule.exports = isSameQuarter\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_quarter/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nfunction startOfQuarter (dirtyDate) {\n var date = parse(dirtyDate)\n var currentMonth = date.getMonth()\n var month = currentMonth - currentMonth % 3\n date.setMonth(month, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfQuarter\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_quarter/index.js","var startOfSecond = require('../start_of_second/index.js')\n\n/**\n * @category Second Helpers\n * @summary Are the given dates in the same second?\n *\n * @description\n * Are the given dates in the same second?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same second\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n * // in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n */\nfunction isSameSecond (dirtyDateLeft, dirtyDateRight) {\n var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft)\n var dateRightStartOfSecond = startOfSecond(dirtyDateRight)\n\n return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime()\n}\n\nmodule.exports = isSameSecond\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_second/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * var result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nfunction startOfSecond (dirtyDate) {\n var date = parse(dirtyDate)\n date.setMilliseconds(0)\n return date\n}\n\nmodule.exports = startOfSecond\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/start_of_second/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(\n * new Date(2014, 8, 2),\n * new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameYear (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getFullYear() === dateRight.getFullYear()\n}\n\nmodule.exports = isSameYear\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/is_same_year/index.js","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the last day of a week\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn)\n\n date.setHours(0, 0, 0, 0)\n date.setDate(date.getDate() + diff)\n return date\n}\n\nmodule.exports = lastDayOfWeek\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/last_day_of_week/index.js","var parse = require('../parse/index.js')\nvar getDaysInMonth = require('../get_days_in_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month setted\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nfunction setMonth (dirtyDate, dirtyMonth) {\n var date = parse(dirtyDate)\n var month = Number(dirtyMonth)\n var year = date.getFullYear()\n var day = date.getDate()\n\n var dateWithDesiredMonth = new Date(0)\n dateWithDesiredMonth.setFullYear(year, month, 15)\n dateWithDesiredMonth.setHours(0, 0, 0, 0)\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth)\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth))\n return date\n}\n\nmodule.exports = setMonth\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/date-fns/set_month/index.js","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.nrkSerumImagecropUtils = {})));\n}(this, (function (exports) { 'use strict';\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/;\n\n function isPolopolyId(id) {\n if (!id) {\n return false;\n }\n return isPolopolyIdRegex.test(id);\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://nrk.no/serum/api/imagecrop/';\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality;\n\n var url = '' + _baseUrl + id;\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality });\n if (queryString) {\n url += '?' + queryString;\n }\n return url;\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality;\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : '';\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : '';\n var widthPart = width ? 'w' + width : '';\n var qualityPart = quality ? '&quality=' + quality : '';\n return 'cropid=' + ratioPart + widthPart + qualityPart;\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error('\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number');\n }\n if (!isValidTargets(targets)) {\n throw new Error('\\n getClosestNumber(goal, targets): targets ' + targets.toString() + ' is invald.\\n Pass an array of numbers');\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return targets.reduce(function (prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev;\n });\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number';\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false;\n }\n var isValid = true;\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false;\n break;\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid;\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidRatio(ratio, supportedRatios): supportedRatios '\" + supportedRatios + \"' is not supported. Pass an array of supported ratios\");\n }\n if (!ratio) {\n return false;\n }\n return supportedRatios.includes(ratio);\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidQuality(quality, supportedQualities): supportedQualities '\" + supportedQualities + \"' is not supported. Pass an array of supported qualities\");\n }\n if (!quality) {\n return false;\n }\n return supportedQualities.includes(quality);\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality;\n\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId);\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n };if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error('\\n createSerumImageUrl(): ratio ' + ratio + ' is not supported.\\n Supported ratios are ' + ratios.toString());\n }\n args.ratio = ratio;\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error('\\n createSerumImageUrl(): quality ' + quality + ' is not supported.\\n Supported qualities are ' + qualities.toString());\n }\n args.quality = quality;\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width;\n throw new Error(errorMessage);\n }\n var isSupportedWidth = widths.includes(width);\n var closestWidth = getClosestNumber(width, widths);\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth;\n }\n }\n\n return createUrl(args);\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option;\n }\n\n function isNumber(number) {\n return Number.isInteger(number);\n }\n\n exports.createImageUrl = createImageUrl;\n exports.ratios = ratios;\n exports.widths = widths;\n exports.qualities = qualities;\n exports.isPolopolyId = isPolopolyId;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","// @flow @jsx h\n\n/* eslint-disable compat/compat */\n\nimport { toArray } from 'array'\nimport bem from 'bem'\nimport { Component, h } from 'preact'\nimport style from './index.css'\n\ntype Props = {\n className?: string,\n id: string,\n backgrounds: any[],\n sections: any[],\n margin?: string,\n onAnalyticsEvent?: Function,\n viewport: any\n}\n\ntype State = {\n didView: boolean,\n visibleIndex: number\n}\n\nclass ScrollSlideshow extends Component {\n elm: HTMLDivElement\n intersectionObserver: IntersectionObserver | null\n triggerElms: HTMLElement[]\n sectionsElm: HTMLDivElement\n\n constructor () {\n super()\n\n this.state = {\n didView: false,\n visibleIndex: 0\n }\n\n this.triggerElms = []\n }\n\n componentDidMount () {\n const sectionElms = []\n\n const intersectionObserver = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n const idx = sectionElms.indexOf(entry.target)\n\n if (entry.isIntersecting) {\n if (!this.state.didView && this.props.onAnalyticsEvent) {\n this.props.onAnalyticsEvent({\n action: `scrollSlideshow/VIEW/${this.props.id}`\n })\n\n this.setState({ didView: true, visibleIndex: idx })\n } else {\n this.setState({ visibleIndex: idx })\n }\n }\n })\n },\n {\n rootMargin: this.props.margin || '0px 0px 0px 0px',\n threshold: 0\n }\n )\n\n toArray(this.sectionsElm.childNodes).forEach(sectionElm => {\n sectionElms.push(sectionElm.firstChild)\n intersectionObserver.observe(sectionElm.firstChild)\n })\n\n this.intersectionObserver = intersectionObserver\n }\n\n componentWillUnmount () {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect()\n this.intersectionObserver = null\n }\n }\n\n render () {\n const { backgrounds, sections, viewport } = this.props\n const className = `${style.scrollSlideshow}${\n this.props.className ? ` ${this.props.className}` : ''\n }`\n const { visibleIndex } = this.state\n\n const backgroundsInlineStyle = {}\n const backgroundInlineStyle = {}\n\n if (viewport.height > -1) {\n backgroundsInlineStyle.height = `${viewport.height}px`\n backgroundInlineStyle.height = `${viewport.height}px`\n }\n\n return (\n
(this.elm = elm)} className={className}>\n \n {backgrounds.map((background, idx) => (\n \n {background}\n
\n ))}\n \n (this.sectionsElm = sectionsElm)}\n className={style.scrollSlideshow__sections}\n >\n {sections}\n \n \n )\n }\n}\n\nexport default ScrollSlideshow\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/@nrk/dh-feature-components/ScrollSlideshow/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"slideshow\":\"dh-trygdis-kvinnefengsel-slideshow\",\"slideshow__section\":\"dh-trygdis-kvinnefengsel-slideshow__section\",\"slideshow__card\":\"dh-trygdis-kvinnefengsel-slideshow__card\",\"slideshow__card--left\":\"dh-trygdis-kvinnefengsel-slideshow__card--left\",\"slideshow__card--right\":\"dh-trygdis-kvinnefengsel-slideshow__card--right\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/lib/@nrk/dh-feature-components/Slideshow/index.css\n// module id = 65\n// module chunks = 0","// @flow @jsx h\n\n/* eslint-disable jsx-a11y/media-has-caption */\n\nimport { Component, h } from 'preact'\n\nexport type Caption = {\n in: number,\n out: number,\n text: string\n}\n\ntype Source = {\n type: string,\n src: string\n}\n\ntype Props = {\n sources: Source[],\n poster: string,\n preload?: 'auto' | 'metadata' | 'none',\n controls?: boolean,\n loop?: boolean,\n className?: string,\n onCanPlay?: Function,\n onEnded?: Function,\n onPlay?: Function,\n onPause?: Function,\n onDurationChange?: Function,\n onTimeUpdate?: Function,\n onCaptionCueEnter?: Function,\n onCaptionCueExit?: Function,\n playing?: boolean,\n muted?: boolean,\n captions?: Array,\n style?: Object\n}\n\nclass Video extends Component {\n elm: HTMLVideoElement\n track: TextTrack\n\n componentDidMount (): void {\n const { elm } = this\n const {\n captions,\n playing,\n onCaptionCueEnter,\n onCaptionCueExit\n } = this.props\n elm.addEventListener('canplay', this.handleCanPlay)\n elm.addEventListener('play', this.handlePlay)\n elm.addEventListener('ended', this.handleEnded)\n elm.addEventListener('pause', this.handlePause)\n elm.addEventListener('durationchange', this.handleDurationChange)\n elm.addEventListener('timeupdate', this.handleTimeUpdate)\n\n if (captions) {\n this.track = elm.addTextTrack('subtitles', 'Norsk')\n\n try {\n captions.forEach(a =>\n this.track.addCue(\n new window.VTTCue(Number(a.in), Number(a.out), a.text)\n )\n )\n } catch (ex) {\n captions.forEach(a =>\n this.track.addCue(\n new window.TextTrackCue(Number(a.in), Number(a.out), a.text)\n )\n )\n }\n\n this.track.mode = 'hidden'\n\n for (let i = 0; i < this.track.cues.length; i++) {\n const cue = this.track.cues[i]\n\n try {\n cue.onenter = () => {\n if (typeof onCaptionCueEnter !== 'undefined') {\n onCaptionCueEnter(cue)\n }\n }\n cue.onexit = () => {\n if (typeof onCaptionCueExit !== 'undefined') {\n onCaptionCueExit()\n }\n }\n } catch (_) {\n // discard error\n }\n }\n }\n\n if (playing) {\n elm.play()\n }\n }\n\n componentDidUpdate (prevProps: Props): void {\n const { playing, muted } = this.props\n // Update pause or play state\n if (prevProps.playing && !playing) {\n this.elm.pause()\n }\n if (!prevProps.playing && playing) {\n this.elm.play()\n }\n // Updated `muted`\n if (prevProps.muted !== muted) {\n this.elm.muted = muted || false\n }\n }\n\n componentWillUnmount (): void {\n const { elm } = this\n elm.removeEventListener('canplay', this.handleCanPlay)\n elm.removeEventListener('play', this.handlePlay)\n elm.removeEventListener('ended', this.handleEnded)\n elm.removeEventListener('pause', this.handlePause)\n elm.removeEventListener('durationchange', this.handleDurationChange)\n elm.removeEventListener('timeupdate', this.handleTimeUpdate)\n }\n\n handleCanPlay = (event: Event): void => {\n const { onCanPlay } = this.props\n if (typeof onCanPlay !== 'undefined') {\n onCanPlay(event)\n }\n }\n\n handlePlay = (event: Event): void => {\n const { onPlay } = this.props\n if (onPlay) {\n onPlay(event)\n }\n }\n\n handlePause = (event: Event): void => {\n const { onPause } = this.props\n if (onPause) {\n onPause(event)\n }\n }\n\n handleDurationChange = (event: Event): void => {\n const { onDurationChange } = this.props\n if (onDurationChange) {\n onDurationChange(event)\n }\n }\n\n handleTimeUpdate = (event: Event): void => {\n const { onTimeUpdate } = this.props\n if (onTimeUpdate) {\n onTimeUpdate(event)\n }\n }\n\n handleEnded = (event: Event): void => {\n const { onEnded } = this.props\n if (typeof onEnded !== 'undefined') {\n onEnded(event)\n }\n }\n\n play () {\n this.elm.play()\n }\n\n updateTime (time: number): void {\n this.elm.currentTime = time\n }\n\n render () {\n const { controls, loop, sources, poster } = this.props\n const preload = this.props.preload || 'none'\n const muted = this.props.muted || false\n return (\n (this.elm = elm)}\n loop={loop}\n muted={muted}\n playsInline\n poster={poster}\n className={this.props.className}\n style={this.props.style}\n >\n {sources.map(source => (\n \n ))}\n \n )\n }\n}\n\nexport default Video\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/@nrk/dh-video-component/index.js","// @flow @jsx h\n\nimport { h } from 'preact'\n\ntype Props = {\n className?: string,\n position: 'top' | 'bottom',\n style?: Object\n}\n\nfunction Skew (props: Props) {\n const { className } = props\n\n let polygon\n\n switch (props.position) {\n case 'top':\n polygon = \n break\n\n case 'bottom':\n polygon = \n break\n }\n\n return (\n