{"version":3,"sources":["webpack:///./node_modules/react-dom/lib/FallbackCompositionState.js","webpack:///./node_modules/react-dom/lib/BeforeInputEventPlugin.js","webpack:///./node_modules/react-dom/lib/ARIADOMPropertyConfig.js","webpack:///./node_modules/react-dom/lib/ReactDefaultInjection.js","webpack:///./node_modules/react-dom/lib/ReactDOM.js","webpack:///./node_modules/react/lib/onlyChild.js","webpack:///./node_modules/react/node_modules/create-react-class/factory.js","webpack:///./node_modules/react/lib/createClass.js","webpack:///./node_modules/react/lib/ReactVersion.js","webpack:///./node_modules/react/node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/react/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react/node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/react/node_modules/prop-types/factory.js","webpack:///./node_modules/react/lib/ReactPropTypes.js","webpack:///./node_modules/react/lib/ReactDOMFactories.js","webpack:///./node_modules/react/lib/KeyEscapeUtils.js","webpack:///./node_modules/react/lib/getIteratorFn.js","webpack:///./node_modules/react/lib/traverseAllChildren.js","webpack:///./node_modules/react/lib/PooledClass.js","webpack:///./node_modules/react/lib/ReactChildren.js","webpack:///./node_modules/react/lib/lowPriorityWarning.js","webpack:///./node_modules/react/react.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/react-dom/lib/reactProdInvariant.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/warning.js","webpack:///./node_modules/react-dom/lib/ReactDOMComponentTree.js","webpack:///./node_modules/react-dom/node_modules/object-assign/index.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/ExecutionEnvironment.js","webpack:///./node_modules/react-dom/lib/ReactInstrumentation.js","webpack:///./node_modules/react-dom/lib/ReactUpdates.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/react-dom/lib/SyntheticEvent.js","webpack:///./node_modules/react/lib/ReactCurrentOwner.js","webpack:///./node_modules/react-dom/lib/PooledClass.js","webpack:///./node_modules/react/node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/react-dom/lib/DOMLazyTree.js","webpack:///./node_modules/react-dom/lib/ReactReconciler.js","webpack:///./node_modules/react-dom/lib/DOMProperty.js","webpack:///./node_modules/react/lib/ReactElement.js","webpack:///./node_modules/react/lib/React.js","webpack:///./node_modules/react-dom/lib/ReactInstanceMap.js","webpack:///./node_modules/react-dom/lib/SyntheticUIEvent.js","webpack:///./node_modules/react-dom/lib/EventPluginHub.js","webpack:///./node_modules/react-dom/lib/EventPropagators.js","webpack:///./node_modules/react/node_modules/fbjs/lib/warning.js","webpack:///./node_modules/react/lib/reactProdInvariant.js","webpack:///./node_modules/react/node_modules/object-assign/index.js","webpack:///./node_modules/react-dom/lib/ReactBrowserEventEmitter.js","webpack:///./node_modules/react-dom/lib/escapeTextContentForBrowser.js","webpack:///./node_modules/react-dom/lib/setInnerHTML.js","webpack:///./node_modules/react-dom/lib/SyntheticMouseEvent.js","webpack:///./node_modules/react-dom/lib/Transaction.js","webpack:///./node_modules/react-dom/lib/getEventCharCode.js","webpack:///./node_modules/react-dom/lib/validateDOMNesting.js","webpack:///./node_modules/react-dom/lib/ReactUpdateQueue.js","webpack:///./node_modules/react-dom/lib/KeyEscapeUtils.js","webpack:///./node_modules/react-dom/lib/shouldUpdateReactComponent.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/shallowEqual.js","webpack:///./node_modules/react-dom/lib/ReactComponentEnvironment.js","webpack:///./node_modules/react-dom/lib/LinkedValueUtils.js","webpack:///./node_modules/react-dom/lib/createMicrosoftUnsafeLocalFunction.js","webpack:///./node_modules/react-dom/lib/DOMNamespaces.js","webpack:///./node_modules/react-dom/lib/DOMChildrenOperations.js","webpack:///./node_modules/react-dom/lib/getEventModifierState.js","webpack:///./node_modules/react-dom/lib/isEventSupported.js","webpack:///./node_modules/react-dom/lib/getEventTarget.js","webpack:///./node_modules/react-dom/lib/ReactErrorUtils.js","webpack:///./node_modules/react-dom/lib/EventPluginUtils.js","webpack:///./node_modules/react-dom/lib/EventPluginRegistry.js","webpack:///./node_modules/react/node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/react-dom/lib/getHostComponentFromComposite.js","webpack:///./node_modules/react-dom/lib/ReactMount.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/getActiveElement.js","webpack:///./node_modules/react-dom/lib/ReactInputSelection.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/EventListener.js","webpack:///./node_modules/react/lib/ReactComponentTreeHook.js","webpack:///./node_modules/react-dom/lib/traverseAllChildren.js","webpack:///./node_modules/react-dom/lib/ReactHostComponent.js","webpack:///./node_modules/react-dom/lib/ReactEmptyComponent.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/emptyObject.js","webpack:///./node_modules/react-dom/lib/ReactNodeTypes.js","webpack:///./node_modules/react-dom/lib/instantiateReactComponent.js","webpack:///./node_modules/react-dom/lib/ReactDOMSelect.js","webpack:///./node_modules/react-dom/lib/DOMPropertyOperations.js","webpack:///./node_modules/react-dom/lib/CSSProperty.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/focusNode.js","webpack:///./node_modules/react-dom/lib/setTextContent.js","webpack:///./node_modules/react-dom/lib/ViewportMetrics.js","webpack:///./node_modules/react-dom/lib/isTextInputElement.js","webpack:///./node_modules/react-dom/lib/inputValueTracking.js","webpack:///./node_modules/react-dom/lib/ReactFeatureFlags.js","webpack:///./node_modules/react-dom/lib/CallbackQueue.js","webpack:///./node_modules/react-dom/lib/getTextContentAccessor.js","webpack:///./node_modules/react-dom/lib/forEachAccumulated.js","webpack:///./node_modules/react-dom/lib/accumulateInto.js","webpack:///./node_modules/react-dom/lib/ReactDOMComponentFlags.js","webpack:///./node_modules/react/lib/ReactElementSymbol.js","webpack:///./node_modules/react/node_modules/fbjs/lib/emptyObject.js","webpack:///./node_modules/react/lib/canDefineProperty.js","webpack:///./node_modules/react/lib/ReactNoopUpdateQueue.js","webpack:///./node_modules/react/lib/ReactBaseClasses.js","webpack:///./node_modules/react-dom/lib/renderSubtreeIntoContainer.js","webpack:///./node_modules/react-dom/lib/findDOMNode.js","webpack:///./node_modules/react-dom/lib/ReactVersion.js","webpack:///./node_modules/react-dom/lib/adler32.js","webpack:///./node_modules/react-dom/lib/ReactMarkupChecksum.js","webpack:///./node_modules/react-dom/lib/ReactDOMFeatureFlags.js","webpack:///./node_modules/react-dom/lib/ReactDOMContainerInfo.js","webpack:///./node_modules/react-dom/lib/SyntheticWheelEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticTransitionEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticTouchEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticDragEvent.js","webpack:///./node_modules/react-dom/lib/getEventKey.js","webpack:///./node_modules/react-dom/lib/SyntheticKeyboardEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticFocusEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticClipboardEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticAnimationEvent.js","webpack:///./node_modules/react-dom/lib/SimpleEventPlugin.js","webpack:///./node_modules/react-dom/lib/SelectEventPlugin.js","webpack:///./node_modules/react-dom/lib/SVGDOMPropertyConfig.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/isNode.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/isTextNode.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/containsNode.js","webpack:///./node_modules/react-dom/lib/getNodeForCharacterOffset.js","webpack:///./node_modules/react-dom/lib/ReactDOMSelection.js","webpack:///./node_modules/react-dom/lib/ReactReconcileTransaction.js","webpack:///./node_modules/react-dom/lib/ReactInjection.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/getUnboundedScrollPosition.js","webpack:///./node_modules/react-dom/lib/ReactEventListener.js","webpack:///./node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js","webpack:///./node_modules/react-dom/lib/ReactDOMTextComponent.js","webpack:///./node_modules/react-dom/lib/ReactDOMTreeTraversal.js","webpack:///./node_modules/react-dom/lib/ReactDOMEmptyComponent.js","webpack:///./node_modules/react-dom/lib/ReactServerUpdateQueue.js","webpack:///./node_modules/react-dom/lib/ReactServerRenderingTransaction.js","webpack:///./node_modules/react-dom/lib/flattenChildren.js","webpack:///./node_modules/react-dom/lib/getIteratorFn.js","webpack:///./node_modules/react-dom/lib/ReactElementSymbol.js","webpack:///./node_modules/react/lib/getNextDebugID.js","webpack:///./node_modules/react-dom/lib/ReactCompositeComponent.js","webpack:///./node_modules/react-dom/lib/ReactChildReconciler.js","webpack:///./node_modules/react-dom/lib/ReactMultiChild.js","webpack:///./node_modules/react-dom/lib/ReactDOMTextarea.js","webpack:///./node_modules/react-dom/lib/ReactDOMOption.js","webpack:///./node_modules/react-dom/node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/react-dom/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-dom/node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/react-dom/node_modules/prop-types/factory.js","webpack:///./node_modules/react-dom/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-dom/lib/ReactDOMInput.js","webpack:///./node_modules/react-dom/lib/getVendorPrefixedEventName.js","webpack:///./node_modules/react-dom/lib/ReactEventEmitterMixin.js","webpack:///./node_modules/react-dom/lib/quoteAttributeValueForBrowser.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/memoizeStringOnly.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/hyphenate.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/hyphenateStyleName.js","webpack:///./node_modules/react-dom/lib/dangerousStyleValue.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/camelize.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/camelizeStyleName.js","webpack:///./node_modules/react-dom/lib/CSSPropertyOperations.js","webpack:///./node_modules/react-dom/lib/AutoFocusUtils.js","webpack:///./node_modules/react-dom/lib/ReactDOMComponent.js","webpack:///./node_modules/react-dom/lib/ReactDOMIDOperations.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/getMarkupWrap.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/createArrayFromMixed.js","webpack:///./node_modules/react-dom/node_modules/fbjs/lib/createNodesFromMarkup.js","webpack:///./node_modules/react-dom/lib/Danger.js","webpack:///./node_modules/react-dom/lib/ReactComponentBrowserEnvironment.js","webpack:///./node_modules/react-dom/lib/HTMLDOMPropertyConfig.js","webpack:///./node_modules/react-dom/lib/EnterLeaveEventPlugin.js","webpack:///./node_modules/react-dom/lib/DefaultEventPluginOrder.js","webpack:///./node_modules/react-dom/lib/ReactOwner.js","webpack:///./node_modules/react-dom/lib/ReactRef.js","webpack:///./node_modules/react-dom/lib/ChangeEventPlugin.js","webpack:///./node_modules/react-dom/lib/SyntheticInputEvent.js","webpack:///./node_modules/react-dom/lib/SyntheticCompositionEvent.js"],"names":["_assign","__webpack_require__","PooledClass","getTextContentAccessor","FallbackCompositionState","root","this","_root","_startText","getText","_fallbackText","prototype","destructor","value","getData","start","end","startValue","startLength","length","endValue","endLength","minEnd","sliceTail","undefined","slice","addPoolingTo","module","exports","EventPropagators","ExecutionEnvironment","SyntheticCompositionEvent","SyntheticInputEvent","END_KEYCODES","START_KEYCODE","canUseCompositionEvent","canUseDOM","window","documentMode","document","canUseTextInputEvent","opera","version","parseInt","isPresto","useFallbackCompositionData","SPACEBAR_CODE","SPACEBAR_CHAR","String","fromCharCode","eventTypes","beforeInput","phasedRegistrationNames","bubbled","captured","dependencies","compositionEnd","compositionStart","compositionUpdate","hasSpaceKeypress","isFallbackCompositionEnd","topLevelType","nativeEvent","indexOf","keyCode","getDataFromCustomEvent","detail","data","currentComposition","extractCompositionEvent","targetInst","nativeEventTarget","eventType","fallbackData","getCompositionEventType","isFallbackCompositionStart","getPooled","event","customData","accumulateTwoPhaseDispatches","extractBeforeInputEvent","chars","which","getNativeBeforeInputChars","release","ctrlKey","altKey","metaKey","isKeypressCommand","getFallbackBeforeInputChars","BeforeInputEventPlugin","extractEvents","Properties","aria-current","aria-details","aria-disabled","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-roledescription","aria-autocomplete","aria-checked","aria-expanded","aria-haspopup","aria-level","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-placeholder","aria-pressed","aria-readonly","aria-required","aria-selected","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","aria-atomic","aria-busy","aria-live","aria-relevant","aria-dropeffect","aria-grabbed","aria-activedescendant","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-describedby","aria-errormessage","aria-flowto","aria-labelledby","aria-owns","aria-posinset","aria-rowcount","aria-rowindex","aria-rowspan","aria-setsize","DOMAttributeNames","DOMPropertyNames","ARIADOMPropertyConfig","ChangeEventPlugin","DefaultEventPluginOrder","EnterLeaveEventPlugin","HTMLDOMPropertyConfig","ReactComponentBrowserEnvironment","ReactDOMComponent","ReactDOMComponentTree","ReactDOMEmptyComponent","ReactDOMTreeTraversal","ReactDOMTextComponent","ReactDefaultBatchingStrategy","ReactEventListener","ReactInjection","ReactReconcileTransaction","SVGDOMPropertyConfig","SelectEventPlugin","SimpleEventPlugin","alreadyInjected","inject","EventEmitter","injectReactEventListener","EventPluginHub","injectEventPluginOrder","EventPluginUtils","injectComponentTree","injectTreeTraversal","injectEventPluginsByName","HostComponent","injectGenericComponentClass","injectTextComponentClass","DOMProperty","injectDOMPropertyConfig","EmptyComponent","injectEmptyComponentFactory","instantiate","Updates","injectReconcileTransaction","injectBatchingStrategy","Component","injectEnvironment","ReactDefaultInjection","ReactMount","ReactReconciler","ReactUpdates","ReactVersion","findDOMNode","getHostComponentFromComposite","renderSubtreeIntoContainer","ReactDOM","render","unmountComponentAtNode","unstable_batchedUpdates","batchedUpdates","unstable_renderSubtreeIntoContainer","__REACT_DEVTOOLS_GLOBAL_HOOK__","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","_renderedComponent","Mount","Reconciler","_prodInvariant","ReactElement","children","isValidElement","emptyObject","_invariant","MIXINS_KEY","ReactComponent","ReactNoopUpdateQueue","injectedMixins","ReactClassInterface","mixins","statics","propTypes","contextTypes","childContextTypes","getDefaultProps","getInitialState","getChildContext","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","componentWillUnmount","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","updateComponent","ReactClassStaticInterface","getDerivedStateFromProps","RESERVED_SPEC_KEYS","displayName","Constructor","i","mixSpecIntoComponent","createMergedResultFunction","name","property","hasOwnProperty","isReserved","isAlreadyDefined","specPolicy","mixStaticSpecIntoComponent","autobind","validateMethodOverride","ReactClassMixin","spec","proto","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","push","mergeIntoWithNoDuplicateKeys","one","two","key","a","apply","arguments","b","c","bindAutoBindMethod","component","method","bind","IsMountedPreMixin","__isMounted","IsMountedPostMixin","replaceState","newState","callback","updater","enqueueReplaceState","isMounted","ReactClassComponent","fn","identity","props","context","pairs","autoBindKey","bindAutoBindMethods","refs","state","initialState","Array","isArray","methodName","constructor","forEach","defaultProps","factory","typeSpecs","values","location","componentName","getStack","emptyFunction","invariant","warning","assign","ReactPropTypesSecret","checkPropTypes","throwOnDirectAccess","ITERATOR_SYMBOL","Symbol","iterator","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bool","func","number","object","string","symbol","any","createChainableTypeChecker","thatReturnsNull","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","propType","getPropType","error","Error","element","createElementTypeChecker","instanceOf","expectedClass","expectedClassName","actualClassName","getClassName","node","isNode","createNodeChecker","objectOf","oneOf","expectedValues","is","valuesString","JSON","stringify","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shape","shapeTypes","exact","allKeys","Object","keys","x","y","message","stack","validate","checkType","isRequired","secret","chainedCheckType","expectedType","getPreciseType","every","iteratorFn","maybeIterable","getIteratorFn","step","call","entries","next","done","entry","RegExp","isSymbol","Date","type","PropTypes","createDOMFactory","createFactory","ReactDOMFactories","abbr","address","area","article","aside","audio","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan","KeyEscapeUtils","escape","escaperLookup","=",":","replace","match","unescape","unescaperLookup","=0","=2","substring","REACT_ELEMENT_TYPE","SEPARATOR","SUBSEPARATOR","getComponentKey","index","toString","traverseContext","traverseAllChildrenImpl","nameSoFar","child","$$typeof","subtreeCount","nextNamePrefix","ii","childrenString","join","oneArgumentPooler","copyFieldsFrom","instancePool","instance","pop","standardReleaser","poolSize","DEFAULT_POOLER","CopyConstructor","pooler","NewKlass","twoArgumentPooler","a1","a2","threeArgumentPooler","a3","fourArgumentPooler","a4","traverseAllChildren","userProvidedKeyEscapeRegex","escapeUserProvidedKey","ForEachBookKeeping","forEachFunction","forEachContext","count","forEachSingleChild","bookKeeping","MapBookKeeping","mapResult","keyPrefix","mapFunction","mapContext","result","mapSingleChildIntoContext","childKey","mappedChild","mapIntoWithKeyPrefixInternal","thatReturnsArgument","cloneAndReplaceKey","prefix","escapedPrefix","forEachSingleChildDummy","ReactChildren","forEachFunc","toArray","validateFormat","format","condition","d","e","f","args","argIndex","framesToPop","argCount","argIdx","encodeURIComponent","ReactDOMComponentFlags","ATTR_NAME","ID_ATTRIBUTE_NAME","Flags","internalInstanceKey","Math","random","shouldPrecacheNode","nodeID","nodeType","getAttribute","nodeValue","getRenderedHostOrTextFromComponent","rendered","precacheNode","hostInst","_hostNode","precacheChildNodes","_flags","hasCachedChildNodes","_renderedChildren","childNode","firstChild","outer","childInst","childID","_domID","nextSibling","closest","parents","parentNode","getInstanceFromNode","_hostParent","uncacheNode","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","n","test3","split","letter","err","shouldUseNative","target","from","symbols","to","val","TypeError","toObject","createElement","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","debugTool","CallbackQueue","ReactFeatureFlags","Transaction","dirtyComponents","updateBatchNumber","asapCallbackQueue","asapEnqueued","batchingStrategy","ensureInjected","TRANSACTION_WRAPPERS","initialize","dirtyComponentsLength","close","splice","flushBatchedUpdates","callbackQueue","reset","notifyAll","ReactUpdatesFlushTransaction","reinitializeTransaction","reconcileTransaction","mountOrderComparator","c1","c2","_mountOrder","runBatchedUpdates","transaction","len","sort","markerName","callbacks","_pendingCallbacks","logTopLevelRenders","namedComponent","_currentElement","isReactTopLevelWrapper","getName","console","performUpdateIfNecessary","timeEnd","j","enqueue","getPublicInstance","getTransactionWrappers","perform","scope","queue","enqueueUpdate","isBatchingUpdates","_updateBatchNumber","injection","ReconcileTransaction","_batchingStrategy","asap","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsThis","shouldBeReleasedProperties","EventInterface","currentTarget","eventPhase","bubbles","cancelable","timeStamp","now","defaultPrevented","isTrusted","SyntheticEvent","dispatchConfig","_targetInst","Interface","normalize","returnValue","isDefaultPrevented","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","augmentClass","Class","E","current","DOMNamespaces","setInnerHTML","createMicrosoftUnsafeLocalFunction","setTextContent","enableLazy","navigator","userAgent","test","insertTreeChildren","tree","insertTreeBefore","referenceNode","nodeName","toLowerCase","namespaceURI","insertBefore","DOMLazyTree","replaceChildWithTree","oldNode","newTree","replaceChild","queueChild","parentTree","childTree","appendChild","queueHTML","queueText","ReactRef","attachRefs","mountComponent","internalInstance","hostParent","hostContainerInfo","parentDebugID","markup","ref","getReactMountReady","getHostNode","unmountComponent","safely","detachRefs","receiveComponent","nextElement","prevElement","_context","refsChanged","shouldUpdateRefs","checkMask","bitmask","DOMPropertyInjection","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","domPropertyConfig","Injection","DOMAttributeNamespaces","DOMMutationMethods","isCustomAttribute","_isCustomAttributeFunctions","properties","lowerCased","propConfig","propertyInfo","attributeName","attributeNamespace","propertyName","mutationMethod","mustUseProperty","hasBooleanValue","hasNumericValue","hasPositiveNumericValue","hasOverloadedBooleanValue","ATTRIBUTE_NAME_START_CHAR","ROOT_ATTRIBUTE_NAME","ATTRIBUTE_NAME_CHAR","getPossibleStandardName","isCustomAttributeFn","ReactCurrentOwner","RESERVED_PROPS","__self","__source","hasValidRef","config","hasValidKey","self","owner","_owner","childrenLength","childArray","oldElement","newKey","_self","_source","cloneElement","ReactBaseClasses","createReactClass","onlyChild","__spread","React","Children","only","PureComponent","createClass","createMixin","mixin","DOM","ReactInstanceMap","remove","_reactInternalInstance","get","has","set","getEventTarget","UIEventInterface","view","doc","ownerDocument","defaultView","parentWindow","SyntheticUIEvent","dispatchMarker","EventPluginRegistry","ReactErrorUtils","accumulateInto","forEachAccumulated","listenerBank","eventQueue","executeDispatchesAndRelease","simulated","executeDispatchesInOrder","executeDispatchesAndReleaseSimulated","executeDispatchesAndReleaseTopLevel","getDictionaryKey","_rootNodeID","putListener","registrationName","listener","PluginModule","registrationNameModules","didPutListener","getListener","bankForRegistrationName","disabled","tag","isInteractive","shouldPreventMouseEvent","deleteListener","willDeleteListener","deleteAllListeners","events","plugins","possiblePlugin","extractedEvents","enqueueEvents","processEventQueue","processingEventQueue","rethrowCaughtError","__purge","__getListenerBank","accumulateDirectionalDispatches","phase","propagationPhase","listenerAtPhase","_dispatchListeners","_dispatchInstances","accumulateTwoPhaseDispatchesSingle","traverseTwoPhase","accumulateTwoPhaseDispatchesSingleSkipTarget","parentInst","getParentInstance","accumulateDispatches","ignoredDirection","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSkipTarget","accumulateDirectDispatches","accumulateEnterLeaveDispatches","leave","enter","traverseEnterLeave","hasEventPageXY","ReactEventEmitterMixin","ViewportMetrics","getVendorPrefixedEventName","isEventSupported","alreadyListeningTo","isMonitoringScrollValue","reactTopListenersCounter","topEventMapping","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topBlur","topCanPlay","topCanPlayThrough","topChange","topClick","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topFocus","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","topListenersIDKey","ReactBrowserEventEmitter","setHandleTopLevel","handleTopLevel","setEnabled","enabled","isEnabled","listenTo","contentDocumentHandle","mountAt","isListening","getListeningForDocument","registrationNameDependencies","dependency","trapBubbledEvent","trapCapturedEvent","WINDOW_HANDLE","handlerBaseName","handle","supportsEventPageXY","createEvent","ev","ensureScrollValueMonitoring","refresh","refreshScrollValues","monitorScrollValue","matchHtmlRegExp","str","exec","lastIndex","charCodeAt","escapeHtml","reusableSVGContainer","WHITESPACE_TEST","NONVISIBLE_TEST","innerHTML","svgNode","testElement","textNode","removeChild","deleteData","MouseEventInterface","screenX","screenY","clientX","clientY","shiftKey","getModifierState","buttons","relatedTarget","fromElement","srcElement","toElement","pageX","currentScrollLeft","pageY","currentScrollTop","SyntheticMouseEvent","OBSERVED_ERROR","TransactionImpl","transactionWrappers","wrapperInitData","_isInTransaction","isInTransaction","errorThrown","ret","initializeAll","closeAll","startIndex","wrapper","initData","charCode","validateDOMNesting","getInternalInstanceReadyForUpdate","publicInstance","callerName","ReactUpdateQueue","enqueueCallback","validateCallback","enqueueCallbackInternal","enqueueForceUpdate","_pendingForceUpdate","completeState","_pendingStateQueue","_pendingReplaceState","enqueueSetState","partialState","enqueueElementInternal","nextContext","_pendingElement","formatUnexpectedArgument","prevEmpty","nextEmpty","prevType","nextType","objA","objB","keysA","keysB","injected","ReactComponentEnvironment","replaceNodeWithMarkup","processChildrenUpdates","environment","propTypesFactory","hasReadOnlyValue","checkbox","hidden","radio","submit","_assertSingleLink","inputProps","checkedLink","valueLink","_assertValueLink","onChange","_assertCheckedLink","checked","readOnly","loggedTypeFailures","getDeclarationErrorAddendum","LinkedValueUtils","tagName","getValue","getChecked","executeOnChange","requestChange","MSApp","execUnsafeLocalFunction","arg0","arg1","arg2","arg3","mathml","Danger","getNodeAfter","insertChildAt","insertLazyTreeChildAt","moveChild","openingComment","closingComment","nextNode","moveDelimitedText","removeDelimitedText","startNode","DOMChildrenOperations","dangerouslyReplaceNodeWithMarkup","replaceDelimitedText","stringText","nodeAfterComment","createTextNode","processUpdates","updates","k","update","content","afterNode","fromNode","modifierKeyToProp","Alt","Control","Meta","Shift","modifierStateGetter","keyArg","keyProp","useHasFeature","implementation","hasFeature","eventNameSuffix","capture","eventName","isSupported","setAttribute","correspondingUseElement","caughtError","invokeGuardedCallback","invokeGuardedCallbackWithCatch","TreeTraversal","executeDispatch","isEndish","isMoveish","isStartish","executeDirectDispatch","dispatchListener","dispatchInstance","res","dispatchListeners","dispatchInstances","executeDispatchesInOrderStopAtTrue","executeDispatchesInOrderStopAtTrueImpl","hasDispatches","isAncestor","getLowestCommonAncestor","argFrom","argTo","Injected","eventPluginOrder","namesToPlugins","recomputePluginOrdering","pluginName","pluginModule","pluginIndex","publishedEvents","publishEventForPlugin","eventNameDispatchConfigs","phaseName","publishRegistrationName","possibleRegistrationNames","injectedEventPluginOrder","injectedNamesToPlugins","isOrderingDirty","getPluginModuleForEvent","_resetEventPlugins","ReactNodeTypes","_renderedNodeType","COMPOSITE","HOST","EMPTY","ReactDOMContainerInfo","ReactDOMFeatureFlags","ReactMarkupChecksum","instantiateReactComponent","shouldUpdateReactComponent","ROOT_ATTR_NAME","ELEMENT_NODE_TYPE","DOC_NODE_TYPE","DOCUMENT_FRAGMENT_NODE_TYPE","instancesByReactRootID","getReactRootElementInContainer","container","documentElement","mountComponentIntoNode","wrapperInstance","shouldReuseMarkup","_topLevelWrapper","_mountImageIntoNode","batchedMountComponentIntoNode","componentInstance","useCreateElement","unmountComponentFromNode","lastChild","hasNonRootReactChild","rootEl","isValidContainer","getTopLevelWrapperInContainer","prevHostInstance","getHostRootInstanceInContainer","_hostContainerInfo","topLevelRootCounter","TopLevelWrapper","rootID","isReactComponent","_instancesByReactRootID","scrollMonitor","renderCallback","_updateRootComponent","prevComponent","_renderNewRootComponent","wrapperID","_instance","parentComponent","_renderSubtreeIntoContainer","nextWrappedElement","_processChildContext","publicInst","updatedCallback","reactRootElement","containerHasReactMarkup","internalGetID","containerHasNonRootReactChild","hasAttribute","rootElement","canReuseMarkup","checksum","CHECKSUM_ATTR_NAME","removeAttribute","rootMarkup","outerHTML","normalizedMarkup","diffIndex","string1","string2","minLen","min","charAt","firstDifferenceIndex","difference","activeElement","ReactDOMSelection","containsNode","focusNode","getActiveElement","ReactInputSelection","hasSelectionCapabilities","elem","contentEditable","getSelectionInformation","focusedElem","selectionRange","getSelection","restoreSelection","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","isInDocument","setSelection","selection","selectionStart","selectionEnd","range","createRange","parentElement","moveStart","moveEnd","getOffsets","offsets","createTextRange","collapse","setOffsets","EventListener","listen","removeEventListener","detachEvent","registerDefault","setItem","getItem","removeItem","getItemIDs","addRoot","removeRoot","getRootIDs","isNative","funcToString","Function","reIsNative","Map","Set","itemMap","rootIDSet","id","item","add","itemByKey","rootByKey","getKeyFromID","getIDFromKey","substr","unmountedIDs","purgeDeep","childIDs","describeComponentFrame","ownerName","fileName","lineNumber","getDisplayName","describeID","ReactComponentTreeHook","getElement","ownerID","getOwnerID","onSetChildren","nextChildIDs","nextChildID","nextChild","parentID","onBeforeMountComponent","updateCount","onBeforeUpdateComponent","onMountComponent","onUpdateComponent","onUnmountComponent","purgeUnmountedComponents","_preventPurging","getCurrentStackAddendum","topElement","info","currentOwner","_debugID","getStackAddendumByID","getParentID","getChildIDs","getSource","getUpdateCount","getRegisteredIDs","pushNonStandardWarningStack","isCreatingElement","currentSource","reactStack","popNonStandardWarningStack","reactStackEnd","genericComponentClass","textComponentClass","ReactHostComponent","createInternalComponent","createInstanceForText","isTextComponent","componentClass","emptyComponentFactory","ReactEmptyComponentInjection","ReactEmptyComponent","create","getType","ReactCompositeComponent","ReactCompositeComponentWrapper","construct","shouldHaveDebugID","isInternalComponentType","getNativeNode","_mountIndex","_mountImage","_instantiateReactComponent","didWarnValueDefaultValue","updateOptionsIfPendingUpdateAndMounted","_wrapperState","pendingUpdate","updateOptions","Boolean","multiple","selectedValue","options","selected","ReactDOMSelect","getHostProps","mountWrapper","initialValue","defaultValue","listeners","wasMultiple","getSelectValueContext","postUpdateWrapper","quoteAttributeValueForBrowser","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","shouldIgnoreValue","isNaN","DOMPropertyOperations","createMarkupForID","setAttributeForID","createMarkupForRoot","setAttributeForRoot","createMarkupForProperty","createMarkupForCustomAttribute","setValueForProperty","deleteValueForProperty","namespace","setAttributeNS","setValueForAttribute","deleteValueForAttribute","isUnitlessNumber","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixes","prop","toUpperCase","prefixKey","CSSProperty","shorthandPropertyExpansions","background","backgroundAttachment","backgroundColor","backgroundImage","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundPosition","border","borderWidth","borderStyle","borderColor","borderBottom","borderBottomWidth","borderBottomStyle","borderBottomColor","borderLeft","borderLeftWidth","borderLeftStyle","borderLeftColor","borderRight","borderRightWidth","borderRightStyle","borderRightColor","borderTop","borderTopWidth","borderTopStyle","borderTopColor","font","fontStyle","fontVariant","fontSize","fontFamily","outline","outlineWidth","outlineStyle","outlineColor","focus","escapeTextContentForBrowser","textContent","scrollPosition","supportedInputTypes","color","date","datetime","datetime-local","email","month","password","search","tel","url","week","isCheckable","getTracker","valueTracker","inputValueTracking","_getTrackerFromNode","valueField","descriptor","getOwnPropertyDescriptor","currentValue","defineProperty","enumerable","configurable","tracker","attachTracker","setValue","stopTracking","detachTracker","updateValueIfChanged","lastValue","nextValue","getValueFromNode","_classCallCheck","_callbacks","_contexts","_arg","contexts","checkpoint","rollback","contentKey","arr","cb","concat","ReactPureComponent","ComponentDummy","setState","forceUpdate","isPureReactComponent","componentOrElement","MOD","l","m","adler32","TAG_END","COMMENT_START","addChecksumToMarkup","existingChecksum","useFiber","topLevelWrapper","_idCounter","_ownerDocument","_node","_tag","_namespaceURI","SyntheticWheelEvent","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","SyntheticTransitionEvent","elapsedTime","pseudoElement","TouchEventInterface","touches","targetTouches","changedTouches","SyntheticTouchEvent","SyntheticDragEvent","dataTransfer","getEventCharCode","normalizeKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","translateToKey","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","KeyboardEventInterface","repeat","locale","SyntheticKeyboardEvent","SyntheticFocusEvent","ClipboardEventInterface","clipboardData","SyntheticClipboardEvent","SyntheticAnimationEvent","animationName","topLevelEventsToDispatchConfig","capitalizedEvent","onEvent","topEvent","onClickListeners","EventConstructor","isTextInputElement","shallowEqual","skipSelectionChangeEvent","activeElementInst","lastSelection","mouseDown","hasListener","constructSelectEvent","currentSelection","anchorNode","anchorOffset","focusOffset","top","boundingTop","left","boundingLeft","syntheticEvent","targetNode","NS","ATTRS","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baseProfile","baselineShift","bbox","begin","bias","by","calcMode","capHeight","clip","clipRule","clipPathUnits","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillRule","filter","filterRes","filterUnits","floodColor","focusable","fontSizeAdjust","fontStretch","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerMid","markerStart","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","operator","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","rotate","rx","ry","scale","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","strikethroughPosition","strikethroughThickness","stroke","strokeLinecap","strokeLinejoin","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textRendering","textLength","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","viewBox","viewTarget","visibility","widths","wordSpacing","writingMode","xHeight","x1","x2","xChannelSelector","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlns","xmlnsXlink","xmlLang","xmlSpace","y1","y2","yChannelSelector","z","zoomAndPan","Node","isTextNode","outerNode","innerNode","contains","compareDocumentPosition","getLeafNode","getSiblingNode","nodeStart","nodeEnd","getNodeForCharacterOffset","isCollapsed","useIEOffsets","selectedRange","selectedLength","fromStart","duplicate","moveToElementText","setEndPoint","rangeCount","currentRange","getRangeAt","startContainer","endContainer","rangeLength","tempRange","cloneRange","selectNodeContents","setEnd","endOffset","detectionRange","setStart","isBackward","collapsed","extend","temp","startMarker","endMarker","removeAllRanges","addRange","currentlyEnabled","previouslyEnabled","reactMountReady","renderToStaticMarkup","Mixin","getUpdateQueue","scrollable","Window","pageXOffset","scrollLeft","pageYOffset","scrollTop","getUnboundedScrollPosition","findParent","TopLevelCallbackBookKeeping","ancestors","handleTopLevelImpl","ancestor","_handleTopLevel","_enabled","dispatchEvent","RESET_BATCHED_UPDATES","ReactDefaultBatchingStrategyTransaction","alreadyBatchingUpdates","_stringText","_closingComment","_commentNodes","domID","openingValue","createComment","lazyTree","createDocumentFragment","escapedText","nextText","nextStringText","commentNodes","hostNode","instA","instB","depthA","tempA","depthB","tempB","depth","common","pathFrom","pathTo","ReactServerUpdateQueue","noopCallbackQueue","ReactServerRenderingTransaction","updateQueue","process","flattenSingleChildIntoContext","selfDebugID","USERNAME","nextDebugID","CompositeTypes","StatelessComponent","warnIfInvalidElement","nextMountID","_compositeType","_calledComponentWillUnmount","renderedElement","publicProps","publicContext","_processContext","doConstruct","shouldConstruct","_constructComponent","isPureComponent","unstable_handleError","performInitialMountWithErrorHandling","performInitialMount","_constructComponentWithoutOwner","_processPendingState","_renderValidatedComponent","_maskContext","maskedContext","contextName","currentContext","childContext","_checkContextTypes","prevContext","prevParentElement","nextParentElement","prevUnmaskedContext","nextUnmaskedContext","willReceive","prevProps","nextProps","nextState","shouldUpdate","_performComponentUpdate","partial","unmaskedContext","prevState","hasComponentDidUpdate","_updateRenderedComponent","prevComponentInstance","prevRenderedElement","nextRenderedElement","oldHostNode","nextMarkup","_replaceNodeWithMarkup","prevInstance","_renderValidatedComponentWithoutOwnerOrContext","attachRef","publicComponentInstance","detachRef","instantiateChild","childInstances","keyUnique","ReactChildReconciler","instantiateChildren","nestedChildNodes","updateChildren","prevChildren","nextChildren","mountImages","removedNodes","prevChild","nextChildInstance","nextChildMountImage","unmountChildren","renderedChildren","renderedChild","flattenChildren","processQueue","ReactMultiChild","_reconcilerInstantiateChildren","nestedChildren","_reconcilerUpdateChildren","nextNestedChildrenElements","mountChildren","mountImage","updateTextContent","nextContent","fromIndex","toIndex","makeTextContent","updateMarkup","makeSetMarkup","_updateChildren","nextIndex","nextMountIndex","lastPlacedNode","max","_mountChildAtIndex","_unmountChild","makeMove","createChild","makeInsertMarkup","makeRemove","forceUpdateIfMounted","ReactDOMTextarea","updateWrapper","dangerouslySetInnerHTML","newValue","postMountWrapper","didWarnInvalidOptionChildren","ReactDOMOption","selectValue","selectParent","hostProps","ReactDOMInput","defaultChecked","initialChecked","rootNode","queryRoot","group","querySelectorAll","otherNode","otherInstance","controlled","isControlled","valueAsNumber","parseFloat","makePrefixMap","styleProp","vendorPrefixes","animationend","animationiteration","animationstart","transitionend","prefixedEventNames","animation","transition","prefixMap","runEventQueueInBatch","cache","_uppercasePattern","hyphenate","msPattern","isCustomProperty","isNonNumeric","trim","_hyphenPattern","_","character","camelize","dangerousStyleValue","hyphenateStyleName","memoizeStringOnly","processStyleName","styleName","hasShorthandPropertyBug","styleFloatAccessor","tempStyle","cssFloat","CSSPropertyOperations","createMarkupForStyles","styles","serialized","styleValue","setValueForStyles","setProperty","expansion","individualStyleName","AutoFocusUtils","focusDOMComponent","getNode","CONTENT_TYPES","HTML","suppressContentEditableWarning","DOC_FRAGMENT_TYPE","assertValidProps","voidElementTags","enqueuePutListener","containerInfo","inputPostMount","textareaPostMount","optionPostMount","mediaEvents","trackInputValue","trapBubbledEventsLocal","postUpdateSelectWrapper","omittedCloseTags","newlineEatingTags","listing","VALID_TAG_REGEX","validatedTagCache","isCustomComponent","globalIdCounter","validateDangerousTag","_previousStyle","_previousStyleCopy","parentTag","el","createElementNS","_updateDOMProperties","_createInitialChildren","tagOpen","_createOpenTagMarkupAndPutListeners","tagContent","_createContentMarkup","autoFocus","propKey","__html","contentToUse","childrenToUse","lastProps","_updateDOMChildren","styleUpdates","lastStyle","nextProp","lastProp","lastContent","lastHtml","nextHtml","lastChildren","lastHasContentOrHtml","nextHasContentOrHtml","ReactDOMIDOperations","dangerouslyProcessChildrenUpdates","dummyNode","shouldWrap","selectWrap","tableWrap","trWrap","svgWrap","markupWrap","*","obj","hasArrayNature","callee","createArrayFromMixed","getMarkupWrap","nodeNamePattern","handleScript","nodeNameMatch","getNodeName","wrap","wrapDepth","scripts","getElementsByTagName","nodes","childNodes","createNodesFromMarkup","oldChild","newChild","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","as","async","autoComplete","autoPlay","cellPadding","cellSpacing","charSet","challenge","classID","className","cols","colSpan","contextMenu","controls","controlsList","coords","crossOrigin","dateTime","default","defer","dir","download","draggable","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","height","high","href","hrefLang","htmlFor","httpEquiv","icon","inputMode","integrity","keyParams","keyType","kind","lang","list","loop","low","manifest","marginHeight","marginWidth","maxLength","media","mediaGroup","minLength","muted","nonce","noValidate","open","optimum","placeholder","playsInline","poster","preload","profile","radioGroup","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scoped","scrolling","seamless","size","sizes","spellCheck","src","srcDoc","srcLang","srcSet","tabIndex","useMap","width","wmode","about","datatype","inlist","resource","typeof","vocab","autoCapitalize","autoCorrect","autoSave","itemProp","itemScope","itemType","itemID","itemRef","results","security","unselectable","validity","badInput","mouseEnter","mouseLeave","win","related","toNode","isValidOwner","ReactOwner","addComponentAsRefTo","removeComponentAsRefFrom","ownerPublicInstance","prevRef","prevOwner","nextRef","nextOwner","change","createAndAccumulateChangeEvent","doesChangeEventBubble","manualDispatchChangeEvent","runEventInBatch","stopWatchingForChangeEventIE8","getInstIfValueChanged","updated","_allowSimulatedPassThrough","getTargetInstForChangeEvent","handleEventsForChangeEventIE8","startWatchingForChangeEventIE8","isInputEventSupported","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","startWatchingForValueChange","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","_isInputEventSupported","getTargetInstFunc","handleEventFunc","shouldUseChangeEvent","shouldUseClickEvent","handleControlledInputBlur"],"mappings":"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","file":"vendors~BackToSearchRender~BlogCarouselRender~BoardSelectionRender~CreateQuoteRender~DaysCarouselRen~abdc548e-f8f256e651ae08681398.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 */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n this._root = root;\n this._startText = this.getText();\n this._fallbackText = null;\n}\n\n_assign(FallbackCompositionState.prototype, {\n destructor: function () {\n this._root = null;\n this._startText = null;\n this._fallbackText = null;\n },\n\n /**\n * Get current text of input.\n *\n * @return {string}\n */\n getText: function () {\n if ('value' in this._root) {\n return this._root.value;\n }\n return this._root[getTextContentAccessor()];\n },\n\n /**\n * Determine the differing substring between the initially stored\n * text content and the current content.\n *\n * @return {string}\n */\n getData: function () {\n if (this._fallbackText) {\n return this._fallbackText;\n }\n\n var start;\n var startValue = this._startText;\n var startLength = startValue.length;\n var end;\n var endValue = this.getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n this._fallbackText = endValue.slice(start, sliceTail);\n return this._fallbackText;\n }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;","/**\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\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case 'topCompositionUpdate':\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case 'topKeyDown':\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n case 'topKeyPress':\n case 'topMouseDown':\n case 'topBlur':\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case 'topKeyPress':\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'topTextInput':\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n var chars = currentComposition.getData();\n FallbackCompositionState.release(currentComposition);\n currentComposition = null;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case 'topPaste':\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case 'topKeyPress':\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case 'topCompositionEnd':\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n event.data = chars;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;","/**\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\n'use strict';\n\nvar ARIADOMPropertyConfig = {\n Properties: {\n // Global States and Properties\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n },\n DOMAttributeNames: {},\n DOMPropertyNames: {}\n};\n\nmodule.exports = ARIADOMPropertyConfig;","/**\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\n'use strict';\n\nvar ARIADOMPropertyConfig = require('./ARIADOMPropertyConfig');\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMEmptyComponent = require('./ReactDOMEmptyComponent');\nvar ReactDOMTreeTraversal = require('./ReactDOMTreeTraversal');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n if (alreadyInjected) {\n // TODO: This is currently true because these injections are shared between\n // the client and the server package. They should be built independently\n // and not share any injection state. Then this problem will be solved.\n return;\n }\n alreadyInjected = true;\n\n ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n /**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\n\n /**\n * Some important event plugins included by default (without having to require\n * them).\n */\n ReactInjection.EventPluginHub.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n });\n\n ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\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\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactMount = require('./ReactMount');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.render,\n unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n version: ReactVersion,\n\n /* eslint-disable camelcase */\n unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n /* eslint-enable camelcase */\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function (inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\n });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n // First check if devtools is not installed\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, \"It looks like you're using a minified copy of the development build \" + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\n\n // If we're in IE8, check to see if we are in compatibility mode and provide\n // information on preventing compatibility mode\n var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '') : void 0;\n\n var expectedFeatures = [\n // shims\n Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n var ReactDOMInvalidARIAHook = require('./ReactDOMInvalidARIAHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);\n}\n\nmodule.exports = ReactDOM;","/**\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 _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\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';\n\n// 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.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\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\n var injectedMixins = [];\n\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 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\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\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\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 /**\n * Similar to ReactClassInterface but for static methods.\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 /**\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 var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(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(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\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(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\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(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // 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 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 =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n 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];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\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 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 if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\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 function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\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 function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\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 function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\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 function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\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 boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\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 if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\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 function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\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() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\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 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(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() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\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 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\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\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\n this.state = null;\n\n // 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 if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\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 if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\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;\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\n'use strict';\n\nvar _require = require('./ReactBaseClasses'),\n Component = _require.Component;\n\nvar _require2 = require('./ReactElement'),\n isValidElement = _require2.isValidElement;\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\nvar factory = require('create-react-class/factory');\n\nmodule.exports = factory(Component, isValidElement, ReactNoopUpdateQueue);","/**\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\n'use strict';\n\nmodule.exports = '15.6.2';","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\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 ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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 emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\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\n'use strict';\n\nvar _require = require('./ReactElement'),\n isValidElement = _require.isValidElement;\n\nvar factory = require('prop-types/factory');\n\nmodule.exports = factory(isValidElement);","/**\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\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n *\n * @public\n */\nvar ReactDOMFactories = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;","/**\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 */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;","/**\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 */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = \" It looks like you're using an element created by a different \" + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler\n};\n\nmodule.exports = PooledClass;","/**\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\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function (format) {\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 }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = lowPriorityWarning;","'use strict';\n\nmodule.exports = require('./lib/React');\n","'use strict';\n\nmodule.exports = require('./lib/ReactDOM');\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\n'use strict';\n\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 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 throw error;\n }\n}\n\nmodule.exports = invariant;","/**\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 */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\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 }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Check if a given node should be cached.\n */\nfunction shouldPrecacheNode(node, nodeID) {\n return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';\n}\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (shouldPrecacheNode(childNode, childID)) {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;","/**\n * Copyright (c) 2016-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 */\n\n'use strict';\n\n// Trust the developer to only use ReactInstrumentation with a __DEV__ check\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n initialize: function () {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function () {\n if (this.dirtyComponentsLength !== dirtyComponents.length) {\n // Additional updates were enqueued by componentDidUpdate handlers or\n // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n // these new updates so that if A's componentDidUpdate calls setState on\n // B, B will update before the callback A's updater provided when calling\n // setState.\n dirtyComponents.splice(0, this.dirtyComponentsLength);\n flushBatchedUpdates();\n } else {\n dirtyComponents.length = 0;\n }\n }\n};\n\nvar UPDATE_QUEUEING = {\n initialize: function () {\n this.callbackQueue.reset();\n },\n close: function () {\n this.callbackQueue.notifyAll();\n }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n this.reinitializeTransaction();\n this.dirtyComponentsLength = null;\n this.callbackQueue = CallbackQueue.getPooled();\n this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function () {\n this.dirtyComponentsLength = null;\n CallbackQueue.release(this.callbackQueue);\n this.callbackQueue = null;\n ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n this.reconcileTransaction = null;\n },\n\n perform: function (method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n ensureInjected();\n return batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n var len = transaction.dirtyComponentsLength;\n !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\n\n // Since reconciling a component higher in the owner hierarchy usually (not\n // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n // them before their children by sorting the array.\n dirtyComponents.sort(mountOrderComparator);\n\n // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\n\n for (var i = 0; i < len; i++) {\n // If a component is unmounted before pending changes apply, it will still\n // be here, but we assume that it has cleared its _pendingCallbacks and\n // that performUpdateIfNecessary is a noop.\n var component = dirtyComponents[i];\n\n // If performUpdateIfNecessary happens to enqueue any new updates, we\n // shouldn't execute the callbacks until the next render happens, so\n // stash the callbacks first\n var callbacks = component._pendingCallbacks;\n component._pendingCallbacks = null;\n\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.type.isReactTopLevelWrapper) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n if (callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n }\n }\n }\n}\n\nvar flushBatchedUpdates = function () {\n // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n // array and perform any updates enqueued by mount-ready handlers (i.e.,\n // componentDidUpdate) but we need to check here too in order to catch\n // updates enqueued by setState callbacks and asap calls.\n while (dirtyComponents.length || asapEnqueued) {\n if (dirtyComponents.length) {\n var transaction = ReactUpdatesFlushTransaction.getPooled();\n transaction.perform(runBatchedUpdates, null, transaction);\n ReactUpdatesFlushTransaction.release(transaction);\n }\n\n if (asapEnqueued) {\n asapEnqueued = false;\n var queue = asapCallbackQueue;\n asapCallbackQueue = CallbackQueue.getPooled();\n queue.notifyAll();\n CallbackQueue.release(queue);\n }\n }\n};\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n ensureInjected();\n\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (This is called by each top-level update\n // function, like setState, forceUpdate, etc.; creation and\n // destruction of top-level components is guarded in ReactMount.)\n\n if (!batchingStrategy.isBatchingUpdates) {\n batchingStrategy.batchedUpdates(enqueueUpdate, component);\n return;\n }\n\n dirtyComponents.push(component);\n if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n invariant(batchingStrategy.isBatchingUpdates, \"ReactUpdates.asap: Can't enqueue an asap callback in a context where\" + 'updates are not being batched.');\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function (ReconcileTransaction) {\n !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function (_batchingStrategy) {\n !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\n batchingStrategy = _batchingStrategy;\n }\n};\n\nvar ReactUpdates = {\n /**\n * React references `ReactReconcileTransaction` using this property in order\n * to allow dependency injection.\n *\n * @internal\n */\n ReactReconcileTransaction: null,\n\n batchedUpdates: batchedUpdates,\n enqueueUpdate: enqueueUpdate,\n flushBatchedUpdates: flushBatchedUpdates,\n injection: ReactUpdatesInjection,\n asap: asap\n};\n\nmodule.exports = ReactUpdates;","\"use strict\";\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 */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: null,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (process.env.NODE_ENV !== 'production') {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n // eslint-disable-next-line valid-typeof\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n // eslint-disable-next-line valid-typeof\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {\n this.isPersistent = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function () {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n var Super = this;\n\n var E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\n _assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = _assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n\n PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\n/** Proxying after everything set on SyntheticEvent\n * to resolve Proxy issue on some WebKit browsers\n * in which some Event properties are set to undefined (GH#10010)\n */\nif (process.env.NODE_ENV !== 'production') {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), \"This synthetic event is reused for performance reasons. If you're \" + \"seeing this, you're adding a new property in the synthetic event object. \" + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\n}\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n process.env.NODE_ENV !== 'production' ? warning(warningCondition, \"This synthetic event is reused for performance reasons. If you're seeing this, \" + \"you're %s `%s` on a released/nullified synthetic event. %s. \" + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\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 */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nmodule.exports = ReactCurrentOwner;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler\n};\n\nmodule.exports = PooledClass;","/**\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\n'use strict';\n\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 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 throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some plugins (like Flash Player) will read\n // nodes immediately upon insertion into the DOM, so \n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;","/**\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\n'use strict';\n\nvar ReactRef = require('./ReactRef');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots\n {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function (internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (internalInstance, safely) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Update a component using a new element.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @internal\n */\n receiveComponent: function (internalInstance, nextElement, transaction, context) {\n var prevElement = internalInstance._currentElement;\n\n if (nextElement === prevElement && context === internalInstance._context) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for an element created outside a composite to be\n // deeply mutated and reused.\n\n // TODO: Bailing out early is just a perf optimization right?\n // TODO: Removing the return statement should affect correctness?\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\n }\n\n var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n if (refsChanged) {\n ReactRef.detachRefs(internalInstance, prevElement);\n }\n\n internalInstance.receiveComponent(nextElement, transaction, context);\n\n if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Flush any dirty changes in a component.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n};\n\nmodule.exports = ReactReconciler;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * isCustomAttribute: function that given an attribute name will return true\n * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n * attributes where it's impossible to enumerate all of the possible\n * attribute names,\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n * attribute namespace URL. (Attribute names not specified use no namespace.)\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function (domPropertyConfig) {\n var Injection = DOMPropertyInjection;\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n if (domPropertyConfig.isCustomAttribute) {\n DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n }\n\n for (var propName in Properties) {\n !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property \\'%s\\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0;\n\n var lowerCased = propName.toLowerCase();\n var propConfig = Properties[propName];\n\n var propertyInfo = {\n attributeName: lowerCased,\n attributeNamespace: null,\n propertyName: propName,\n mutationMethod: null,\n\n mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n };\n !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[attributeName] = propName;\n }\n }\n\n if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n }\n\n if (DOMPropertyNames.hasOwnProperty(propName)) {\n propertyInfo.propertyName = DOMPropertyNames[propName];\n }\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n propertyInfo.mutationMethod = DOMMutationMethods[propName];\n }\n\n DOMProperty.properties[propName] = propertyInfo;\n }\n }\n};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n * > DOMProperty.isValid['id']\n * true\n * > DOMProperty.isValid['foobar']\n * undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n ID_ATTRIBUTE_NAME: 'data-reactid',\n ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n\n /**\n * Map from property \"standard name\" to an object with info about how to set\n * the property in the DOM. Each object contains:\n *\n * attributeName:\n * Used when rendering markup or with `*Attribute()`.\n * attributeNamespace\n * propertyName:\n * Used on DOM node instances. (This includes properties that mutate due to\n * external factors.)\n * mutationMethod:\n * If non-null, used instead of the property or `setAttribute()` after\n * initial render.\n * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\n * hasBooleanValue:\n * Whether the property should be removed when set to a falsey value.\n * hasNumericValue:\n * Whether the property must be numeric or parse as a numeric and should be\n * removed when set to a falsey value.\n * hasPositiveNumericValue:\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * hasOverloadedBooleanValue:\n * Whether the property can be used as a flag as well as with a value.\n * Removed when strictly equal to false; present without a value when\n * strictly equal to true; present with a value otherwise.\n */\n properties: {},\n\n /**\n * Mapping from lowercase property names to the properly cased version, used\n * to warn in the case of missing properties. Available only in __DEV__.\n *\n * autofocus is predefined, because adding it to the property whitelist\n * causes unintended side effects.\n *\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : null,\n\n /**\n * All of the isCustomAttribute() functions that have been injected.\n */\n _isCustomAttributeFunctions: [],\n\n /**\n * Checks whether a property name is a custom attribute.\n * @method\n */\n isCustomAttribute: function (attributeName) {\n for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n if (isCustomAttributeFn(attributeName)) {\n return true;\n }\n }\n return false;\n },\n\n injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar warning = require('fbjs/lib/warning');\nvar canDefineProperty = require('./canDefineProperty');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allow us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {};\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n if (canDefineProperty) {\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n });\n // self and source are DEV only properties.\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n });\n // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n } else {\n element._store.validated = false;\n element._self = self;\n element._source = source;\n }\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\n */\nReactElement.createElement = function (type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\n */\nReactElement.createFactory = function (type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n return newElement;\n};\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\n */\nReactElement.cloneElement = function (element, config, children) {\n var propName;\n\n // Original props are copied\n var props = _assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n // Self is preserved since the owner is preserved.\n var self = element._self;\n // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactBaseClasses = require('./ReactBaseClasses');\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar createReactClass = require('./createClass');\nvar onlyChild = require('./onlyChild');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var lowPriorityWarning = require('./lowPriorityWarning');\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\nvar createMixin = function (mixin) {\n return mixin;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForSpread = false;\n var warnedForCreateMixin = false;\n __spread = function () {\n lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');\n warnedForSpread = true;\n return _assign.apply(null, arguments);\n };\n\n createMixin = function (mixin) {\n lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');\n warnedForCreateMixin = true;\n return mixin;\n };\n}\n\nvar React = {\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactBaseClasses.Component,\n PureComponent: ReactBaseClasses.PureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: createReactClass,\n createFactory: createFactory,\n createMixin: createMixin,\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForCreateClass = false;\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n\n Object.defineProperty(React, 'createClass', {\n get: function () {\n lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + \" Use a plain JavaScript class instead. If you're not yet \" + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');\n warnedForCreateClass = true;\n return createReactClass;\n }\n });\n }\n\n // React.DOM factories are deprecated. Wrap these methods so that\n // invocations of the React.DOM namespace and alert users to switch\n // to the `react-dom-factories` package.\n React.DOM = {};\n var warnedForFactories = false;\n Object.keys(ReactDOMFactories).forEach(function (factory) {\n React.DOM[factory] = function () {\n if (!warnedForFactories) {\n lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);\n warnedForFactories = true;\n }\n return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);\n };\n });\n}\n\nmodule.exports = React;","/**\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\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\n\nvar ReactInstanceMap = {\n /**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n remove: function (key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function (key) {\n return key._reactInternalInstance;\n },\n\n has: function (key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function (key, value) {\n key._reactInternalInstance = value;\n }\n};\n\nmodule.exports = ReactInstanceMap;","/**\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\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function (event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function (event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n },\n\n /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function (events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function (simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function () {\n listenerBank = {};\n },\n\n __getListenerBank: function () {\n return listenerBank;\n }\n};\n\nmodule.exports = EventPluginHub;","/**\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\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar warning = require('fbjs/lib/warning');\n\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\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 }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/**\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 */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getVendorPrefixedEventName = require('./getVendorPrefixedEventName');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function (ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function (enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function () {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function (registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.topFocus = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function () {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n});\n\nmodule.exports = ReactBrowserEventEmitter;","/**\n * Copyright (c) 2016-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 * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;","/**\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\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar DOMNamespaces = require('./DOMNamespaces');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '' + html + '';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function (node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xfeff) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n testElement = null;\n}\n\nmodule.exports = setInnerHTML;","/**\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\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function (event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function (event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function (event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar OBSERVED_ERROR = {};\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n *
\n *                       wrappers (injected at creation time)\n *                                      +        +\n *                                      |        |\n *                    +-----------------|--------|--------------+\n *                    |                 v        |              |\n *                    |      +---------------+   |              |\n *                    |   +--|    wrapper1   |---|----+         |\n *                    |   |  +---------------+   v    |         |\n *                    |   |          +-------------+  |         |\n *                    |   |     +----|   wrapper2  |--------+   |\n *                    |   |     |    +-------------+  |     |   |\n *                    |   |     |                     |     |   |\n *                    |   v     v                     v     v   | wrapper\n *                    | +---+ +---+   +---------+   +---+ +---+ | invariants\n * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | +---+ +---+   +---------+   +---+ +---+ |\n *                    |  initialize                    close    |\n *                    +-----------------------------------------+\n * 
\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n * Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n * while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n * reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n * content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n * to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n * when the wrapped process is completed, or has failed.\n *\n * @param {Array} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar TransactionImpl = {\n /**\n * Sets up this instance so that it is prepared for collecting metrics. Does\n * so such that this setup method may be used on an instance that is already\n * initialized, in a way that does not consume additional memory upon reuse.\n * That can be useful if you decide to make your subclass of this mixin a\n * \"PooledClass\".\n */\n reinitializeTransaction: function () {\n this.transactionWrappers = this.getTransactionWrappers();\n if (this.wrapperInitData) {\n this.wrapperInitData.length = 0;\n } else {\n this.wrapperInitData = [];\n }\n this._isInTransaction = false;\n },\n\n _isInTransaction: false,\n\n /**\n * @abstract\n * @return {Array} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function () {\n return !!this._isInTransaction;\n },\n\n /* eslint-disable space-before-function-paren */\n\n /**\n * Executes the function within a safety window. Use this for the top level\n * methods that result in large amounts of computation/mutations that would\n * need to be safety checked. The optional arguments helps prevent the need\n * to bind in many cases.\n *\n * @param {function} method Member of scope to call.\n * @param {Object} scope Scope to invoke from.\n * @param {Object?=} a Argument to pass to the method.\n * @param {Object?=} b Argument to pass to the method.\n * @param {Object?=} c Argument to pass to the method.\n * @param {Object?=} d Argument to pass to the method.\n * @param {Object?=} e Argument to pass to the method.\n * @param {Object?=} f Argument to pass to the method.\n *\n * @return {*} Return value from `method`.\n */\n perform: function (method, scope, a, b, c, d, e, f) {\n /* eslint-enable space-before-function-paren */\n !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\n var errorThrown;\n var ret;\n try {\n this._isInTransaction = true;\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // one of these calls threw.\n errorThrown = true;\n this.initializeAll(0);\n ret = method.call(scope, a, b, c, d, e, f);\n errorThrown = false;\n } finally {\n try {\n if (errorThrown) {\n // If `method` throws, prefer to show that stack trace over any thrown\n // by invoking `closeAll`.\n try {\n this.closeAll(0);\n } catch (err) {}\n } else {\n // Since `method` didn't throw, we don't want to silence the exception\n // here.\n this.closeAll(0);\n }\n } finally {\n this._isInTransaction = false;\n }\n }\n return ret;\n },\n\n initializeAll: function (startIndex) {\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n try {\n // Catching errors makes debugging more difficult, so we start with the\n // OBSERVED_ERROR state before overwriting it with the real return value\n // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n // block, it means wrapper.initialize threw.\n this.wrapperInitData[i] = OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === OBSERVED_ERROR) {\n // The initializer for wrapper i threw an error; initialize the\n // remaining wrappers but silence any exceptions from them to ensure\n // that the first error is the one to bubble up.\n try {\n this.initializeAll(i + 1);\n } catch (err) {}\n }\n }\n }\n },\n\n /**\n * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n * them the respective return values of `this.transactionWrappers.init[i]`\n * (`close`rs that correspond to initializers that failed will not be\n * invoked).\n */\n closeAll: function (startIndex) {\n !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n var initData = this.wrapperInitData[i];\n var errorThrown;\n try {\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // wrapper.close threw.\n errorThrown = true;\n if (initData !== OBSERVED_ERROR && wrapper.close) {\n wrapper.close.call(this, initData);\n }\n errorThrown = false;\n } finally {\n if (errorThrown) {\n // The closer for wrapper i threw an error; close the remaining\n // wrappers but silence any exceptions from them to ensure that the\n // first error is the one to bubble up.\n try {\n this.closeAll(i + 1);\n } catch (e) {}\n }\n }\n }\n this.wrapperInitData.length = 0;\n }\n};\n\nmodule.exports = TransactionImpl;","/**\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\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example,
is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n //

tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for , including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function (instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + \"within `render` or another component's constructor). Render methods \" + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function (internalInstance, callback) {\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n};\n\nmodule.exports = ReactUpdateQueue;","/**\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 */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;","/**\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\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement;\n var nextType = typeof nextElement;\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n}\n\nmodule.exports = shouldUpdateReactComponent;","/**\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 */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function (environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n};\n\nmodule.exports = ReactComponentEnvironment;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\nvar propTypesFactory = require('prop-types/factory');\n\nvar React = require('react/lib/React');\nvar PropTypes = propTypesFactory(React.isValidElement);\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: PropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function (tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function (inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function (inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function (inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;","/**\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\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;","/**\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\n'use strict';\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;","/**\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\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: {\n toIndex: update.toIndex,\n content: update.content.toString()\n }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n};\n\nmodule.exports = DOMChildrenOperations;","/**\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\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;","/**\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\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;","/**\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\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG <use> element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;","/**\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 */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = function () {\n func(a);\n };\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!eventPluginOrder) {\n // Wait until an `eventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName];\n var pluginIndex = eventPluginOrder.indexOf(pluginName);\n !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !pluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n EventPluginRegistry.plugins[pluginIndex] = pluginModule;\n var publishedEvents = pluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\n EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n if (process.env.NODE_ENV !== 'production') {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n /**\n * Ordered list of injected plugins.\n */\n plugins: [],\n\n /**\n * Mapping from event name to dispatch config\n */\n eventNameDispatchConfigs: {},\n\n /**\n * Mapping from registration name to plugin module\n */\n registrationNameModules: {},\n\n /**\n * Mapping from registration name to event name\n */\n registrationNameDependencies: {},\n\n /**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,\n // Trust the developer to only use possibleRegistrationNames in __DEV__\n\n /**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n injectEventPluginOrder: function (injectedEventPluginOrder) {\n !!eventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0;\n // Clone the ordering so it cannot be dynamically mutated.\n eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n recomputePluginOrdering();\n },\n\n /**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n injectEventPluginsByName: function (injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var pluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\n namesToPlugins[pluginName] = pluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n },\n\n /**\n * Looks up the plugin for the supplied event.\n *\n * @param {object} event A synthetic event.\n * @return {?object} The plugin that created the supplied event.\n * @internal\n */\n getPluginModuleForEvent: function (event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n if (dispatchConfig.phasedRegistrationNames !== undefined) {\n // pulling phasedRegistrationNames out of dispatchConfig helps Flow see\n // that it is not undefined.\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n for (var phase in phasedRegistrationNames) {\n if (!phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];\n if (pluginModule) {\n return pluginModule;\n }\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function () {\n eventPluginOrder = null;\n for (var pluginName in namesToPlugins) {\n if (namesToPlugins.hasOwnProperty(pluginName)) {\n delete namesToPlugins[pluginName];\n }\n }\n EventPluginRegistry.plugins.length = 0;\n\n var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n for (var eventName in eventNameDispatchConfigs) {\n if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n delete eventNameDispatchConfigs[eventName];\n }\n }\n\n var registrationNameModules = EventPluginRegistry.registrationNameModules;\n for (var registrationName in registrationNameModules) {\n if (registrationNameModules.hasOwnProperty(registrationName)) {\n delete registrationNameModules[registrationName];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n};\n\nmodule.exports = EventPluginRegistry;","\"use strict\";\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 */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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\n'use strict';\n\nvar ReactNodeTypes = require('./ReactNodeTypes');\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMProperty = require('./DOMProperty');\nvar React = require('react/lib/React');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMContainerInfo = require('./ReactDOMContainerInfo');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n TopLevelWrapper: TopLevelWrapper,\n\n /**\n * Used by devtools. The keys are not important.\n */\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function (container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? \" Instead of passing a string like 'div', pass \" + \"React.createElement('div') or <div />.\" : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? \" Instead of passing a string like 'div', pass \" + \"React.createElement('div') or <div />.\" : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, {\n child: nextElement\n });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function (nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function (container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, rootElement);\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;","'use strict';\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 * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;","/**\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\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n hasSelectionCapabilities: function (elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n },\n\n getSelectionInformation: function () {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n };\n },\n\n /**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n restoreSelection: function (priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n }\n focusNode(priorFocusedElem);\n }\n },\n\n /**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n getSelection: function (input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n // IE8 input.\n var range = document.selection.createRange();\n // There can only be one selection per document in IE, so it must\n // be in our element.\n if (range.parentElement() === input) {\n selection = {\n start: -range.moveStart('character', -input.value.length),\n end: -range.moveEnd('character', -input.value.length)\n };\n }\n } else {\n // Content editable or old IE textarea.\n selection = ReactDOMSelection.getOffsets(input);\n }\n\n return selection || { start: 0, end: 0 };\n },\n\n /**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n setSelection: function (input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n } else {\n ReactDOMSelection.setOffsets(input, offsets);\n }\n }\n};\n\nmodule.exports = ReactInputSelection;","'use strict';\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 * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;","/**\n * Copyright (c) 2016-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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty\n // Strip regex characters so we can use it for regex\n ).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'\n // Remove hasOwnProperty from the template to make it generic\n ).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar setItem;\nvar getItem;\nvar removeItem;\nvar getItemIDs;\nvar addRoot;\nvar removeRoot;\nvar getRootIDs;\n\nif (canUseCollections) {\n var itemMap = new Map();\n var rootIDSet = new Set();\n\n setItem = function (id, item) {\n itemMap.set(id, item);\n };\n getItem = function (id) {\n return itemMap.get(id);\n };\n removeItem = function (id) {\n itemMap['delete'](id);\n };\n getItemIDs = function () {\n return Array.from(itemMap.keys());\n };\n\n addRoot = function (id) {\n rootIDSet.add(id);\n };\n removeRoot = function (id) {\n rootIDSet['delete'](id);\n };\n getRootIDs = function () {\n return Array.from(rootIDSet.keys());\n };\n} else {\n var itemByKey = {};\n var rootByKey = {};\n\n // Use non-numeric keys to prevent V8 performance issues:\n // https://github.com/facebook/react/pull/7232\n var getKeyFromID = function (id) {\n return '.' + id;\n };\n var getIDFromKey = function (key) {\n return parseInt(key.substr(1), 10);\n };\n\n setItem = function (id, item) {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n };\n getItem = function (id) {\n var key = getKeyFromID(id);\n return itemByKey[key];\n };\n removeItem = function (id) {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n };\n getItemIDs = function () {\n return Object.keys(itemByKey).map(getIDFromKey);\n };\n\n addRoot = function (id) {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n };\n removeRoot = function (id) {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n };\n getRootIDs = function () {\n return Object.keys(rootByKey).map(getIDFromKey);\n };\n}\n\nvar unmountedIDs = [];\n\nfunction purgeDeep(id) {\n var item = getItem(id);\n if (item) {\n var childIDs = item.childIDs;\n\n removeItem(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function (id, nextChildIDs) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = getItem(nextChildID);\n !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent id is missing.\n }\n !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n }\n },\n onBeforeMountComponent: function (id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n setItem(id, item);\n },\n onBeforeUpdateComponent: function (id, element) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function (id) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function (id) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function (id) {\n var item = getItem(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function () {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function (id) {\n var item = getItem(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function (topElement) {\n var info = '';\n if (topElement) {\n var name = getDisplayName(topElement);\n var owner = topElement._owner;\n info += describeComponentFrame(name, topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function (id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function (id) {\n var item = getItem(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return getDisplayName(element);\n },\n getElement: function (id) {\n var item = getItem(id);\n return item ? item.element : null;\n },\n getOwnerID: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function (id) {\n var item = getItem(id);\n return item ? item.parentID : null;\n },\n getSource: function (id) {\n var item = getItem(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function (id) {\n var item = getItem(id);\n return item ? item.updateCount : 0;\n },\n\n\n getRootIDs: getRootIDs,\n getRegisteredIDs: getItemIDs,\n\n pushNonStandardWarningStack: function (isCreatingElement, currentSource) {\n if (typeof console.reactStack !== 'function') {\n return;\n }\n\n var stack = [];\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n try {\n if (isCreatingElement) {\n stack.push({\n name: id ? ReactComponentTreeHook.getDisplayName(id) : null,\n fileName: currentSource ? currentSource.fileName : null,\n lineNumber: currentSource ? currentSource.lineNumber : null\n });\n }\n\n while (id) {\n var element = ReactComponentTreeHook.getElement(id);\n var parentID = ReactComponentTreeHook.getParentID(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null;\n var source = element && element._source;\n stack.push({\n name: ownerName,\n fileName: source ? source.fileName : null,\n lineNumber: source ? source.lineNumber : null\n });\n id = parentID;\n }\n } catch (err) {\n // Internal state is messed up.\n // Stop building the stack (it's just a nice to have).\n }\n\n console.reactStack(stack);\n },\n popNonStandardWarningStack: function () {\n if (typeof console.reactStackEnd !== 'function') {\n return;\n }\n console.reactStackEnd();\n }\n};\n\nmodule.exports = ReactComponentTreeHook;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = \" It looks like you're using an element created by a different \" + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar genericComponentClass = null;\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\n // This accepts a class that receives the tag string. This is a catch all\n // that can render any kind of tag.\n injectGenericComponentClass: function (componentClass) {\n genericComponentClass = componentClass;\n },\n // This accepts a text component class that takes the text string to be\n // rendered as props.\n injectTextComponentClass: function (componentClass) {\n textComponentClass = componentClass;\n }\n};\n\n/**\n * Get a host internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n return component instanceof textComponentClass;\n}\n\nvar ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function (factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function (instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;","/**\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\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar React = require('react/lib/React');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function (node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (React.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactHostComponent = require('./ReactHostComponent');\n\nvar getNextDebugID = require('react/lib/getNextDebugID');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function (element) {\n this.construct(element);\n};\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if (typeof node === 'object') {\n var element = node;\n var type = element.type;\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (process.env.NODE_ENV !== 'production') {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in.\";\n }\n }\n info += getDeclarationErrorAddendum(element._owner);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0;\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.createInternalComponent(element);\n } else if (isInternalComponentType(element.type)) {\n // This is temporarily available for custom components that are not string\n // representations. I.e. ART. Once those are updated to use the string\n // representation, we can drop this code path.\n instance = new element.type(element);\n\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\n\n // These two fields are used by the DOM and ART diffing algorithms\n // respectively. Instead of using expandos on components, we should be\n // storing the state needed by the diffing algorithms elsewhere.\n instance._mountIndex = 0;\n instance._mountImage = null;\n\n if (process.env.NODE_ENV !== 'production') {\n instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0;\n }\n\n // Internal instances should fully constructed at this point, so they should\n // not get any new fields added to them at this point.\n if (process.env.NODE_ENV !== 'production') {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nmodule.exports = instantiateReactComponent;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n getHostProps: function (inst, props) {\n return _assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;","/**\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\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n return true;\n }\n if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\n return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n /**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n createMarkupForID: function (id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function (node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n createMarkupForRoot: function () {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function (node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\n },\n\n /**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\n createMarkupForProperty: function (name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n if (shouldIgnoreValue(propertyInfo, value)) {\n return '';\n }\n var attributeName = propertyInfo.attributeName;\n if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n return attributeName + '=\"\"';\n }\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n }\n return null;\n },\n\n /**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\n createMarkupForCustomAttribute: function (name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n },\n\n /**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n setValueForProperty: function (node, name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(propertyInfo, value)) {\n this.deleteValueForProperty(node, name);\n return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\n var attributeName = propertyInfo.attributeName;\n var namespace = propertyInfo.attributeNamespace;\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n if (namespace) {\n node.setAttributeNS(namespace, attributeName, '' + value);\n } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n node.setAttribute(attributeName, '');\n } else {\n node.setAttribute(attributeName, '' + value);\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n setValueForAttribute: function (node, name, value) {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function (node, name) {\n node.removeAttribute(name);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n },\n\n /**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForProperty: function (node, name) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (propertyInfo.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n }\n};\n\nmodule.exports = DOMPropertyOperations;","/**\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\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundAttachment: true,\n backgroundColor: true,\n backgroundImage: true,\n backgroundPositionX: true,\n backgroundPositionY: true,\n backgroundRepeat: true\n },\n backgroundPosition: {\n backgroundPositionX: true,\n backgroundPositionY: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n },\n outline: {\n outlineWidth: true,\n outlineStyle: true,\n outlineColor: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;","/**\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\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;","/**\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\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n if (node.nodeType === 3) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;","/**\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\n'use strict';\n\nvar ViewportMetrics = {\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function (scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n};\n\nmodule.exports = ViewportMetrics;","/**\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 */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\n\nvar supportedInputTypes = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;","/**\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\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(inst) {\n return inst._wrapperState.valueTracker;\n}\n\nfunction attachTracker(inst, tracker) {\n inst._wrapperState.valueTracker = tracker;\n}\n\nfunction detachTracker(inst) {\n inst._wrapperState.valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value;\n if (node) {\n value = isCheckable(node) ? '' + node.checked : node.value;\n }\n return value;\n}\n\nvar inputValueTracking = {\n // exposed for testing\n _getTrackerFromNode: function (node) {\n return getTracker(ReactDOMComponentTree.getInstanceFromNode(node));\n },\n\n\n track: function (inst) {\n if (getTracker(inst)) {\n return;\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n\n var currentValue = '' + node[valueField];\n\n // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable,\n configurable: true,\n get: function () {\n return descriptor.get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n descriptor.set.call(this, value);\n }\n });\n\n attachTracker(inst, {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(inst);\n delete node[valueField];\n }\n });\n },\n\n updateValueIfChanged: function (inst) {\n if (!inst) {\n return false;\n }\n var tracker = getTracker(inst);\n\n if (!tracker) {\n inputValueTracking.track(inst);\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst));\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n },\n stopTracking: function (inst) {\n var tracker = getTracker(inst);\n if (tracker) {\n tracker.stopTracking();\n }\n }\n};\n\nmodule.exports = inputValueTracking;","/**\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 */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PooledClass = require('./PooledClass');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\n\nvar CallbackQueue = function () {\n function CallbackQueue(arg) {\n _classCallCheck(this, CallbackQueue);\n\n this._callbacks = null;\n this._contexts = null;\n this._arg = arg;\n }\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n\n\n CallbackQueue.prototype.enqueue = function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(callback);\n this._contexts = this._contexts || [];\n this._contexts.push(context);\n };\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n\n\n CallbackQueue.prototype.notifyAll = function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n var arg = this._arg;\n if (callbacks && contexts) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i], arg);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n };\n\n CallbackQueue.prototype.checkpoint = function checkpoint() {\n return this._callbacks ? this._callbacks.length : 0;\n };\n\n CallbackQueue.prototype.rollback = function rollback(len) {\n if (this._callbacks && this._contexts) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n };\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n\n\n CallbackQueue.prototype.reset = function reset() {\n this._callbacks = null;\n this._contexts = null;\n };\n\n /**\n * `PooledClass` looks for this.\n */\n\n\n CallbackQueue.prototype.destructor = function destructor() {\n this.reset();\n };\n\n return CallbackQueue;\n}();\n\nmodule.exports = PooledClass.addPoolingTo(CallbackQueue);","/**\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\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n }\n return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;","/**\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 */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\n\nfunction forEachAccumulated(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n}\n\nmodule.exports = forEachAccumulated;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\nmodule.exports = accumulateInto;","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;","/**\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\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","/**\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 */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n // $FlowFixMe https://github.com/facebook/flow/issues/285\n Object.defineProperty({}, 'x', { get: function () {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback) {},\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar lowPriorityWarning = require('./lowPriorityWarning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'forceUpdate');\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function () {\n lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = {\n Component: ReactComponent,\n PureComponent: ReactPureComponent\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\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;","/**\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\n'use strict';\n\nmodule.exports = '15.6.2';","/**\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 */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n var a = 1;\n var b = 0;\n var i = 0;\n var l = data.length;\n var m = l & ~0x3;\n while (i < m) {\n var n = Math.min(i + 4096, m);\n for (; i < n; i += 4) {\n b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n }\n a %= MOD;\n b %= MOD;\n }\n for (; i < l; i++) {\n b += a += data.charCodeAt(i);\n }\n a %= MOD;\n b %= MOD;\n return a | b << 16;\n}\n\nmodule.exports = adler32;","/**\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\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\n\nvar ReactMarkupChecksum = {\n CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n /**\n * @param {string} markup Markup string\n * @return {string} Markup string with checksum attribute attached\n */\n addChecksumToMarkup: function (markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\n },\n\n /**\n * @param {string} markup to use\n * @param {DOMElement} element root React element\n * @returns {boolean} whether or not the markup is the same\n */\n canReuseMarkup: function (markup, element) {\n var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n var markupChecksum = adler32(markup);\n return markupChecksum === existingChecksum;\n }\n};\n\nmodule.exports = ReactMarkupChecksum;","/**\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\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true,\n useFiber: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;","/**\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\n'use strict';\n\nvar validateDOMNesting = require('./validateDOMNesting');\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;","/**\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\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;","/**\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\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;","/**\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\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;","/**\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\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;","/**\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\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1',\n 113: 'F2',\n 114: 'F3',\n 115: 'F4',\n 116: 'F5',\n 117: 'F6',\n 118: 'F7',\n 119: 'F8',\n 120: 'F9',\n 121: 'F10',\n 122: 'F11',\n 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;","/**\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\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;","/**\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\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;","/**\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\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;","/**\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\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticAnimationEvent = require('./SyntheticAnimationEvent');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticTransitionEvent = require('./SyntheticTransitionEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case 'topKeyPress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case 'topClick':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n};\n\nmodule.exports = SimpleEventPlugin;","/**\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\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case 'topMouseUp':\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;","/**\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\n'use strict';\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\n DOMAttributeNamespaces: {\n xlinkActuate: NS.xlink,\n xlinkArcrole: NS.xlink,\n xlinkHref: NS.xlink,\n xlinkRole: NS.xlink,\n xlinkShow: NS.xlink,\n xlinkTitle: NS.xlink,\n xlinkType: NS.xlink,\n xmlBase: NS.xml,\n xmlLang: NS.xml,\n xmlSpace: NS.xml\n },\n DOMAttributeNames: {}\n};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;","'use strict';\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 * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;","'use strict';\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 * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;","'use strict';\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 */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;","/**\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\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === 3) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\nmodule.exports = getNodeForCharacterOffset;","/**\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\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n var selection = document.selection;\n var selectedRange = selection.createRange();\n var selectedLength = selectedRange.text.length;\n\n // Duplicate selection so we can move range without breaking user selection.\n var fromStart = selectedRange.duplicate();\n fromStart.moveToElementText(node);\n fromStart.setEndPoint('EndToStart', selectedRange);\n\n var startOffset = fromStart.text.length;\n var endOffset = startOffset + selectedLength;\n\n return {\n start: startOffset,\n end: endOffset\n };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n var currentRange = selection.getRangeAt(0);\n\n // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n // divs do not seem to expose properties, triggering a \"Permission denied\n // error\" if any of its properties are accessed. The only seemingly possible\n // way to avoid erroring is to access a property that typically works for\n // non-anonymous divs and catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n try {\n /* eslint-disable no-unused-expressions */\n currentRange.startContainer.nodeType;\n currentRange.endContainer.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n // If the node and offset values are the same, the selection is collapsed.\n // `Selection.isCollapsed` is available natively, but IE sometimes gets\n // this value wrong.\n var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n var tempRange = currentRange.cloneRange();\n tempRange.selectNodeContents(node);\n tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n var end = start + rangeLength;\n\n // Detect whether the selection is backward.\n var detectionRange = document.createRange();\n detectionRange.setStart(anchorNode, anchorOffset);\n detectionRange.setEnd(focusNode, focusOffset);\n var isBackward = detectionRange.collapsed;\n\n return {\n start: isBackward ? end : start,\n end: isBackward ? start : end\n };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n var range = document.selection.createRange().duplicate();\n var start, end;\n\n if (offsets.end === undefined) {\n start = offsets.start;\n end = start;\n } else if (offsets.start > offsets.end) {\n start = offsets.end;\n end = offsets.start;\n } else {\n start = offsets.start;\n end = offsets.end;\n }\n\n range.moveToElementText(node);\n range.moveStart('character', start);\n range.setEndPoint('EndToStart', range);\n range.moveEnd('character', end - start);\n range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n /**\n * @param {DOMElement} node\n */\n getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n /**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function () {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function (previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function () {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function () {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;","/**\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\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;","/**\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\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function () {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function (handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function (enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function () {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function (refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function (topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function () {\n ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n this.reinitializeTransaction();\n}\n\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n isBatchingUpdates: false,\n\n /**\n * Call the provided function in a context within which calls to `setState`\n * and friends are batched such that components aren't updated unnecessarily.\n */\n batchedUpdates: function (callback, a, b, c, d, e) {\n var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n // The code is written this way to avoid extra allocations\n if (alreadyBatchingUpdates) {\n return callback(a, b, c, d, e);\n } else {\n return transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function (nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMTextComponent;","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], 'captured', argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function () {},\n getHostNode: function () {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function () {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;","/**\n * Copyright (c) 2015-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 */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n return false;\n };\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n }\n };\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\n };\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\n };\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\nvar Transaction = require('./Transaction');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactServerUpdateQueue = require('./ReactServerUpdateQueue');\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array} Empty list of operation wrap procedures.\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return this.updateQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {},\n\n checkpoint: function () {},\n\n rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;","/**\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 */\n\n'use strict';\n\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;","/**\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 */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;","/**\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 */\n\n'use strict';\n\nvar nextDebugID = 1;\n\nfunction getNextDebugID() {\n return nextDebugID++;\n}\n\nmodule.exports = getNextDebugID;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactReconciler = require('./ReactReconciler');\n\nif (process.env.NODE_ENV !== 'production') {\n var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponent = {\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function (element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", componentName, componentName) : void 0;\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = updateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%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.', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production' && !doConstruct) {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = 0;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function (context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function (context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function (currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n if (process.env.NODE_ENV !== 'production') {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n }\n },\n\n receiveComponent: function (nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\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 * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function (props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = _assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function (transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedElement;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedElement;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function (ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function (ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function () {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function () {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n};\n\nmodule.exports = ReactCompositeComponent;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots\n {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots\n {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n};\n\nmodule.exports = ReactChildReconciler;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar flattenChildren = require('./flattenChildren');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function (nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\n }\n\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function (nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function (nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function (nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function (child, afterNode, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n return makeMove(child, afterNode, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function (child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function (child, node) {\n return makeRemove(child, node);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function (child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n }\n};\n\nmodule.exports = ReactMultiChild;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar warning = require('fbjs/lib/warning');\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function (inst, props, hostParent) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value is null (e.g., no specified value or after initial mount)\n // or missing (e.g., for <datalist>), we don't change props.selected\n var selected = null;\n if (selectValue != null) {\n var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function (inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function (inst, props) {\n var hostProps = _assign({ selected: undefined, children: undefined }, props);\n\n // Read state only from initial mount because <select> updates value\n // manually; we need the initial state only for server rendering\n if (inst._wrapperState.selected != null) {\n hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n};\n\nmodule.exports = ReactDOMOption;","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\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 ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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 emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\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 */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n if (\n // eslint-disable-next-line\n value != valueAsNumber ||\n // eslint-disable-next-line\n value == valueAsNumber && node.value != value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else if (node.value !== '' + value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;","/**\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\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;","/**\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\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n EventPluginHub.enqueueEvents(events);\n EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n /**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n */\n handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;","/**\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\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;","/**\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 * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;","'use strict';\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 * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","/**\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\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;","/**\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\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar warning = require('fbjs/lib/warning');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n if (isCustomProperty || isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;","\"use strict\";\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 * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","/**\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\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;","/**\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\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n var tempStyle = document.createElement('div').style;\n try {\n // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n tempStyle.font = '';\n } catch (e) {\n hasShorthandPropertyBug = true;\n }\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function (name, value, owner) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, \"Style property values shouldn't contain a semicolon.%s \" + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function (name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function (owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n };\n\n /**\n * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function (name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\n }\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function (styles, component) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = styles[styleName];\n if (process.env.NODE_ENV !== 'production') {\n if (!isCustomProperty) {\n warnValidStyle(styleName, styleValue, component);\n }\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component, isCustomProperty) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n * @param {ReactDOMComponent} component\n */\n setValueForStyles: function (node, styles, component) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: component._debugID,\n type: 'update styles',\n payload: styles\n });\n }\n\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n if (process.env.NODE_ENV !== 'production') {\n if (!isCustomProperty) {\n warnValidStyle(styleName, styles[styleName], component);\n }\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component, isCustomProperty);\n if (styleName === 'float' || styleName === 'cssFloat') {\n styleName = styleFloatAccessor;\n }\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n};\n\nmodule.exports = CSSPropertyOperations;","/**\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\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar AutoFocusUtils = {\n focusDOMComponent: function () {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;","/**\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\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMNamespaces = require('./DOMNamespaces');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar inputValueTracking = require('./inputValueTracking');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { string: true, number: true };\n\nvar STYLE = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nfunction friendlyStringify(obj) {\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined because undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), \"This browser doesn't support the `onScroll` event\") : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trackInputValue() {\n inputValueTracking.track(this);\n}\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'video':\n case 'audio':\n inst._wrapperState.listeners = [];\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nvar newlineEatingTags = {\n listing: true,\n pre: true,\n textarea: true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trackInputValue, this);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trackInputValue, this);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\n break;\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function (transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function (transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function (nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n\n // We also check that we haven't missed a value update, such as a\n // Radio group shifting the checked value to another named radio input.\n inputValueTracking.updateValueIfChanged(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = _assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'input':\n case 'textarea':\n inputValueTracking.stopTracking(this);\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;","/**\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\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;","'use strict';\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\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n '*': [1, '?<div>', '</div>'],\n\n 'area': [1, '<map>', '</map>'],\n 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n 'legend': [1, '<fieldset>', '</fieldset>'],\n 'param': [1, '<object>', '</object>'],\n 'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n 'optgroup': selectWrap,\n 'option': selectWrap,\n\n 'caption': tableWrap,\n 'colgroup': tableWrap,\n 'tbody': tableWrap,\n 'tfoot': tableWrap,\n 'thead': tableWrap,\n\n 'td': trWrap,\n 'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n markupWrap[nodeName] = svgWrap;\n shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\n if (!markupWrap.hasOwnProperty(nodeName)) {\n nodeName = '*';\n }\n if (!shouldWrap.hasOwnProperty(nodeName)) {\n if (nodeName === '*') {\n dummyNode.innerHTML = '<link />';\n } else {\n dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n }\n shouldWrap[nodeName] = !dummyNode.firstChild;\n }\n return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;","'use strict';\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 * @typechecks\n */\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;","'use strict';\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 * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n var node = dummyNode;\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\n var nodeName = getNodeName(markup);\n\n var wrap = nodeName && getMarkupWrap(nodeName);\n if (wrap) {\n node.innerHTML = wrap[1] + markup + wrap[2];\n\n var wrapDepth = wrap[0];\n while (wrapDepth--) {\n node = node.lastChild;\n }\n } else {\n node.innerHTML = markup;\n }\n\n var scripts = node.getElementsByTagName('script');\n if (scripts.length) {\n !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;","/**\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\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Danger = {\n /**\n * Replaces a node with a string of markup at its current position within its\n * parent. The markup must render into a single root node.\n *\n * @param {DOMElement} oldChild Child node to replace.\n * @param {string} markup Markup to render in place of the child node.\n * @internal\n */\n dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== 'HTML') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n};\n\nmodule.exports = Danger;","/**\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\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;","/**\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\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n controlsList: 0,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {},\n DOMMutationMethods: {\n value: function (node, value) {\n if (value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + value);\n }\n }\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;","/**\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\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\n\nvar EnterLeaveEventPlugin = {\n eventTypes: eventTypes,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n};\n\nmodule.exports = EnterLeaveEventPlugin;","/**\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\n'use strict';\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\n\nvar DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nmodule.exports = DefaultEventPluginOrder;","/**\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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\nfunction isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n}\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return (\n * <div onClick={this.handleClick}>\n * <CustomComponent ref=\"custom\" />\n * </div>\n * );\n * },\n * handleClick: function() {\n * this.refs.custom.handleClick();\n * },\n * componentDidMount: function() {\n * this.refs.custom.initialize();\n * }\n * });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n /**\n * Adds a component by ref to an owner component.\n *\n * @param {ReactComponent} component Component to reference.\n * @param {string} ref Name by which to refer to the component.\n * @param {ReactOwner} owner Component on which to record the ref.\n * @final\n * @internal\n */\n addComponentAsRefTo: function (component, ref, owner) {\n !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0;\n owner.attachRef(ref, component);\n },\n\n /**\n * Removes a component by ref from an owner component.\n *\n * @param {ReactComponent} component Component to dereference.\n * @param {string} ref Name of the ref to remove.\n * @param {ReactOwner} owner Component on which the ref is recorded.\n * @final\n * @internal\n */\n removeComponentAsRefFrom: function (component, ref, owner) {\n !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n};\n\nmodule.exports = ReactOwner;","/**\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 */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(component.getPublicInstance());\n } else {\n // Legacy ref\n ReactOwner.addComponentAsRefTo(component, ref, owner);\n }\n}\n\nfunction detachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(null);\n } else {\n // Legacy ref\n ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n }\n}\n\nReactRef.attachRefs = function (instance, element) {\n if (element === null || typeof element !== 'object') {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n attachRef(ref, instance, element._owner);\n }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n // If either the owner or a `ref` has changed, make sure the newest owner\n // has stored a reference to `this`, and the previous owner (if different)\n // has forgotten the reference to `this`. We use the element instead\n // of the public this.props because the post processing cannot determine\n // a ref. The ref conceptually lives on the element.\n\n // TODO: Should this even be possible? The owner cannot change because\n // it's forbidden by shouldUpdateReactComponent. The ref can change\n // if you swap the keys of but not the refs. Reconsider where this check\n // is made. It probably belongs where the key checking and\n // instantiateReactComponent is done.\n\n var prevRef = null;\n var prevOwner = null;\n if (prevElement !== null && typeof prevElement === 'object') {\n prevRef = prevElement.ref;\n prevOwner = prevElement._owner;\n }\n\n var nextRef = null;\n var nextOwner = null;\n if (nextElement !== null && typeof nextElement === 'object') {\n nextRef = nextElement.ref;\n nextOwner = nextElement._owner;\n }\n\n return prevRef !== nextRef ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextRef === 'string' && nextOwner !== prevOwner;\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || typeof element !== 'object') {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n detachRef(ref, instance, element._owner);\n }\n};\n\nmodule.exports = ReactRef;","/**\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\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar inputValueTracking = require('./inputValueTracking');\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getInstIfValueChanged(targetInst, nativeEvent) {\n var updated = inputValueTracking.updateValueIfChanged(targetInst);\n var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough;\n\n if (updated || simulated) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\n\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n activeElement = null;\n activeElementInst = null;\n}\n\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n if (getInstIfValueChanged(activeElementInst, nativeEvent)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst, nativeEvent);\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topClick') {\n return getInstIfValueChanged(targetInst, nativeEvent);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topInput' || topLevelType === 'topChange') {\n return getInstIfValueChanged(targetInst, nativeEvent);\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n eventTypes: eventTypes,\n\n _allowSimulatedPassThrough: true,\n _isInputEventSupported: isInputEventSupported,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent);\n if (inst) {\n var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n};\n\nmodule.exports = ChangeEventPlugin;","/**\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\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;","/**\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\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;"],"sourceRoot":""}