{"version":3,"sources":["webpack:///./node_modules/fbjs/lib/performance.js","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./src/components/EpisodeList.tsx","webpack:///./node_modules/create-react-class/node_modules/fbjs/lib/emptyObject.js","webpack:///./src/components/Link.web.tsx","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./node_modules/create-react-class/index.js","webpack:///./src/components/Seo.tsx","webpack:///./node_modules/react-native-web/dist/modules/UnimplementedView/index.js","webpack:///./node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","webpack:///./node_modules/react-native-web/dist/exports/InteractionManager/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","webpack:///./node_modules/react-native-web/dist/exports/RefreshControl/index.js","webpack:///./node_modules/react-native-web/dist/modules/TextInputState/index.js","webpack:///./node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","webpack:///./node_modules/react-native-web/dist/exports/Dimensions/index.js","webpack:///./node_modules/react-native-web/dist/exports/Platform/index.js","webpack:///./node_modules/react-native-web/dist/modules/ScrollResponder/index.js","webpack:///./node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","webpack:///./node_modules/react-native-web/dist/exports/ScrollView/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","webpack:///./node_modules/react-native-web/dist/exports/FlatList/index.js","webpack:///./node_modules/create-react-class/factory.js","webpack:///./src/components/BackToList.tsx","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./node_modules/create-react-class/node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/fbjs/lib/performanceNow.js"],"names":["performance","canUseDOM","window","msPerformance","webkitPerformance","module","exports","ex","React","React__default","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","document","createElement","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","Error","WrappedComponent","state","mountedInstances","emitChange","map","instance","props","SideEffect","_PureComponent","subClass","superClass","apply","this","arguments","prototype","create","constructor","__proto__","peek","rewind","recordedState","undefined","_proto","UNSAFE_componentWillMount","push","componentDidUpdate","componentWillUnmount","index","indexOf","splice","render","PureComponent","displayName","name","getDisplayName","requiredArgs","required","args","length","TypeError","toDate","argument","argStr","toString","call","Date","getTime","console","warn","stack","NaN","isValid","dirtyDate","date","isNaN","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","options","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","buildMatchFn","dirtyString","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","array","predicate","findIndex","pattern","test","object","hasOwnProperty","findKey","valueCallback","rest","slice","code","formatDistance","token","count","result","replace","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","dirtyNumber","_dirtyOptions","number","Number","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","weekStartsOn","firstWeekContainsDate","toInteger","Math","ceil","floor","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","addLeadingZeros","targetLength","sign","output","abs","y","signedYear","getUTCFullYear","year","M","getUTCMonth","d","getUTCDate","a","dayPeriodEnumValue","getUTCHours","toUpperCase","h","H","m","getUTCMinutes","s","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","pow","startOfUTCISOWeek","getUTCDay","diff","setUTCDate","setUTCHours","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","startOfUTCWeek","locale","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","dayPeriodEnum","formatTimezoneShort","offset","dirtyDelimiter","absOffset","hours","minutes","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","G","unit","lightFormatters","Y","signedWeekYear","weekYear","R","u","Q","q","L","w","week","round","getUTCWeek","I","isoWeek","getUTCISOWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","e","localDayOfWeek","c","i","isoDayOfWeek","b","B","K","k","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","x","O","z","t","originalDate","T","dateLongFormatter","timeLongFormatter","p","P","dateTimeFormat","datePattern","timePattern","getDateMillisecondsPart","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","setSeconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","format","input","concat","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","cleanEscapedString","EpisodeListItem","episode","defaultArtwork","style","display","flexDirection","textDecoration","padding","borderRadius","marginTop","className","activeStyle","background","to","height","marginRight","minWidth","fixed","Boolean","flex","fontSize","dirtyFormatStr","formatStr","utcDate","formatterOptions","substring","firstCharacter","longFormatter","join","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","episodes","horizontal","keyExtractor","useCallback","renderItem","item","renderEpisodeListItem","flexBasis","data","children","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","keys","it","Array","isArray","size","entries","next","done","has","get","RegExp","source","flags","valueOf","$$typeof","error","message","factory","ReactNoopUpdateQueue","Component","updater","isValidElement","description","lang","meta","title","image","twitterCard","twitterPlayerWidth","twitterPlayerHeight","twitterPlayerStream","htmlAttributes","titleTemplate","content","property","_Component","UnimplementedView","setNativeProps","View","unimplementedViewStyles","isSupported","requestIdleCallback","cb","setTimeout","start","now","didTimeout","timeRemaining","max","cancelIdleCallback","id","clearTimeout","Events","interactionStart","interactionComplete","runAfterInteractions","task","handle","promise","Promise","resolve","then","bind","cancel","createInteractionHandle","clearInteractionHandle","addListener","Batchinator","callback","delayMS","_delay","_callback","dispose","abort","_taskHandle","schedule","_this","timeoutHandle","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_listeners","_minSampleCount","_sampleRate","FillRateHelper","getFrameMetrics","_anyBlankStartTime","_enabled","_info","_mostlyBlankStartTime","_samplesStartTime","_getFrameMetrics","random","_resetData","remove","filter","listener","setSampleRate","sampleRate","setMinSampleCount","minSampleCount","activate","deactivateAndFlush","info","target","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","forEach","_objectSpread","computeBlankness","scrollMetrics","getItemCount","dOffset","velocity","visibleLength","scrollSpeed","blankTop","first","firstFrame","last","inLayout","min","blankBottom","lastFrame","bottomEdge","blankness","enabled","RefreshControl","_this$props","colors","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","tintColor","titleColor","excluded","sourceKeys","_objectWithoutPropertiesLoose","_currentlyFocusedNode","currentlyFocusedField","activeElement","focusTextInput","textFieldNode","UIManager","focus","blurTextInput","blur","win","devicePixelRatio","innerHeight","innerWidth","screen","dimensions","listeners","Dimensions","dimension","set","initialDimensions","_update","fontScale","scale","handler","addEventListener","type","removeEventListener","_handler","OS","select","web","default","emptyObject","Mixin","scrollResponderMixinGetInitialState","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleResponderReject","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","nativeEvent","touches","onTouchEnd","scrollResponderHandleResponderRelease","onResponderRelease","currentlyFocusedTextInput","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","scrollResponderHandleScroll","onScroll","scrollResponderHandleResponderGrant","onResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","onTouchStart","scrollResponderHandleTouchMove","onTouchMove","scrollResponderGetScrollableNode","getScrollableNode","findNodeHandle","scrollResponderScrollTo","animated","_ref","node","left","top","scroll","behavior","scrollLeft","scrollTop","scrollResponderScrollWithoutAnimationTo","offsetX","offsetY","scrollResponderZoomTo","rect","scrollResponderFlashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","measureLayout","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","endCoordinates","screenY","scrollOffsetY","componentWillMount","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","_extends","assign","normalizeScrollEvent","contentOffset","contentSize","scrollHeight","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","ScrollViewBase","_len","_key","_debouncedOnScrollEnd","_handleScrollEnd","_state","isScrolling","scrollLastTick","_createPreventableScrollHandler","scrollEnabled","preventDefault","_handleScroll","persist","stopPropagation","scrollEventThrottle","_shouldEmitScrollEvent","_handleScrollTick","_handleScrollStart","_setViewRef","element","_viewRef","showsHorizontalScrollIndicator","alwaysBounceHorizontal","alwaysBounceVertical","automaticallyAdjustContentInsets","bounces","bouncesZoom","canCancelContentTouches","centerContent","contentInset","contentInsetAdjustmentBehavior","decelerationRate","directionalLockEnabled","endFillColor","indicatorStyle","maximumZoomScale","minimumZoomScale","overScrollMode","pinchGestureEnabled","removeClippedSubviews","scrollIndicatorInsets","scrollPerfTag","scrollsToTop","showsVerticalScrollIndicator","snapToInterval","snapToAlignment","zoomScale","hideScrollbar","onWheel","ref","styles","scrollDisabled","lastTick","eventThrottle","timeSinceLastTick","defaultProps","StyleSheet","touchAction","scrollbarWidth","ScrollView","mixins","getInitialState","flashScrollIndicators","_scrollViewRef","getScrollResponder","_innerViewRef","scrollTo","scrollToEnd","scrollResponder","scrollResponderNode","scrollWithoutAnimationTo","contentContainerStyle","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","keyboardDismissMode","contentSizeChangeProps","onLayout","_handleContentOnLayout","hasStickyHeaderIndices","Children","child","isSticky","compose","stickyHeader","pagingEnabledChild","contentContainer","collapsable","_setInnerViewRef","contentContainerHorizontal","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","onStartShouldSetResponder","onStartShouldSetResponderCapture","onScrollShouldSetResponder","onResponderTerminationRequest","onResponderTerminate","scrollResponderHandleTerminate","onResponderReject","ScrollViewClass","cloneElement","_setScrollViewRef","_e$nativeEvent$layout","layout","component","commonStyle","flexGrow","flexShrink","transform","translateZ","WebkitOverflowScrolling","overflowX","overflowY","position","zIndex","scrollSnapType","scrollSnapAlign","_isViewable","viewAreaMode","viewablePercentThreshold","bottom","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","config","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","_config","computeViewableItems","itemCount","scrollOffset","renderRange","_this$_config","itemVisiblePercentThreshold","viewableIndices","firstVisible","JSON","stringify","idx","metrics","onUpdate","createViewToken","onViewableItemsChanged","waitForInteraction","every","v","ii","minimumViewTime","delete","_onUpdateSync","add","resetViewableIndices","recordInteraction","viewableIndicesToCheck","_this2","includes","prevItems","nextItems","viewable","changed","_iterator","_isArray","_i","Symbol","iterator","_ref2","_ref4","_iterator2","_isArray2","_i2","_ref3","_ref5","isViewable","viewableItems","from","viewabilityConfig","elementsThatOverlapOffsets","offsets","out","outLength","frame","trailingOffset","kk","newRangeCount","prev","computeWindowedRenderLimits","getFrameMetricsApprox","maxToRenderPerBatch","windowSize","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","visible","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","_console","log","_assertThisInitialized","self","ReferenceError","flatten","_usedIndexForKey","_React$PureComponent","VirtualizedList","_props","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","virtualizedList","getOutermostParentListRef","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","cellKey","_unregisterAsNestedChild","_onUpdateSeparators","newProps","_cellRefs","updateSeparatorProps","_averageCellLength","_frames","_footerLength","_hasDataChangedSinceEndReached","_hasMore","_hasWarned","_highestMeasuredFrameIndex","_headerLength","_indicesToKeys","_hasDoneInitialScroll","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dt","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","_onCellUnmount","curr","_onLayout","_measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","scrollToIndex","_convertParentScrollMetrics","_onScroll","_selectOffset","_this$_convertParentS","perf","prevDt","_updateViewableItems","_fillRateHelper","_computeBlankness","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollEnd","_updateCellsToRender","_this$props3","onEndReachedThreshold","isVirtualizationDisabled","_isVirtualizationDisabled","setState","newState","_this$_scrollMetrics","renderAhead","_getFrameMetricsApprox","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","_this$props4","getItem","getItemLayout","_this$props5","__isNative","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","viewabilityConfigCallbackPairs","pair","initialState","initialNumToRender","storedState","getNestedChildState","listKey","_getCellKey","frames","params","veryLast","onScrollToIndexFailed","viewOffset","viewPosition","averageItemLength","highestMeasuredFrameIndex","scrollToItem","_this$props2","_index","scrollToOffset","getChildContext","getScrollMetrics","registerAsNestedChild","unregisterAsNestedChild","virtualizedCell","componentDidMount","getDerivedStateFromProps","prevState","extraData","_pushCells","cells","stickyIndicesFromProps","inversionStyle","prevCellKey","_this$props6","CellRendererComponent","ItemSeparatorComponent","stickyOffset","ListHeaderComponent","end","_loop","fillRateHelper","onUpdateSeparators","_onCellLayout","onUnmount","parentProps","disableVirtualization","nestedContext","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","inverted","horizontallyInverted","verticallyInverted","VirtualizedCellWrapper","spacerKey","lastInitialIndex","_this$state","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_initBlock","firstSpace","_ref6","endFrame","tailSpacerLength","_element","_element2","scrollProps","invertStickyHeaders","ret","renderScrollComponent","debug","_renderDebugOverlay","prevProps","_this$props9","_this3","normalize","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","right","borderColor","borderWidth","f","backgroundColor","_this$props10","onEndReached","_this$_scrollMetrics2","distanceFromEnd","_this$state2","_this$_scrollMetrics3","hiPri","distTop","distBottom","scrollingThreshold","_this4","contextTypes","shape","func","bool","childContextTypes","_React$Component","CellRenderer","_this5","separatorProps","highlighted","leadingItem","_separators","highlight","_this5$props","unhighlight","_this5$props2","updateProps","_this5$props3","_proto2","_this$props11","separators","itemSeparator","cellStyle","rowReverse","columnReverse","row","_React$Component2","_proto3","scaleY","scaleX","numColumns","FlatList","_hasWarnedLegacy","_virtualizedListPairs","_captureRef","_listRef","_getItem","_item","_getItemCount","_keyExtractor","items","_renderItem","columnWrapperStyle","_item2","_createOnViewableItemsChanged","_checkProps","UNSAFE_componentWillReceiveProps","nextProps","legacyImplementation","_pushMultiColumnViewable","arr","_assign","_invariant","ReactComponent","injectedMixins","ReactClassInterface","statics","propTypes","getDefaultProps","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","Constructor","_displayName","_mixins","mixSpecIntoComponent","_childContextTypes","_contextTypes","_getDefaultProps","createMergedResultFunction","_propTypes","_statics","specPolicy","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","ReactClassMixin","spec","proto","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","two","bindAutoBindMethod","method","IsMountedPreMixin","__isMounted","IsMountedPostMixin","replaceState","enqueueReplaceState","isMounted","ReactClassComponent","pairs","autoBindKey","bindAutoBindMethods","refs","methodName","BackToList","paddingTop","paddingBottom","paddingLeft","paddingRight","color","marginBottom","borderBottom","borderTop","clock","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","_typeof","classCallCheck","createClass","defineProperties","descriptor","protoProps","staticProps","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","str","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","base","link","noscript","script","HelmetSideEffects","defer","HelmetExport","HelmetWrapper","setPrototypeOf","inherits","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","oneOfType","arrayOf","defaultTitle","mappedState","renderStatic","condition","argIndex","framesToPop","performanceNow"],"mappings":"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","file":"c8f7fe3b0e41be846d5687592cf2018ff6e22687-8f31ec83d85a6dd07d19.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar ExecutionEnvironment = require(\"./ExecutionEnvironment\");\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\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 the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\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 === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\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 * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\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 value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[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}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // 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\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMilliseconds\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(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}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\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}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // 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\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // 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\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\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 */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import React, { useCallback } from \"react\";\nimport { FlatList, View, Text } from \"react-native\";\nimport { IEpisode } from \"../types/episodes\";\nimport Link from \"./Link\";\nimport format from \"date-fns/format\";\nimport Img, { FixedObject } from \"gatsby-image\";\n\nexport function EpisodeListItem({\n episode,\n defaultArtwork,\n}: {\n episode: IEpisode;\n defaultArtwork: FixedObject;\n}) {\n return (\n \n \n\n \n \n {episode.title}\n \n \n {format(new Date(episode.publishedAt), \"do MMM y \")} —{\" \"}\n {episode.seasonNumber ? `S${episode.seasonNumber}` : \"\"}{\" \"}\n {episode.episodeNumber ? `Episode ${episode.episodeNumber}` : \"\"}{\" \"}\n {episode.episodeType === \"Trailer\" ? episode.episodeType : \"\"}\n \n \n \n );\n}\n\nfunction renderEpisodeListItem({\n item,\n defaultArtwork,\n}: {\n item: IEpisode;\n defaultArtwork: FixedObject;\n}) {\n return ;\n}\n\nfunction EpisodeList({\n episodes = [],\n horizontal = false,\n background = false,\n defaultArtwork,\n}: {\n episodes: IEpisode[];\n horizontal?: boolean;\n background?: boolean;\n defaultArtwork: FixedObject;\n}) {\n const keyExtractor = useCallback((e) => e.slug.current, []);\n const renderItem = useCallback(\n ({ item }) => renderEpisodeListItem({ item, defaultArtwork }),\n [defaultArtwork]\n );\n return (\n \n );\n}\n\nexport default EpisodeList;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","import React, { ReactChildren } from \"react\";\nimport { Link as GatsbyLink } from \"gatsby\";\n\nfunction Link({\n children,\n to,\n ...props\n}: {\n children: ReactChildren;\n to: string;\n [_: string]: any;\n}) {\n return (\n \n {children}\n \n );\n}\n\nexport default Link;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar React = require('react');\n\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error('create-react-class could not find the React object. If you are using script tags, ' + 'make sure that React is being loaded before create-react-class.');\n} // Hack to grab NoopUpdateQueue from isomorphic React\n\n\nvar ReactNoopUpdateQueue = new React.Component().updater;\nmodule.exports = factory(React.Component, React.isValidElement, ReactNoopUpdateQueue);","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nfunction SEO({\n description = \"\",\n lang = \"en\",\n meta = [],\n title = \"\",\n image,\n twitterCard = \"summary\",\n twitterPlayerWidth = 560,\n twitterPlayerHeight = 315,\n twitterPlayerStream,\n}: {\n description: string;\n lang?: string;\n meta?: { property?: string; content?: string; name?: string }[];\n title: string;\n image?: string;\n twitterCard?: \"summary\" | \"player\";\n twitterPlayerWidth?: number;\n twitterPlayerHeight?: number;\n twitterPlayerStream?: string;\n}) {\n return (\n \n );\n}\n\nexport default SEO;\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport View from \"../../exports/View\";\nimport React, { Component } from 'react';\n\nvar UnimplementedView = function (_Component) {\n _inheritsLoose(UnimplementedView, _Component);\n\n function UnimplementedView() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = UnimplementedView.prototype;\n\n _proto.setNativeProps = function setNativeProps() {};\n\n _proto.render = function render() {\n return React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n };\n\n return UnimplementedView;\n}(Component);\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(function () {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","import invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from \"../../modules/requestIdleCallback\";\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n runAfterInteractions: function runAfterInteractions(task) {\n var handle;\n var promise = new Promise(function (resolve) {\n handle = requestIdleCallback(function () {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: function cancel() {\n cancelIdleCallback(handle);\n }\n };\n },\n createInteractionHandle: function createInteractionHandle() {\n return 1;\n },\n clearInteractionHandle: function clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n addListener: function addListener() {}\n};\nexport default InteractionManager;","import InteractionManager from \"../../../exports/InteractionManager\";\n\nvar Batchinator = function () {\n function Batchinator(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n\n var _proto = Batchinator.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n\n if (this._taskHandle) {\n this._taskHandle.cancel();\n\n if (!options.abort) {\n this._callback();\n }\n\n this._taskHandle = null;\n }\n };\n\n _proto.schedule = function schedule() {\n var _this = this;\n\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(function () {\n _this._taskHandle = InteractionManager.runAfterInteractions(function () {\n _this._taskHandle = null;\n\n _this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: function cancel() {\n return clearTimeout(timeoutHandle);\n }\n };\n };\n\n return Batchinator;\n}();\n\nexport default Batchinator;","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport performanceNow from 'fbjs/lib/performanceNow';\nimport warning from 'fbjs/lib/warning';\n\nvar Info = function Info() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n};\n\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\n\nvar _sampleRate = DEBUG ? 1 : null;\n\nvar FillRateHelper = function () {\n FillRateHelper.addListener = function addListener(callback) {\n warning(_sampleRate !== null, 'Call `FillRateHelper.setSampleRate` before `addListener`.');\n\n _listeners.push(callback);\n\n return {\n remove: function remove() {\n _listeners = _listeners.filter(function (listener) {\n return callback !== listener;\n });\n }\n };\n };\n\n FillRateHelper.setSampleRate = function setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n };\n\n FillRateHelper.setMinSampleCount = function setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n };\n\n function FillRateHelper(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n\n this._resetData();\n }\n\n var _proto = FillRateHelper.prototype;\n\n _proto.activate = function activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = performanceNow();\n }\n };\n\n _proto.deactivateAndFlush = function deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n\n var start = this._samplesStartTime;\n\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n\n if (this._info.sample_count < _minSampleCount) {\n this._resetData();\n\n return;\n }\n\n var total_time_spent = performanceNow() - start;\n\n var info = _objectSpread({}, this._info, {\n total_time_spent: total_time_spent\n });\n\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n\n for (var key in derived) {\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived: derived,\n info: info\n });\n }\n\n _listeners.forEach(function (listener) {\n return listener(info);\n });\n\n this._resetData();\n };\n\n _proto.computeBlankness = function computeBlankness(props, state, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || this._samplesStartTime == null) {\n return 0;\n }\n\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000);\n var now = performanceNow();\n\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n\n this._anyBlankStartTime = null;\n\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = state.first;\n\n var firstFrame = this._getFrameMetrics(first);\n\n while (first <= state.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first);\n first++;\n }\n\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n\n var blankBottom = 0;\n var last = state.last;\n\n var lastFrame = this._getFrameMetrics(last);\n\n while (last >= state.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last);\n last--;\n }\n\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n\n return blankness;\n };\n\n _proto.enabled = function enabled() {\n return this._enabled;\n };\n\n _proto._resetData = function _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n };\n\n return FillRateHelper;\n}();\n\nexport default FillRateHelper;","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport ColorPropType from \"../ColorPropType\";\nimport View from \"../View\";\nimport ViewPropTypes from \"../ViewPropTypes\";\nimport React, { Component } from 'react';\n\nvar RefreshControl = function (_Component) {\n _inheritsLoose(RefreshControl, _Component);\n\n function RefreshControl() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = RefreshControl.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n colors = _this$props.colors,\n enabled = _this$props.enabled,\n onRefresh = _this$props.onRefresh,\n progressBackgroundColor = _this$props.progressBackgroundColor,\n progressViewOffset = _this$props.progressViewOffset,\n refreshing = _this$props.refreshing,\n size = _this$props.size,\n tintColor = _this$props.tintColor,\n title = _this$props.title,\n titleColor = _this$props.titleColor,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"]);\n\n return React.createElement(View, rest);\n };\n\n return RefreshControl;\n}(Component);\n\nexport default RefreshControl;","import UIManager from \"../../exports/UIManager\";\nvar TextInputState = {\n _currentlyFocusedNode: null,\n currentlyFocusedField: function currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n\n return this._currentlyFocusedNode;\n },\n focusTextInput: function focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n blurTextInput: function blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","import TextInputState from \"../TextInputState\";\n\nvar dismissKeyboard = function dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\n\nexport default dismissKeyboard;","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport debounce from 'debounce';\nimport invariant from 'fbjs/lib/invariant';\nvar win = canUseDOM ? window : {\n devicePixelRatio: undefined,\n innerHeight: undefined,\n innerWidth: undefined,\n screen: {\n height: undefined,\n width: undefined\n }\n};\nvar dimensions = {};\nvar listeners = {};\n\nvar Dimensions = function () {\n function Dimensions() {}\n\n Dimensions.get = function get(dimension) {\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n };\n\n Dimensions.set = function set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n dimensions.screen = initialDimensions.screen;\n dimensions.window = initialDimensions.window;\n }\n }\n };\n\n Dimensions._update = function _update() {\n dimensions.window = {\n fontScale: 1,\n height: win.innerHeight,\n scale: win.devicePixelRatio || 1,\n width: win.innerWidth\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(function (handler) {\n return handler(dimensions);\n });\n }\n };\n\n Dimensions.addEventListener = function addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n };\n\n Dimensions.removeEventListener = function removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(function (_handler) {\n return _handler !== handler;\n });\n }\n };\n\n return Dimensions;\n}();\n\nexport { Dimensions as default };\n\nDimensions._update();\n\nif (canUseDOM) {\n window.addEventListener('resize', debounce(Dimensions._update, 16), false);\n}","var Platform = {\n OS: 'web',\n select: function select(obj) {\n return 'web' in obj ? obj.web : obj.default;\n }\n};\nexport default Platform;","import Dimensions from \"../../exports/Dimensions\";\nimport findNodeHandle from \"../../exports/findNodeHandle\";\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from \"../../exports/Platform\";\nimport TextInputState from \"../TextInputState\";\nimport UIManager from \"../../exports/UIManager\";\nimport warning from 'fbjs/lib/warning';\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.isTouching;\n },\n scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\n return false;\n },\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n return this.scrollResponderIsAnimating();\n },\n scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n },\n scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n },\n scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n },\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n },\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(e);\n },\n scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top: top,\n left: left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n },\n scrollResponderScrollWithoutAnimationTo: function scrollResponderScrollWithoutAnimationTo(offsetX, offsetY) {\n console.warn('`scrollResponderScrollWithoutAnimationTo` is deprecated. Use `scrollResponderScrollTo` instead');\n this.scrollResponderScrollTo({\n x: offsetX,\n y: offsetY,\n animated: false\n });\n },\n scrollResponderZoomTo: function scrollResponderZoomTo(rect, animated) {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\n scrollResponderScrollNativeHandleToKeyboard: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n },\n scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset;\n\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n componentWillMount: function componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0;\n },\n scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport debounce from 'debounce';\nimport StyleSheet from \"../StyleSheet\";\nimport View from \"../View\";\nimport ViewPropTypes from \"../ViewPropTypes\";\nimport React, { Component } from 'react';\n\nvar normalizeScrollEvent = function normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n\n get y() {\n return e.target.scrollTop;\n }\n\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n\n get width() {\n return e.target.scrollWidth;\n }\n\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n\n get width() {\n return e.target.offsetWidth;\n }\n\n }\n },\n timeStamp: Date.now()\n };\n};\n\nvar ScrollViewBase = function (_Component) {\n _inheritsLoose(ScrollViewBase, _Component);\n\n function ScrollViewBase() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this._debouncedOnScrollEnd = debounce(_this._handleScrollEnd, 100);\n _this._state = {\n isScrolling: false,\n scrollLastTick: 0\n };\n\n _this._createPreventableScrollHandler = function (handler) {\n return function (e) {\n if (_this.props.scrollEnabled) {\n if (handler) {\n handler(e);\n }\n } else {\n e.preventDefault();\n }\n };\n };\n\n _this._handleScroll = function (e) {\n e.persist();\n e.stopPropagation();\n var scrollEventThrottle = _this.props.scrollEventThrottle;\n\n _this._debouncedOnScrollEnd(e);\n\n if (_this._state.isScrolling) {\n if (_this._shouldEmitScrollEvent(_this._state.scrollLastTick, scrollEventThrottle)) {\n _this._handleScrollTick(e);\n }\n } else {\n _this._handleScrollStart(e);\n }\n };\n\n _this._setViewRef = function (element) {\n _this._viewRef = element;\n };\n\n return _this;\n }\n\n var _proto = ScrollViewBase.prototype;\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._viewRef) {\n this._viewRef.setNativeProps(props);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n scrollEnabled = _this$props.scrollEnabled,\n style = _this$props.style,\n alwaysBounceHorizontal = _this$props.alwaysBounceHorizontal,\n alwaysBounceVertical = _this$props.alwaysBounceVertical,\n automaticallyAdjustContentInsets = _this$props.automaticallyAdjustContentInsets,\n bounces = _this$props.bounces,\n bouncesZoom = _this$props.bouncesZoom,\n canCancelContentTouches = _this$props.canCancelContentTouches,\n centerContent = _this$props.centerContent,\n contentInset = _this$props.contentInset,\n contentInsetAdjustmentBehavior = _this$props.contentInsetAdjustmentBehavior,\n contentOffset = _this$props.contentOffset,\n decelerationRate = _this$props.decelerationRate,\n directionalLockEnabled = _this$props.directionalLockEnabled,\n endFillColor = _this$props.endFillColor,\n indicatorStyle = _this$props.indicatorStyle,\n keyboardShouldPersistTaps = _this$props.keyboardShouldPersistTaps,\n maximumZoomScale = _this$props.maximumZoomScale,\n minimumZoomScale = _this$props.minimumZoomScale,\n onMomentumScrollBegin = _this$props.onMomentumScrollBegin,\n onMomentumScrollEnd = _this$props.onMomentumScrollEnd,\n onScrollBeginDrag = _this$props.onScrollBeginDrag,\n onScrollEndDrag = _this$props.onScrollEndDrag,\n overScrollMode = _this$props.overScrollMode,\n pinchGestureEnabled = _this$props.pinchGestureEnabled,\n removeClippedSubviews = _this$props.removeClippedSubviews,\n scrollEventThrottle = _this$props.scrollEventThrottle,\n scrollIndicatorInsets = _this$props.scrollIndicatorInsets,\n scrollPerfTag = _this$props.scrollPerfTag,\n scrollsToTop = _this$props.scrollsToTop,\n showsHorizontalScrollIndicator = _this$props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = _this$props.showsVerticalScrollIndicator,\n snapToInterval = _this$props.snapToInterval,\n snapToAlignment = _this$props.snapToAlignment,\n zoomScale = _this$props.zoomScale,\n other = _objectWithoutPropertiesLoose(_this$props, [\"scrollEnabled\", \"style\", \"alwaysBounceHorizontal\", \"alwaysBounceVertical\", \"automaticallyAdjustContentInsets\", \"bounces\", \"bouncesZoom\", \"canCancelContentTouches\", \"centerContent\", \"contentInset\", \"contentInsetAdjustmentBehavior\", \"contentOffset\", \"decelerationRate\", \"directionalLockEnabled\", \"endFillColor\", \"indicatorStyle\", \"keyboardShouldPersistTaps\", \"maximumZoomScale\", \"minimumZoomScale\", \"onMomentumScrollBegin\", \"onMomentumScrollEnd\", \"onScrollBeginDrag\", \"onScrollEndDrag\", \"overScrollMode\", \"pinchGestureEnabled\", \"removeClippedSubviews\", \"scrollEventThrottle\", \"scrollIndicatorInsets\", \"scrollPerfTag\", \"scrollsToTop\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"snapToInterval\", \"snapToAlignment\", \"zoomScale\"]);\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return React.createElement(View, _extends({}, other, {\n onScroll: this._handleScroll,\n onTouchMove: this._createPreventableScrollHandler(this.props.onTouchMove),\n onWheel: this._createPreventableScrollHandler(this.props.onWheel),\n ref: this._setViewRef,\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n };\n\n _proto._handleScrollStart = function _handleScrollStart(e) {\n this._state.isScrolling = true;\n this._state.scrollLastTick = Date.now();\n };\n\n _proto._handleScrollTick = function _handleScrollTick(e) {\n var onScroll = this.props.onScroll;\n this._state.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n };\n\n _proto._handleScrollEnd = function _handleScrollEnd(e) {\n var onScroll = this.props.onScroll;\n this._state.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n };\n\n _proto._shouldEmitScrollEvent = function _shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n };\n\n return ScrollViewBase;\n}(Component);\n\nScrollViewBase.defaultProps = {\n scrollEnabled: true,\n scrollEventThrottle: 0\n};\nexport { ScrollViewBase as default };\nvar styles = StyleSheet.create({\n scrollDisabled: {\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from \"../../modules/dismissKeyboard\";\nimport findNodeHandle from \"../findNodeHandle\";\nimport invariant from 'fbjs/lib/invariant';\nimport ScrollResponder from \"../../modules/ScrollResponder\";\nimport ScrollViewBase from \"./ScrollViewBase\";\nimport StyleSheet from \"../StyleSheet\";\nimport View from \"../View\";\nimport ViewPropTypes from \"../ViewPropTypes\";\nimport React from 'react';\nvar emptyObject = {};\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n getInitialState: function getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n flashScrollIndicators: function flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\n },\n setNativeProps: function setNativeProps(props) {\n if (this._scrollViewRef) {\n this._scrollViewRef.setNativeProps(props);\n }\n },\n getScrollResponder: function getScrollResponder() {\n return this;\n },\n getScrollableNode: function getScrollableNode() {\n return findNodeHandle(this._scrollViewRef);\n },\n getInnerViewNode: function getInnerViewNode() {\n return findNodeHandle(this._innerViewRef);\n },\n scrollTo: function scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n },\n scrollToEnd: function scrollToEnd(options) {\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x: x,\n y: y,\n animated: animated\n });\n },\n scrollWithoutAnimationTo: function scrollWithoutAnimationTo(y, x) {\n if (y === void 0) {\n y = 0;\n }\n\n if (x === void 0) {\n x = 0;\n }\n\n console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead');\n this.scrollTo({\n x: x,\n y: y,\n animated: false\n });\n },\n render: function render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n other = _objectWithoutPropertiesLoose(_this$props, [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"keyboardDismissMode\", \"onScroll\"]);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(function (prop) {\n return style && style[prop] !== undefined;\n });\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, function (child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: StyleSheet.compose(horizontal && styles.contentContainerHorizontal, contentContainerStyle)\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread({}, other, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n\n if (refreshControl) {\n return React.cloneElement(refreshControl, {\n style: props.style\n }, React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollViewRef,\n style: baseStyle\n }), contentContainer));\n }\n\n return React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollViewRef\n }), contentContainer);\n },\n _handleContentOnLayout: function _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n _handleScroll: function _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && !this.props.scrollEventThrottle) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n _setInnerViewRef: function _setInnerViewRef(component) {\n this._innerViewRef = component;\n },\n _setScrollViewRef: function _setScrollViewRef(component) {\n this._scrollViewRef = component;\n }\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n transform: [{\n translateZ: 0\n }],\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread({}, commonStyle, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread({}, commonStyle, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nexport default ScrollView;","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport invariant from 'fbjs/lib/invariant';\n\nvar ViewabilityHelper = function () {\n function ViewabilityHelper(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n\n var _proto = ViewabilityHelper.prototype;\n\n _proto.dispose = function dispose() {\n this._timers.forEach(clearTimeout);\n };\n\n _proto.computeViewableItems = function computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n invariant(last < itemCount, 'Invalid render range ' + JSON.stringify({\n renderRange: renderRange,\n itemCount: itemCount\n }));\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n };\n\n _proto.onUpdate = function onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {\n var _this = this;\n\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every(function (v, ii) {\n return v === viewableIndices[ii];\n })) {\n return;\n }\n\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(function () {\n _this._timers.delete(handle);\n\n _this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n };\n\n _proto.resetViewableIndices = function resetViewableIndices() {\n this._viewableIndices = [];\n };\n\n _proto.recordInteraction = function recordInteraction() {\n this._hasInteracted = true;\n };\n\n _proto._onUpdateSync = function _onUpdateSync(viewableIndicesToCheck, onViewableItemsChanged, createViewToken) {\n var _this2 = this;\n\n viewableIndicesToCheck = viewableIndicesToCheck.filter(function (ii) {\n return _this2._viewableIndices.includes(ii);\n });\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(function (ii) {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = nextItems, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();;) {\n var _ref2;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref2 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref2 = _i.value;\n }\n\n var _ref4 = _ref2,\n key = _ref4[0],\n viewable = _ref4[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = prevItems, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();;) {\n var _ref3;\n\n if (_isArray2) {\n if (_i2 >= _iterator2.length) break;\n _ref3 = _iterator2[_i2++];\n } else {\n _i2 = _iterator2.next();\n if (_i2.done) break;\n _ref3 = _i2.value;\n }\n\n var _ref5 = _ref3,\n key = _ref5[0],\n viewable = _ref5[1];\n\n if (!nextItems.has(key)) {\n changed.push(_objectSpread({}, viewable, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed: changed,\n viewabilityConfig: this._config\n });\n }\n };\n\n return ViewabilityHelper;\n}();\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","import invariant from 'fbjs/lib/invariant';\n\nfunction elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\n}\n\nfunction newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n\nfunction computeWindowedRenderLimits(props, prev, getFrameMetricsApprox, scrollMetrics) {\n var data = props.data,\n getItemCount = props.getItemCount,\n maxToRenderPerBatch = props.maxToRenderPerBatch,\n windowSize = props.windowSize;\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength;\n var leadFactor = 0.5;\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\n if (lastItemOffset < overscanBegin) {\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n }\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props.getItemCount(props.data), getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first: first,\n last: last\n };\n var newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n break;\n }\n\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n break;\n }\n\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first: first,\n last: last,\n itemCount: itemCount,\n overscanFirst: overscanFirst,\n overscanLast: overscanLast,\n visible: visible\n }));\n }\n\n return {\n first: first,\n last: last\n };\n}\n\nexport { computeWindowedRenderLimits, elementsThatOverlapOffsets, newRangeCount };\nvar VirtualizeUtils = {\n computeWindowedRenderLimits: computeWindowedRenderLimits,\n elementsThatOverlapOffsets: elementsThatOverlapOffsets,\n newRangeCount: newRangeCount\n};\nexport default VirtualizeUtils;","'use strict';\n\nfunction infoLog() {\n var _console;\n\n return (_console = console).log.apply(_console, arguments);\n}\n\nexport default infoLog;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nimport Batchinator from \"../Batchinator\";\nimport FillRateHelper from \"../FillRateHelper\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport RefreshControl from \"../../../exports/RefreshControl\";\nimport ScrollView from \"../../../exports/ScrollView\";\nimport StyleSheet from \"../../../exports/StyleSheet\";\nimport UIManager from \"../../../exports/UIManager\";\nimport View from \"../../../exports/View\";\nimport ViewabilityHelper from \"../ViewabilityHelper\";\nimport { computeWindowedRenderLimits } from \"../VirtualizeUtils\";\nimport findNodeHandle from \"../../../exports/findNodeHandle\";\nimport infoLog from \"../infoLog\";\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nvar flattenStyle = StyleSheet.flatten;\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\n\nvar VirtualizedList = function (_React$PureComponent) {\n _inheritsLoose(VirtualizedList, _React$PureComponent);\n\n var _proto = VirtualizedList.prototype;\n\n _proto.scrollToEnd = function scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0 && index < getItemCount(data), \"scrollToIndex out of range: \" + index + \" vs \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index: index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.scrollToItem = function scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread({}, params, {\n index: _index\n }));\n break;\n }\n }\n };\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.recordInteraction = function recordInteraction() {\n this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(function (t) {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n this._scrollRef.flashScrollIndicators();\n };\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n };\n\n _proto.getChildContext = function getChildContext() {\n return {\n virtualizedList: {\n getScrollMetrics: this._getScrollMetrics,\n horizontal: this.props.horizontal,\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild\n }\n };\n };\n\n _proto._getCellKey = function _getCellKey() {\n return this.context.virtualizedCell && this.context.virtualizedCell.cellKey || 'rootList';\n };\n\n _proto.hasMore = function hasMore() {\n return this._hasMore;\n };\n\n function VirtualizedList(_props, context) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props, context) || this;\n\n _this._getScrollMetrics = function () {\n return _this._scrollMetrics;\n };\n\n _this._getOutermostParentListRef = function () {\n if (_this._isNestedWithSameOrientation()) {\n return _this.context.virtualizedList.getOutermostParentListRef();\n } else {\n return _assertThisInitialized(_assertThisInitialized(_this));\n }\n };\n\n _this._getNestedChildState = function (key) {\n var existingChildData = _this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n _this._registerAsNestedChild = function (childList) {\n var childListsInCell = _this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n _this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = _this._nestedChildLists.get(childList.key);\n\n invariant(!(existingChildData && existingChildData.ref !== null), 'A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.');\n\n _this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (_this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _this._unregisterAsNestedChild = function (childList) {\n _this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n _this._onUpdateSeparators = function (keys, newProps) {\n keys.forEach(function (key) {\n var ref = key != null && _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _this._averageCellLength = 0;\n _this._cellKeysToChildListKeys = new Map();\n _this._cellRefs = {};\n _this._frames = {};\n _this._footerLength = 0;\n _this._hasDataChangedSinceEndReached = true;\n _this._hasInteracted = false;\n _this._hasMore = false;\n _this._hasWarned = {};\n _this._highestMeasuredFrameIndex = 0;\n _this._headerLength = 0;\n _this._indicesToKeys = new Map();\n _this._hasDoneInitialScroll = false;\n _this._nestedChildLists = new Map();\n _this._offsetFromParentVirtualizedList = 0;\n _this._prevParentOffset = 0;\n _this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n _this._scrollRef = null;\n _this._sentEndForContentLength = 0;\n _this._totalCellLength = 0;\n _this._totalCellsMeasured = 0;\n _this._viewabilityTuples = [];\n\n _this._captureScrollRef = function (ref) {\n _this._scrollRef = ref;\n };\n\n _this._defaultRenderScrollComponent = function (props) {\n if (_this._isNestedWithSameOrientation()) {\n return React.createElement(View, props);\n } else if (props.onRefresh) {\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify(props.refreshing) + '`');\n return React.createElement(ScrollView, _extends({}, props, {\n refreshControl: React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: props.onRefresh,\n progressViewOffset: props.progressViewOffset\n })\n }));\n } else {\n return React.createElement(ScrollView, props);\n }\n };\n\n _this._onCellUnmount = function (cellKey) {\n var curr = _this._frames[cellKey];\n\n if (curr) {\n _this._frames[cellKey] = _objectSpread({}, curr, {\n inLayout: false\n });\n }\n };\n\n _this._onLayout = function (e) {\n if (_this._isNestedWithSameOrientation()) {\n _this._measureLayoutRelativeToContainingList();\n } else {\n _this._scrollMetrics.visibleLength = _this._selectLength(e.nativeEvent.layout);\n }\n\n _this.props.onLayout && _this.props.onLayout(e);\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._onLayoutEmpty = function (e) {\n _this.props.onLayout && _this.props.onLayout(e);\n };\n\n _this._onLayoutFooter = function (e) {\n _this._footerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onLayoutHeader = function (e) {\n _this._headerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onContentSizeChange = function (width, height) {\n if (width > 0 && height > 0 && _this.props.initialScrollIndex != null && _this.props.initialScrollIndex > 0 && !_this._hasDoneInitialScroll) {\n _this.scrollToIndex({\n animated: false,\n index: _this.props.initialScrollIndex\n });\n\n _this._hasDoneInitialScroll = true;\n }\n\n if (_this.props.onContentSizeChange) {\n _this.props.onContentSizeChange(width, height);\n }\n\n _this._scrollMetrics.contentLength = _this._selectLength({\n height: height,\n width: width\n });\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._convertParentScrollMetrics = function (metrics) {\n var offset = metrics.offset - _this._offsetFromParentVirtualizedList;\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - _this._scrollMetrics.offset;\n var contentLength = _this._scrollMetrics.contentLength;\n return {\n visibleLength: visibleLength,\n contentLength: contentLength,\n offset: offset,\n dOffset: dOffset\n };\n };\n\n _this._onScroll = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (_this.props.onScroll) {\n _this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = _this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = _this._selectLength(e.nativeEvent.contentSize);\n\n var offset = _this._selectOffset(e.nativeEvent.contentOffset);\n\n var dOffset = offset - _this._scrollMetrics.offset;\n\n if (_this._isNestedWithSameOrientation()) {\n if (_this._scrollMetrics.contentLength === 0) {\n return;\n }\n\n var _this$_convertParentS = _this._convertParentScrollMetrics({\n visibleLength: visibleLength,\n offset: offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = _this._scrollMetrics.timestamp ? Math.max(1, timestamp - _this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && _this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !_this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt: dt,\n prevDt: _this._scrollMetrics.dt,\n contentLength: contentLength\n });\n _this._hasWarned.perf = true;\n }\n\n _this._scrollMetrics = {\n contentLength: contentLength,\n dt: dt,\n dOffset: dOffset,\n offset: offset,\n timestamp: timestamp,\n velocity: velocity,\n visibleLength: visibleLength\n };\n\n _this._updateViewableItems(_this.props.data);\n\n if (!_this.props) {\n return;\n }\n\n _this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n _this._fillRateHelper.activate();\n }\n\n _this._computeBlankness();\n\n _this._scheduleCellsToRenderUpdate();\n };\n\n _this._onScrollBeginDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n _this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n _this._hasInteracted = true;\n _this.props.onScrollBeginDrag && _this.props.onScrollBeginDrag(e);\n };\n\n _this._onScrollEndDrag = function (e) {\n var velocity = e.nativeEvent.velocity;\n\n if (velocity) {\n _this._scrollMetrics.velocity = _this._selectOffset(velocity);\n }\n\n _this._computeBlankness();\n\n _this.props.onScrollEndDrag && _this.props.onScrollEndDrag(e);\n };\n\n _this._onMomentumScrollEnd = function (e) {\n _this._scrollMetrics.velocity = 0;\n\n _this._computeBlankness();\n\n _this.props.onMomentumScrollEnd && _this.props.onMomentumScrollEnd(e);\n };\n\n _this._updateCellsToRender = function () {\n var _this$props3 = _this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n\n var isVirtualizationDisabled = _this._isVirtualizationDisabled();\n\n _this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n _this.setState(function (state) {\n var newState;\n\n if (!isVirtualizationDisabled) {\n if (_this._scrollMetrics.visibleLength) {\n if (!_this.props.initialScrollIndex || _this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(_this.props, state, _this._getFrameMetricsApprox, _this._scrollMetrics);\n }\n }\n } else {\n var _this$_scrollMetrics = _this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? _this.props.maxToRenderPerBatch : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && _this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last;\n\n for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = _this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && _this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false;\n\n for (var _iterator = childListKeys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var childKey = _ref;\n\n var childList = _this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore) {\n newState.last = ii;\n break;\n }\n }\n }\n\n return newState;\n });\n };\n\n _this._createViewToken = function (index, isViewable) {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem,\n keyExtractor = _this$props4.keyExtractor;\n var item = getItem(data, index);\n return {\n index: index,\n item: item,\n key: keyExtractor(item, index),\n isViewable: isViewable\n };\n };\n\n _this._getFrameMetricsApprox = function (index) {\n var frame = _this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n return frame;\n } else {\n var getItemLayout = _this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: _this._averageCellLength,\n offset: _this._averageCellLength * index\n };\n }\n };\n\n _this._getFrameMetrics = function (index) {\n var _this$props5 = _this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout,\n keyExtractor = _this$props5.keyExtractor;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && _this._frames[keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n\n if (__DEV__) {\n var frameType = PropTypes.shape({\n length: PropTypes.number.isRequired,\n offset: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired\n }).isRequired;\n PropTypes.checkPropTypes({\n frame: frameType\n }, {\n frame: frame\n }, 'frame', 'VirtualizedList.getItemLayout');\n }\n }\n }\n\n return frame;\n };\n\n invariant(!_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(_props.windowSize > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n _this._fillRateHelper = new FillRateHelper(_this._getFrameMetrics);\n _this._updateCellsToRenderBatcher = new Batchinator(_this._updateCellsToRender, _this.props.updateCellsBatchingPeriod);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._viewabilityTuples = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n _this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(_this.props.viewabilityConfig),\n onViewableItemsChanged: _this.props.onViewableItemsChanged\n });\n }\n\n var initialState = {\n first: _this.props.initialScrollIndex || 0,\n last: Math.min(_this.props.getItemCount(_this.props.data), (_this.props.initialScrollIndex || 0) + _this.props.initialNumToRender) - 1\n };\n\n if (_this._isNestedWithSameOrientation()) {\n var storedState = _this.context.virtualizedList.getNestedChildState(_this.props.listKey || _this._getCellKey());\n\n if (storedState) {\n initialState = storedState;\n _this.state = storedState;\n _this._frames = storedState.frames;\n }\n }\n\n _this.state = initialState;\n return _this;\n }\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.virtualizedList.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this.props.listKey || this._getCellKey(),\n ref: this\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.virtualizedList.unregisterAsNestedChild({\n key: this.props.listKey || this._getCellKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush();\n };\n\n VirtualizedList.getDerivedStateFromProps = function getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n extraData = newProps.extraData,\n getItemCount = newProps.getItemCount,\n maxToRenderPerBatch = newProps.maxToRenderPerBatch;\n return {\n first: Math.max(0, Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch)),\n last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1))\n };\n };\n\n _proto._pushCells = function _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this2 = this;\n\n var _this$props6 = this.props,\n CellRendererComponent = _this$props6.CellRendererComponent,\n ItemSeparatorComponent = _this$props6.ItemSeparatorComponent,\n data = _this$props6.data,\n getItem = _this$props6.getItem,\n getItemCount = _this$props6.getItemCount,\n horizontal = _this$props6.horizontal,\n keyExtractor = _this$props6.keyExtractor;\n var stickyOffset = this.props.ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n\n var _loop = function _loop(ii) {\n var item = getItem(data, ii);\n var key = keyExtractor(item, ii);\n\n _this2._indicesToKeys.set(ii, key);\n\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n cells.push(React.createElement(CellRenderer, {\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n cellKey: key,\n fillRateHelper: _this2._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this2._onUpdateSeparators,\n onLayout: function onLayout(e) {\n return _this2._onCellLayout(e, key, ii);\n },\n onUnmount: _this2._onCellUnmount,\n parentProps: _this2.props,\n ref: function ref(_ref2) {\n _this2._cellRefs[key] = _ref2;\n }\n }));\n prevCellKey = key;\n };\n\n for (var ii = first; ii <= last; ii++) {\n _loop(ii);\n }\n };\n\n _proto._isVirtualizationDisabled = function _isVirtualizationDisabled() {\n return this.props.disableVirtualization;\n };\n\n _proto._isNestedWithSameOrientation = function _isNestedWithSameOrientation() {\n var nestedContext = this.context.virtualizedList;\n return !!(nestedContext && !!nestedContext.horizontal === !!this.props.horizontal);\n };\n\n _proto.render = function render() {\n if (__DEV__) {\n var flatStyles = flattenStyle(this.props.contentContainerStyle);\n warning(flatStyles == null || flatStyles.flexWrap !== 'wrap', '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? this.props.horizontal ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = React.isValidElement(ListHeaderComponent) ? ListHeaderComponent : React.createElement(ListHeaderComponent, null);\n cells.push(React.createElement(VirtualizedCellWrapper, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: inversionStyle\n }, element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n var spacerKey = !horizontal ? 'height' : 'width';\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : this.props.initialNumToRender - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0;\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var _ref3, _ref4;\n\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - (initBlock.offset + initBlock.length);\n cells.push(React.createElement(View, {\n key: \"$sticky_lead\",\n style: (_ref3 = {}, _ref3[spacerKey] = leadSpace, _ref3)\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push(React.createElement(View, {\n key: \"$sticky_trail\",\n style: (_ref4 = {}, _ref4[spacerKey] = trailSpace, _ref4)\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _ref5;\n\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push(React.createElement(View, {\n key: \"$lead_spacer\",\n style: (_ref5 = {}, _ref5[spacerKey] = firstSpace, _ref5)\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key property on each ' + 'item or provide a custom keyExtractor.');\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var _ref6;\n\n var lastFrame = this._getFrameMetricsApprox(last);\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push(React.createElement(View, {\n key: \"$tail_spacer\",\n style: (_ref6 = {}, _ref6[spacerKey] = tailSpacerLength, _ref6)\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = React.isValidElement(ListEmptyComponent) ? ListEmptyComponent : React.createElement(ListEmptyComponent, null);\n\n cells.push(React.createElement(View, {\n key: \"$empty\",\n onLayout: this._onLayoutEmpty,\n style: inversionStyle\n }, _element));\n }\n\n if (ListFooterComponent) {\n var _element2 = React.isValidElement(ListFooterComponent) ? ListFooterComponent : React.createElement(ListFooterComponent, null);\n\n cells.push(React.createElement(VirtualizedCellWrapper, {\n cellKey: this._getCellKey() + '-footer',\n key: \"$footer\"\n }, React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: inversionStyle\n }, _element2)));\n }\n\n var scrollProps = _objectSpread({}, this.props, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: this.props.scrollEventThrottle,\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices: stickyHeaderIndices\n });\n\n if (inversionStyle) {\n scrollProps.style = [inversionStyle, this.props.style];\n }\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var ret = React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells);\n\n if (this.props.debug) {\n return React.createElement(View, {\n style: {\n flex: 1\n }\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n this._hasDataChangedSinceEndReached = true;\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n\n this._scheduleCellsToRenderUpdate();\n };\n\n _proto._computeBlankness = function _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n };\n\n _proto._onCellLayout = function _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index: index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._computeBlankness();\n };\n\n _proto._measureLayoutRelativeToContainingList = function _measureLayoutRelativeToContainingList() {\n var _this3 = this;\n\n UIManager.measureLayout(findNodeHandle(this), findNodeHandle(this.context.virtualizedList.getOutermostParentListRef()), function (error) {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n }, function (x, y, width, height) {\n _this3._offsetFromParentVirtualizedList = _this3._selectOffset({\n x: x,\n y: y\n });\n _this3._scrollMetrics.contentLength = _this3._selectLength({\n width: width,\n height: height\n });\n\n var scrollMetrics = _this3._convertParentScrollMetrics(_this3.context.virtualizedList.getScrollMetrics());\n\n _this3._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n _this3._scrollMetrics.offset = scrollMetrics.offset;\n });\n };\n\n _proto._renderDebugOverlay = function _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / this._scrollMetrics.contentLength;\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n var baseStyle = {\n position: 'absolute',\n top: 0,\n right: 0\n };\n return React.createElement(View, {\n style: _objectSpread({}, baseStyle, {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n })\n }, framesInLayout.map(function (f, ii) {\n return React.createElement(View, {\n key: 'f' + ii,\n style: _objectSpread({}, baseStyle, {\n left: 0,\n top: f.offset * normalize,\n height: f.length * normalize,\n backgroundColor: 'orange'\n })\n });\n }), React.createElement(View, {\n style: _objectSpread({}, baseStyle, {\n left: 0,\n top: windowTop * normalize,\n height: windowLen * normalize,\n borderColor: 'green',\n borderWidth: 2\n })\n }), React.createElement(View, {\n style: _objectSpread({}, baseStyle, {\n left: 0,\n top: visTop * normalize,\n height: visLen * normalize,\n borderColor: 'red',\n borderWidth: 2\n })\n }));\n };\n\n _proto._selectLength = function _selectLength(metrics) {\n return !this.props.horizontal ? metrics.height : metrics.width;\n };\n\n _proto._selectOffset = function _selectOffset(metrics) {\n return !this.props.horizontal ? metrics.y : metrics.x;\n };\n\n _proto._maybeCallOnEndReached = function _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 && distanceFromEnd < onEndReachedThreshold * visibleLength && (this._hasDataChangedSinceEndReached || this._scrollMetrics.contentLength !== this._sentEndForContentLength)) {\n this._hasDataChangedSinceEndReached = false;\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd: distanceFromEnd\n });\n }\n };\n\n _proto._scheduleCellsToRenderUpdate = function _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n\n if (first > 0 || last < itemCount - 1) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n var scrollingThreshold = this.props.onEndReachedThreshold * visibleLength / 2;\n hiPri = Math.min(distTop, distBottom) < 0 || velocity < -2 && distTop < scrollingThreshold || velocity > 2 && distBottom < scrollingThreshold;\n }\n\n if (hiPri && this._averageCellLength) {\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n };\n\n _proto._updateViewableItems = function _updateViewableItems(data) {\n var _this4 = this;\n\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), _this4._scrollMetrics.offset, _this4._scrollMetrics.visibleLength, _this4._getFrameMetrics, _this4._createViewToken, tuple.onViewableItemsChanged, _this4.state);\n });\n };\n\n return VirtualizedList;\n}(React.PureComponent);\n\nVirtualizedList.defaultProps = {\n disableVirtualization: process.env.NODE_ENV === 'test',\n horizontal: false,\n initialNumToRender: 10,\n keyExtractor: function keyExtractor(item, index) {\n if (item.key != null) {\n return item.key;\n }\n\n _usedIndexForKey = true;\n return String(index);\n },\n maxToRenderPerBatch: 10,\n onEndReachedThreshold: 2,\n scrollEventThrottle: 50,\n updateCellsBatchingPeriod: 50,\n windowSize: 21\n};\nVirtualizedList.contextTypes = {\n virtualizedCell: PropTypes.shape({\n cellKey: PropTypes.string\n }),\n virtualizedList: PropTypes.shape({\n getScrollMetrics: PropTypes.func,\n horizontal: PropTypes.bool,\n getOutermostParentListRef: PropTypes.func,\n getNestedChildState: PropTypes.func,\n registerAsNestedChild: PropTypes.func,\n unregisterAsNestedChild: PropTypes.func\n })\n};\nVirtualizedList.childContextTypes = {\n virtualizedList: PropTypes.shape({\n getScrollMetrics: PropTypes.func,\n horizontal: PropTypes.bool,\n getOutermostParentListRef: PropTypes.func,\n getNestedChildState: PropTypes.func,\n registerAsNestedChild: PropTypes.func,\n unregisterAsNestedChild: PropTypes.func\n })\n};\n\nvar CellRenderer = function (_React$Component) {\n _inheritsLoose(CellRenderer, _React$Component);\n\n function CellRenderer() {\n var _this5;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this5 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this5.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this5.props.item\n }\n };\n _this5._separators = {\n highlight: function highlight() {\n var _this5$props = _this5.props,\n cellKey = _this5$props.cellKey,\n prevCellKey = _this5$props.prevCellKey;\n\n _this5.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: function unhighlight() {\n var _this5$props2 = _this5.props,\n cellKey = _this5$props2.cellKey,\n prevCellKey = _this5$props2.prevCellKey;\n\n _this5.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this5$props3 = _this5.props,\n cellKey = _this5$props3.cellKey,\n prevCellKey = _this5$props3.prevCellKey;\n\n _this5.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n return _this5;\n }\n\n var _proto2 = CellRenderer.prototype;\n\n _proto2.getChildContext = function getChildContext() {\n return {\n virtualizedCell: {\n cellKey: this.props.cellKey\n }\n };\n };\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread({}, state.separatorProps, newProps)\n };\n });\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n };\n\n _proto2.render = function render() {\n var _this$props11 = this.props,\n CellRendererComponent = _this$props11.CellRendererComponent,\n ItemSeparatorComponent = _this$props11.ItemSeparatorComponent,\n fillRateHelper = _this$props11.fillRateHelper,\n horizontal = _this$props11.horizontal,\n item = _this$props11.item,\n index = _this$props11.index,\n inversionStyle = _this$props11.inversionStyle,\n parentProps = _this$props11.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout;\n invariant(renderItem, 'no renderItem!');\n var element = renderItem({\n item: item,\n index: index,\n separators: this._separators\n });\n var onLayout = getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout;\n var itemSeparator = ItemSeparatorComponent && React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n\n if (!CellRendererComponent) {\n return React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator);\n }\n\n return React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n };\n\n return CellRenderer;\n}(React.Component);\n\nCellRenderer.childContextTypes = {\n virtualizedCell: PropTypes.shape({\n cellKey: PropTypes.string\n })\n};\n\nvar VirtualizedCellWrapper = function (_React$Component2) {\n _inheritsLoose(VirtualizedCellWrapper, _React$Component2);\n\n function VirtualizedCellWrapper() {\n return _React$Component2.apply(this, arguments) || this;\n }\n\n var _proto3 = VirtualizedCellWrapper.prototype;\n\n _proto3.getChildContext = function getChildContext() {\n return {\n virtualizedCell: {\n cellKey: this.props.cellKey\n }\n };\n };\n\n _proto3.render = function render() {\n return this.props.children;\n };\n\n return VirtualizedCellWrapper;\n}(React.Component);\n\nVirtualizedCellWrapper.childContextTypes = {\n virtualizedCell: PropTypes.shape({\n cellKey: PropTypes.string\n })\n};\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{\n scaleY: -1\n }]\n },\n horizontallyInverted: {\n transform: [{\n scaleX: -1\n }]\n },\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n }\n});\nexport default VirtualizedList;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport UnimplementedView from \"../../../modules/UnimplementedView\";\nimport React from 'react';\nimport View from \"../../../exports/View\";\nimport VirtualizedList from \"../VirtualizedList\";\nimport invariant from 'fbjs/lib/invariant';\n\nvar defaultProps = _objectSpread({}, VirtualizedList.defaultProps, {\n numColumns: 1\n});\n\nvar FlatList = function (_React$PureComponent) {\n _inheritsLoose(FlatList, _React$PureComponent);\n\n var _proto = FlatList.prototype;\n\n _proto.scrollToEnd = function scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n };\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n };\n\n _proto.scrollToItem = function scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n };\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n };\n\n _proto.recordInteraction = function recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n };\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n };\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n };\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n this._checkProps(this.props);\n };\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n invariant(nextProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(nextProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(nextProps.viewabilityConfig === this.props.viewabilityConfig, 'Changing viewabilityConfig on the fly is not supported');\n invariant(nextProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n this._checkProps(nextProps);\n };\n\n function FlatList(props) {\n var _this;\n\n _this = _React$PureComponent.call(this, props) || this;\n _this._hasWarnedLegacy = false;\n _this._virtualizedListPairs = [];\n\n _this._captureRef = function (ref) {\n _this._listRef = ref;\n };\n\n _this._getItem = function (data, index) {\n var numColumns = _this.props.numColumns;\n\n if (numColumns > 1) {\n var ret = [];\n\n for (var kk = 0; kk < numColumns; kk++) {\n var _item = data[index * numColumns + kk];\n _item && ret.push(_item);\n }\n\n return ret;\n } else {\n return data[index];\n }\n };\n\n _this._getItemCount = function (data) {\n return data ? Math.ceil(data.length / _this.props.numColumns) : 0;\n };\n\n _this._keyExtractor = function (items, index) {\n var _this$props = _this.props,\n keyExtractor = _this$props.keyExtractor,\n numColumns = _this$props.numColumns;\n\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items.map(function (it, kk) {\n return keyExtractor(it, index * numColumns + kk);\n }).join(':');\n } else {\n return keyExtractor(items, index);\n }\n };\n\n _this._renderItem = function (info) {\n var _this$props2 = _this.props,\n renderItem = _this$props2.renderItem,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle;\n\n if (numColumns > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return React.createElement(View, {\n style: [{\n flexDirection: 'row'\n }, columnWrapperStyle]\n }, _item2.map(function (it, kk) {\n var element = renderItem({\n item: it,\n index: _index * numColumns + kk,\n separators: info.separators\n });\n return element && React.cloneElement(element, {\n key: kk\n });\n }));\n } else {\n return renderItem(info);\n }\n };\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._virtualizedListPairs = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n _this._virtualizedListPairs.push({\n viewabilityConfig: _this.props.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(_this.props.onViewableItemsChanged)\n });\n }\n\n return _this;\n }\n\n _proto._checkProps = function _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n legacyImplementation = props.legacyImplementation,\n numColumns = props.numColumns,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n\n if (legacyImplementation) {\n invariant(numColumns === 1, 'Legacy list does not support multiple columns.');\n\n if (!this._hasWarnedLegacy) {\n console.warn('FlatList: Using legacyImplementation - some features not supported and performance ' + 'may suffer');\n this._hasWarnedLegacy = true;\n }\n }\n\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n };\n\n _proto._pushMultiColumnViewable = function _pushMultiColumnViewable(arr, v) {\n var _this$props3 = this.props,\n numColumns = _this$props3.numColumns,\n keyExtractor = _this$props3.keyExtractor;\n v.item.forEach(function (item, ii) {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread({}, v, {\n item: item,\n key: keyExtractor(item, index),\n index: index\n }));\n });\n };\n\n _proto._createOnViewableItemsChanged = function _createOnViewableItemsChanged(onViewableItemsChanged) {\n var _this2 = this;\n\n return function (info) {\n var numColumns = _this2.props.numColumns;\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(function (v) {\n return _this2._pushMultiColumnViewable(viewableItems, v);\n });\n info.changed.forEach(function (v) {\n return _this2._pushMultiColumnViewable(changed, v);\n });\n onViewableItemsChanged({\n viewableItems: viewableItems,\n changed: changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n };\n\n _proto.render = function render() {\n if (this.props.legacyImplementation) {\n return React.createElement(UnimplementedView, _extends({}, this.props, {\n items: this.props.data,\n ref: this._captureRef\n }));\n } else {\n return React.createElement(VirtualizedList, _extends({}, this.props, {\n renderItem: this._renderItem,\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs\n }));\n }\n };\n\n return FlatList;\n}(React.PureComponent);\n\nFlatList.defaultProps = defaultProps;\nexport default FlatList;","import FlatList from \"../../vendor/react-native/FlatList\";\nexport default FlatList;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\n\nvar _invariant = require('fbjs/lib/invariant');\n\nif (process.env.NODE_ENV !== 'production') {\n var warning = require('fbjs/lib/warning');\n}\n\nvar MIXINS_KEY = 'mixins'; // Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\n\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\n\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n var injectedMixins = [];\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n\n var RESERVED_SPEC_KEYS = {\n displayName: function displayName(Constructor, _displayName) {\n Constructor.displayName = _displayName;\n },\n mixins: function mixins(Constructor, _mixins) {\n if (_mixins) {\n for (var i = 0; i < _mixins.length; i++) {\n mixSpecIntoComponent(Constructor, _mixins[i]);\n }\n }\n },\n childContextTypes: function childContextTypes(Constructor, _childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _childContextTypes, 'childContext');\n }\n\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, _childContextTypes);\n },\n contextTypes: function contextTypes(Constructor, _contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _contextTypes, 'context');\n }\n\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes);\n },\n\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);\n } else {\n Constructor.getDefaultProps = _getDefaultProps;\n }\n },\n propTypes: function propTypes(Constructor, _propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _propTypes, 'prop');\n }\n\n Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);\n },\n statics: function statics(Constructor, _statics) {\n mixStaticSpecIntoComponent(Constructor, _statics);\n },\n autobind: function autobind() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName);\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; // Disallow overriding of base class methods unless explicitly allowed.\n\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n } // Disallow defining methods more than once unless explicitly allowed.\n\n\n if (isAlreadyDefined) {\n _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n }\n }\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n\n\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(isMixinValid, \"%s: You're attempting to include a mixin that is either null \" + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec);\n }\n }\n\n return;\n }\n\n _invariant(typeof spec !== 'function', \"ReactClass: You're attempting to \" + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n\n _invariant(!isValidElement(spec), \"ReactClass: You're attempting to \" + 'use a component as a mixin. Instead, just use a regular object.');\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs; // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name]; // These cases should already be caught by validateMethodOverride.\n\n _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name); // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n\n\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = (name in RESERVED_SPEC_KEYS);\n\n _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n\n var isAlreadyDefined = (name in Constructor);\n\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name) ? ReactClassStaticInterface[name] : null;\n\n _invariant(specPolicy === 'DEFINE_MANY_MERGED', 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n return;\n }\n\n Constructor[name] = property;\n }\n }\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n\n\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n\n one[key] = two[key];\n }\n }\n\n return one;\n }\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n\n\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n\n\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n\n\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n } // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n\n\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName);\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName);\n }\n\n return boundMethod;\n }\n\n var reboundMethod = _bind.apply(boundMethod, arguments);\n\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n\n return boundMethod;\n }\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n\n\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function componentDidMount() {\n this.__isMounted = true;\n }\n };\n var IsMountedPostMixin = {\n componentWillUnmount: function componentWillUnmount() {\n this.__isMounted = false;\n }\n };\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function replaceState(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function isMounted() {\n if (process.env.NODE_ENV !== 'production') {\n warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component');\n this.__didWarnIsMounted = true;\n }\n\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function ReactClassComponent() {};\n\n _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n\n\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n if (process.env.NODE_ENV !== 'production') {\n warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory');\n } // Wire up auto-binding\n\n\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n this.state = null; // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n\n _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin); // Initialize the defaultProps property after all mixins have been merged.\n\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component');\n warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component');\n warning(!Constructor.prototype.UNSAFE_componentWillRecieveProps, '%s has a method called UNSAFE_componentWillRecieveProps(). ' + 'Did you mean UNSAFE_componentWillReceiveProps()?', spec.displayName || 'A component');\n } // Reduce time spent doing lookups by setting these on the prototype.\n\n\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;","import { Link } from \"gatsby\";\nimport * as React from \"react\";\nimport { Text } from \"react-native\";\n\nexport function BackToList(props: {\n text: string;\n to: string;\n position: \"top\" | \"bottom\";\n}) {\n return (\n \n \n ❮\n \n {props.text}\n \n );\n}\n","import \"core-js/modules/es.array.reduce.js\";\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar performance = require(\"./performance\");\n\nvar performanceNow;\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\n\nif (performance.now) {\n performanceNow = function performanceNow() {\n return performance.now();\n };\n} else {\n performanceNow = function performanceNow() {\n return Date.now();\n };\n}\n\nmodule.exports = performanceNow;"],"sourceRoot":""}