@samitouri / QOS-React / commits / 077d32cebb

Update website for 15.3.1

(cherry picked from commit 199056cf1b004f2fd7a42211b4506cf4d879c6b2)

Paul O’Shannessy committed Aug 19, 2016 at 11:45 UTC 077d32cebb27aeabc83c9c13fa9d9c76cd1b5578
4 files changed +1346 -1386
docs/_config.yml
+9 -9
@@ -53,13 +53,13 @@ sass:
53 gems:
54 - jekyll-redirect-from
55 - jekyll-paginate
56 -react_version: 15.3.0
56 +react_version: 15.3.1
57 react_hashes:
58 - dev: R8v794QN9hrNjnivoQ3Mf7nMGVwFIHBkUmBanB40ZBIMttZbBEUatXNosjytvPUC
59 - prod: asiNTW+3f/iCKtm+05EX+4V4n6R5R1fyAY9M8Md0DLHodFResXMSBlt8ns9iJaPK
60 - addons_dev: iR3HmJX+5siYwRvy6ZXWWN/dNP4IuItUsfk0JJmwxaBIYtWHZhK/2N7wrAcxmpS8
61 - addons_prod: A/63GcxBS05SAxTWB0+wQKyQl8RVEH3nOuBuxwg/WV6yI5qpfEy4ksn90bqJdFJY
62 - dom_dev: PKr8yTHUBD0chzmoJ6ZYtB1nB87GTEWPmuDlDV7iARDrYGki2fmVB0ae3vf3LX0O
63 - dom_prod: TBEslZF7tpwiuBgt/ajgWUKvDGuCExkmEoWygscHE/OOajWS24BLAaf2/z7lj/9n
64 - dom_server_dev: UxEqwIE5+BLQKOqKHnPfJBOrSDo7HyocIl6sTb6taLayrVmDuhQ5VM4iauS54BbK
65 - dom_server_prod: hOLRkO2HGPRi0d73qKZWueHZyDD/6BID0CJax9kNUNaAvMR4atbNIcYfk2BoM8T3
58 + dev: gS+zau+tpUQYisQ0pOWmfNOfcczNoZQjeQ6+5jOgVqV1WBYqkIbdqpay3VuCHQjt
59 + prod: GjSRThJn3fjCmKim4Jou04Ax7vvKfk76xSCKUo7/V70VNIlidvZd3ZnT9rtJk0KM
60 + addons_dev: 37FL10I5CNyIhpG9UrOeUrUKONP5CUt3PYHxWz9Eo4kYWS7weaFzDRP7BxRfhB75
61 + addons_prod: hSlojvw2moZ49rKg6U9wW83sJi7QnWC6nB53jlsGy5hmltJC6ET/cRRKzMifYEg5
62 + dom_dev: yMyOXveaWIIfHWhBZNUrKSPQCw+BWRGucJIdsQeltkvBNDrWXKo+jKVKyx6hH/5r
63 + dom_prod: 3AR/0xGUlR37VpbeHbKQhvizC4T8sNTU8t5GS9JC/4odeRePZuPYl5Pyv/zTeSd8
64 + dom_server_dev: sPg6+OzdWmnH1aArppe66vtLc7tZ2gxh5KxXoZFHAxZoquTi4J71PHASGmv7meE1
65 + dom_server_prod: L4CScwloTXP7xdPmmp3KRAKqASCN8hQpjM6DsrAyCl4K8RXi8Ig+9i0X6k8AyfM9
docs/downloads/react-15.3.1.zip
Binary files /dev/null and b/docs/downloads/react-15.3.1.zip differ
docs/js/react-dom.js
+1 -1
@@ -1,5 +1,5 @@
1 /**
2 - * ReactDOM v15.3.0
2 + * ReactDOM v15.3.1
3 *
4 * Copyright 2013-present, Facebook, Inc.
5 * All rights reserved.
docs/js/react.js
+1336 -1376
@@ -1,5 +1,5 @@
1 /**
2 - * React v15.3.0
2 + * React v15.3.1
3 */
4 (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.React = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
5 /**
@@ -17,7 +17,7 @@
17
18 var ReactDOMComponentTree = _dereq_(42);
19
20 -var focusNode = _dereq_(158);
20 +var focusNode = _dereq_(156);
21
22 var AutoFocusUtils = {
23 focusDOMComponent: function () {
@@ -26,7 +26,7 @@ var AutoFocusUtils = {
26 };
27
28 module.exports = AutoFocusUtils;
29 -},{"158":158,"42":42}],2:[function(_dereq_,module,exports){
29 +},{"156":156,"42":42}],2:[function(_dereq_,module,exports){
30 /**
31 * Copyright 2013-present Facebook, Inc.
32 * All rights reserved.
@@ -42,12 +42,12 @@ module.exports = AutoFocusUtils;
42
43 var EventConstants = _dereq_(16);
44 var EventPropagators = _dereq_(20);
45 -var ExecutionEnvironment = _dereq_(150);
45 +var ExecutionEnvironment = _dereq_(148);
46 var FallbackCompositionState = _dereq_(21);
47 -var SyntheticCompositionEvent = _dereq_(105);
48 -var SyntheticInputEvent = _dereq_(109);
47 +var SyntheticCompositionEvent = _dereq_(103);
48 +var SyntheticInputEvent = _dereq_(107);
49
50 -var keyOf = _dereq_(168);
50 +var keyOf = _dereq_(166);
51
52 var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
53 var START_KEYCODE = 229;
@@ -415,7 +415,7 @@ var BeforeInputEventPlugin = {
415 };
416
417 module.exports = BeforeInputEventPlugin;
418 -},{"105":105,"109":109,"150":150,"16":16,"168":168,"20":20,"21":21}],3:[function(_dereq_,module,exports){
418 +},{"103":103,"107":107,"148":148,"16":16,"166":166,"20":20,"21":21}],3:[function(_dereq_,module,exports){
419 /**
420 * Copyright 2013-present, Facebook, Inc.
421 * All rights reserved.
@@ -579,14 +579,14 @@ module.exports = CSSProperty;
579 'use strict';
580
581 var CSSProperty = _dereq_(3);
582 -var ExecutionEnvironment = _dereq_(150);
583 -var ReactInstrumentation = _dereq_(75);
582 +var ExecutionEnvironment = _dereq_(148);
583 +var ReactInstrumentation = _dereq_(73);
584
585 -var camelizeStyleName = _dereq_(152);
586 -var dangerousStyleValue = _dereq_(123);
587 -var hyphenateStyleName = _dereq_(163);
588 -var memoizeStringOnly = _dereq_(170);
589 -var warning = _dereq_(174);
585 +var camelizeStyleName = _dereq_(150);
586 +var dangerousStyleValue = _dereq_(121);
587 +var hyphenateStyleName = _dereq_(161);
588 +var memoizeStringOnly = _dereq_(167);
589 +var warning = _dereq_(171);
590
591 var processStyleName = memoizeStringOnly(function (styleName) {
592 return hyphenateStyleName(styleName);
@@ -770,7 +770,7 @@ var CSSPropertyOperations = {
770 };
771
772 module.exports = CSSPropertyOperations;
773 -},{"123":123,"150":150,"152":152,"163":163,"170":170,"174":174,"3":3,"75":75}],5:[function(_dereq_,module,exports){
773 +},{"121":121,"148":148,"150":150,"161":161,"167":167,"171":171,"3":3,"73":73}],5:[function(_dereq_,module,exports){
774 /**
775 * Copyright 2013-present, Facebook, Inc.
776 * All rights reserved.
@@ -784,12 +784,12 @@ module.exports = CSSPropertyOperations;
784
785 'use strict';
786
787 -var _prodInvariant = _dereq_(142),
788 - _assign = _dereq_(175);
787 +var _prodInvariant = _dereq_(140),
788 + _assign = _dereq_(172);
789
790 var PooledClass = _dereq_(25);
791
792 -var invariant = _dereq_(164);
792 +var invariant = _dereq_(162);
793
794 /**
795 * A specialized pseudo-event module to help keep track of components waiting to
@@ -877,7 +877,7 @@ _assign(CallbackQueue.prototype, {
877 PooledClass.addPoolingTo(CallbackQueue);
878
879 module.exports = CallbackQueue;
880 -},{"142":142,"164":164,"175":175,"25":25}],6:[function(_dereq_,module,exports){
880 +},{"140":140,"162":162,"172":172,"25":25}],6:[function(_dereq_,module,exports){
881 /**
882 * Copyright 2013-present, Facebook, Inc.
883 * All rights reserved.
@@ -894,15 +894,15 @@ module.exports = CallbackQueue;
894 var EventConstants = _dereq_(16);
895 var EventPluginHub = _dereq_(17);
896 var EventPropagators = _dereq_(20);
897 -var ExecutionEnvironment = _dereq_(150);
897 +var ExecutionEnvironment = _dereq_(148);
898 var ReactDOMComponentTree = _dereq_(42);
899 -var ReactUpdates = _dereq_(98);
900 -var SyntheticEvent = _dereq_(107);
899 +var ReactUpdates = _dereq_(96);
900 +var SyntheticEvent = _dereq_(105);
901
902 -var getEventTarget = _dereq_(131);
903 -var isEventSupported = _dereq_(138);
904 -var isTextInputElement = _dereq_(139);
905 -var keyOf = _dereq_(168);
902 +var getEventTarget = _dereq_(129);
903 +var isEventSupported = _dereq_(136);
904 +var isTextInputElement = _dereq_(137);
905 +var keyOf = _dereq_(166);
906
907 var topLevelTypes = EventConstants.topLevelTypes;
908
@@ -1203,7 +1203,7 @@ var ChangeEventPlugin = {
1203 };
1204
1205 module.exports = ChangeEventPlugin;
1206 -},{"107":107,"131":131,"138":138,"139":139,"150":150,"16":16,"168":168,"17":17,"20":20,"42":42,"98":98}],7:[function(_dereq_,module,exports){
1206 +},{"105":105,"129":129,"136":136,"137":137,"148":148,"16":16,"166":166,"17":17,"20":20,"42":42,"96":96}],7:[function(_dereq_,module,exports){
1207 /**
1208 * Copyright 2013-present, Facebook, Inc.
1209 * All rights reserved.
@@ -1219,13 +1219,13 @@ module.exports = ChangeEventPlugin;
1219
1220 var DOMLazyTree = _dereq_(8);
1221 var Danger = _dereq_(12);
1222 -var ReactMultiChildUpdateTypes = _dereq_(80);
1222 +var ReactMultiChildUpdateTypes = _dereq_(78);
1223 var ReactDOMComponentTree = _dereq_(42);
1224 -var ReactInstrumentation = _dereq_(75);
1224 +var ReactInstrumentation = _dereq_(73);
1225
1226 -var createMicrosoftUnsafeLocalFunction = _dereq_(122);
1227 -var setInnerHTML = _dereq_(144);
1228 -var setTextContent = _dereq_(145);
1226 +var createMicrosoftUnsafeLocalFunction = _dereq_(120);
1227 +var setInnerHTML = _dereq_(142);
1228 +var setTextContent = _dereq_(143);
1229
1230 function getNodeAfter(parentNode, node) {
1231 // Special case for text components, which return [open, close] comments
@@ -1398,7 +1398,7 @@ var DOMChildrenOperations = {
1398 };
1399
1400 module.exports = DOMChildrenOperations;
1401 -},{"12":12,"122":122,"144":144,"145":145,"42":42,"75":75,"8":8,"80":80}],8:[function(_dereq_,module,exports){
1401 +},{"12":12,"120":120,"142":142,"143":143,"42":42,"73":73,"78":78,"8":8}],8:[function(_dereq_,module,exports){
1402 /**
1403 * Copyright 2015-present, Facebook, Inc.
1404 * All rights reserved.
@@ -1413,10 +1413,10 @@ module.exports = DOMChildrenOperations;
1413 'use strict';
1414
1415 var DOMNamespaces = _dereq_(9);
1416 -var setInnerHTML = _dereq_(144);
1416 +var setInnerHTML = _dereq_(142);
1417
1418 -var createMicrosoftUnsafeLocalFunction = _dereq_(122);
1419 -var setTextContent = _dereq_(145);
1418 +var createMicrosoftUnsafeLocalFunction = _dereq_(120);
1419 +var setTextContent = _dereq_(143);
1420
1421 var ELEMENT_NODE_TYPE = 1;
1422 var DOCUMENT_FRAGMENT_NODE_TYPE = 11;
@@ -1517,7 +1517,7 @@ DOMLazyTree.queueHTML = queueHTML;
1517 DOMLazyTree.queueText = queueText;
1518
1519 module.exports = DOMLazyTree;
1520 -},{"122":122,"144":144,"145":145,"9":9}],9:[function(_dereq_,module,exports){
1520 +},{"120":120,"142":142,"143":143,"9":9}],9:[function(_dereq_,module,exports){
1521 /**
1522 * Copyright 2013-present, Facebook, Inc.
1523 * All rights reserved.
@@ -1552,9 +1552,9 @@ module.exports = DOMNamespaces;
1552
1553 'use strict';
1554
1555 -var _prodInvariant = _dereq_(142);
1555 +var _prodInvariant = _dereq_(140);
1556
1557 -var invariant = _dereq_(164);
1557 +var invariant = _dereq_(162);
1558
1559 function checkMask(value, bitmask) {
1560 return (value & bitmask) === bitmask;
@@ -1745,7 +1745,7 @@ var DOMProperty = {
1745 };
1746
1747 module.exports = DOMProperty;
1748 -},{"142":142,"164":164}],11:[function(_dereq_,module,exports){
1748 +},{"140":140,"162":162}],11:[function(_dereq_,module,exports){
1749 /**
1750 * Copyright 2013-present, Facebook, Inc.
1751 * All rights reserved.
@@ -1761,11 +1761,10 @@ module.exports = DOMProperty;
1761
1762 var DOMProperty = _dereq_(10);
1763 var ReactDOMComponentTree = _dereq_(42);
1764 -var ReactDOMInstrumentation = _dereq_(50);
1765 -var ReactInstrumentation = _dereq_(75);
1764 +var ReactInstrumentation = _dereq_(73);
1765
1767 -var quoteAttributeValueForBrowser = _dereq_(141);
1768 -var warning = _dereq_(174);
1766 +var quoteAttributeValueForBrowser = _dereq_(139);
1767 +var warning = _dereq_(171);
1768
1769 var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
1770 var illegalAttributeNameCache = {};
@@ -1826,9 +1825,6 @@ var DOMPropertyOperations = {
1825 * @return {?string} Markup string, or null if the property was invalid.
1826 */
1827 createMarkupForProperty: function (name, value) {
1829 - if ("development" !== 'production') {
1830 - ReactDOMInstrumentation.debugTool.onCreateMarkupForProperty(name, value);
1831 - }
1828 var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
1829 if (propertyInfo) {
1830 if (shouldIgnoreValue(propertyInfo, value)) {
@@ -1901,7 +1897,6 @@ var DOMPropertyOperations = {
1897 }
1898
1899 if ("development" !== 'production') {
1904 - ReactDOMInstrumentation.debugTool.onSetValueForProperty(node, name, value);
1900 var payload = {};
1901 payload[name] = value;
1902 ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);
@@ -1934,7 +1929,6 @@ var DOMPropertyOperations = {
1929 deleteValueForAttribute: function (node, name) {
1930 node.removeAttribute(name);
1931 if ("development" !== 'production') {
1937 - ReactDOMInstrumentation.debugTool.onDeleteValueForProperty(node, name);
1932 ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);
1933 }
1934 },
@@ -1966,7 +1960,6 @@ var DOMPropertyOperations = {
1960 }
1961
1962 if ("development" !== 'production') {
1969 - ReactDOMInstrumentation.debugTool.onDeleteValueForProperty(node, name);
1963 ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);
1964 }
1965 }
@@ -1974,7 +1967,7 @@ var DOMPropertyOperations = {
1967 };
1968
1969 module.exports = DOMPropertyOperations;
1977 -},{"10":10,"141":141,"174":174,"42":42,"50":50,"75":75}],12:[function(_dereq_,module,exports){
1970 +},{"10":10,"139":139,"171":171,"42":42,"73":73}],12:[function(_dereq_,module,exports){
1971 /**
1972 * Copyright 2013-present, Facebook, Inc.
1973 * All rights reserved.
@@ -1988,14 +1981,14 @@ module.exports = DOMPropertyOperations;
1981
1982 'use strict';
1983
1991 -var _prodInvariant = _dereq_(142);
1984 +var _prodInvariant = _dereq_(140);
1985
1986 var DOMLazyTree = _dereq_(8);
1994 -var ExecutionEnvironment = _dereq_(150);
1987 +var ExecutionEnvironment = _dereq_(148);
1988
1996 -var createNodesFromMarkup = _dereq_(155);
1997 -var emptyFunction = _dereq_(156);
1998 -var invariant = _dereq_(164);
1989 +var createNodesFromMarkup = _dereq_(153);
1990 +var emptyFunction = _dereq_(154);
1991 +var invariant = _dereq_(162);
1992
1993 var Danger = {
1994
@@ -2023,7 +2016,7 @@ var Danger = {
2016 };
2017
2018 module.exports = Danger;
2026 -},{"142":142,"150":150,"155":155,"156":156,"164":164,"8":8}],13:[function(_dereq_,module,exports){
2019 +},{"140":140,"148":148,"153":153,"154":154,"162":162,"8":8}],13:[function(_dereq_,module,exports){
2020 /**
2021 * Copyright 2013-present, Facebook, Inc.
2022 * All rights reserved.
@@ -2037,7 +2030,7 @@ module.exports = Danger;
2030
2031 'use strict';
2032
2040 -var keyOf = _dereq_(168);
2033 +var keyOf = _dereq_(166);
2034
2035 /**
2036 * Module that is injectable into `EventPluginHub`, that specifies a
@@ -2051,7 +2044,7 @@ var keyOf = _dereq_(168);
2044 var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];
2045
2046 module.exports = DefaultEventPluginOrder;
2054 -},{"168":168}],14:[function(_dereq_,module,exports){
2047 +},{"166":166}],14:[function(_dereq_,module,exports){
2048 /**
2049 * Copyright 2013-present, Facebook, Inc.
2050 * All rights reserved.
@@ -2119,9 +2112,9 @@ module.exports = DisabledInputUtils;
2112 var EventConstants = _dereq_(16);
2113 var EventPropagators = _dereq_(20);
2114 var ReactDOMComponentTree = _dereq_(42);
2122 -var SyntheticMouseEvent = _dereq_(111);
2115 +var SyntheticMouseEvent = _dereq_(109);
2116
2124 -var keyOf = _dereq_(168);
2117 +var keyOf = _dereq_(166);
2118
2119 var topLevelTypes = EventConstants.topLevelTypes;
2120
@@ -2208,7 +2201,7 @@ var EnterLeaveEventPlugin = {
2201 };
2202
2203 module.exports = EnterLeaveEventPlugin;
2211 -},{"111":111,"16":16,"168":168,"20":20,"42":42}],16:[function(_dereq_,module,exports){
2204 +},{"109":109,"16":16,"166":166,"20":20,"42":42}],16:[function(_dereq_,module,exports){
2205 /**
2206 * Copyright 2013-present, Facebook, Inc.
2207 * All rights reserved.
@@ -2222,7 +2215,7 @@ module.exports = EnterLeaveEventPlugin;
2215
2216 'use strict';
2217
2225 -var keyMirror = _dereq_(167);
2218 +var keyMirror = _dereq_(165);
2219
2220 var PropagationPhases = keyMirror({ bubbled: null, captured: null });
2221
@@ -2306,7 +2299,7 @@ var EventConstants = {
2299 };
2300
2301 module.exports = EventConstants;
2309 -},{"167":167}],17:[function(_dereq_,module,exports){
2302 +},{"165":165}],17:[function(_dereq_,module,exports){
2303 /**
2304 * Copyright 2013-present, Facebook, Inc.
2305 * All rights reserved.
@@ -2320,15 +2313,15 @@ module.exports = EventConstants;
2313
2314 'use strict';
2315
2323 -var _prodInvariant = _dereq_(142);
2316 +var _prodInvariant = _dereq_(140);
2317
2318 var EventPluginRegistry = _dereq_(18);
2319 var EventPluginUtils = _dereq_(19);
2327 -var ReactErrorUtils = _dereq_(66);
2320 +var ReactErrorUtils = _dereq_(64);
2321
2329 -var accumulateInto = _dereq_(118);
2330 -var forEachAccumulated = _dereq_(127);
2331 -var invariant = _dereq_(164);
2322 +var accumulateInto = _dereq_(116);
2323 +var forEachAccumulated = _dereq_(125);
2324 +var invariant = _dereq_(162);
2325
2326 /**
2327 * Internal store for event listeners
@@ -2365,6 +2358,8 @@ var executeDispatchesAndReleaseTopLevel = function (e) {
2358 };
2359
2360 var getDictionaryKey = function (inst) {
2361 + // Prevents V8 performance issue:
2362 + // https://github.com/facebook/react/pull/7232
2363 return '.' + inst._rootNodeID;
2364 };
2365
@@ -2556,7 +2551,7 @@ var EventPluginHub = {
2551 };
2552
2553 module.exports = EventPluginHub;
2559 -},{"118":118,"127":127,"142":142,"164":164,"18":18,"19":19,"66":66}],18:[function(_dereq_,module,exports){
2554 +},{"116":116,"125":125,"140":140,"162":162,"18":18,"19":19,"64":64}],18:[function(_dereq_,module,exports){
2555 /**
2556 * Copyright 2013-present, Facebook, Inc.
2557 * All rights reserved.
@@ -2570,9 +2565,9 @@ module.exports = EventPluginHub;
2565
2566 'use strict';
2567
2573 -var _prodInvariant = _dereq_(142);
2568 +var _prodInvariant = _dereq_(140);
2569
2575 -var invariant = _dereq_(164);
2570 +var invariant = _dereq_(162);
2571
2572 /**
2573 * Injectable ordering of event plugins.
@@ -2804,7 +2799,7 @@ var EventPluginRegistry = {
2799 };
2800
2801 module.exports = EventPluginRegistry;
2807 -},{"142":142,"164":164}],19:[function(_dereq_,module,exports){
2802 +},{"140":140,"162":162}],19:[function(_dereq_,module,exports){
2803 /**
2804 * Copyright 2013-present, Facebook, Inc.
2805 * All rights reserved.
@@ -2818,13 +2813,13 @@ module.exports = EventPluginRegistry;
2813
2814 'use strict';
2815
2821 -var _prodInvariant = _dereq_(142);
2816 +var _prodInvariant = _dereq_(140);
2817
2818 var EventConstants = _dereq_(16);
2824 -var ReactErrorUtils = _dereq_(66);
2819 +var ReactErrorUtils = _dereq_(64);
2820
2826 -var invariant = _dereq_(164);
2827 -var warning = _dereq_(174);
2821 +var invariant = _dereq_(162);
2822 +var warning = _dereq_(171);
2823
2824 /**
2825 * Injected dependencies:
@@ -3034,7 +3029,7 @@ var EventPluginUtils = {
3029 };
3030
3031 module.exports = EventPluginUtils;
3037 -},{"142":142,"16":16,"164":164,"174":174,"66":66}],20:[function(_dereq_,module,exports){
3032 +},{"140":140,"16":16,"162":162,"171":171,"64":64}],20:[function(_dereq_,module,exports){
3033 /**
3034 * Copyright 2013-present, Facebook, Inc.
3035 * All rights reserved.
@@ -3052,9 +3047,9 @@ var EventConstants = _dereq_(16);
3047 var EventPluginHub = _dereq_(17);
3048 var EventPluginUtils = _dereq_(19);
3049
3055 -var accumulateInto = _dereq_(118);
3056 -var forEachAccumulated = _dereq_(127);
3057 -var warning = _dereq_(174);
3050 +var accumulateInto = _dereq_(116);
3051 +var forEachAccumulated = _dereq_(125);
3052 +var warning = _dereq_(171);
3053
3054 var PropagationPhases = EventConstants.PropagationPhases;
3055 var getListener = EventPluginHub.getListener;
@@ -3172,7 +3167,7 @@ var EventPropagators = {
3167 };
3168
3169 module.exports = EventPropagators;
3175 -},{"118":118,"127":127,"16":16,"17":17,"174":174,"19":19}],21:[function(_dereq_,module,exports){
3170 +},{"116":116,"125":125,"16":16,"17":17,"171":171,"19":19}],21:[function(_dereq_,module,exports){
3171 /**
3172 * Copyright 2013-present, Facebook, Inc.
3173 * All rights reserved.
@@ -3186,11 +3181,11 @@ module.exports = EventPropagators;
3181
3182 'use strict';
3183
3189 -var _assign = _dereq_(175);
3184 +var _assign = _dereq_(172);
3185
3186 var PooledClass = _dereq_(25);
3187
3193 -var getTextContentAccessor = _dereq_(135);
3188 +var getTextContentAccessor = _dereq_(133);
3189
3190 /**
3191 * This helper class stores information about text content of a target node,
@@ -3268,7 +3263,7 @@ _assign(FallbackCompositionState.prototype, {
3263 PooledClass.addPoolingTo(FallbackCompositionState);
3264
3265 module.exports = FallbackCompositionState;
3271 -},{"135":135,"175":175,"25":25}],22:[function(_dereq_,module,exports){
3266 +},{"133":133,"172":172,"25":25}],22:[function(_dereq_,module,exports){
3267 /**
3268 * Copyright 2013-present, Facebook, Inc.
3269 * All rights reserved.
@@ -3552,14 +3547,14 @@ module.exports = KeyEscapeUtils;
3547
3548 'use strict';
3549
3555 -var _prodInvariant = _dereq_(142);
3550 +var _prodInvariant = _dereq_(140);
3551
3557 -var ReactPropTypes = _dereq_(86);
3558 -var ReactPropTypeLocations = _dereq_(85);
3559 -var ReactPropTypesSecret = _dereq_(87);
3552 +var ReactPropTypes = _dereq_(84);
3553 +var ReactPropTypeLocations = _dereq_(83);
3554 +var ReactPropTypesSecret = _dereq_(85);
3555
3561 -var invariant = _dereq_(164);
3562 -var warning = _dereq_(174);
3556 +var invariant = _dereq_(162);
3557 +var warning = _dereq_(171);
3558
3559 var hasReadOnlyValue = {
3560 'button': true,
@@ -3675,7 +3670,7 @@ var LinkedValueUtils = {
3670 };
3671
3672 module.exports = LinkedValueUtils;
3678 -},{"142":142,"164":164,"174":174,"85":85,"86":86,"87":87}],25:[function(_dereq_,module,exports){
3673 +},{"140":140,"162":162,"171":171,"83":83,"84":84,"85":85}],25:[function(_dereq_,module,exports){
3674 /**
3675 * Copyright 2013-present, Facebook, Inc.
3676 * All rights reserved.
@@ -3689,9 +3684,9 @@ module.exports = LinkedValueUtils;
3684
3685 'use strict';
3686
3692 -var _prodInvariant = _dereq_(142);
3687 +var _prodInvariant = _dereq_(140);
3688
3694 -var invariant = _dereq_(164);
3689 +var invariant = _dereq_(162);
3690
3691 /**
3692 * Static poolers. Several custom versions for each potential number of
@@ -3797,7 +3792,7 @@ var PooledClass = {
3792 };
3793
3794 module.exports = PooledClass;
3800 -},{"142":142,"164":164}],26:[function(_dereq_,module,exports){
3795 +},{"140":140,"162":162}],26:[function(_dereq_,module,exports){
3796 /**
3797 * Copyright 2013-present, Facebook, Inc.
3798 * All rights reserved.
@@ -3811,26 +3806,26 @@ module.exports = PooledClass;
3806
3807 'use strict';
3808
3814 -var _assign = _dereq_(175);
3809 +var _assign = _dereq_(172);
3810
3811 var ReactChildren = _dereq_(29);
3812 var ReactComponent = _dereq_(32);
3818 -var ReactPureComponent = _dereq_(88);
3813 +var ReactPureComponent = _dereq_(86);
3814 var ReactClass = _dereq_(31);
3820 -var ReactDOMFactories = _dereq_(46);
3821 -var ReactElement = _dereq_(63);
3822 -var ReactPropTypes = _dereq_(86);
3823 -var ReactVersion = _dereq_(99);
3815 +var ReactDOMFactories = _dereq_(45);
3816 +var ReactElement = _dereq_(61);
3817 +var ReactPropTypes = _dereq_(84);
3818 +var ReactVersion = _dereq_(97);
3819
3825 -var onlyChild = _dereq_(140);
3826 -var warning = _dereq_(174);
3820 +var onlyChild = _dereq_(138);
3821 +var warning = _dereq_(171);
3822
3823 var createElement = ReactElement.createElement;
3824 var createFactory = ReactElement.createFactory;
3825 var cloneElement = ReactElement.cloneElement;
3826
3827 if ("development" !== 'production') {
3833 - var ReactElementValidator = _dereq_(64);
3828 + var ReactElementValidator = _dereq_(62);
3829 createElement = ReactElementValidator.createElement;
3830 createFactory = ReactElementValidator.createFactory;
3831 cloneElement = ReactElementValidator.cloneElement;
@@ -3887,7 +3882,7 @@ var React = {
3882 };
3883
3884 module.exports = React;
3890 -},{"140":140,"174":174,"175":175,"29":29,"31":31,"32":32,"46":46,"63":63,"64":64,"86":86,"88":88,"99":99}],27:[function(_dereq_,module,exports){
3885 +},{"138":138,"171":171,"172":172,"29":29,"31":31,"32":32,"45":45,"61":61,"62":62,"84":84,"86":86,"97":97}],27:[function(_dereq_,module,exports){
3886 /**
3887 * Copyright 2013-present, Facebook, Inc.
3888 * All rights reserved.
@@ -3901,15 +3896,15 @@ module.exports = React;
3896
3897 'use strict';
3898
3904 -var _assign = _dereq_(175);
3899 +var _assign = _dereq_(172);
3900
3901 var EventConstants = _dereq_(16);
3902 var EventPluginRegistry = _dereq_(18);
3908 -var ReactEventEmitterMixin = _dereq_(67);
3909 -var ViewportMetrics = _dereq_(117);
3903 +var ReactEventEmitterMixin = _dereq_(65);
3904 +var ViewportMetrics = _dereq_(115);
3905
3911 -var getVendorPrefixedEventName = _dereq_(136);
3912 -var isEventSupported = _dereq_(138);
3906 +var getVendorPrefixedEventName = _dereq_(134);
3907 +var isEventSupported = _dereq_(136);
3908
3909 /**
3910 * Summary of `ReactBrowserEventEmitter` event handling:
@@ -4205,7 +4200,7 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
4200 });
4201
4202 module.exports = ReactBrowserEventEmitter;
4208 -},{"117":117,"136":136,"138":138,"16":16,"175":175,"18":18,"67":67}],28:[function(_dereq_,module,exports){
4203 +},{"115":115,"134":134,"136":136,"16":16,"172":172,"18":18,"65":65}],28:[function(_dereq_,module,exports){
4204 (function (process){
4205 /**
4206 * Copyright 2014-present, Facebook, Inc.
@@ -4220,15 +4215,15 @@ module.exports = ReactBrowserEventEmitter;
4215
4216 'use strict';
4217
4223 -var ReactReconciler = _dereq_(90);
4218 +var ReactReconciler = _dereq_(88);
4219
4225 -var instantiateReactComponent = _dereq_(137);
4220 +var instantiateReactComponent = _dereq_(135);
4221 var KeyEscapeUtils = _dereq_(23);
4227 -var shouldUpdateReactComponent = _dereq_(146);
4228 -var traverseAllChildren = _dereq_(147);
4229 -var warning = _dereq_(174);
4222 +var shouldUpdateReactComponent = _dereq_(144);
4223 +var traverseAllChildren = _dereq_(145);
4224 +var warning = _dereq_(171);
4225
4231 -var ReactComponentTreeDevtool;
4226 +var ReactComponentTreeHook;
4227
4228 if (typeof process !== 'undefined' && process.env && "development" === 'test') {
4229 // Temporary hack.
@@ -4236,17 +4231,19 @@ if (typeof process !== 'undefined' && process.env && "development" === 'test') {
4231 // https://github.com/facebook/react/issues/7240
4232 // Remove the inline requires when we don't need them anymore:
4233 // https://github.com/facebook/react/pull/7178
4239 - ReactComponentTreeDevtool = _dereq_(35);
4234 + ReactComponentTreeHook = _dereq_(35);
4235 }
4236
4237 function instantiateChild(childInstances, child, name, selfDebugID) {
4238 // We found a component instance.
4239 var keyUnique = childInstances[name] === undefined;
4240 if ("development" !== 'production') {
4246 - if (!ReactComponentTreeDevtool) {
4247 - ReactComponentTreeDevtool = _dereq_(35);
4241 + if (!ReactComponentTreeHook) {
4242 + ReactComponentTreeHook = _dereq_(35);
4243 + }
4244 + if (!keyUnique) {
4245 + "development" !== '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;
4246 }
4249 - "development" !== 'production' ? warning(keyUnique, '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), ReactComponentTreeDevtool.getStackAddendumByID(selfDebugID)) : void 0;
4247 }
4248 if (child != null && keyUnique) {
4249 childInstances[name] = instantiateReactComponent(child, true);
@@ -4267,7 +4264,7 @@ var ReactChildReconciler = {
4264 * @return {?object} A set of child instances.
4265 * @internal
4266 */
4270 - instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // __DEV__ only
4267 + instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots
4268 ) {
4269 if (nestedChildNodes == null) {
4270 return null;
@@ -4294,7 +4291,8 @@ var ReactChildReconciler = {
4291 * @return {?object} A new set of child instances.
4292 * @internal
4293 */
4297 - updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context) {
4294 + updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots
4295 + ) {
4296 // We currently don't have a way to track moves here but if we use iterators
4297 // instead of for..in we can zip the iterators and check if an item has
4298 // moved.
@@ -4325,7 +4323,7 @@ var ReactChildReconciler = {
4323 nextChildren[name] = nextChildInstance;
4324 // Creating mount image now ensures refs are resolved in right order
4325 // (see https://github.com/facebook/react/pull/7101 for explanation).
4328 - var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context);
4326 + var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);
4327 mountImages.push(nextChildMountImage);
4328 }
4329 }
@@ -4359,7 +4357,7 @@ var ReactChildReconciler = {
4357
4358 module.exports = ReactChildReconciler;
4359 }).call(this,undefined)
4362 -},{"137":137,"146":146,"147":147,"174":174,"23":23,"35":35,"90":90}],29:[function(_dereq_,module,exports){
4360 +},{"135":135,"144":144,"145":145,"171":171,"23":23,"35":35,"88":88}],29:[function(_dereq_,module,exports){
4361 /**
4362 * Copyright 2013-present, Facebook, Inc.
4363 * All rights reserved.
@@ -4374,10 +4372,10 @@ module.exports = ReactChildReconciler;
4372 'use strict';
4373
4374 var PooledClass = _dereq_(25);
4377 -var ReactElement = _dereq_(63);
4375 +var ReactElement = _dereq_(61);
4376
4379 -var emptyFunction = _dereq_(156);
4380 -var traverseAllChildren = _dereq_(147);
4377 +var emptyFunction = _dereq_(154);
4378 +var traverseAllChildren = _dereq_(145);
4379
4380 var twoArgumentPooler = PooledClass.twoArgumentPooler;
4381 var fourArgumentPooler = PooledClass.fourArgumentPooler;
@@ -4551,7 +4549,7 @@ var ReactChildren = {
4549 };
4550
4551 module.exports = ReactChildren;
4554 -},{"147":147,"156":156,"25":25,"63":63}],30:[function(_dereq_,module,exports){
4552 +},{"145":145,"154":154,"25":25,"61":61}],30:[function(_dereq_,module,exports){
4553 /**
4554 * Copyright 2013-present, Facebook, Inc.
4555 * All rights reserved.
@@ -4560,16 +4558,14 @@ module.exports = ReactChildren;
4558 * LICENSE file in the root directory of this source tree. An additional grant
4559 * of patent rights can be found in the PATENTS file in the same directory.
4560 *
4563 - * @providesModule ReactChildrenMutationWarningDevtool
4561 + * @providesModule ReactChildrenMutationWarningHook
4562 */
4563
4564 'use strict';
4565
4568 -var ReactComponentTreeDevtool = _dereq_(35);
4566 +var ReactComponentTreeHook = _dereq_(35);
4567
4570 -var warning = _dereq_(174);
4571 -
4572 -var elements = {};
4568 +var warning = _dereq_(171);
4569
4570 function handleElement(debugID, element) {
4571 if (element == null) {
@@ -4593,28 +4589,22 @@ function handleElement(debugID, element) {
4589 isMutated = true;
4590 }
4591 }
4596 - "development" !== 'production' ? warning(Array.isArray(element._shadowChildren) && !isMutated, 'Component\'s children should not be mutated.%s', ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;
4592 + if (!Array.isArray(element._shadowChildren) || isMutated) {
4593 + "development" !== 'production' ? warning(false, 'Component\'s children should not be mutated.%s', ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
4594 + }
4595 }
4596
4599 -var ReactDOMUnknownPropertyDevtool = {
4600 - onBeforeMountComponent: function (debugID, element) {
4601 - elements[debugID] = element;
4602 - },
4603 - onBeforeUpdateComponent: function (debugID, element) {
4604 - elements[debugID] = element;
4605 - },
4606 - onComponentHasMounted: function (debugID) {
4607 - handleElement(debugID, elements[debugID]);
4608 - delete elements[debugID];
4597 +var ReactChildrenMutationWarningHook = {
4598 + onMountComponent: function (debugID) {
4599 + handleElement(debugID, ReactComponentTreeHook.getElement(debugID));
4600 },
4610 - onComponentHasUpdated: function (debugID) {
4611 - handleElement(debugID, elements[debugID]);
4612 - delete elements[debugID];
4601 + onUpdateComponent: function (debugID) {
4602 + handleElement(debugID, ReactComponentTreeHook.getElement(debugID));
4603 }
4604 };
4605
4616 -module.exports = ReactDOMUnknownPropertyDevtool;
4617 -},{"174":174,"35":35}],31:[function(_dereq_,module,exports){
4606 +module.exports = ReactChildrenMutationWarningHook;
4607 +},{"171":171,"35":35}],31:[function(_dereq_,module,exports){
4608 /**
4609 * Copyright 2013-present, Facebook, Inc.
4610 * All rights reserved.
@@ -4628,20 +4618,20 @@ module.exports = ReactDOMUnknownPropertyDevtool;
4618
4619 'use strict';
4620
4631 -var _prodInvariant = _dereq_(142),
4632 - _assign = _dereq_(175);
4621 +var _prodInvariant = _dereq_(140),
4622 + _assign = _dereq_(172);
4623
4624 var ReactComponent = _dereq_(32);
4635 -var ReactElement = _dereq_(63);
4636 -var ReactPropTypeLocations = _dereq_(85);
4637 -var ReactPropTypeLocationNames = _dereq_(84);
4638 -var ReactNoopUpdateQueue = _dereq_(82);
4625 +var ReactElement = _dereq_(61);
4626 +var ReactPropTypeLocations = _dereq_(83);
4627 +var ReactPropTypeLocationNames = _dereq_(82);
4628 +var ReactNoopUpdateQueue = _dereq_(80);
4629
4640 -var emptyObject = _dereq_(157);
4641 -var invariant = _dereq_(164);
4642 -var keyMirror = _dereq_(167);
4643 -var keyOf = _dereq_(168);
4644 -var warning = _dereq_(174);
4630 +var emptyObject = _dereq_(155);
4631 +var invariant = _dereq_(162);
4632 +var keyMirror = _dereq_(165);
4633 +var keyOf = _dereq_(166);
4634 +var warning = _dereq_(171);
4635
4636 var MIXINS_KEY = keyOf({ mixins: null });
4637
@@ -5347,7 +5337,7 @@ var ReactClass = {
5337 };
5338
5339 module.exports = ReactClass;
5350 -},{"142":142,"157":157,"164":164,"167":167,"168":168,"174":174,"175":175,"32":32,"63":63,"82":82,"84":84,"85":85}],32:[function(_dereq_,module,exports){
5340 +},{"140":140,"155":155,"162":162,"165":165,"166":166,"171":171,"172":172,"32":32,"61":61,"80":80,"82":82,"83":83}],32:[function(_dereq_,module,exports){
5341 /**
5342 * Copyright 2013-present, Facebook, Inc.
5343 * All rights reserved.
@@ -5361,14 +5351,14 @@ module.exports = ReactClass;
5351
5352 'use strict';
5353
5364 -var _prodInvariant = _dereq_(142);
5354 +var _prodInvariant = _dereq_(140);
5355
5366 -var ReactNoopUpdateQueue = _dereq_(82);
5356 +var ReactNoopUpdateQueue = _dereq_(80);
5357
5368 -var canDefineProperty = _dereq_(120);
5369 -var emptyObject = _dereq_(157);
5370 -var invariant = _dereq_(164);
5371 -var warning = _dereq_(174);
5358 +var canDefineProperty = _dereq_(118);
5359 +var emptyObject = _dereq_(155);
5360 +var invariant = _dereq_(162);
5361 +var warning = _dereq_(171);
5362
5363 /**
5364 * Base class helpers for the updating state of a component.
@@ -5466,7 +5456,7 @@ if ("development" !== 'production') {
5456 }
5457
5458 module.exports = ReactComponent;
5469 -},{"120":120,"142":142,"157":157,"164":164,"174":174,"82":82}],33:[function(_dereq_,module,exports){
5459 +},{"118":118,"140":140,"155":155,"162":162,"171":171,"80":80}],33:[function(_dereq_,module,exports){
5460 /**
5461 * Copyright 2013-present, Facebook, Inc.
5462 * All rights reserved.
@@ -5481,7 +5471,7 @@ module.exports = ReactComponent;
5471 'use strict';
5472
5473 var DOMChildrenOperations = _dereq_(7);
5484 -var ReactDOMIDOperations = _dereq_(48);
5474 +var ReactDOMIDOperations = _dereq_(47);
5475
5476 /**
5477 * Abstracts away all functionality of the reconciler that requires knowledge of
@@ -5492,21 +5482,12 @@ var ReactComponentBrowserEnvironment = {
5482
5483 processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,
5484
5495 - replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup,
5496 -
5497 - /**
5498 - * If a particular environment requires that some resources be cleaned up,
5499 - * specify this in the injected Mixin. In the DOM, we would likely want to
5500 - * purge any cached node ID lookups.
5501 - *
5502 - * @private
5503 - */
5504 - unmountIDFromEnvironment: function (rootNodeID) {}
5485 + replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup
5486
5487 };
5488
5489 module.exports = ReactComponentBrowserEnvironment;
5509 -},{"48":48,"7":7}],34:[function(_dereq_,module,exports){
5490 +},{"47":47,"7":7}],34:[function(_dereq_,module,exports){
5491 /**
5492 * Copyright 2014-present, Facebook, Inc.
5493 * All rights reserved.
@@ -5520,21 +5501,14 @@ module.exports = ReactComponentBrowserEnvironment;
5501
5502 'use strict';
5503
5523 -var _prodInvariant = _dereq_(142);
5504 +var _prodInvariant = _dereq_(140);
5505
5525 -var invariant = _dereq_(164);
5506 +var invariant = _dereq_(162);
5507
5508 var injected = false;
5509
5510 var ReactComponentEnvironment = {
5511
5531 - /**
5532 - * Optionally injectable environment dependent cleanup hook. (server vs.
5533 - * browser etc). Example: A browser system caches DOM nodes based on component
5534 - * ID and must remove that cache entry when this instance is unmounted.
5535 - */
5536 - unmountIDFromEnvironment: null,
5537 -
5512 /**
5513 * Optionally injectable hook for swapping out mount images in the middle of
5514 * the tree.
@@ -5550,7 +5524,6 @@ var ReactComponentEnvironment = {
5524 injection: {
5525 injectEnvironment: function (environment) {
5526 !!injected ? "development" !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;
5553 - ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment;
5527 ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;
5528 ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;
5529 injected = true;
@@ -5560,7 +5533,7 @@ var ReactComponentEnvironment = {
5533 };
5534
5535 module.exports = ReactComponentEnvironment;
5563 -},{"142":142,"164":164}],35:[function(_dereq_,module,exports){
5536 +},{"140":140,"162":162}],35:[function(_dereq_,module,exports){
5537 /**
5538 * Copyright 2016-present, Facebook, Inc.
5539 * All rights reserved.
@@ -5569,44 +5542,150 @@ module.exports = ReactComponentEnvironment;
5542 * LICENSE file in the root directory of this source tree. An additional grant
5543 * of patent rights can be found in the PATENTS file in the same directory.
5544 *
5572 - * @providesModule ReactComponentTreeDevtool
5545 + * @providesModule ReactComponentTreeHook
5546 */
5547
5548 'use strict';
5549
5577 -var _prodInvariant = _dereq_(142);
5550 +var _prodInvariant = _dereq_(140);
5551
5552 var ReactCurrentOwner = _dereq_(37);
5553
5581 -var invariant = _dereq_(164);
5582 -var warning = _dereq_(174);
5554 +var invariant = _dereq_(162);
5555 +var warning = _dereq_(171);
5556 +
5557 +function isNative(fn) {
5558 + // Based on isNative() from Lodash
5559 + var funcToString = Function.prototype.toString;
5560 + var hasOwnProperty = Object.prototype.hasOwnProperty;
5561 + var reIsNative = RegExp('^' + funcToString
5562 + // Take an example native function source for comparison
5563 + .call(hasOwnProperty)
5564 + // Strip regex characters so we can use it for regex
5565 + .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
5566 + // Remove hasOwnProperty from the template to make it generic
5567 + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
5568 + try {
5569 + var source = funcToString.call(fn);
5570 + return reIsNative.test(source);
5571 + } catch (err) {
5572 + return false;
5573 + }
5574 +}
5575
5584 -var tree = {};
5585 -var unmountedIDs = {};
5586 -var rootIDs = {};
5576 +var canUseCollections =
5577 +// Array.from
5578 +typeof Array.from === 'function' &&
5579 +// Map
5580 +typeof Map === 'function' && isNative(Map) &&
5581 +// Map.prototype.keys
5582 +Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&
5583 +// Set
5584 +typeof Set === 'function' && isNative(Set) &&
5585 +// Set.prototype.keys
5586 +Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);
5587
5588 -function updateTree(id, update) {
5589 - if (!tree[id]) {
5590 - tree[id] = {
5591 - element: null,
5592 - parentID: null,
5593 - ownerID: null,
5594 - text: null,
5595 - childIDs: [],
5596 - displayName: 'Unknown',
5597 - isMounted: false,
5598 - updateCount: 0
5599 - };
5588 +var itemMap;
5589 +var rootIDSet;
5590 +
5591 +var itemByKey;
5592 +var rootByKey;
5593 +
5594 +if (canUseCollections) {
5595 + itemMap = new Map();
5596 + rootIDSet = new Set();
5597 +} else {
5598 + itemByKey = {};
5599 + rootByKey = {};
5600 +}
5601 +
5602 +var unmountedIDs = [];
5603 +
5604 +// Use non-numeric keys to prevent V8 performance issues:
5605 +// https://github.com/facebook/react/pull/7232
5606 +function getKeyFromID(id) {
5607 + return '.' + id;
5608 +}
5609 +function getIDFromKey(key) {
5610 + return parseInt(key.substr(1), 10);
5611 +}
5612 +
5613 +function get(id) {
5614 + if (canUseCollections) {
5615 + return itemMap.get(id);
5616 + } else {
5617 + var key = getKeyFromID(id);
5618 + return itemByKey[key];
5619 + }
5620 +}
5621 +
5622 +function remove(id) {
5623 + if (canUseCollections) {
5624 + itemMap['delete'](id);
5625 + } else {
5626 + var key = getKeyFromID(id);
5627 + delete itemByKey[key];
5628 + }
5629 +}
5630 +
5631 +function create(id, element, parentID) {
5632 + var item = {
5633 + element: element,
5634 + parentID: parentID,
5635 + text: null,
5636 + childIDs: [],
5637 + isMounted: false,
5638 + updateCount: 0
5639 + };
5640 +
5641 + if (canUseCollections) {
5642 + itemMap.set(id, item);
5643 + } else {
5644 + var key = getKeyFromID(id);
5645 + itemByKey[key] = item;
5646 + }
5647 +}
5648 +
5649 +function addRoot(id) {
5650 + if (canUseCollections) {
5651 + rootIDSet.add(id);
5652 + } else {
5653 + var key = getKeyFromID(id);
5654 + rootByKey[key] = true;
5655 + }
5656 +}
5657 +
5658 +function removeRoot(id) {
5659 + if (canUseCollections) {
5660 + rootIDSet['delete'](id);
5661 + } else {
5662 + var key = getKeyFromID(id);
5663 + delete rootByKey[key];
5664 + }
5665 +}
5666 +
5667 +function getRegisteredIDs() {
5668 + if (canUseCollections) {
5669 + return Array.from(itemMap.keys());
5670 + } else {
5671 + return Object.keys(itemByKey).map(getIDFromKey);
5672 + }
5673 +}
5674 +
5675 +function getRootIDs() {
5676 + if (canUseCollections) {
5677 + return Array.from(rootIDSet.keys());
5678 + } else {
5679 + return Object.keys(rootByKey).map(getIDFromKey);
5680 }
5601 - update(tree[id]);
5681 }
5682
5683 function purgeDeep(id) {
5605 - var item = tree[id];
5684 + var item = get(id);
5685 if (item) {
5686 var childIDs = item.childIDs;
5687
5609 - delete tree[id];
5688 + remove(id);
5689 childIDs.forEach(purgeDeep);
5690 }
5691 }
@@ -5615,102 +5694,109 @@ function describeComponentFrame(name, source, ownerName) {
5694 return '\n in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');
5695 }
5696
5697 +function getDisplayName(element) {
5698 + if (element == null) {
5699 + return '#empty';
5700 + } else if (typeof element === 'string' || typeof element === 'number') {
5701 + return '#text';
5702 + } else if (typeof element.type === 'string') {
5703 + return element.type;
5704 + } else {
5705 + return element.type.displayName || element.type.name || 'Unknown';
5706 + }
5707 +}
5708 +
5709 function describeID(id) {
5619 - var name = ReactComponentTreeDevtool.getDisplayName(id);
5620 - var element = ReactComponentTreeDevtool.getElement(id);
5621 - var ownerID = ReactComponentTreeDevtool.getOwnerID(id);
5710 + var name = ReactComponentTreeHook.getDisplayName(id);
5711 + var element = ReactComponentTreeHook.getElement(id);
5712 + var ownerID = ReactComponentTreeHook.getOwnerID(id);
5713 var ownerName;
5714 if (ownerID) {
5624 - ownerName = ReactComponentTreeDevtool.getDisplayName(ownerID);
5715 + ownerName = ReactComponentTreeHook.getDisplayName(ownerID);
5716 }
5626 - "development" !== 'production' ? warning(element, 'ReactComponentTreeDevtool: Missing React element for debugID %s when ' + 'building stack', id) : void 0;
5717 + "development" !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;
5718 return describeComponentFrame(name, element && element._source, ownerName);
5719 }
5720
5630 -var ReactComponentTreeDevtool = {
5631 - onSetDisplayName: function (id, displayName) {
5632 - updateTree(id, function (item) {
5633 - return item.displayName = displayName;
5634 - });
5635 - },
5721 +var ReactComponentTreeHook = {
5722 onSetChildren: function (id, nextChildIDs) {
5637 - updateTree(id, function (item) {
5638 - item.childIDs = nextChildIDs;
5639 -
5640 - nextChildIDs.forEach(function (nextChildID) {
5641 - var nextChild = tree[nextChildID];
5642 - !nextChild ? "development" !== 'production' ? invariant(false, 'Expected devtool events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('68') : void 0;
5643 - !(nextChild.displayName != null) ? "development" !== 'production' ? invariant(false, 'Expected onSetDisplayName() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('69') : void 0;
5644 - !(nextChild.childIDs != null || nextChild.text != null) ? "development" !== 'production' ? invariant(false, 'Expected onSetChildren() or onSetText() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('70') : void 0;
5645 - !nextChild.isMounted ? "development" !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;
5646 - if (nextChild.parentID == null) {
5647 - nextChild.parentID = id;
5648 - // TODO: This shouldn't be necessary but mounting a new root during in
5649 - // componentWillMount currently causes not-yet-mounted components to
5650 - // be purged from our tree data so their parent ID is missing.
5651 - }
5652 - !(nextChild.parentID === id) ? "development" !== 'production' ? invariant(false, 'Expected onSetParent() and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('72', nextChildID, nextChild.parentID, id) : void 0;
5653 - });
5654 - });
5655 - },
5656 - onSetOwner: function (id, ownerID) {
5657 - updateTree(id, function (item) {
5658 - return item.ownerID = ownerID;
5659 - });
5660 - },
5661 - onSetParent: function (id, parentID) {
5662 - updateTree(id, function (item) {
5663 - return item.parentID = parentID;
5664 - });
5665 - },
5666 - onSetText: function (id, text) {
5667 - updateTree(id, function (item) {
5668 - return item.text = text;
5669 - });
5723 + var item = get(id);
5724 + item.childIDs = nextChildIDs;
5725 +
5726 + for (var i = 0; i < nextChildIDs.length; i++) {
5727 + var nextChildID = nextChildIDs[i];
5728 + var nextChild = get(nextChildID);
5729 + !nextChild ? "development" !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;
5730 + !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? "development" !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;
5731 + !nextChild.isMounted ? "development" !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;
5732 + if (nextChild.parentID == null) {
5733 + nextChild.parentID = id;
5734 + // TODO: This shouldn't be necessary but mounting a new root during in
5735 + // componentWillMount currently causes not-yet-mounted components to
5736 + // be purged from our tree data so their parent ID is missing.
5737 + }
5738 + !(nextChild.parentID === id) ? "development" !== '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;
5739 + }
5740 },
5671 - onBeforeMountComponent: function (id, element) {
5672 - updateTree(id, function (item) {
5673 - return item.element = element;
5674 - });
5741 + onBeforeMountComponent: function (id, element, parentID) {
5742 + create(id, element, parentID);
5743 },
5744 onBeforeUpdateComponent: function (id, element) {
5677 - updateTree(id, function (item) {
5678 - return item.element = element;
5679 - });
5745 + var item = get(id);
5746 + if (!item || !item.isMounted) {
5747 + // We may end up here as a result of setState() in componentWillUnmount().
5748 + // In this case, ignore the element.
5749 + return;
5750 + }
5751 + item.element = element;
5752 },
5753 onMountComponent: function (id) {
5682 - updateTree(id, function (item) {
5683 - return item.isMounted = true;
5684 - });
5685 - },
5686 - onMountRootComponent: function (id) {
5687 - rootIDs[id] = true;
5754 + var item = get(id);
5755 + item.isMounted = true;
5756 + var isRoot = item.parentID === 0;
5757 + if (isRoot) {
5758 + addRoot(id);
5759 + }
5760 },
5761 onUpdateComponent: function (id) {
5690 - updateTree(id, function (item) {
5691 - return item.updateCount++;
5692 - });
5762 + var item = get(id);
5763 + if (!item || !item.isMounted) {
5764 + // We may end up here as a result of setState() in componentWillUnmount().
5765 + // In this case, ignore the element.
5766 + return;
5767 + }
5768 + item.updateCount++;
5769 },
5770 onUnmountComponent: function (id) {
5695 - updateTree(id, function (item) {
5696 - return item.isMounted = false;
5697 - });
5698 - unmountedIDs[id] = true;
5699 - delete rootIDs[id];
5771 + var item = get(id);
5772 + if (item) {
5773 + // We need to check if it exists.
5774 + // `item` might not exist if it is inside an error boundary, and a sibling
5775 + // error boundary child threw while mounting. Then this instance never
5776 + // got a chance to mount, but it still gets an unmounting event during
5777 + // the error boundary cleanup.
5778 + item.isMounted = false;
5779 + var isRoot = item.parentID === 0;
5780 + if (isRoot) {
5781 + removeRoot(id);
5782 + }
5783 + }
5784 + unmountedIDs.push(id);
5785 },
5786 purgeUnmountedComponents: function () {
5702 - if (ReactComponentTreeDevtool._preventPurging) {
5787 + if (ReactComponentTreeHook._preventPurging) {
5788 // Should only be used for testing.
5789 return;
5790 }
5791
5707 - for (var id in unmountedIDs) {
5792 + for (var i = 0; i < unmountedIDs.length; i++) {
5793 + var id = unmountedIDs[i];
5794 purgeDeep(id);
5795 }
5710 - unmountedIDs = {};
5796 + unmountedIDs.length = 0;
5797 },
5798 isMounted: function (id) {
5713 - var item = tree[id];
5799 + var item = get(id);
5800 return item ? item.isMounted : false;
5801 },
5802 getCurrentStackAddendum: function (topElement) {
@@ -5725,61 +5811,72 @@ var ReactComponentTreeDevtool = {
5811 var currentOwner = ReactCurrentOwner.current;
5812 var id = currentOwner && currentOwner._debugID;
5813
5728 - info += ReactComponentTreeDevtool.getStackAddendumByID(id);
5814 + info += ReactComponentTreeHook.getStackAddendumByID(id);
5815 return info;
5816 },
5817 getStackAddendumByID: function (id) {
5818 var info = '';
5819 while (id) {
5820 info += describeID(id);
5735 - id = ReactComponentTreeDevtool.getParentID(id);
5821 + id = ReactComponentTreeHook.getParentID(id);
5822 }
5823 return info;
5824 },
5825 getChildIDs: function (id) {
5740 - var item = tree[id];
5826 + var item = get(id);
5827 return item ? item.childIDs : [];
5828 },
5829 getDisplayName: function (id) {
5744 - var item = tree[id];
5745 - return item ? item.displayName : 'Unknown';
5830 + var element = ReactComponentTreeHook.getElement(id);
5831 + if (!element) {
5832 + return null;
5833 + }
5834 + return getDisplayName(element);
5835 },
5836 getElement: function (id) {
5748 - var item = tree[id];
5837 + var item = get(id);
5838 return item ? item.element : null;
5839 },
5840 getOwnerID: function (id) {
5752 - var item = tree[id];
5753 - return item ? item.ownerID : null;
5841 + var element = ReactComponentTreeHook.getElement(id);
5842 + if (!element || !element._owner) {
5843 + return null;
5844 + }
5845 + return element._owner._debugID;
5846 },
5847 getParentID: function (id) {
5756 - var item = tree[id];
5848 + var item = get(id);
5849 return item ? item.parentID : null;
5850 },
5851 getSource: function (id) {
5760 - var item = tree[id];
5852 + var item = get(id);
5853 var element = item ? item.element : null;
5854 var source = element != null ? element._source : null;
5855 return source;
5856 },
5857 getText: function (id) {
5766 - var item = tree[id];
5767 - return item ? item.text : null;
5858 + var element = ReactComponentTreeHook.getElement(id);
5859 + if (typeof element === 'string') {
5860 + return element;
5861 + } else if (typeof element === 'number') {
5862 + return '' + element;
5863 + } else {
5864 + return null;
5865 + }
5866 },
5867 getUpdateCount: function (id) {
5770 - var item = tree[id];
5868 + var item = get(id);
5869 return item ? item.updateCount : 0;
5870 },
5773 - getRootIDs: function () {
5774 - return Object.keys(rootIDs);
5775 - },
5776 - getRegisteredIDs: function () {
5777 - return Object.keys(tree);
5778 - }
5871 +
5872 +
5873 + getRegisteredIDs: getRegisteredIDs,
5874 +
5875 + getRootIDs: getRootIDs
5876 };
5877
5781 -module.exports = ReactComponentTreeDevtool;
5782 -},{"142":142,"164":164,"174":174,"37":37}],36:[function(_dereq_,module,exports){
5878 +module.exports = ReactComponentTreeHook;
5879 +},{"140":140,"162":162,"171":171,"37":37}],36:[function(_dereq_,module,exports){
5880 /**
5881 * Copyright 2013-present, Facebook, Inc.
5882 * All rights reserved.
@@ -5793,25 +5890,25 @@ module.exports = ReactComponentTreeDevtool;
5890
5891 'use strict';
5892
5796 -var _prodInvariant = _dereq_(142),
5797 - _assign = _dereq_(175);
5893 +var _prodInvariant = _dereq_(140),
5894 + _assign = _dereq_(172);
5895
5896 var ReactComponentEnvironment = _dereq_(34);
5897 var ReactCurrentOwner = _dereq_(37);
5801 -var ReactElement = _dereq_(63);
5802 -var ReactErrorUtils = _dereq_(66);
5803 -var ReactInstanceMap = _dereq_(74);
5804 -var ReactInstrumentation = _dereq_(75);
5805 -var ReactNodeTypes = _dereq_(81);
5806 -var ReactPropTypeLocations = _dereq_(85);
5807 -var ReactReconciler = _dereq_(90);
5808 -
5809 -var checkReactTypeSpec = _dereq_(121);
5810 -var emptyObject = _dereq_(157);
5811 -var invariant = _dereq_(164);
5812 -var shallowEqual = _dereq_(173);
5813 -var shouldUpdateReactComponent = _dereq_(146);
5814 -var warning = _dereq_(174);
5898 +var ReactElement = _dereq_(61);
5899 +var ReactErrorUtils = _dereq_(64);
5900 +var ReactInstanceMap = _dereq_(72);
5901 +var ReactInstrumentation = _dereq_(73);
5902 +var ReactNodeTypes = _dereq_(79);
5903 +var ReactPropTypeLocations = _dereq_(83);
5904 +var ReactReconciler = _dereq_(88);
5905 +
5906 +var checkReactTypeSpec = _dereq_(119);
5907 +var emptyObject = _dereq_(155);
5908 +var invariant = _dereq_(162);
5909 +var shallowEqual = _dereq_(170);
5910 +var shouldUpdateReactComponent = _dereq_(144);
5911 +var warning = _dereq_(171);
5912
5913 var CompositeTypes = {
5914 ImpureClass: 0,
@@ -5913,7 +6010,7 @@ var ReactCompositeComponentMixin = {
6010 */
6011 construct: function (element) {
6012 this._currentElement = element;
5916 - this._rootNodeID = null;
6013 + this._rootNodeID = 0;
6014 this._compositeType = null;
6015 this._instance = null;
6016 this._hostParent = null;
@@ -5955,8 +6052,6 @@ var ReactCompositeComponentMixin = {
6052 * @internal
6053 */
6054 mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
5958 - var _this = this;
5959 -
6055 this._context = context;
6056 this._mountOrder = nextMountID++;
6057 this._hostParent = hostParent;
@@ -6052,15 +6147,6 @@ var ReactCompositeComponentMixin = {
6147 }
6148 }
6149
6055 - if ("development" !== 'production') {
6056 - if (this._debugID) {
6057 - var callback = function (component) {
6058 - return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID);
6059 - };
6060 - transaction.getReactMountReady().enqueue(callback, this);
6061 - }
6062 - }
6063 -
6150 return markup;
6151 },
6152
@@ -6170,13 +6256,12 @@ var ReactCompositeComponentMixin = {
6256 var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */
6257 );
6258 this._renderedComponent = child;
6259 +
6260 + var selfDebugID = 0;
6261 if ("development" !== 'production') {
6174 - if (child._debugID !== 0 && this._debugID !== 0) {
6175 - ReactInstrumentation.debugTool.onSetParent(child._debugID, this._debugID);
6176 - }
6262 + selfDebugID = this._debugID;
6263 }
6178 -
6179 - var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context));
6264 + var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), selfDebugID);
6265
6266 if ("development" !== 'production') {
6267 if (this._debugID !== 0) {
@@ -6242,7 +6327,7 @@ var ReactCompositeComponentMixin = {
6327 // These fields do not really need to be reset since this object is no
6328 // longer accessible.
6329 this._context = null;
6245 - this._rootNodeID = null;
6330 + this._rootNodeID = 0;
6331 this._topLevelWrapper = null;
6332
6333 // Delete the reference from the instance to this internal representation
@@ -6498,8 +6583,6 @@ var ReactCompositeComponentMixin = {
6583 * @private
6584 */
6585 _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {
6501 - var _this2 = this;
6502 -
6586 var inst = this._instance;
6587
6588 var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);
@@ -6541,15 +6624,6 @@ var ReactCompositeComponentMixin = {
6624 transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);
6625 }
6626 }
6544 -
6545 - if ("development" !== 'production') {
6546 - if (this._debugID) {
6547 - var callback = function () {
6548 - return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID);
6549 - };
6550 - transaction.getReactMountReady().enqueue(callback, this);
6551 - }
6552 - }
6627 },
6628
6629 /**
@@ -6573,13 +6647,12 @@ var ReactCompositeComponentMixin = {
6647 var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */
6648 );
6649 this._renderedComponent = child;
6650 +
6651 + var selfDebugID = 0;
6652 if ("development" !== 'production') {
6577 - if (child._debugID !== 0 && this._debugID !== 0) {
6578 - ReactInstrumentation.debugTool.onSetParent(child._debugID, this._debugID);
6579 - }
6653 + selfDebugID = this._debugID;
6654 }
6581 -
6582 - var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context));
6655 + var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), selfDebugID);
6656
6657 if ("development" !== 'production') {
6658 if (this._debugID !== 0) {
@@ -6724,7 +6797,7 @@ var ReactCompositeComponent = {
6797 };
6798
6799 module.exports = ReactCompositeComponent;
6727 -},{"121":121,"142":142,"146":146,"157":157,"164":164,"173":173,"174":174,"175":175,"34":34,"37":37,"63":63,"66":66,"74":74,"75":75,"81":81,"85":85,"90":90}],37:[function(_dereq_,module,exports){
6800 +},{"119":119,"140":140,"144":144,"155":155,"162":162,"170":170,"171":171,"172":172,"34":34,"37":37,"61":61,"64":64,"72":72,"73":73,"79":79,"83":83,"88":88}],37:[function(_dereq_,module,exports){
6801 /**
6802 * Copyright 2013-present, Facebook, Inc.
6803 * All rights reserved.
@@ -6773,16 +6846,16 @@ module.exports = ReactCurrentOwner;
6846 'use strict';
6847
6848 var ReactDOMComponentTree = _dereq_(42);
6776 -var ReactDefaultInjection = _dereq_(62);
6777 -var ReactMount = _dereq_(78);
6778 -var ReactReconciler = _dereq_(90);
6779 -var ReactUpdates = _dereq_(98);
6780 -var ReactVersion = _dereq_(99);
6849 +var ReactDefaultInjection = _dereq_(60);
6850 +var ReactMount = _dereq_(76);
6851 +var ReactReconciler = _dereq_(88);
6852 +var ReactUpdates = _dereq_(96);
6853 +var ReactVersion = _dereq_(97);
6854
6782 -var findDOMNode = _dereq_(125);
6783 -var getHostComponentFromComposite = _dereq_(132);
6784 -var renderSubtreeIntoContainer = _dereq_(143);
6785 -var warning = _dereq_(174);
6855 +var findDOMNode = _dereq_(123);
6856 +var getHostComponentFromComposite = _dereq_(130);
6857 +var renderSubtreeIntoContainer = _dereq_(141);
6858 +var warning = _dereq_(171);
6859
6860 ReactDefaultInjection.inject();
6861
@@ -6822,7 +6895,7 @@ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVT
6895 }
6896
6897 if ("development" !== 'production') {
6825 - var ExecutionEnvironment = _dereq_(150);
6898 + var ExecutionEnvironment = _dereq_(148);
6899 if (ExecutionEnvironment.canUseDOM && window.top === window.self) {
6900
6901 // First check if devtools is not installed
@@ -6857,8 +6930,17 @@ if ("development" !== 'production') {
6930 }
6931 }
6932
6933 +if ("development" !== 'production') {
6934 + var ReactInstrumentation = _dereq_(73);
6935 + var ReactDOMUnknownPropertyHook = _dereq_(57);
6936 + var ReactDOMNullInputValuePropHook = _dereq_(49);
6937 +
6938 + ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);
6939 + ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);
6940 +}
6941 +
6942 module.exports = ReactDOM;
6861 -},{"125":125,"132":132,"143":143,"150":150,"174":174,"42":42,"62":62,"78":78,"90":90,"98":98,"99":99}],39:[function(_dereq_,module,exports){
6943 +},{"123":123,"130":130,"141":141,"148":148,"171":171,"42":42,"49":49,"57":57,"60":60,"73":73,"76":76,"88":88,"96":96,"97":97}],39:[function(_dereq_,module,exports){
6944 /**
6945 * Copyright 2013-present, Facebook, Inc.
6946 * All rights reserved.
@@ -6899,8 +6981,8 @@ module.exports = ReactDOMButton;
6981
6982 'use strict';
6983
6902 -var _prodInvariant = _dereq_(142),
6903 - _assign = _dereq_(175);
6984 +var _prodInvariant = _dereq_(140),
6985 + _assign = _dereq_(172);
6986
6987 var AutoFocusUtils = _dereq_(1);
6988 var CSSPropertyOperations = _dereq_(4);
@@ -6912,26 +6994,25 @@ var EventConstants = _dereq_(16);
6994 var EventPluginHub = _dereq_(17);
6995 var EventPluginRegistry = _dereq_(18);
6996 var ReactBrowserEventEmitter = _dereq_(27);
6915 -var ReactComponentBrowserEnvironment = _dereq_(33);
6997 var ReactDOMButton = _dereq_(39);
6998 var ReactDOMComponentFlags = _dereq_(41);
6999 var ReactDOMComponentTree = _dereq_(42);
6919 -var ReactDOMInput = _dereq_(49);
6920 -var ReactDOMOption = _dereq_(52);
6921 -var ReactDOMSelect = _dereq_(53);
6922 -var ReactDOMTextarea = _dereq_(57);
6923 -var ReactInstrumentation = _dereq_(75);
6924 -var ReactMultiChild = _dereq_(79);
6925 -var ReactServerRenderingTransaction = _dereq_(94);
6926 -
6927 -var emptyFunction = _dereq_(156);
6928 -var escapeTextContentForBrowser = _dereq_(124);
6929 -var invariant = _dereq_(164);
6930 -var isEventSupported = _dereq_(138);
6931 -var keyOf = _dereq_(168);
6932 -var shallowEqual = _dereq_(173);
6933 -var validateDOMNesting = _dereq_(148);
6934 -var warning = _dereq_(174);
7000 +var ReactDOMInput = _dereq_(48);
7001 +var ReactDOMOption = _dereq_(50);
7002 +var ReactDOMSelect = _dereq_(51);
7003 +var ReactDOMTextarea = _dereq_(55);
7004 +var ReactInstrumentation = _dereq_(73);
7005 +var ReactMultiChild = _dereq_(77);
7006 +var ReactServerRenderingTransaction = _dereq_(92);
7007 +
7008 +var emptyFunction = _dereq_(154);
7009 +var escapeTextContentForBrowser = _dereq_(122);
7010 +var invariant = _dereq_(162);
7011 +var isEventSupported = _dereq_(136);
7012 +var keyOf = _dereq_(166);
7013 +var shallowEqual = _dereq_(170);
7014 +var validateDOMNesting = _dereq_(146);
7015 +var warning = _dereq_(171);
7016
7017 var Flags = ReactDOMComponentFlags;
7018 var deleteListener = EventPluginHub.deleteListener;
@@ -7087,7 +7168,8 @@ if ("development" !== 'production') {
7168 setContentChildForInstrumentation = function (content) {
7169 var hasExistingContent = this._contentDebugID != null;
7170 var debugID = this._debugID;
7090 - var contentDebugID = debugID + '#text';
7171 + // This ID represents the inlined child that has no backing instance:
7172 + var contentDebugID = -debugID;
7173
7174 if (content == null) {
7175 if (hasExistingContent) {
@@ -7098,17 +7180,11 @@ if ("development" !== 'production') {
7180 }
7181
7182 this._contentDebugID = contentDebugID;
7101 - var text = '' + content;
7102 -
7103 - ReactInstrumentation.debugTool.onSetDisplayName(contentDebugID, '#text');
7104 - ReactInstrumentation.debugTool.onSetParent(contentDebugID, debugID);
7105 - ReactInstrumentation.debugTool.onSetText(contentDebugID, text);
7106 -
7183 if (hasExistingContent) {
7184 ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);
7185 ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);
7186 } else {
7111 - ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content);
7187 + ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);
7188 ReactInstrumentation.debugTool.onMountComponent(contentDebugID);
7189 ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);
7190 }
@@ -7269,8 +7345,8 @@ function ReactDOMComponent(element) {
7345 this._previousStyleCopy = null;
7346 this._hostNode = null;
7347 this._hostParent = null;
7272 - this._rootNodeID = null;
7273 - this._domID = null;
7348 + this._rootNodeID = 0;
7349 + this._domID = 0;
7350 this._hostContainerInfo = null;
7351 this._wrapperState = null;
7352 this._topLevelWrapper = null;
@@ -7291,14 +7367,12 @@ ReactDOMComponent.Mixin = {
7367 *
7368 * @internal
7369 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
7294 - * @param {?ReactDOMComponent} the containing DOM component instance
7370 + * @param {?ReactDOMComponent} the parent component instance
7371 * @param {?object} info about the host container
7372 * @param {object} context
7373 * @return {string} The computed markup.
7374 */
7375 mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
7300 - var _this = this;
7301 -
7376 this._rootNodeID = globalIdCounter++;
7377 this._domID = hostContainerInfo._idCounter++;
7378 this._hostParent = hostParent;
@@ -7454,15 +7528,6 @@ ReactDOMComponent.Mixin = {
7528 break;
7529 }
7530
7457 - if ("development" !== 'production') {
7458 - if (this._debugID) {
7459 - var callback = function () {
7460 - return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID);
7461 - };
7462 - transaction.getReactMountReady().enqueue(callback, this);
7463 - }
7464 - }
7465 -
7531 return mountImage;
7532 },
7533
@@ -7631,8 +7696,6 @@ ReactDOMComponent.Mixin = {
7696 * @overridable
7697 */
7698 updateComponent: function (transaction, prevElement, nextElement, context) {
7634 - var _this2 = this;
7635 -
7699 var lastProps = prevElement.props;
7700 var nextProps = this._currentElement.props;
7701
@@ -7642,7 +7705,6 @@ ReactDOMComponent.Mixin = {
7705 nextProps = ReactDOMButton.getHostProps(this, nextProps);
7706 break;
7707 case 'input':
7645 - ReactDOMInput.updateWrapper(this);
7708 lastProps = ReactDOMInput.getHostProps(this, lastProps);
7709 nextProps = ReactDOMInput.getHostProps(this, nextProps);
7710 break;
@@ -7655,7 +7717,6 @@ ReactDOMComponent.Mixin = {
7717 nextProps = ReactDOMSelect.getHostProps(this, nextProps);
7718 break;
7719 case 'textarea':
7658 - ReactDOMTextarea.updateWrapper(this);
7720 lastProps = ReactDOMTextarea.getHostProps(this, lastProps);
7721 nextProps = ReactDOMTextarea.getHostProps(this, nextProps);
7722 break;
@@ -7665,19 +7726,21 @@ ReactDOMComponent.Mixin = {
7726 this._updateDOMProperties(lastProps, nextProps, transaction);
7727 this._updateDOMChildren(lastProps, nextProps, transaction, context);
7728
7668 - if (this._tag === 'select') {
7669 - // <select> value update needs to occur after <option> children
7670 - // reconciliation
7671 - transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);
7672 - }
7673 -
7674 - if ("development" !== 'production') {
7675 - if (this._debugID) {
7676 - var callback = function () {
7677 - return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID);
7678 - };
7679 - transaction.getReactMountReady().enqueue(callback, this);
7680 - }
7729 + switch (this._tag) {
7730 + case 'input':
7731 + // Update the wrapper around inputs *after* updating props. This has to
7732 + // happen after `_updateDOMProperties`. Otherwise HTML5 input validations
7733 + // raise warnings and prevent the new value from being assigned.
7734 + ReactDOMInput.updateWrapper(this);
7735 + break;
7736 + case 'textarea':
7737 + ReactDOMTextarea.updateWrapper(this);
7738 + break;
7739 + case 'select':
7740 + // <select> value update needs to occur after <option> children
7741 + // reconciliation
7742 + transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);
7743 + break;
7744 }
7745 },
7746
@@ -7890,9 +7953,8 @@ ReactDOMComponent.Mixin = {
7953 this.unmountChildren(safely);
7954 ReactDOMComponentTree.uncacheNode(this);
7955 EventPluginHub.deleteAllListeners(this);
7893 - ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);
7894 - this._rootNodeID = null;
7895 - this._domID = null;
7956 + this._rootNodeID = 0;
7957 + this._domID = 0;
7958 this._wrapperState = null;
7959
7960 if ("development" !== 'production') {
@@ -7909,7 +7971,7 @@ ReactDOMComponent.Mixin = {
7971 _assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);
7972
7973 module.exports = ReactDOMComponent;
7912 -},{"1":1,"10":10,"11":11,"124":124,"138":138,"142":142,"148":148,"156":156,"16":16,"164":164,"168":168,"17":17,"173":173,"174":174,"175":175,"18":18,"27":27,"33":33,"39":39,"4":4,"41":41,"42":42,"49":49,"52":52,"53":53,"57":57,"75":75,"79":79,"8":8,"9":9,"94":94}],41:[function(_dereq_,module,exports){
7974 +},{"1":1,"10":10,"11":11,"122":122,"136":136,"140":140,"146":146,"154":154,"16":16,"162":162,"166":166,"17":17,"170":170,"171":171,"172":172,"18":18,"27":27,"39":39,"4":4,"41":41,"42":42,"48":48,"50":50,"51":51,"55":55,"73":73,"77":77,"8":8,"9":9,"92":92}],41:[function(_dereq_,module,exports){
7975 /**
7976 * Copyright 2015-present, Facebook, Inc.
7977 * All rights reserved.
@@ -7942,12 +8004,12 @@ module.exports = ReactDOMComponentFlags;
8004
8005 'use strict';
8006
7945 -var _prodInvariant = _dereq_(142);
8007 +var _prodInvariant = _dereq_(140);
8008
8009 var DOMProperty = _dereq_(10);
8010 var ReactDOMComponentFlags = _dereq_(41);
8011
7950 -var invariant = _dereq_(164);
8012 +var invariant = _dereq_(162);
8013
8014 var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
8015 var Flags = ReactDOMComponentFlags;
@@ -8013,7 +8075,7 @@ function precacheChildNodes(inst, node) {
8075 }
8076 var childInst = children[name];
8077 var childID = getRenderedHostOrTextFromComponent(childInst)._domID;
8016 - if (childID == null) {
8078 + if (childID === 0) {
8079 // We're currently unmounting this child in ReactMultiChild; skip it.
8080 continue;
8081 }
@@ -8117,7 +8179,7 @@ var ReactDOMComponentTree = {
8179 };
8180
8181 module.exports = ReactDOMComponentTree;
8120 -},{"10":10,"142":142,"164":164,"41":41}],43:[function(_dereq_,module,exports){
8182 +},{"10":10,"140":140,"162":162,"41":41}],43:[function(_dereq_,module,exports){
8183 /**
8184 * Copyright 2013-present, Facebook, Inc.
8185 * All rights reserved.
@@ -8131,7 +8193,7 @@ module.exports = ReactDOMComponentTree;
8193
8194 'use strict';
8195
8134 -var validateDOMNesting = _dereq_(148);
8196 +var validateDOMNesting = _dereq_(146);
8197
8198 var DOC_NODE_TYPE = 9;
8199
@@ -8151,75 +8213,7 @@ function ReactDOMContainerInfo(topLevelWrapper, node) {
8213 }
8214
8215 module.exports = ReactDOMContainerInfo;
8154 -},{"148":148}],44:[function(_dereq_,module,exports){
8155 -/**
8156 - * Copyright 2013-present, Facebook, Inc.
8157 - * All rights reserved.
8158 - *
8159 - * This source code is licensed under the BSD-style license found in the
8160 - * LICENSE file in the root directory of this source tree. An additional grant
8161 - * of patent rights can be found in the PATENTS file in the same directory.
8162 - *
8163 - * @providesModule ReactDOMDebugTool
8164 - */
8165 -
8166 -'use strict';
8167 -
8168 -var ReactDOMNullInputValuePropDevtool = _dereq_(51);
8169 -var ReactDOMUnknownPropertyDevtool = _dereq_(59);
8170 -var ReactDebugTool = _dereq_(60);
8171 -
8172 -var warning = _dereq_(174);
8173 -
8174 -var eventHandlers = [];
8175 -var handlerDoesThrowForEvent = {};
8176 -
8177 -function emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) {
8178 - eventHandlers.forEach(function (handler) {
8179 - try {
8180 - if (handler[handlerFunctionName]) {
8181 - handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5);
8182 - }
8183 - } catch (e) {
8184 - "development" !== 'production' ? warning(handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e + '\n' + e.stack) : void 0;
8185 - handlerDoesThrowForEvent[handlerFunctionName] = true;
8186 - }
8187 - });
8188 -}
8189 -
8190 -var ReactDOMDebugTool = {
8191 - addDevtool: function (devtool) {
8192 - ReactDebugTool.addDevtool(devtool);
8193 - eventHandlers.push(devtool);
8194 - },
8195 - removeDevtool: function (devtool) {
8196 - ReactDebugTool.removeDevtool(devtool);
8197 - for (var i = 0; i < eventHandlers.length; i++) {
8198 - if (eventHandlers[i] === devtool) {
8199 - eventHandlers.splice(i, 1);
8200 - i--;
8201 - }
8202 - }
8203 - },
8204 - onCreateMarkupForProperty: function (name, value) {
8205 - emitEvent('onCreateMarkupForProperty', name, value);
8206 - },
8207 - onSetValueForProperty: function (node, name, value) {
8208 - emitEvent('onSetValueForProperty', node, name, value);
8209 - },
8210 - onDeleteValueForProperty: function (node, name) {
8211 - emitEvent('onDeleteValueForProperty', node, name);
8212 - },
8213 - onTestEvent: function () {
8214 - emitEvent('onTestEvent');
8215 - }
8216 -};
8217 -
8218 -ReactDOMDebugTool.addDevtool(ReactDOMUnknownPropertyDevtool);
8219 -ReactDOMDebugTool.addDevtool(ReactDOMNullInputValuePropDevtool);
8220 -
8221 -module.exports = ReactDOMDebugTool;
8222 -},{"174":174,"51":51,"59":59,"60":60}],45:[function(_dereq_,module,exports){
8216 +},{"146":146}],44:[function(_dereq_,module,exports){
8217 /**
8218 * Copyright 2014-present, Facebook, Inc.
8219 * All rights reserved.
@@ -8233,7 +8227,7 @@ module.exports = ReactDOMDebugTool;
8227
8228 'use strict';
8229
8236 -var _assign = _dereq_(175);
8230 +var _assign = _dereq_(172);
8231
8232 var DOMLazyTree = _dereq_(8);
8233 var ReactDOMComponentTree = _dereq_(42);
@@ -8245,7 +8239,7 @@ var ReactDOMEmptyComponent = function (instantiate) {
8239 this._hostNode = null;
8240 this._hostParent = null;
8241 this._hostContainerInfo = null;
8248 - this._domID = null;
8242 + this._domID = 0;
8243 };
8244 _assign(ReactDOMEmptyComponent.prototype, {
8245 mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
@@ -8280,7 +8274,7 @@ _assign(ReactDOMEmptyComponent.prototype, {
8274 });
8275
8276 module.exports = ReactDOMEmptyComponent;
8283 -},{"175":175,"42":42,"8":8}],46:[function(_dereq_,module,exports){
8277 +},{"172":172,"42":42,"8":8}],45:[function(_dereq_,module,exports){
8278 /**
8279 * Copyright 2013-present, Facebook, Inc.
8280 * All rights reserved.
@@ -8294,22 +8288,17 @@ module.exports = ReactDOMEmptyComponent;
8288
8289 'use strict';
8290
8297 -var ReactElement = _dereq_(63);
8298 -
8299 -var mapObject = _dereq_(169);
8291 +var ReactElement = _dereq_(61);
8292
8293 /**
8294 * Create a factory that creates HTML tag elements.
8295 *
8304 - * @param {string} tag Tag name (e.g. `div`).
8296 * @private
8297 */
8307 -function createDOMFactory(tag) {
8308 - if ("development" !== 'production') {
8309 - var ReactElementValidator = _dereq_(64);
8310 - return ReactElementValidator.createFactory(tag);
8311 - }
8312 - return ReactElement.createFactory(tag);
8298 +var createDOMFactory = ReactElement.createFactory;
8299 +if ("development" !== 'production') {
8300 + var ReactElementValidator = _dereq_(62);
8301 + createDOMFactory = ReactElementValidator.createFactory;
8302 }
8303
8304 /**
@@ -8318,146 +8307,145 @@ function createDOMFactory(tag) {
8307 *
8308 * @public
8309 */
8321 -var ReactDOMFactories = mapObject({
8322 - a: 'a',
8323 - abbr: 'abbr',
8324 - address: 'address',
8325 - area: 'area',
8326 - article: 'article',
8327 - aside: 'aside',
8328 - audio: 'audio',
8329 - b: 'b',
8330 - base: 'base',
8331 - bdi: 'bdi',
8332 - bdo: 'bdo',
8333 - big: 'big',
8334 - blockquote: 'blockquote',
8335 - body: 'body',
8336 - br: 'br',
8337 - button: 'button',
8338 - canvas: 'canvas',
8339 - caption: 'caption',
8340 - cite: 'cite',
8341 - code: 'code',
8342 - col: 'col',
8343 - colgroup: 'colgroup',
8344 - data: 'data',
8345 - datalist: 'datalist',
8346 - dd: 'dd',
8347 - del: 'del',
8348 - details: 'details',
8349 - dfn: 'dfn',
8350 - dialog: 'dialog',
8351 - div: 'div',
8352 - dl: 'dl',
8353 - dt: 'dt',
8354 - em: 'em',
8355 - embed: 'embed',
8356 - fieldset: 'fieldset',
8357 - figcaption: 'figcaption',
8358 - figure: 'figure',
8359 - footer: 'footer',
8360 - form: 'form',
8361 - h1: 'h1',
8362 - h2: 'h2',
8363 - h3: 'h3',
8364 - h4: 'h4',
8365 - h5: 'h5',
8366 - h6: 'h6',
8367 - head: 'head',
8368 - header: 'header',
8369 - hgroup: 'hgroup',
8370 - hr: 'hr',
8371 - html: 'html',
8372 - i: 'i',
8373 - iframe: 'iframe',
8374 - img: 'img',
8375 - input: 'input',
8376 - ins: 'ins',
8377 - kbd: 'kbd',
8378 - keygen: 'keygen',
8379 - label: 'label',
8380 - legend: 'legend',
8381 - li: 'li',
8382 - link: 'link',
8383 - main: 'main',
8384 - map: 'map',
8385 - mark: 'mark',
8386 - menu: 'menu',
8387 - menuitem: 'menuitem',
8388 - meta: 'meta',
8389 - meter: 'meter',
8390 - nav: 'nav',
8391 - noscript: 'noscript',
8392 - object: 'object',
8393 - ol: 'ol',
8394 - optgroup: 'optgroup',
8395 - option: 'option',
8396 - output: 'output',
8397 - p: 'p',
8398 - param: 'param',
8399 - picture: 'picture',
8400 - pre: 'pre',
8401 - progress: 'progress',
8402 - q: 'q',
8403 - rp: 'rp',
8404 - rt: 'rt',
8405 - ruby: 'ruby',
8406 - s: 's',
8407 - samp: 'samp',
8408 - script: 'script',
8409 - section: 'section',
8410 - select: 'select',
8411 - small: 'small',
8412 - source: 'source',
8413 - span: 'span',
8414 - strong: 'strong',
8415 - style: 'style',
8416 - sub: 'sub',
8417 - summary: 'summary',
8418 - sup: 'sup',
8419 - table: 'table',
8420 - tbody: 'tbody',
8421 - td: 'td',
8422 - textarea: 'textarea',
8423 - tfoot: 'tfoot',
8424 - th: 'th',
8425 - thead: 'thead',
8426 - time: 'time',
8427 - title: 'title',
8428 - tr: 'tr',
8429 - track: 'track',
8430 - u: 'u',
8431 - ul: 'ul',
8432 - 'var': 'var',
8433 - video: 'video',
8434 - wbr: 'wbr',
8310 +var ReactDOMFactories = {
8311 + a: createDOMFactory('a'),
8312 + abbr: createDOMFactory('abbr'),
8313 + address: createDOMFactory('address'),
8314 + area: createDOMFactory('area'),
8315 + article: createDOMFactory('article'),
8316 + aside: createDOMFactory('aside'),
8317 + audio: createDOMFactory('audio'),
8318 + b: createDOMFactory('b'),
8319 + base: createDOMFactory('base'),
8320 + bdi: createDOMFactory('bdi'),
8321 + bdo: createDOMFactory('bdo'),
8322 + big: createDOMFactory('big'),
8323 + blockquote: createDOMFactory('blockquote'),
8324 + body: createDOMFactory('body'),
8325 + br: createDOMFactory('br'),
8326 + button: createDOMFactory('button'),
8327 + canvas: createDOMFactory('canvas'),
8328 + caption: createDOMFactory('caption'),
8329 + cite: createDOMFactory('cite'),
8330 + code: createDOMFactory('code'),
8331 + col: createDOMFactory('col'),
8332 + colgroup: createDOMFactory('colgroup'),
8333 + data: createDOMFactory('data'),
8334 + datalist: createDOMFactory('datalist'),
8335 + dd: createDOMFactory('dd'),
8336 + del: createDOMFactory('del'),
8337 + details: createDOMFactory('details'),
8338 + dfn: createDOMFactory('dfn'),
8339 + dialog: createDOMFactory('dialog'),
8340 + div: createDOMFactory('div'),
8341 + dl: createDOMFactory('dl'),
8342 + dt: createDOMFactory('dt'),
8343 + em: createDOMFactory('em'),
8344 + embed: createDOMFactory('embed'),
8345 + fieldset: createDOMFactory('fieldset'),
8346 + figcaption: createDOMFactory('figcaption'),
8347 + figure: createDOMFactory('figure'),
8348 + footer: createDOMFactory('footer'),
8349 + form: createDOMFactory('form'),
8350 + h1: createDOMFactory('h1'),
8351 + h2: createDOMFactory('h2'),
8352 + h3: createDOMFactory('h3'),
8353 + h4: createDOMFactory('h4'),
8354 + h5: createDOMFactory('h5'),
8355 + h6: createDOMFactory('h6'),
8356 + head: createDOMFactory('head'),
8357 + header: createDOMFactory('header'),
8358 + hgroup: createDOMFactory('hgroup'),
8359 + hr: createDOMFactory('hr'),
8360 + html: createDOMFactory('html'),
8361 + i: createDOMFactory('i'),
8362 + iframe: createDOMFactory('iframe'),
8363 + img: createDOMFactory('img'),
8364 + input: createDOMFactory('input'),
8365 + ins: createDOMFactory('ins'),
8366 + kbd: createDOMFactory('kbd'),
8367 + keygen: createDOMFactory('keygen'),
8368 + label: createDOMFactory('label'),
8369 + legend: createDOMFactory('legend'),
8370 + li: createDOMFactory('li'),
8371 + link: createDOMFactory('link'),
8372 + main: createDOMFactory('main'),
8373 + map: createDOMFactory('map'),
8374 + mark: createDOMFactory('mark'),
8375 + menu: createDOMFactory('menu'),
8376 + menuitem: createDOMFactory('menuitem'),
8377 + meta: createDOMFactory('meta'),
8378 + meter: createDOMFactory('meter'),
8379 + nav: createDOMFactory('nav'),
8380 + noscript: createDOMFactory('noscript'),
8381 + object: createDOMFactory('object'),
8382 + ol: createDOMFactory('ol'),
8383 + optgroup: createDOMFactory('optgroup'),
8384 + option: createDOMFactory('option'),
8385 + output: createDOMFactory('output'),
8386 + p: createDOMFactory('p'),
8387 + param: createDOMFactory('param'),
8388 + picture: createDOMFactory('picture'),
8389 + pre: createDOMFactory('pre'),
8390 + progress: createDOMFactory('progress'),
8391 + q: createDOMFactory('q'),
8392 + rp: createDOMFactory('rp'),
8393 + rt: createDOMFactory('rt'),
8394 + ruby: createDOMFactory('ruby'),
8395 + s: createDOMFactory('s'),
8396 + samp: createDOMFactory('samp'),
8397 + script: createDOMFactory('script'),
8398 + section: createDOMFactory('section'),
8399 + select: createDOMFactory('select'),
8400 + small: createDOMFactory('small'),
8401 + source: createDOMFactory('source'),
8402 + span: createDOMFactory('span'),
8403 + strong: createDOMFactory('strong'),
8404 + style: createDOMFactory('style'),
8405 + sub: createDOMFactory('sub'),
8406 + summary: createDOMFactory('summary'),
8407 + sup: createDOMFactory('sup'),
8408 + table: createDOMFactory('table'),
8409 + tbody: createDOMFactory('tbody'),
8410 + td: createDOMFactory('td'),
8411 + textarea: createDOMFactory('textarea'),
8412 + tfoot: createDOMFactory('tfoot'),
8413 + th: createDOMFactory('th'),
8414 + thead: createDOMFactory('thead'),
8415 + time: createDOMFactory('time'),
8416 + title: createDOMFactory('title'),
8417 + tr: createDOMFactory('tr'),
8418 + track: createDOMFactory('track'),
8419 + u: createDOMFactory('u'),
8420 + ul: createDOMFactory('ul'),
8421 + 'var': createDOMFactory('var'),
8422 + video: createDOMFactory('video'),
8423 + wbr: createDOMFactory('wbr'),
8424
8425 // SVG
8437 - circle: 'circle',
8438 - clipPath: 'clipPath',
8439 - defs: 'defs',
8440 - ellipse: 'ellipse',
8441 - g: 'g',
8442 - image: 'image',
8443 - line: 'line',
8444 - linearGradient: 'linearGradient',
8445 - mask: 'mask',
8446 - path: 'path',
8447 - pattern: 'pattern',
8448 - polygon: 'polygon',
8449 - polyline: 'polyline',
8450 - radialGradient: 'radialGradient',
8451 - rect: 'rect',
8452 - stop: 'stop',
8453 - svg: 'svg',
8454 - text: 'text',
8455 - tspan: 'tspan'
8456 -
8457 -}, createDOMFactory);
8426 + circle: createDOMFactory('circle'),
8427 + clipPath: createDOMFactory('clipPath'),
8428 + defs: createDOMFactory('defs'),
8429 + ellipse: createDOMFactory('ellipse'),
8430 + g: createDOMFactory('g'),
8431 + image: createDOMFactory('image'),
8432 + line: createDOMFactory('line'),
8433 + linearGradient: createDOMFactory('linearGradient'),
8434 + mask: createDOMFactory('mask'),
8435 + path: createDOMFactory('path'),
8436 + pattern: createDOMFactory('pattern'),
8437 + polygon: createDOMFactory('polygon'),
8438 + polyline: createDOMFactory('polyline'),
8439 + radialGradient: createDOMFactory('radialGradient'),
8440 + rect: createDOMFactory('rect'),
8441 + stop: createDOMFactory('stop'),
8442 + svg: createDOMFactory('svg'),
8443 + text: createDOMFactory('text'),
8444 + tspan: createDOMFactory('tspan')
8445 +};
8446
8447 module.exports = ReactDOMFactories;
8460 -},{"169":169,"63":63,"64":64}],47:[function(_dereq_,module,exports){
8448 +},{"61":61,"62":62}],46:[function(_dereq_,module,exports){
8449 /**
8450 * Copyright 2013-present, Facebook, Inc.
8451 * All rights reserved.
@@ -8476,7 +8464,7 @@ var ReactDOMFeatureFlags = {
8464 };
8465
8466 module.exports = ReactDOMFeatureFlags;
8479 -},{}],48:[function(_dereq_,module,exports){
8467 +},{}],47:[function(_dereq_,module,exports){
8468 /**
8469 * Copyright 2013-present, Facebook, Inc.
8470 * All rights reserved.
@@ -8511,7 +8499,7 @@ var ReactDOMIDOperations = {
8499 };
8500
8501 module.exports = ReactDOMIDOperations;
8514 -},{"42":42,"7":7}],49:[function(_dereq_,module,exports){
8502 +},{"42":42,"7":7}],48:[function(_dereq_,module,exports){
8503 /**
8504 * Copyright 2013-present, Facebook, Inc.
8505 * All rights reserved.
@@ -8525,17 +8513,17 @@ module.exports = ReactDOMIDOperations;
8513
8514 'use strict';
8515
8528 -var _prodInvariant = _dereq_(142),
8529 - _assign = _dereq_(175);
8516 +var _prodInvariant = _dereq_(140),
8517 + _assign = _dereq_(172);
8518
8519 var DisabledInputUtils = _dereq_(14);
8520 var DOMPropertyOperations = _dereq_(11);
8521 var LinkedValueUtils = _dereq_(24);
8522 var ReactDOMComponentTree = _dereq_(42);
8535 -var ReactUpdates = _dereq_(98);
8523 +var ReactUpdates = _dereq_(96);
8524
8537 -var invariant = _dereq_(164);
8538 -var warning = _dereq_(174);
8525 +var invariant = _dereq_(162);
8526 +var warning = _dereq_(171);
8527
8528 var didWarnValueLink = false;
8529 var didWarnCheckedLink = false;
@@ -8583,7 +8571,11 @@ var ReactDOMInput = {
8571 type: undefined,
8572 // Make sure we set .step before .value (setting .value before .step
8573 // means .value is rounded on mount, based upon step precision)
8586 - step: undefined
8574 + step: undefined,
8575 + // Make sure we set .min & .max before .value (to ensure proper order
8576 + // in corner cases such as min or max deriving from value, e.g. Issue #7170)
8577 + min: undefined,
8578 + max: undefined
8579 }, DisabledInputUtils.getHostProps(inst, props), {
8580 defaultChecked: undefined,
8581 defaultValue: undefined,
@@ -8689,8 +8681,26 @@ var ReactDOMInput = {
8681 // are not resetable nodes so this operation doesn't matter and actually
8682 // removes browser-default values (eg "Submit Query") when no value is
8683 // provided.
8692 - if (props.type !== 'submit' && props.type !== 'reset') {
8693 - node.value = node.value;
8684 +
8685 + switch (props.type) {
8686 + case 'submit':
8687 + case 'reset':
8688 + break;
8689 + case 'color':
8690 + case 'date':
8691 + case 'datetime':
8692 + case 'datetime-local':
8693 + case 'month':
8694 + case 'time':
8695 + case 'week':
8696 + // This fixes the no-show issue on iOS Safari and Android Chrome:
8697 + // https://github.com/facebook/react/issues/7233
8698 + node.value = '';
8699 + node.value = node.defaultValue;
8700 + break;
8701 + default:
8702 + node.value = node.value;
8703 + break;
8704 }
8705
8706 // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug
@@ -8759,29 +8769,7 @@ function _handleChange(event) {
8769 }
8770
8771 module.exports = ReactDOMInput;
8762 -},{"11":11,"14":14,"142":142,"164":164,"174":174,"175":175,"24":24,"42":42,"98":98}],50:[function(_dereq_,module,exports){
8763 -/**
8764 - * Copyright 2013-present, Facebook, Inc.
8765 - * All rights reserved.
8766 - *
8767 - * This source code is licensed under the BSD-style license found in the
8768 - * LICENSE file in the root directory of this source tree. An additional grant
8769 - * of patent rights can be found in the PATENTS file in the same directory.
8770 - *
8771 - * @providesModule ReactDOMInstrumentation
8772 - */
8773 -
8774 -'use strict';
8775 -
8776 -var debugTool = null;
8777 -
8778 -if ("development" !== 'production') {
8779 - var ReactDOMDebugTool = _dereq_(44);
8780 - debugTool = ReactDOMDebugTool;
8781 -}
8782 -
8783 -module.exports = { debugTool: debugTool };
8784 -},{"44":44}],51:[function(_dereq_,module,exports){
8772 +},{"11":11,"14":14,"140":140,"162":162,"171":171,"172":172,"24":24,"42":42,"96":96}],49:[function(_dereq_,module,exports){
8773 /**
8774 * Copyright 2013-present, Facebook, Inc.
8775 * All rights reserved.
@@ -8790,14 +8778,14 @@ module.exports = { debugTool: debugTool };
8778 * LICENSE file in the root directory of this source tree. An additional grant
8779 * of patent rights can be found in the PATENTS file in the same directory.
8780 *
8793 - * @providesModule ReactDOMNullInputValuePropDevtool
8781 + * @providesModule ReactDOMNullInputValuePropHook
8782 */
8783
8784 'use strict';
8785
8798 -var ReactComponentTreeDevtool = _dereq_(35);
8786 +var ReactComponentTreeHook = _dereq_(35);
8787
8800 -var warning = _dereq_(174);
8788 +var warning = _dereq_(171);
8789
8790 var didWarnValueNull = false;
8791
@@ -8809,13 +8797,13 @@ function handleElement(debugID, element) {
8797 return;
8798 }
8799 if (element.props != null && element.props.value === null && !didWarnValueNull) {
8812 - "development" !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;
8800 + "development" !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
8801
8802 didWarnValueNull = true;
8803 }
8804 }
8805
8818 -var ReactDOMUnknownPropertyDevtool = {
8806 +var ReactDOMNullInputValuePropHook = {
8807 onBeforeMountComponent: function (debugID, element) {
8808 handleElement(debugID, element);
8809 },
@@ -8824,8 +8812,8 @@ var ReactDOMUnknownPropertyDevtool = {
8812 }
8813 };
8814
8827 -module.exports = ReactDOMUnknownPropertyDevtool;
8828 -},{"174":174,"35":35}],52:[function(_dereq_,module,exports){
8815 +module.exports = ReactDOMNullInputValuePropHook;
8816 +},{"171":171,"35":35}],50:[function(_dereq_,module,exports){
8817 /**
8818 * Copyright 2013-present, Facebook, Inc.
8819 * All rights reserved.
@@ -8839,13 +8827,13 @@ module.exports = ReactDOMUnknownPropertyDevtool;
8827
8828 'use strict';
8829
8842 -var _assign = _dereq_(175);
8830 +var _assign = _dereq_(172);
8831
8832 var ReactChildren = _dereq_(29);
8833 var ReactDOMComponentTree = _dereq_(42);
8846 -var ReactDOMSelect = _dereq_(53);
8834 +var ReactDOMSelect = _dereq_(51);
8835
8848 -var warning = _dereq_(174);
8836 +var warning = _dereq_(171);
8837 var didWarnInvalidOptionChildren = false;
8838
8839 function flattenChildren(children) {
@@ -8949,7 +8937,7 @@ var ReactDOMOption = {
8937 };
8938
8939 module.exports = ReactDOMOption;
8952 -},{"174":174,"175":175,"29":29,"42":42,"53":53}],53:[function(_dereq_,module,exports){
8940 +},{"171":171,"172":172,"29":29,"42":42,"51":51}],51:[function(_dereq_,module,exports){
8941 /**
8942 * Copyright 2013-present, Facebook, Inc.
8943 * All rights reserved.
@@ -8963,14 +8951,14 @@ module.exports = ReactDOMOption;
8951
8952 'use strict';
8953
8966 -var _assign = _dereq_(175);
8954 +var _assign = _dereq_(172);
8955
8956 var DisabledInputUtils = _dereq_(14);
8957 var LinkedValueUtils = _dereq_(24);
8958 var ReactDOMComponentTree = _dereq_(42);
8971 -var ReactUpdates = _dereq_(98);
8959 +var ReactUpdates = _dereq_(96);
8960
8973 -var warning = _dereq_(174);
8961 +var warning = _dereq_(171);
8962
8963 var didWarnValueLink = false;
8964 var didWarnValueDefaultValue = false;
@@ -9018,10 +9006,11 @@ function checkSelectPropTypes(inst, props) {
9006 if (props[propName] == null) {
9007 continue;
9008 }
9021 - if (props.multiple) {
9022 - "development" !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;
9023 - } else {
9024 - "development" !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;
9009 + var isArray = Array.isArray(props[propName]);
9010 + if (props.multiple && !isArray) {
9011 + "development" !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;
9012 + } else if (!props.multiple && isArray) {
9013 + "development" !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;
9014 }
9015 }
9016 }
@@ -9150,7 +9139,7 @@ function _handleChange(event) {
9139 }
9140
9141 module.exports = ReactDOMSelect;
9153 -},{"14":14,"174":174,"175":175,"24":24,"42":42,"98":98}],54:[function(_dereq_,module,exports){
9142 +},{"14":14,"171":171,"172":172,"24":24,"42":42,"96":96}],52:[function(_dereq_,module,exports){
9143 /**
9144 * Copyright 2013-present, Facebook, Inc.
9145 * All rights reserved.
@@ -9164,10 +9153,10 @@ module.exports = ReactDOMSelect;
9153
9154 'use strict';
9155
9167 -var ExecutionEnvironment = _dereq_(150);
9156 +var ExecutionEnvironment = _dereq_(148);
9157
9169 -var getNodeForCharacterOffset = _dereq_(134);
9170 -var getTextContentAccessor = _dereq_(135);
9158 +var getNodeForCharacterOffset = _dereq_(132);
9159 +var getTextContentAccessor = _dereq_(133);
9160
9161 /**
9162 * While `isCollapsed` is available on the Selection object and `collapsed`
@@ -9363,7 +9352,7 @@ var ReactDOMSelection = {
9352 };
9353
9354 module.exports = ReactDOMSelection;
9366 -},{"134":134,"135":135,"150":150}],55:[function(_dereq_,module,exports){
9355 +},{"132":132,"133":133,"148":148}],53:[function(_dereq_,module,exports){
9356 /**
9357 * Copyright 2013-present, Facebook, Inc.
9358 * All rights reserved.
@@ -9377,9 +9366,9 @@ module.exports = ReactDOMSelection;
9366
9367 'use strict';
9368
9380 -var ReactDefaultInjection = _dereq_(62);
9381 -var ReactServerRendering = _dereq_(93);
9382 -var ReactVersion = _dereq_(99);
9369 +var ReactDefaultInjection = _dereq_(60);
9370 +var ReactServerRendering = _dereq_(91);
9371 +var ReactVersion = _dereq_(97);
9372
9373 ReactDefaultInjection.inject();
9374
@@ -9390,7 +9379,7 @@ var ReactDOMServer = {
9379 };
9380
9381 module.exports = ReactDOMServer;
9393 -},{"62":62,"93":93,"99":99}],56:[function(_dereq_,module,exports){
9382 +},{"60":60,"91":91,"97":97}],54:[function(_dereq_,module,exports){
9383 /**
9384 * Copyright 2013-present, Facebook, Inc.
9385 * All rights reserved.
@@ -9404,17 +9393,16 @@ module.exports = ReactDOMServer;
9393
9394 'use strict';
9395
9407 -var _prodInvariant = _dereq_(142),
9408 - _assign = _dereq_(175);
9396 +var _prodInvariant = _dereq_(140),
9397 + _assign = _dereq_(172);
9398
9399 var DOMChildrenOperations = _dereq_(7);
9400 var DOMLazyTree = _dereq_(8);
9401 var ReactDOMComponentTree = _dereq_(42);
9413 -var ReactInstrumentation = _dereq_(75);
9402
9415 -var escapeTextContentForBrowser = _dereq_(124);
9416 -var invariant = _dereq_(164);
9417 -var validateDOMNesting = _dereq_(148);
9403 +var escapeTextContentForBrowser = _dereq_(122);
9404 +var invariant = _dereq_(162);
9405 +var validateDOMNesting = _dereq_(146);
9406
9407 /**
9408 * Text nodes violate a couple assumptions that React makes about components:
@@ -9440,7 +9428,7 @@ var ReactDOMTextComponent = function (text) {
9428 this._hostParent = null;
9429
9430 // Properties
9443 - this._domID = null;
9431 + this._domID = 0;
9432 this._mountIndex = 0;
9433 this._closingComment = null;
9434 this._commentNodes = null;
@@ -9458,8 +9446,6 @@ _assign(ReactDOMTextComponent.prototype, {
9446 */
9447 mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
9448 if ("development" !== 'production') {
9461 - ReactInstrumentation.debugTool.onSetText(this._debugID, this._stringText);
9462 -
9449 var parentInfo;
9450 if (hostParent != null) {
9451 parentInfo = hostParent._ancestorInfo;
@@ -9523,10 +9509,6 @@ _assign(ReactDOMTextComponent.prototype, {
9509 this._stringText = nextStringText;
9510 var commentNodes = this.getHostNode();
9511 DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);
9526 -
9527 - if ("development" !== 'production') {
9528 - ReactInstrumentation.debugTool.onSetText(this._debugID, nextStringText);
9529 - }
9512 }
9513 }
9514 },
@@ -9562,7 +9544,7 @@ _assign(ReactDOMTextComponent.prototype, {
9544 });
9545
9546 module.exports = ReactDOMTextComponent;
9565 -},{"124":124,"142":142,"148":148,"164":164,"175":175,"42":42,"7":7,"75":75,"8":8}],57:[function(_dereq_,module,exports){
9547 +},{"122":122,"140":140,"146":146,"162":162,"172":172,"42":42,"7":7,"8":8}],55:[function(_dereq_,module,exports){
9548 /**
9549 * Copyright 2013-present, Facebook, Inc.
9550 * All rights reserved.
@@ -9576,16 +9558,16 @@ module.exports = ReactDOMTextComponent;
9558
9559 'use strict';
9560
9579 -var _prodInvariant = _dereq_(142),
9580 - _assign = _dereq_(175);
9561 +var _prodInvariant = _dereq_(140),
9562 + _assign = _dereq_(172);
9563
9564 var DisabledInputUtils = _dereq_(14);
9565 var LinkedValueUtils = _dereq_(24);
9566 var ReactDOMComponentTree = _dereq_(42);
9585 -var ReactUpdates = _dereq_(98);
9567 +var ReactUpdates = _dereq_(96);
9568
9587 -var invariant = _dereq_(164);
9588 -var warning = _dereq_(174);
9569 +var invariant = _dereq_(162);
9570 +var warning = _dereq_(171);
9571
9572 var didWarnValueLink = false;
9573 var didWarnValDefaultVal = false;
@@ -9718,7 +9700,7 @@ function _handleChange(event) {
9700 }
9701
9702 module.exports = ReactDOMTextarea;
9721 -},{"14":14,"142":142,"164":164,"174":174,"175":175,"24":24,"42":42,"98":98}],58:[function(_dereq_,module,exports){
9703 +},{"14":14,"140":140,"162":162,"171":171,"172":172,"24":24,"42":42,"96":96}],56:[function(_dereq_,module,exports){
9704 /**
9705 * Copyright 2015-present, Facebook, Inc.
9706 * All rights reserved.
@@ -9732,9 +9714,9 @@ module.exports = ReactDOMTextarea;
9714
9715 'use strict';
9716
9735 -var _prodInvariant = _dereq_(142);
9717 +var _prodInvariant = _dereq_(140);
9718
9737 -var invariant = _dereq_(164);
9719 +var invariant = _dereq_(162);
9720
9721 /**
9722 * Return the lowest common ancestor of A and B, or null if they are in
@@ -9855,7 +9837,7 @@ module.exports = {
9837 traverseTwoPhase: traverseTwoPhase,
9838 traverseEnterLeave: traverseEnterLeave
9839 };
9858 -},{"142":142,"164":164}],59:[function(_dereq_,module,exports){
9840 +},{"140":140,"162":162}],57:[function(_dereq_,module,exports){
9841 /**
9842 * Copyright 2013-present, Facebook, Inc.
9843 * All rights reserved.
@@ -9864,16 +9846,16 @@ module.exports = {
9846 * LICENSE file in the root directory of this source tree. An additional grant
9847 * of patent rights can be found in the PATENTS file in the same directory.
9848 *
9867 - * @providesModule ReactDOMUnknownPropertyDevtool
9849 + * @providesModule ReactDOMUnknownPropertyHook
9850 */
9851
9852 'use strict';
9853
9854 var DOMProperty = _dereq_(10);
9855 var EventPluginRegistry = _dereq_(18);
9874 -var ReactComponentTreeDevtool = _dereq_(35);
9856 +var ReactComponentTreeHook = _dereq_(35);
9857
9876 -var warning = _dereq_(174);
9858 +var warning = _dereq_(171);
9859
9860 if ("development" !== 'production') {
9861 var reactProps = {
@@ -9913,10 +9895,10 @@ if ("development" !== 'production') {
9895 var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null;
9896
9897 if (standardName != null) {
9916 - "development" !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;
9898 + "development" !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
9899 return true;
9900 } else if (registrationName != null) {
9919 - "development" !== 'production' ? warning(registrationName == null, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;
9901 + "development" !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
9902 return true;
9903 } else {
9904 // We were unable to guess which prop the user intended.
@@ -9942,9 +9924,9 @@ var warnUnknownProperties = function (debugID, element) {
9924 }).join(', ');
9925
9926 if (unknownProps.length === 1) {
9945 - "development" !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;
9927 + "development" !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
9928 } else if (unknownProps.length > 1) {
9947 - "development" !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;
9929 + "development" !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
9930 }
9931 };
9932
@@ -9958,7 +9940,7 @@ function handleElement(debugID, element) {
9940 warnUnknownProperties(debugID, element);
9941 }
9942
9961 -var ReactDOMUnknownPropertyDevtool = {
9943 +var ReactDOMUnknownPropertyHook = {
9944 onBeforeMountComponent: function (debugID, element) {
9945 handleElement(debugID, element);
9946 },
@@ -9967,8 +9949,8 @@ var ReactDOMUnknownPropertyDevtool = {
9949 }
9950 };
9951
9970 -module.exports = ReactDOMUnknownPropertyDevtool;
9971 -},{"10":10,"174":174,"18":18,"35":35}],60:[function(_dereq_,module,exports){
9952 +module.exports = ReactDOMUnknownPropertyHook;
9953 +},{"10":10,"171":171,"18":18,"35":35}],58:[function(_dereq_,module,exports){
9954 /**
9955 * Copyright 2016-present, Facebook, Inc.
9956 * All rights reserved.
@@ -9982,29 +9964,35 @@ module.exports = ReactDOMUnknownPropertyDevtool;
9964
9965 'use strict';
9966
9985 -var ReactInvalidSetStateWarningDevTool = _dereq_(76);
9986 -var ReactHostOperationHistoryDevtool = _dereq_(71);
9987 -var ReactComponentTreeDevtool = _dereq_(35);
9988 -var ReactChildrenMutationWarningDevtool = _dereq_(30);
9989 -var ExecutionEnvironment = _dereq_(150);
9967 +var ReactInvalidSetStateWarningHook = _dereq_(74);
9968 +var ReactHostOperationHistoryHook = _dereq_(69);
9969 +var ReactComponentTreeHook = _dereq_(35);
9970 +var ReactChildrenMutationWarningHook = _dereq_(30);
9971 +var ExecutionEnvironment = _dereq_(148);
9972
9991 -var performanceNow = _dereq_(172);
9992 -var warning = _dereq_(174);
9973 +var performanceNow = _dereq_(169);
9974 +var warning = _dereq_(171);
9975
9994 -var eventHandlers = [];
9995 -var handlerDoesThrowForEvent = {};
9976 +var hooks = [];
9977 +var didHookThrowForEvent = {};
9978
9997 -function emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) {
9998 - eventHandlers.forEach(function (handler) {
9999 - try {
10000 - if (handler[handlerFunctionName]) {
10001 - handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5);
10002 - }
10003 - } catch (e) {
10004 - "development" !== 'production' ? warning(handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e + '\n' + e.stack) : void 0;
10005 - handlerDoesThrowForEvent[handlerFunctionName] = true;
9979 +function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) {
9980 + try {
9981 + fn.call(context, arg1, arg2, arg3, arg4, arg5);
9982 + } catch (e) {
9983 + "development" !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0;
9984 + didHookThrowForEvent[event] = true;
9985 + }
9986 +}
9987 +
9988 +function emitEvent(event, arg1, arg2, arg3, arg4, arg5) {
9989 + for (var i = 0; i < hooks.length; i++) {
9990 + var hook = hooks[i];
9991 + var fn = hook[event];
9992 + if (fn) {
9993 + callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5);
9994 }
10007 - });
9995 + }
9996 }
9997
9998 var isProfiling = false;
@@ -10021,21 +10009,21 @@ var currentTimerType = null;
10009 var lifeCycleTimerHasWarned = false;
10010
10011 function clearHistory() {
10024 - ReactComponentTreeDevtool.purgeUnmountedComponents();
10025 - ReactHostOperationHistoryDevtool.clearHistory();
10012 + ReactComponentTreeHook.purgeUnmountedComponents();
10013 + ReactHostOperationHistoryHook.clearHistory();
10014 }
10015
10016 function getTreeSnapshot(registeredIDs) {
10017 return registeredIDs.reduce(function (tree, id) {
10030 - var ownerID = ReactComponentTreeDevtool.getOwnerID(id);
10031 - var parentID = ReactComponentTreeDevtool.getParentID(id);
10018 + var ownerID = ReactComponentTreeHook.getOwnerID(id);
10019 + var parentID = ReactComponentTreeHook.getParentID(id);
10020 tree[id] = {
10033 - displayName: ReactComponentTreeDevtool.getDisplayName(id),
10034 - text: ReactComponentTreeDevtool.getText(id),
10035 - updateCount: ReactComponentTreeDevtool.getUpdateCount(id),
10036 - childIDs: ReactComponentTreeDevtool.getChildIDs(id),
10021 + displayName: ReactComponentTreeHook.getDisplayName(id),
10022 + text: ReactComponentTreeHook.getText(id),
10023 + updateCount: ReactComponentTreeHook.getUpdateCount(id),
10024 + childIDs: ReactComponentTreeHook.getChildIDs(id),
10025 // Text nodes don't have owners but this is close enough.
10038 - ownerID: ownerID || ReactComponentTreeDevtool.getOwnerID(parentID),
10026 + ownerID: ownerID || ReactComponentTreeHook.getOwnerID(parentID),
10027 parentID: parentID
10028 };
10029 return tree;
@@ -10045,7 +10033,7 @@ function getTreeSnapshot(registeredIDs) {
10033 function resetMeasurements() {
10034 var previousStartTime = currentFlushStartTime;
10035 var previousMeasurements = currentFlushMeasurements || [];
10048 - var previousOperations = ReactHostOperationHistoryDevtool.getHistory();
10036 + var previousOperations = ReactHostOperationHistoryHook.getHistory();
10037
10038 if (currentFlushNesting === 0) {
10039 currentFlushStartTime = null;
@@ -10055,7 +10043,7 @@ function resetMeasurements() {
10043 }
10044
10045 if (previousMeasurements.length || previousOperations.length) {
10058 - var registeredIDs = ReactComponentTreeDevtool.getRegisteredIDs();
10046 + var registeredIDs = ReactComponentTreeHook.getRegisteredIDs();
10047 flushHistory.push({
10048 duration: performanceNow() - previousStartTime,
10049 measurements: previousMeasurements || [],
@@ -10070,7 +10058,14 @@ function resetMeasurements() {
10058 }
10059
10060 function checkDebugID(debugID) {
10073 - "development" !== 'production' ? warning(debugID, 'ReactDebugTool: debugID may not be empty.') : void 0;
10061 + var allowRoot = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
10062 +
10063 + if (allowRoot && debugID === 0) {
10064 + return;
10065 + }
10066 + if (!debugID) {
10067 + "development" !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0;
10068 + }
10069 }
10070
10071 function beginLifeCycleTimer(debugID, timerType) {
@@ -10138,13 +10133,13 @@ function resumeCurrentLifeCycleTimer() {
10133 }
10134
10135 var ReactDebugTool = {
10141 - addDevtool: function (devtool) {
10142 - eventHandlers.push(devtool);
10136 + addHook: function (hook) {
10137 + hooks.push(hook);
10138 },
10144 - removeDevtool: function (devtool) {
10145 - for (var i = 0; i < eventHandlers.length; i++) {
10146 - if (eventHandlers[i] === devtool) {
10147 - eventHandlers.splice(i, 1);
10139 + removeHook: function (hook) {
10140 + for (var i = 0; i < hooks.length; i++) {
10141 + if (hooks[i] === hook) {
10142 + hooks.splice(i, 1);
10143 i--;
10144 }
10145 }
@@ -10160,7 +10155,7 @@ var ReactDebugTool = {
10155 isProfiling = true;
10156 flushHistory.length = 0;
10157 resetMeasurements();
10163 - ReactDebugTool.addDevtool(ReactHostOperationHistoryDevtool);
10158 + ReactDebugTool.addHook(ReactHostOperationHistoryHook);
10159 },
10160 endProfiling: function () {
10161 if (!isProfiling) {
@@ -10169,7 +10164,7 @@ var ReactDebugTool = {
10164
10165 isProfiling = false;
10166 resetMeasurements();
10172 - ReactDebugTool.removeDevtool(ReactHostOperationHistoryDevtool);
10167 + ReactDebugTool.removeHook(ReactHostOperationHistoryHook);
10168 },
10169 getFlushHistory: function () {
10170 return flushHistory;
@@ -10196,14 +10191,6 @@ var ReactDebugTool = {
10191 endLifeCycleTimer(debugID, timerType);
10192 emitEvent('onEndLifeCycleTimer', debugID, timerType);
10193 },
10199 - onBeginReconcilerTimer: function (debugID, timerType) {
10200 - checkDebugID(debugID);
10201 - emitEvent('onBeginReconcilerTimer', debugID, timerType);
10202 - },
10203 - onEndReconcilerTimer: function (debugID, timerType) {
10204 - checkDebugID(debugID);
10205 - emitEvent('onEndReconcilerTimer', debugID, timerType);
10206 - },
10194 onError: function (debugID) {
10195 if (currentTimerDebugID != null) {
10196 endLifeCycleTimer(currentTimerDebugID, currentTimerType);
@@ -10220,45 +10207,18 @@ var ReactDebugTool = {
10207 checkDebugID(debugID);
10208 emitEvent('onHostOperation', debugID, type, payload);
10209 },
10223 - onComponentHasMounted: function (debugID) {
10224 - checkDebugID(debugID);
10225 - emitEvent('onComponentHasMounted', debugID);
10226 - },
10227 - onComponentHasUpdated: function (debugID) {
10228 - checkDebugID(debugID);
10229 - emitEvent('onComponentHasUpdated', debugID);
10230 - },
10210 onSetState: function () {
10211 emitEvent('onSetState');
10212 },
10234 - onSetDisplayName: function (debugID, displayName) {
10235 - checkDebugID(debugID);
10236 - emitEvent('onSetDisplayName', debugID, displayName);
10237 - },
10213 onSetChildren: function (debugID, childDebugIDs) {
10214 checkDebugID(debugID);
10215 childDebugIDs.forEach(checkDebugID);
10216 emitEvent('onSetChildren', debugID, childDebugIDs);
10217 },
10243 - onSetOwner: function (debugID, ownerDebugID) {
10218 + onBeforeMountComponent: function (debugID, element, parentDebugID) {
10219 checkDebugID(debugID);
10245 - emitEvent('onSetOwner', debugID, ownerDebugID);
10246 - },
10247 - onSetParent: function (debugID, parentDebugID) {
10248 - checkDebugID(debugID);
10249 - emitEvent('onSetParent', debugID, parentDebugID);
10250 - },
10251 - onSetText: function (debugID, text) {
10252 - checkDebugID(debugID);
10253 - emitEvent('onSetText', debugID, text);
10254 - },
10255 - onMountRootComponent: function (debugID) {
10256 - checkDebugID(debugID);
10257 - emitEvent('onMountRootComponent', debugID);
10258 - },
10259 - onBeforeMountComponent: function (debugID, element) {
10260 - checkDebugID(debugID);
10261 - emitEvent('onBeforeMountComponent', debugID, element);
10220 + checkDebugID(parentDebugID, true);
10221 + emitEvent('onBeforeMountComponent', debugID, element, parentDebugID);
10222 },
10223 onMountComponent: function (debugID) {
10224 checkDebugID(debugID);
@@ -10272,6 +10232,10 @@ var ReactDebugTool = {
10232 checkDebugID(debugID);
10233 emitEvent('onUpdateComponent', debugID);
10234 },
10235 + onBeforeUnmountComponent: function (debugID) {
10236 + checkDebugID(debugID);
10237 + emitEvent('onBeforeUnmountComponent', debugID);
10238 + },
10239 onUnmountComponent: function (debugID) {
10240 checkDebugID(debugID);
10241 emitEvent('onUnmountComponent', debugID);
@@ -10281,16 +10245,20 @@ var ReactDebugTool = {
10245 }
10246 };
10247
10284 -ReactDebugTool.addDevtool(ReactInvalidSetStateWarningDevTool);
10285 -ReactDebugTool.addDevtool(ReactComponentTreeDevtool);
10286 -ReactDebugTool.addDevtool(ReactChildrenMutationWarningDevtool);
10248 +// TODO remove these when RN/www gets updated
10249 +ReactDebugTool.addDevtool = ReactDebugTool.addHook;
10250 +ReactDebugTool.removeDevtool = ReactDebugTool.removeHook;
10251 +
10252 +ReactDebugTool.addHook(ReactInvalidSetStateWarningHook);
10253 +ReactDebugTool.addHook(ReactComponentTreeHook);
10254 +ReactDebugTool.addHook(ReactChildrenMutationWarningHook);
10255 var url = ExecutionEnvironment.canUseDOM && window.location.href || '';
10256 if (/[?&]react_perf\b/.test(url)) {
10257 ReactDebugTool.beginProfiling();
10258 }
10259
10260 module.exports = ReactDebugTool;
10293 -},{"150":150,"172":172,"174":174,"30":30,"35":35,"71":71,"76":76}],61:[function(_dereq_,module,exports){
10261 +},{"148":148,"169":169,"171":171,"30":30,"35":35,"69":69,"74":74}],59:[function(_dereq_,module,exports){
10262 /**
10263 * Copyright 2013-present, Facebook, Inc.
10264 * All rights reserved.
@@ -10304,12 +10272,12 @@ module.exports = ReactDebugTool;
10272
10273 'use strict';
10274
10307 -var _assign = _dereq_(175);
10275 +var _assign = _dereq_(172);
10276
10309 -var ReactUpdates = _dereq_(98);
10310 -var Transaction = _dereq_(116);
10277 +var ReactUpdates = _dereq_(96);
10278 +var Transaction = _dereq_(114);
10279
10312 -var emptyFunction = _dereq_(156);
10280 +var emptyFunction = _dereq_(154);
10281
10282 var RESET_BATCHED_UPDATES = {
10283 initialize: emptyFunction,
@@ -10359,7 +10327,7 @@ var ReactDefaultBatchingStrategy = {
10327 };
10328
10329 module.exports = ReactDefaultBatchingStrategy;
10362 -},{"116":116,"156":156,"175":175,"98":98}],62:[function(_dereq_,module,exports){
10330 +},{"114":114,"154":154,"172":172,"96":96}],60:[function(_dereq_,module,exports){
10331 /**
10332 * Copyright 2013-present, Facebook, Inc.
10333 * All rights reserved.
@@ -10381,16 +10349,16 @@ var HTMLDOMPropertyConfig = _dereq_(22);
10349 var ReactComponentBrowserEnvironment = _dereq_(33);
10350 var ReactDOMComponent = _dereq_(40);
10351 var ReactDOMComponentTree = _dereq_(42);
10384 -var ReactDOMEmptyComponent = _dereq_(45);
10385 -var ReactDOMTreeTraversal = _dereq_(58);
10386 -var ReactDOMTextComponent = _dereq_(56);
10387 -var ReactDefaultBatchingStrategy = _dereq_(61);
10388 -var ReactEventListener = _dereq_(68);
10389 -var ReactInjection = _dereq_(72);
10390 -var ReactReconcileTransaction = _dereq_(89);
10391 -var SVGDOMPropertyConfig = _dereq_(100);
10392 -var SelectEventPlugin = _dereq_(101);
10393 -var SimpleEventPlugin = _dereq_(102);
10352 +var ReactDOMEmptyComponent = _dereq_(44);
10353 +var ReactDOMTreeTraversal = _dereq_(56);
10354 +var ReactDOMTextComponent = _dereq_(54);
10355 +var ReactDefaultBatchingStrategy = _dereq_(59);
10356 +var ReactEventListener = _dereq_(66);
10357 +var ReactInjection = _dereq_(70);
10358 +var ReactReconcileTransaction = _dereq_(87);
10359 +var SVGDOMPropertyConfig = _dereq_(98);
10360 +var SelectEventPlugin = _dereq_(99);
10361 +var SimpleEventPlugin = _dereq_(100);
10362
10363 var alreadyInjected = false;
10364
@@ -10444,7 +10412,7 @@ function inject() {
10412 module.exports = {
10413 inject: inject
10414 };
10447 -},{"100":100,"101":101,"102":102,"13":13,"15":15,"2":2,"22":22,"33":33,"40":40,"42":42,"45":45,"56":56,"58":58,"6":6,"61":61,"68":68,"72":72,"89":89}],63:[function(_dereq_,module,exports){
10415 +},{"100":100,"13":13,"15":15,"2":2,"22":22,"33":33,"40":40,"42":42,"44":44,"54":54,"56":56,"59":59,"6":6,"66":66,"70":70,"87":87,"98":98,"99":99}],61:[function(_dereq_,module,exports){
10416 /**
10417 * Copyright 2014-present, Facebook, Inc.
10418 * All rights reserved.
@@ -10458,12 +10426,12 @@ module.exports = {
10426
10427 'use strict';
10428
10461 -var _assign = _dereq_(175);
10429 +var _assign = _dereq_(172);
10430
10431 var ReactCurrentOwner = _dereq_(37);
10432
10465 -var warning = _dereq_(174);
10466 -var canDefineProperty = _dereq_(120);
10433 +var warning = _dereq_(171);
10434 +var canDefineProperty = _dereq_(118);
10435 var hasOwnProperty = Object.prototype.hasOwnProperty;
10436
10437 // The Symbol used to tag the ReactElement type. If there is no native Symbol
@@ -10503,6 +10471,34 @@ function hasValidKey(config) {
10471 return config.key !== undefined;
10472 }
10473
10474 +function defineKeyPropWarningGetter(props, displayName) {
10475 + var warnAboutAccessingKey = function () {
10476 + if (!specialPropKeyWarningShown) {
10477 + specialPropKeyWarningShown = true;
10478 + "development" !== '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;
10479 + }
10480 + };
10481 + warnAboutAccessingKey.isReactWarning = true;
10482 + Object.defineProperty(props, 'key', {
10483 + get: warnAboutAccessingKey,
10484 + configurable: true
10485 + });
10486 +}
10487 +
10488 +function defineRefPropWarningGetter(props, displayName) {
10489 + var warnAboutAccessingRef = function () {
10490 + if (!specialPropRefWarningShown) {
10491 + specialPropRefWarningShown = true;
10492 + "development" !== '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;
10493 + }
10494 + };
10495 + warnAboutAccessingRef.isReactWarning = true;
10496 + Object.defineProperty(props, 'ref', {
10497 + get: warnAboutAccessingRef,
10498 + configurable: true
10499 + });
10500 +}
10501 +
10502 /**
10503 * Factory method to create a new React element. This no longer adheres to
10504 * the class pattern, so do not use new to call it. Also, no instanceof check
@@ -10657,39 +10653,15 @@ ReactElement.createElement = function (type, config, children) {
10653 }
10654 }
10655 if ("development" !== 'production') {
10660 - var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
10661 -
10662 - // Create dummy `key` and `ref` property to `props` to warn users against its use
10663 - var warnAboutAccessingKey = function () {
10664 - if (!specialPropKeyWarningShown) {
10665 - specialPropKeyWarningShown = true;
10666 - "development" !== '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;
10667 - }
10668 - return undefined;
10669 - };
10670 - warnAboutAccessingKey.isReactWarning = true;
10671 -
10672 - var warnAboutAccessingRef = function () {
10673 - if (!specialPropRefWarningShown) {
10674 - specialPropRefWarningShown = true;
10675 - "development" !== '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;
10676 - }
10677 - return undefined;
10678 - };
10679 - warnAboutAccessingRef.isReactWarning = true;
10680 -
10681 - if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {
10682 - if (!props.hasOwnProperty('key')) {
10683 - Object.defineProperty(props, 'key', {
10684 - get: warnAboutAccessingKey,
10685 - configurable: true
10686 - });
10687 - }
10688 - if (!props.hasOwnProperty('ref')) {
10689 - Object.defineProperty(props, 'ref', {
10690 - get: warnAboutAccessingRef,
10691 - configurable: true
10692 - });
10656 + if (key || ref) {
10657 + if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {
10658 + var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
10659 + if (key) {
10660 + defineKeyPropWarningGetter(props, displayName);
10661 + }
10662 + if (ref) {
10663 + defineRefPropWarningGetter(props, displayName);
10664 + }
10665 }
10666 }
10667 }
@@ -10805,7 +10777,7 @@ ReactElement.isValidElement = function (object) {
10777 ReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE;
10778
10779 module.exports = ReactElement;
10808 -},{"120":120,"174":174,"175":175,"37":37}],64:[function(_dereq_,module,exports){
10780 +},{"118":118,"171":171,"172":172,"37":37}],62:[function(_dereq_,module,exports){
10781 /**
10782 * Copyright 2014-present, Facebook, Inc.
10783 * All rights reserved.
@@ -10827,15 +10799,15 @@ module.exports = ReactElement;
10799 'use strict';
10800
10801 var ReactCurrentOwner = _dereq_(37);
10830 -var ReactComponentTreeDevtool = _dereq_(35);
10831 -var ReactElement = _dereq_(63);
10832 -var ReactPropTypeLocations = _dereq_(85);
10802 +var ReactComponentTreeHook = _dereq_(35);
10803 +var ReactElement = _dereq_(61);
10804 +var ReactPropTypeLocations = _dereq_(83);
10805
10834 -var checkReactTypeSpec = _dereq_(121);
10806 +var checkReactTypeSpec = _dereq_(119);
10807
10836 -var canDefineProperty = _dereq_(120);
10837 -var getIteratorFn = _dereq_(133);
10838 -var warning = _dereq_(174);
10808 +var canDefineProperty = _dereq_(118);
10809 +var getIteratorFn = _dereq_(131);
10810 +var warning = _dereq_(171);
10811
10812 function getDeclarationErrorAddendum() {
10813 if (ReactCurrentOwner.current) {
@@ -10900,7 +10872,7 @@ function validateExplicitKey(element, parentType) {
10872 childOwner = ' It was passed a child from ' + element._owner.getName() + '.';
10873 }
10874
10903 - "development" !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeDevtool.getCurrentStackAddendum(element)) : void 0;
10875 + "development" !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0;
10876 }
10877
10878 /**
@@ -10971,7 +10943,9 @@ var ReactElementValidator = {
10943 var validType = typeof type === 'string' || typeof type === 'function';
10944 // We warn in this case but don't throw. We expect the element creation to
10945 // succeed and there will likely be errors in render.
10974 - "development" !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0;
10946 + if (!validType) {
10947 + "development" !== 'production' ? warning(false, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0;
10948 + }
10949
10950 var element = ReactElement.createElement.apply(this, arguments);
10951
@@ -11032,7 +11006,7 @@ var ReactElementValidator = {
11006 };
11007
11008 module.exports = ReactElementValidator;
11035 -},{"120":120,"121":121,"133":133,"174":174,"35":35,"37":37,"63":63,"85":85}],65:[function(_dereq_,module,exports){
11009 +},{"118":118,"119":119,"131":131,"171":171,"35":35,"37":37,"61":61,"83":83}],63:[function(_dereq_,module,exports){
11010 /**
11011 * Copyright 2014-present, Facebook, Inc.
11012 * All rights reserved.
@@ -11063,7 +11037,7 @@ var ReactEmptyComponent = {
11037 ReactEmptyComponent.injection = ReactEmptyComponentInjection;
11038
11039 module.exports = ReactEmptyComponent;
11066 -},{}],66:[function(_dereq_,module,exports){
11040 +},{}],64:[function(_dereq_,module,exports){
11041 /**
11042 * Copyright 2013-present, Facebook, Inc.
11043 * All rights reserved.
@@ -11140,7 +11114,7 @@ if ("development" !== 'production') {
11114 }
11115
11116 module.exports = ReactErrorUtils;
11143 -},{}],67:[function(_dereq_,module,exports){
11117 +},{}],65:[function(_dereq_,module,exports){
11118 /**
11119 * Copyright 2013-present, Facebook, Inc.
11120 * All rights reserved.
@@ -11174,7 +11148,7 @@ var ReactEventEmitterMixin = {
11148 };
11149
11150 module.exports = ReactEventEmitterMixin;
11177 -},{"17":17}],68:[function(_dereq_,module,exports){
11151 +},{"17":17}],66:[function(_dereq_,module,exports){
11152 /**
11153 * Copyright 2013-present, Facebook, Inc.
11154 * All rights reserved.
@@ -11188,16 +11162,16 @@ module.exports = ReactEventEmitterMixin;
11162
11163 'use strict';
11164
11191 -var _assign = _dereq_(175);
11165 +var _assign = _dereq_(172);
11166
11193 -var EventListener = _dereq_(149);
11194 -var ExecutionEnvironment = _dereq_(150);
11167 +var EventListener = _dereq_(147);
11168 +var ExecutionEnvironment = _dereq_(148);
11169 var PooledClass = _dereq_(25);
11170 var ReactDOMComponentTree = _dereq_(42);
11197 -var ReactUpdates = _dereq_(98);
11171 +var ReactUpdates = _dereq_(96);
11172
11199 -var getEventTarget = _dereq_(131);
11200 -var getUnboundedScrollPosition = _dereq_(161);
11173 +var getEventTarget = _dereq_(129);
11174 +var getUnboundedScrollPosition = _dereq_(159);
11175
11176 /**
11177 * Find the deepest React component completely containing the root of the
@@ -11332,7 +11306,7 @@ var ReactEventListener = {
11306 };
11307
11308 module.exports = ReactEventListener;
11335 -},{"131":131,"149":149,"150":150,"161":161,"175":175,"25":25,"42":42,"98":98}],69:[function(_dereq_,module,exports){
11309 +},{"129":129,"147":147,"148":148,"159":159,"172":172,"25":25,"42":42,"96":96}],67:[function(_dereq_,module,exports){
11310 /**
11311 * Copyright 2013-present, Facebook, Inc.
11312 * All rights reserved.
@@ -11355,7 +11329,7 @@ var ReactFeatureFlags = {
11329 };
11330
11331 module.exports = ReactFeatureFlags;
11358 -},{}],70:[function(_dereq_,module,exports){
11332 +},{}],68:[function(_dereq_,module,exports){
11333 /**
11334 * Copyright 2014-present, Facebook, Inc.
11335 * All rights reserved.
@@ -11369,10 +11343,10 @@ module.exports = ReactFeatureFlags;
11343
11344 'use strict';
11345
11372 -var _prodInvariant = _dereq_(142),
11373 - _assign = _dereq_(175);
11346 +var _prodInvariant = _dereq_(140),
11347 + _assign = _dereq_(172);
11348
11375 -var invariant = _dereq_(164);
11349 +var invariant = _dereq_(162);
11350
11351 var genericComponentClass = null;
11352 // This registry keeps track of wrapper classes around host tags.
@@ -11432,7 +11406,7 @@ var ReactHostComponent = {
11406 };
11407
11408 module.exports = ReactHostComponent;
11435 -},{"142":142,"164":164,"175":175}],71:[function(_dereq_,module,exports){
11409 +},{"140":140,"162":162,"172":172}],69:[function(_dereq_,module,exports){
11410 /**
11411 * Copyright 2016-present, Facebook, Inc.
11412 * All rights reserved.
@@ -11441,14 +11415,14 @@ module.exports = ReactHostComponent;
11415 * LICENSE file in the root directory of this source tree. An additional grant
11416 * of patent rights can be found in the PATENTS file in the same directory.
11417 *
11444 - * @providesModule ReactHostOperationHistoryDevtool
11418 + * @providesModule ReactHostOperationHistoryHook
11419 */
11420
11421 'use strict';
11422
11423 var history = [];
11424
11451 -var ReactHostOperationHistoryDevtool = {
11425 +var ReactHostOperationHistoryHook = {
11426 onHostOperation: function (debugID, type, payload) {
11427 history.push({
11428 instanceID: debugID,
@@ -11457,7 +11431,7 @@ var ReactHostOperationHistoryDevtool = {
11431 });
11432 },
11433 clearHistory: function () {
11460 - if (ReactHostOperationHistoryDevtool._preventClearing) {
11434 + if (ReactHostOperationHistoryHook._preventClearing) {
11435 // Should only be used for tests.
11436 return;
11437 }
@@ -11469,8 +11443,8 @@ var ReactHostOperationHistoryDevtool = {
11443 }
11444 };
11445
11472 -module.exports = ReactHostOperationHistoryDevtool;
11473 -},{}],72:[function(_dereq_,module,exports){
11446 +module.exports = ReactHostOperationHistoryHook;
11447 +},{}],70:[function(_dereq_,module,exports){
11448 /**
11449 * Copyright 2013-present, Facebook, Inc.
11450 * All rights reserved.
@@ -11489,10 +11463,10 @@ var EventPluginHub = _dereq_(17);
11463 var EventPluginUtils = _dereq_(19);
11464 var ReactComponentEnvironment = _dereq_(34);
11465 var ReactClass = _dereq_(31);
11492 -var ReactEmptyComponent = _dereq_(65);
11466 +var ReactEmptyComponent = _dereq_(63);
11467 var ReactBrowserEventEmitter = _dereq_(27);
11494 -var ReactHostComponent = _dereq_(70);
11495 -var ReactUpdates = _dereq_(98);
11468 +var ReactHostComponent = _dereq_(68);
11469 +var ReactUpdates = _dereq_(96);
11470
11471 var ReactInjection = {
11472 Component: ReactComponentEnvironment.injection,
@@ -11507,7 +11481,7 @@ var ReactInjection = {
11481 };
11482
11483 module.exports = ReactInjection;
11510 -},{"10":10,"17":17,"19":19,"27":27,"31":31,"34":34,"65":65,"70":70,"98":98}],73:[function(_dereq_,module,exports){
11484 +},{"10":10,"17":17,"19":19,"27":27,"31":31,"34":34,"63":63,"68":68,"96":96}],71:[function(_dereq_,module,exports){
11485 /**
11486 * Copyright 2013-present, Facebook, Inc.
11487 * All rights reserved.
@@ -11521,11 +11495,11 @@ module.exports = ReactInjection;
11495
11496 'use strict';
11497
11524 -var ReactDOMSelection = _dereq_(54);
11498 +var ReactDOMSelection = _dereq_(52);
11499
11526 -var containsNode = _dereq_(153);
11527 -var focusNode = _dereq_(158);
11528 -var getActiveElement = _dereq_(159);
11500 +var containsNode = _dereq_(151);
11501 +var focusNode = _dereq_(156);
11502 +var getActiveElement = _dereq_(157);
11503
11504 function isInDocument(node) {
11505 return containsNode(document.documentElement, node);
@@ -11632,7 +11606,7 @@ var ReactInputSelection = {
11606 };
11607
11608 module.exports = ReactInputSelection;
11635 -},{"153":153,"158":158,"159":159,"54":54}],74:[function(_dereq_,module,exports){
11609 +},{"151":151,"156":156,"157":157,"52":52}],72:[function(_dereq_,module,exports){
11610 /**
11611 * Copyright 2013-present, Facebook, Inc.
11612 * All rights reserved.
@@ -11681,7 +11655,7 @@ var ReactInstanceMap = {
11655 };
11656
11657 module.exports = ReactInstanceMap;
11684 -},{}],75:[function(_dereq_,module,exports){
11658 +},{}],73:[function(_dereq_,module,exports){
11659 /**
11660 * Copyright 2016-present, Facebook, Inc.
11661 * All rights reserved.
@@ -11698,12 +11672,12 @@ module.exports = ReactInstanceMap;
11672 var debugTool = null;
11673
11674 if ("development" !== 'production') {
11701 - var ReactDebugTool = _dereq_(60);
11675 + var ReactDebugTool = _dereq_(58);
11676 debugTool = ReactDebugTool;
11677 }
11678
11679 module.exports = { debugTool: debugTool };
11706 -},{"60":60}],76:[function(_dereq_,module,exports){
11680 +},{"58":58}],74:[function(_dereq_,module,exports){
11681 /**
11682 * Copyright 2016-present, Facebook, Inc.
11683 * All rights reserved.
@@ -11712,12 +11686,12 @@ module.exports = { debugTool: debugTool };
11686 * LICENSE file in the root directory of this source tree. An additional grant
11687 * of patent rights can be found in the PATENTS file in the same directory.
11688 *
11715 - * @providesModule ReactInvalidSetStateWarningDevTool
11689 + * @providesModule ReactInvalidSetStateWarningHook
11690 */
11691
11692 'use strict';
11693
11720 -var warning = _dereq_(174);
11694 +var warning = _dereq_(171);
11695
11696 if ("development" !== 'production') {
11697 var processingChildContext = false;
@@ -11727,7 +11701,7 @@ if ("development" !== 'production') {
11701 };
11702 }
11703
11730 -var ReactInvalidSetStateWarningDevTool = {
11704 +var ReactInvalidSetStateWarningHook = {
11705 onBeginProcessingChildContext: function () {
11706 processingChildContext = true;
11707 },
@@ -11739,8 +11713,8 @@ var ReactInvalidSetStateWarningDevTool = {
11713 }
11714 };
11715
11742 -module.exports = ReactInvalidSetStateWarningDevTool;
11743 -},{"174":174}],77:[function(_dereq_,module,exports){
11716 +module.exports = ReactInvalidSetStateWarningHook;
11717 +},{"171":171}],75:[function(_dereq_,module,exports){
11718 /**
11719 * Copyright 2013-present, Facebook, Inc.
11720 * All rights reserved.
@@ -11754,7 +11728,7 @@ module.exports = ReactInvalidSetStateWarningDevTool;
11728
11729 'use strict';
11730
11757 -var adler32 = _dereq_(119);
11731 +var adler32 = _dereq_(117);
11732
11733 var TAG_END = /\/?>/;
11734 var COMMENT_START = /^<\!\-\-/;
@@ -11791,7 +11765,7 @@ var ReactMarkupChecksum = {
11765 };
11766
11767 module.exports = ReactMarkupChecksum;
11794 -},{"119":119}],78:[function(_dereq_,module,exports){
11768 +},{"117":117}],76:[function(_dereq_,module,exports){
11769 /**
11770 * Copyright 2013-present, Facebook, Inc.
11771 * All rights reserved.
@@ -11805,7 +11779,7 @@ module.exports = ReactMarkupChecksum;
11779
11780 'use strict';
11781
11808 -var _prodInvariant = _dereq_(142);
11782 +var _prodInvariant = _dereq_(140);
11783
11784 var DOMLazyTree = _dereq_(8);
11785 var DOMProperty = _dereq_(10);
@@ -11813,22 +11787,22 @@ var ReactBrowserEventEmitter = _dereq_(27);
11787 var ReactCurrentOwner = _dereq_(37);
11788 var ReactDOMComponentTree = _dereq_(42);
11789 var ReactDOMContainerInfo = _dereq_(43);
11816 -var ReactDOMFeatureFlags = _dereq_(47);
11817 -var ReactElement = _dereq_(63);
11818 -var ReactFeatureFlags = _dereq_(69);
11819 -var ReactInstanceMap = _dereq_(74);
11820 -var ReactInstrumentation = _dereq_(75);
11821 -var ReactMarkupChecksum = _dereq_(77);
11822 -var ReactReconciler = _dereq_(90);
11823 -var ReactUpdateQueue = _dereq_(97);
11824 -var ReactUpdates = _dereq_(98);
11825 -
11826 -var emptyObject = _dereq_(157);
11827 -var instantiateReactComponent = _dereq_(137);
11828 -var invariant = _dereq_(164);
11829 -var setInnerHTML = _dereq_(144);
11830 -var shouldUpdateReactComponent = _dereq_(146);
11831 -var warning = _dereq_(174);
11790 +var ReactDOMFeatureFlags = _dereq_(46);
11791 +var ReactElement = _dereq_(61);
11792 +var ReactFeatureFlags = _dereq_(67);
11793 +var ReactInstanceMap = _dereq_(72);
11794 +var ReactInstrumentation = _dereq_(73);
11795 +var ReactMarkupChecksum = _dereq_(75);
11796 +var ReactReconciler = _dereq_(88);
11797 +var ReactUpdateQueue = _dereq_(95);
11798 +var ReactUpdates = _dereq_(96);
11799 +
11800 +var emptyObject = _dereq_(155);
11801 +var instantiateReactComponent = _dereq_(135);
11802 +var invariant = _dereq_(162);
11803 +var setInnerHTML = _dereq_(142);
11804 +var shouldUpdateReactComponent = _dereq_(144);
11805 +var warning = _dereq_(171);
11806
11807 var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
11808 var ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;
@@ -11896,7 +11870,8 @@ function mountComponentIntoNode(wrapperInstance, container, transaction, shouldR
11870 console.time(markerName);
11871 }
11872
11899 - var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context);
11873 + var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */
11874 + );
11875
11876 if (markerName) {
11877 console.timeEnd(markerName);
@@ -11967,6 +11942,41 @@ function hasNonRootReactChild(container) {
11942 }
11943 }
11944
11945 +/**
11946 + * True if the supplied DOM node is a React DOM element and
11947 + * it has been rendered by another copy of React.
11948 + *
11949 + * @param {?DOMElement} node The candidate DOM node.
11950 + * @return {boolean} True if the DOM has been rendered by another copy of React
11951 + * @internal
11952 + */
11953 +function nodeIsRenderedByOtherInstance(container) {
11954 + var rootEl = getReactRootElementInContainer(container);
11955 + return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));
11956 +}
11957 +
11958 +/**
11959 + * True if the supplied DOM node is a valid node element.
11960 + *
11961 + * @param {?DOMElement} node The candidate DOM node.
11962 + * @return {boolean} True if the DOM is a valid DOM node.
11963 + * @internal
11964 + */
11965 +function isValidContainer(node) {
11966 + return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));
11967 +}
11968 +
11969 +/**
11970 + * True if the supplied DOM node is a valid React node element.
11971 + *
11972 + * @param {?DOMElement} node The candidate DOM node.
11973 + * @return {boolean} True if the DOM is a valid React DOM node.
11974 + * @internal
11975 + */
11976 +function isReactNode(node) {
11977 + return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));
11978 +}
11979 +
11980 function getHostRootInstanceInContainer(container) {
11981 var rootEl = getReactRootElementInContainer(container);
11982 var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);
@@ -12054,7 +12064,7 @@ var ReactMount = {
12064 },
12065
12066 /**
12057 - * Render a new component into the DOM. Hooked by devtools!
12067 + * Render a new component into the DOM. Hooked by hooks!
12068 *
12069 * @param {ReactElement} nextElement element to render
12070 * @param {DOMElement} container container to render into
@@ -12067,7 +12077,7 @@ var ReactMount = {
12077 // verify that that's the case.
12078 "development" !== '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;
12079
12070 - !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;
12080 + !isValidContainer(container) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;
12081
12082 ReactBrowserEventEmitter.ensureScrollValueMonitoring();
12083 var componentInstance = instantiateReactComponent(nextElement, false);
@@ -12081,11 +12091,6 @@ var ReactMount = {
12091 var wrapperID = componentInstance._instance.rootID;
12092 instancesByReactRootID[wrapperID] = componentInstance;
12093
12084 - if ("development" !== 'production') {
12085 - // The instance here is TopLevelWrapper so we report mount for its child.
12086 - ReactInstrumentation.debugTool.onMountRootComponent(componentInstance._renderedComponent._debugID);
12087 - }
12088 -
12094 return componentInstance;
12095 },
12096
@@ -12201,7 +12206,11 @@ var ReactMount = {
12206 // render but we still don't expect to be in a render call here.)
12207 "development" !== '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;
12208
12204 - !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;
12209 + !isValidContainer(container) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;
12210 +
12211 + if ("development" !== 'production') {
12212 + "development" !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;
12213 + }
12214
12215 var prevComponent = getTopLevelWrapperInContainer(container);
12216 if (!prevComponent) {
@@ -12224,7 +12233,7 @@ var ReactMount = {
12233 },
12234
12235 _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {
12227 - !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;
12236 + !isValidContainer(container) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;
12237
12238 if (shouldReuseMarkup) {
12239 var rootElement = getReactRootElementInContainer(container);
@@ -12291,7 +12300,7 @@ var ReactMount = {
12300 };
12301
12302 module.exports = ReactMount;
12294 -},{"10":10,"137":137,"142":142,"144":144,"146":146,"157":157,"164":164,"174":174,"27":27,"37":37,"42":42,"43":43,"47":47,"63":63,"69":69,"74":74,"75":75,"77":77,"8":8,"90":90,"97":97,"98":98}],79:[function(_dereq_,module,exports){
12303 +},{"10":10,"135":135,"140":140,"142":142,"144":144,"155":155,"162":162,"171":171,"27":27,"37":37,"42":42,"43":43,"46":46,"61":61,"67":67,"72":72,"73":73,"75":75,"8":8,"88":88,"95":95,"96":96}],77:[function(_dereq_,module,exports){
12304 /**
12305 * Copyright 2013-present, Facebook, Inc.
12306 * All rights reserved.
@@ -12305,20 +12314,20 @@ module.exports = ReactMount;
12314
12315 'use strict';
12316
12308 -var _prodInvariant = _dereq_(142);
12317 +var _prodInvariant = _dereq_(140);
12318
12319 var ReactComponentEnvironment = _dereq_(34);
12311 -var ReactInstanceMap = _dereq_(74);
12312 -var ReactInstrumentation = _dereq_(75);
12313 -var ReactMultiChildUpdateTypes = _dereq_(80);
12320 +var ReactInstanceMap = _dereq_(72);
12321 +var ReactInstrumentation = _dereq_(73);
12322 +var ReactMultiChildUpdateTypes = _dereq_(78);
12323
12324 var ReactCurrentOwner = _dereq_(37);
12316 -var ReactReconciler = _dereq_(90);
12325 +var ReactReconciler = _dereq_(88);
12326 var ReactChildReconciler = _dereq_(28);
12327
12319 -var emptyFunction = _dereq_(156);
12320 -var flattenChildren = _dereq_(126);
12321 -var invariant = _dereq_(164);
12328 +var emptyFunction = _dereq_(154);
12329 +var flattenChildren = _dereq_(124);
12330 +var invariant = _dereq_(162);
12331
12332 /**
12333 * Make an update for markup to be rendered and inserted at a supplied index.
@@ -12433,7 +12442,6 @@ function processQueue(inst, updateQueue) {
12442 ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);
12443 }
12444
12436 -var setParentForInstrumentation = emptyFunction;
12445 var setChildrenForInstrumentation = emptyFunction;
12446 if ("development" !== 'production') {
12447 var getDebugID = function (inst) {
@@ -12446,11 +12454,6 @@ if ("development" !== 'production') {
12454 }
12455 return inst._debugID;
12456 };
12449 - setParentForInstrumentation = function (child) {
12450 - if (child._debugID !== 0) {
12451 - ReactInstrumentation.debugTool.onSetParent(child._debugID, getDebugID(this));
12452 - }
12453 - };
12457 setChildrenForInstrumentation = function (children) {
12458 var debugID = getDebugID(this);
12459 // TODO: React Native empty components are also multichild.
@@ -12482,10 +12485,11 @@ var ReactMultiChild = {
12485
12486 _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {
12487 if ("development" !== 'production') {
12488 + var selfDebugID = getDebugID(this);
12489 if (this._currentElement) {
12490 try {
12491 ReactCurrentOwner.current = this._currentElement._owner;
12488 - return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, this._debugID);
12492 + return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);
12493 } finally {
12494 ReactCurrentOwner.current = null;
12495 }
@@ -12496,20 +12500,22 @@ var ReactMultiChild = {
12500
12501 _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {
12502 var nextChildren;
12503 + var selfDebugID = 0;
12504 if ("development" !== 'production') {
12505 + selfDebugID = getDebugID(this);
12506 if (this._currentElement) {
12507 try {
12508 ReactCurrentOwner.current = this._currentElement._owner;
12503 - nextChildren = flattenChildren(nextNestedChildrenElements, this._debugID);
12509 + nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);
12510 } finally {
12511 ReactCurrentOwner.current = null;
12512 }
12507 - ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context);
12513 + ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);
12514 return nextChildren;
12515 }
12516 }
12511 - nextChildren = flattenChildren(nextNestedChildrenElements);
12512 - ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context);
12517 + nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);
12518 + ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);
12519 return nextChildren;
12520 },
12521
@@ -12530,10 +12536,11 @@ var ReactMultiChild = {
12536 for (var name in children) {
12537 if (children.hasOwnProperty(name)) {
12538 var child = children[name];
12539 + var selfDebugID = 0;
12540 if ("development" !== 'production') {
12534 - setParentForInstrumentation.call(this, child);
12541 + selfDebugID = getDebugID(this);
12542 }
12536 - var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context);
12543 + var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);
12544 child._mountIndex = index++;
12545 mountImages.push(mountImage);
12546 }
@@ -12745,7 +12752,7 @@ var ReactMultiChild = {
12752 };
12753
12754 module.exports = ReactMultiChild;
12748 -},{"126":126,"142":142,"156":156,"164":164,"28":28,"34":34,"37":37,"74":74,"75":75,"80":80,"90":90}],80:[function(_dereq_,module,exports){
12755 +},{"124":124,"140":140,"154":154,"162":162,"28":28,"34":34,"37":37,"72":72,"73":73,"78":78,"88":88}],78:[function(_dereq_,module,exports){
12756 /**
12757 * Copyright 2013-present, Facebook, Inc.
12758 * All rights reserved.
@@ -12759,7 +12766,7 @@ module.exports = ReactMultiChild;
12766
12767 'use strict';
12768
12762 -var keyMirror = _dereq_(167);
12769 +var keyMirror = _dereq_(165);
12770
12771 /**
12772 * When a component's children are updated, a series of update configuration
@@ -12778,7 +12785,7 @@ var ReactMultiChildUpdateTypes = keyMirror({
12785 });
12786
12787 module.exports = ReactMultiChildUpdateTypes;
12781 -},{"167":167}],81:[function(_dereq_,module,exports){
12788 +},{"165":165}],79:[function(_dereq_,module,exports){
12789 /**
12790 * Copyright 2013-present, Facebook, Inc.
12791 * All rights reserved.
@@ -12793,11 +12800,11 @@ module.exports = ReactMultiChildUpdateTypes;
12800
12801 'use strict';
12802
12796 -var _prodInvariant = _dereq_(142);
12803 +var _prodInvariant = _dereq_(140);
12804
12798 -var ReactElement = _dereq_(63);
12805 +var ReactElement = _dereq_(61);
12806
12800 -var invariant = _dereq_(164);
12807 +var invariant = _dereq_(162);
12808
12809 var ReactNodeTypes = {
12810 HOST: 0,
@@ -12819,7 +12826,7 @@ var ReactNodeTypes = {
12826 };
12827
12828 module.exports = ReactNodeTypes;
12822 -},{"142":142,"164":164,"63":63}],82:[function(_dereq_,module,exports){
12829 +},{"140":140,"162":162,"61":61}],80:[function(_dereq_,module,exports){
12830 /**
12831 * Copyright 2015-present, Facebook, Inc.
12832 * All rights reserved.
@@ -12833,7 +12840,7 @@ module.exports = ReactNodeTypes;
12840
12841 'use strict';
12842
12836 -var warning = _dereq_(174);
12843 +var warning = _dereq_(171);
12844
12845 function warnNoop(publicInstance, callerName) {
12846 if ("development" !== 'production') {
@@ -12916,7 +12923,7 @@ var ReactNoopUpdateQueue = {
12923 };
12924
12925 module.exports = ReactNoopUpdateQueue;
12919 -},{"174":174}],83:[function(_dereq_,module,exports){
12926 +},{"171":171}],81:[function(_dereq_,module,exports){
12927 /**
12928 * Copyright 2013-present, Facebook, Inc.
12929 * All rights reserved.
@@ -12930,9 +12937,9 @@ module.exports = ReactNoopUpdateQueue;
12937
12938 'use strict';
12939
12933 -var _prodInvariant = _dereq_(142);
12940 +var _prodInvariant = _dereq_(140);
12941
12935 -var invariant = _dereq_(164);
12942 +var invariant = _dereq_(162);
12943
12944 /**
12945 * ReactOwners are capable of storing references to owned components.
@@ -13011,7 +13018,7 @@ var ReactOwner = {
13018 };
13019
13020 module.exports = ReactOwner;
13014 -},{"142":142,"164":164}],84:[function(_dereq_,module,exports){
13021 +},{"140":140,"162":162}],82:[function(_dereq_,module,exports){
13022 /**
13023 * Copyright 2013-present, Facebook, Inc.
13024 * All rights reserved.
@@ -13036,7 +13043,7 @@ if ("development" !== 'production') {
13043 }
13044
13045 module.exports = ReactPropTypeLocationNames;
13039 -},{}],85:[function(_dereq_,module,exports){
13046 +},{}],83:[function(_dereq_,module,exports){
13047 /**
13048 * Copyright 2013-present, Facebook, Inc.
13049 * All rights reserved.
@@ -13050,7 +13057,7 @@ module.exports = ReactPropTypeLocationNames;
13057
13058 'use strict';
13059
13053 -var keyMirror = _dereq_(167);
13060 +var keyMirror = _dereq_(165);
13061
13062 var ReactPropTypeLocations = keyMirror({
13063 prop: null,
@@ -13059,7 +13066,7 @@ var ReactPropTypeLocations = keyMirror({
13066 });
13067
13068 module.exports = ReactPropTypeLocations;
13062 -},{"167":167}],86:[function(_dereq_,module,exports){
13069 +},{"165":165}],84:[function(_dereq_,module,exports){
13070 /**
13071 * Copyright 2013-present, Facebook, Inc.
13072 * All rights reserved.
@@ -13073,13 +13080,13 @@ module.exports = ReactPropTypeLocations;
13080
13081 'use strict';
13082
13076 -var ReactElement = _dereq_(63);
13077 -var ReactPropTypeLocationNames = _dereq_(84);
13078 -var ReactPropTypesSecret = _dereq_(87);
13083 +var ReactElement = _dereq_(61);
13084 +var ReactPropTypeLocationNames = _dereq_(82);
13085 +var ReactPropTypesSecret = _dereq_(85);
13086
13080 -var emptyFunction = _dereq_(156);
13081 -var getIteratorFn = _dereq_(133);
13082 -var warning = _dereq_(174);
13087 +var emptyFunction = _dereq_(154);
13088 +var getIteratorFn = _dereq_(131);
13089 +var warning = _dereq_(171);
13090
13091 /**
13092 * Collection of methods that allow declaration and validation of props that are
@@ -13168,6 +13175,20 @@ function is(x, y) {
13175 }
13176 /*eslint-enable no-self-compare*/
13177
13178 +/**
13179 + * We use an Error-like object for backward compatibility as people may call
13180 + * PropTypes directly and inspect their output. However we don't use real
13181 + * Errors anymore. We don't inspect their stack anyway, and creating them
13182 + * is prohibitively expensive if they are created too often, such as what
13183 + * happens in oneOfType() for any type before the one that matched.
13184 + */
13185 +function PropTypeError(message) {
13186 + this.message = message;
13187 + this.stack = '';
13188 +}
13189 +// Make `instanceof Error` still work for returned errors.
13190 +PropTypeError.prototype = Error.prototype;
13191 +
13192 function createChainableTypeChecker(validate) {
13193 if ("development" !== 'production') {
13194 var manualPropTypeCallCache = {};
@@ -13187,7 +13208,7 @@ function createChainableTypeChecker(validate) {
13208 if (props[propName] == null) {
13209 var locationName = ReactPropTypeLocationNames[location];
13210 if (isRequired) {
13190 - return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));
13211 + return new PropTypeError('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));
13212 }
13213 return null;
13214 } else {
@@ -13212,7 +13233,7 @@ function createPrimitiveTypeChecker(expectedType) {
13233 // 'of type `object`'.
13234 var preciseType = getPreciseType(propValue);
13235
13215 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
13236 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
13237 }
13238 return null;
13239 }
@@ -13226,13 +13247,13 @@ function createAnyTypeChecker() {
13247 function createArrayOfTypeChecker(typeChecker) {
13248 function validate(props, propName, componentName, location, propFullName) {
13249 if (typeof typeChecker !== 'function') {
13229 - return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
13250 + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
13251 }
13252 var propValue = props[propName];
13253 if (!Array.isArray(propValue)) {
13254 var locationName = ReactPropTypeLocationNames[location];
13255 var propType = getPropType(propValue);
13235 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
13256 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
13257 }
13258 for (var i = 0; i < propValue.length; i++) {
13259 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
@@ -13251,7 +13272,7 @@ function createElementTypeChecker() {
13272 if (!ReactElement.isValidElement(propValue)) {
13273 var locationName = ReactPropTypeLocationNames[location];
13274 var propType = getPropType(propValue);
13254 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
13275 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
13276 }
13277 return null;
13278 }
@@ -13264,7 +13285,7 @@ function createInstanceTypeChecker(expectedClass) {
13285 var locationName = ReactPropTypeLocationNames[location];
13286 var expectedClassName = expectedClass.name || ANONYMOUS;
13287 var actualClassName = getClassName(props[propName]);
13267 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
13288 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
13289 }
13290 return null;
13291 }
@@ -13287,7 +13308,7 @@ function createEnumTypeChecker(expectedValues) {
13308
13309 var locationName = ReactPropTypeLocationNames[location];
13310 var valuesString = JSON.stringify(expectedValues);
13290 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
13311 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
13312 }
13313 return createChainableTypeChecker(validate);
13314 }
@@ -13295,13 +13316,13 @@ function createEnumTypeChecker(expectedValues) {
13316 function createObjectOfTypeChecker(typeChecker) {
13317 function validate(props, propName, componentName, location, propFullName) {
13318 if (typeof typeChecker !== 'function') {
13298 - return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
13319 + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
13320 }
13321 var propValue = props[propName];
13322 var propType = getPropType(propValue);
13323 if (propType !== 'object') {
13324 var locationName = ReactPropTypeLocationNames[location];
13304 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
13325 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
13326 }
13327 for (var key in propValue) {
13328 if (propValue.hasOwnProperty(key)) {
@@ -13331,7 +13352,7 @@ function createUnionTypeChecker(arrayOfTypeCheckers) {
13352 }
13353
13354 var locationName = ReactPropTypeLocationNames[location];
13334 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
13355 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
13356 }
13357 return createChainableTypeChecker(validate);
13358 }
@@ -13340,7 +13361,7 @@ function createNodeChecker() {
13361 function validate(props, propName, componentName, location, propFullName) {
13362 if (!isNode(props[propName])) {
13363 var locationName = ReactPropTypeLocationNames[location];
13343 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
13364 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
13365 }
13366 return null;
13367 }
@@ -13353,7 +13374,7 @@ function createShapeTypeChecker(shapeTypes) {
13374 var propType = getPropType(propValue);
13375 if (propType !== 'object') {
13376 var locationName = ReactPropTypeLocationNames[location];
13356 - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
13377 + return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
13378 }
13379 for (var key in shapeTypes) {
13380 var checker = shapeTypes[key];
@@ -13477,7 +13498,7 @@ function getClassName(propValue) {
13498 }
13499
13500 module.exports = ReactPropTypes;
13480 -},{"133":133,"156":156,"174":174,"63":63,"84":84,"87":87}],87:[function(_dereq_,module,exports){
13501 +},{"131":131,"154":154,"171":171,"61":61,"82":82,"85":85}],85:[function(_dereq_,module,exports){
13502 /**
13503 * Copyright 2013-present, Facebook, Inc.
13504 * All rights reserved.
@@ -13494,7 +13515,7 @@ module.exports = ReactPropTypes;
13515 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
13516
13517 module.exports = ReactPropTypesSecret;
13497 -},{}],88:[function(_dereq_,module,exports){
13518 +},{}],86:[function(_dereq_,module,exports){
13519 /**
13520 * Copyright 2013-present, Facebook, Inc.
13521 * All rights reserved.
@@ -13508,12 +13529,12 @@ module.exports = ReactPropTypesSecret;
13529
13530 'use strict';
13531
13511 -var _assign = _dereq_(175);
13532 +var _assign = _dereq_(172);
13533
13534 var ReactComponent = _dereq_(32);
13514 -var ReactNoopUpdateQueue = _dereq_(82);
13535 +var ReactNoopUpdateQueue = _dereq_(80);
13536
13516 -var emptyObject = _dereq_(157);
13537 +var emptyObject = _dereq_(155);
13538
13539 /**
13540 * Base class helpers for the updating state of a component.
@@ -13537,7 +13558,7 @@ _assign(ReactPureComponent.prototype, ReactComponent.prototype);
13558 ReactPureComponent.prototype.isPureReactComponent = true;
13559
13560 module.exports = ReactPureComponent;
13540 -},{"157":157,"175":175,"32":32,"82":82}],89:[function(_dereq_,module,exports){
13561 +},{"155":155,"172":172,"32":32,"80":80}],87:[function(_dereq_,module,exports){
13562 /**
13563 * Copyright 2013-present, Facebook, Inc.
13564 * All rights reserved.
@@ -13551,15 +13572,15 @@ module.exports = ReactPureComponent;
13572
13573 'use strict';
13574
13554 -var _assign = _dereq_(175);
13575 +var _assign = _dereq_(172);
13576
13577 var CallbackQueue = _dereq_(5);
13578 var PooledClass = _dereq_(25);
13579 var ReactBrowserEventEmitter = _dereq_(27);
13559 -var ReactInputSelection = _dereq_(73);
13560 -var ReactInstrumentation = _dereq_(75);
13561 -var Transaction = _dereq_(116);
13562 -var ReactUpdateQueue = _dereq_(97);
13580 +var ReactInputSelection = _dereq_(71);
13581 +var ReactInstrumentation = _dereq_(73);
13582 +var Transaction = _dereq_(114);
13583 +var ReactUpdateQueue = _dereq_(95);
13584
13585 /**
13586 * Ensures that, when possible, the selection range (currently selected text
@@ -13716,7 +13737,7 @@ _assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);
13737 PooledClass.addPoolingTo(ReactReconcileTransaction);
13738
13739 module.exports = ReactReconcileTransaction;
13719 -},{"116":116,"175":175,"25":25,"27":27,"5":5,"73":73,"75":75,"97":97}],90:[function(_dereq_,module,exports){
13740 +},{"114":114,"172":172,"25":25,"27":27,"5":5,"71":71,"73":73,"95":95}],88:[function(_dereq_,module,exports){
13741 /**
13742 * Copyright 2013-present, Facebook, Inc.
13743 * All rights reserved.
@@ -13730,10 +13751,10 @@ module.exports = ReactReconcileTransaction;
13751
13752 'use strict';
13753
13733 -var ReactRef = _dereq_(91);
13734 -var ReactInstrumentation = _dereq_(75);
13754 +var ReactRef = _dereq_(89);
13755 +var ReactInstrumentation = _dereq_(73);
13756
13736 -var warning = _dereq_(174);
13757 +var warning = _dereq_(171);
13758
13759 /**
13760 * Helper to call ReactRef.attachRefs with this composite component, split out
@@ -13756,20 +13777,19 @@ var ReactReconciler = {
13777 * @final
13778 * @internal
13779 */
13759 - mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context) {
13780 + mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots
13781 + ) {
13782 if ("development" !== 'production') {
13783 if (internalInstance._debugID !== 0) {
13762 - ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement);
13763 - ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'mountComponent');
13784 + ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);
13785 }
13786 }
13766 - var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context);
13787 + var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);
13788 if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {
13789 transaction.getReactMountReady().enqueue(attachRefs, internalInstance);
13790 }
13791 if ("development" !== 'production') {
13792 if (internalInstance._debugID !== 0) {
13772 - ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'mountComponent');
13793 ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);
13794 }
13795 }
@@ -13793,14 +13813,13 @@ var ReactReconciler = {
13813 unmountComponent: function (internalInstance, safely) {
13814 if ("development" !== 'production') {
13815 if (internalInstance._debugID !== 0) {
13796 - ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'unmountComponent');
13816 + ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);
13817 }
13818 }
13819 ReactRef.detachRefs(internalInstance, internalInstance._currentElement);
13820 internalInstance.unmountComponent(safely);
13821 if ("development" !== 'production') {
13822 if (internalInstance._debugID !== 0) {
13803 - ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'unmountComponent');
13823 ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);
13824 }
13825 }
@@ -13835,7 +13854,6 @@ var ReactReconciler = {
13854 if ("development" !== 'production') {
13855 if (internalInstance._debugID !== 0) {
13856 ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);
13838 - ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'receiveComponent');
13857 }
13858 }
13859
@@ -13853,7 +13871,6 @@ var ReactReconciler = {
13871
13872 if ("development" !== 'production') {
13873 if (internalInstance._debugID !== 0) {
13856 - ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'receiveComponent');
13874 ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);
13875 }
13876 }
@@ -13875,14 +13892,12 @@ var ReactReconciler = {
13892 }
13893 if ("development" !== 'production') {
13894 if (internalInstance._debugID !== 0) {
13878 - ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary');
13895 ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);
13896 }
13897 }
13898 internalInstance.performUpdateIfNecessary(transaction);
13899 if ("development" !== 'production') {
13900 if (internalInstance._debugID !== 0) {
13885 - ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary');
13901 ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);
13902 }
13903 }
@@ -13891,7 +13906,7 @@ var ReactReconciler = {
13906 };
13907
13908 module.exports = ReactReconciler;
13894 -},{"174":174,"75":75,"91":91}],91:[function(_dereq_,module,exports){
13909 +},{"171":171,"73":73,"89":89}],89:[function(_dereq_,module,exports){
13910 /**
13911 * Copyright 2013-present, Facebook, Inc.
13912 * All rights reserved.
@@ -13905,7 +13920,7 @@ module.exports = ReactReconciler;
13920
13921 'use strict';
13922
13908 -var ReactOwner = _dereq_(83);
13923 +var ReactOwner = _dereq_(81);
13924
13925 var ReactRef = {};
13926
@@ -13953,7 +13968,7 @@ ReactRef.shouldUpdateRefs = function (prevElement, nextElement) {
13968 var prevEmpty = prevElement === null || prevElement === false;
13969 var nextEmpty = nextElement === null || nextElement === false;
13970
13956 - return(
13971 + return (
13972 // This has a few false positives w/r/t empty components.
13973 prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref ||
13974 // If owner changes but we have an unchanged function ref, don't update refs
@@ -13972,7 +13987,7 @@ ReactRef.detachRefs = function (instance, element) {
13987 };
13988
13989 module.exports = ReactRef;
13975 -},{"83":83}],92:[function(_dereq_,module,exports){
13990 +},{"81":81}],90:[function(_dereq_,module,exports){
13991 /**
13992 * Copyright 2014-present, Facebook, Inc.
13993 * All rights reserved.
@@ -13995,7 +14010,7 @@ var ReactServerBatchingStrategy = {
14010 };
14011
14012 module.exports = ReactServerBatchingStrategy;
13998 -},{}],93:[function(_dereq_,module,exports){
14013 +},{}],91:[function(_dereq_,module,exports){
14014 /**
14015 * Copyright 2013-present, Facebook, Inc.
14016 * All rights reserved.
@@ -14008,21 +14023,21 @@ module.exports = ReactServerBatchingStrategy;
14023 */
14024 'use strict';
14025
14011 -var _prodInvariant = _dereq_(142);
14026 +var _prodInvariant = _dereq_(140);
14027
14028 var ReactDOMContainerInfo = _dereq_(43);
14014 -var ReactDefaultBatchingStrategy = _dereq_(61);
14015 -var ReactElement = _dereq_(63);
14016 -var ReactInstrumentation = _dereq_(75);
14017 -var ReactMarkupChecksum = _dereq_(77);
14018 -var ReactReconciler = _dereq_(90);
14019 -var ReactServerBatchingStrategy = _dereq_(92);
14020 -var ReactServerRenderingTransaction = _dereq_(94);
14021 -var ReactUpdates = _dereq_(98);
14022 -
14023 -var emptyObject = _dereq_(157);
14024 -var instantiateReactComponent = _dereq_(137);
14025 -var invariant = _dereq_(164);
14029 +var ReactDefaultBatchingStrategy = _dereq_(59);
14030 +var ReactElement = _dereq_(61);
14031 +var ReactInstrumentation = _dereq_(73);
14032 +var ReactMarkupChecksum = _dereq_(75);
14033 +var ReactReconciler = _dereq_(88);
14034 +var ReactServerBatchingStrategy = _dereq_(90);
14035 +var ReactServerRenderingTransaction = _dereq_(92);
14036 +var ReactUpdates = _dereq_(96);
14037 +
14038 +var emptyObject = _dereq_(155);
14039 +var instantiateReactComponent = _dereq_(135);
14040 +var invariant = _dereq_(162);
14041
14042 var pendingTransactions = 0;
14043
@@ -14041,7 +14056,8 @@ function renderToStringImpl(element, makeStaticMarkup) {
14056
14057 return transaction.perform(function () {
14058 var componentInstance = instantiateReactComponent(element, true);
14044 - var markup = ReactReconciler.mountComponent(componentInstance, transaction, null, ReactDOMContainerInfo(), emptyObject);
14059 + var markup = ReactReconciler.mountComponent(componentInstance, transaction, null, ReactDOMContainerInfo(), emptyObject, 0 /* parentDebugID */
14060 + );
14061 if ("development" !== 'production') {
14062 ReactInstrumentation.debugTool.onUnmountComponent(componentInstance._debugID);
14063 }
@@ -14085,7 +14101,7 @@ module.exports = {
14101 renderToString: renderToString,
14102 renderToStaticMarkup: renderToStaticMarkup
14103 };
14088 -},{"137":137,"142":142,"157":157,"164":164,"43":43,"61":61,"63":63,"75":75,"77":77,"90":90,"92":92,"94":94,"98":98}],94:[function(_dereq_,module,exports){
14104 +},{"135":135,"140":140,"155":155,"162":162,"43":43,"59":59,"61":61,"73":73,"75":75,"88":88,"90":90,"92":92,"96":96}],92:[function(_dereq_,module,exports){
14105 /**
14106 * Copyright 2014-present, Facebook, Inc.
14107 * All rights reserved.
@@ -14099,12 +14115,12 @@ module.exports = {
14115
14116 'use strict';
14117
14102 -var _assign = _dereq_(175);
14118 +var _assign = _dereq_(172);
14119
14120 var PooledClass = _dereq_(25);
14105 -var Transaction = _dereq_(116);
14106 -var ReactInstrumentation = _dereq_(75);
14107 -var ReactServerUpdateQueue = _dereq_(95);
14121 +var Transaction = _dereq_(114);
14122 +var ReactInstrumentation = _dereq_(73);
14123 +var ReactServerUpdateQueue = _dereq_(93);
14124
14125 /**
14126 * Executed within the scope of the `Transaction` instance. Consider these as
@@ -14176,7 +14192,7 @@ _assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);
14192 PooledClass.addPoolingTo(ReactServerRenderingTransaction);
14193
14194 module.exports = ReactServerRenderingTransaction;
14179 -},{"116":116,"175":175,"25":25,"75":75,"95":95}],95:[function(_dereq_,module,exports){
14195 +},{"114":114,"172":172,"25":25,"73":73,"93":93}],93:[function(_dereq_,module,exports){
14196 /**
14197 * Copyright 2015-present, Facebook, Inc.
14198 * All rights reserved.
@@ -14193,9 +14209,9 @@ module.exports = ReactServerRenderingTransaction;
14209
14210 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14211
14196 -var ReactUpdateQueue = _dereq_(97);
14197 -var Transaction = _dereq_(116);
14198 -var warning = _dereq_(174);
14212 +var ReactUpdateQueue = _dereq_(95);
14213 +var Transaction = _dereq_(114);
14214 +var warning = _dereq_(171);
14215
14216 function warnNoop(publicInstance, callerName) {
14217 if ("development" !== 'production') {
@@ -14318,7 +14334,7 @@ var ReactServerUpdateQueue = function () {
14334 }();
14335
14336 module.exports = ReactServerUpdateQueue;
14321 -},{"116":116,"174":174,"97":97}],96:[function(_dereq_,module,exports){
14337 +},{"114":114,"171":171,"95":95}],94:[function(_dereq_,module,exports){
14338 /**
14339 * Copyright 2013-present, Facebook, Inc.
14340 * All rights reserved.
@@ -14332,10 +14348,10 @@ module.exports = ReactServerUpdateQueue;
14348
14349 'use strict';
14350
14335 -var _assign = _dereq_(175);
14351 +var _assign = _dereq_(172);
14352
14353 var ReactDOM = _dereq_(38);
14338 -var ReactDOMServer = _dereq_(55);
14354 +var ReactDOMServer = _dereq_(53);
14355 var React = _dereq_(26);
14356
14357 // `version` will be added here by ReactIsomorphic.
@@ -14345,7 +14361,7 @@ var ReactUMDEntry = _assign({
14361 }, React);
14362
14363 module.exports = ReactUMDEntry;
14348 -},{"175":175,"26":26,"38":38,"55":55}],97:[function(_dereq_,module,exports){
14364 +},{"172":172,"26":26,"38":38,"53":53}],95:[function(_dereq_,module,exports){
14365 /**
14366 * Copyright 2015-present, Facebook, Inc.
14367 * All rights reserved.
@@ -14359,15 +14375,15 @@ module.exports = ReactUMDEntry;
14375
14376 'use strict';
14377
14362 -var _prodInvariant = _dereq_(142);
14378 +var _prodInvariant = _dereq_(140);
14379
14380 var ReactCurrentOwner = _dereq_(37);
14365 -var ReactInstanceMap = _dereq_(74);
14366 -var ReactInstrumentation = _dereq_(75);
14367 -var ReactUpdates = _dereq_(98);
14381 +var ReactInstanceMap = _dereq_(72);
14382 +var ReactInstrumentation = _dereq_(73);
14383 +var ReactUpdates = _dereq_(96);
14384
14369 -var invariant = _dereq_(164);
14370 -var warning = _dereq_(174);
14385 +var invariant = _dereq_(162);
14386 +var warning = _dereq_(171);
14387
14388 function enqueueUpdate(internalInstance) {
14389 ReactUpdates.enqueueUpdate(internalInstance);
@@ -14572,7 +14588,7 @@ var ReactUpdateQueue = {
14588 };
14589
14590 module.exports = ReactUpdateQueue;
14575 -},{"142":142,"164":164,"174":174,"37":37,"74":74,"75":75,"98":98}],98:[function(_dereq_,module,exports){
14591 +},{"140":140,"162":162,"171":171,"37":37,"72":72,"73":73,"96":96}],96:[function(_dereq_,module,exports){
14592 /**
14593 * Copyright 2013-present, Facebook, Inc.
14594 * All rights reserved.
@@ -14586,16 +14602,16 @@ module.exports = ReactUpdateQueue;
14602
14603 'use strict';
14604
14589 -var _prodInvariant = _dereq_(142),
14590 - _assign = _dereq_(175);
14605 +var _prodInvariant = _dereq_(140),
14606 + _assign = _dereq_(172);
14607
14608 var CallbackQueue = _dereq_(5);
14609 var PooledClass = _dereq_(25);
14594 -var ReactFeatureFlags = _dereq_(69);
14595 -var ReactReconciler = _dereq_(90);
14596 -var Transaction = _dereq_(116);
14610 +var ReactFeatureFlags = _dereq_(67);
14611 +var ReactReconciler = _dereq_(88);
14612 +var Transaction = _dereq_(114);
14613
14598 -var invariant = _dereq_(164);
14614 +var invariant = _dereq_(162);
14615
14616 var dirtyComponents = [];
14617 var updateBatchNumber = 0;
@@ -14824,7 +14840,7 @@ var ReactUpdates = {
14840 };
14841
14842 module.exports = ReactUpdates;
14827 -},{"116":116,"142":142,"164":164,"175":175,"25":25,"5":5,"69":69,"90":90}],99:[function(_dereq_,module,exports){
14843 +},{"114":114,"140":140,"162":162,"172":172,"25":25,"5":5,"67":67,"88":88}],97:[function(_dereq_,module,exports){
14844 /**
14845 * Copyright 2013-present, Facebook, Inc.
14846 * All rights reserved.
@@ -14838,8 +14854,8 @@ module.exports = ReactUpdates;
14854
14855 'use strict';
14856
14841 -module.exports = '15.3.0';
14842 -},{}],100:[function(_dereq_,module,exports){
14857 +module.exports = '15.3.1';
14858 +},{}],98:[function(_dereq_,module,exports){
14859 /**
14860 * Copyright 2013-present, Facebook, Inc.
14861 * All rights reserved.
@@ -15142,7 +15158,7 @@ Object.keys(ATTRS).forEach(function (key) {
15158 });
15159
15160 module.exports = SVGDOMPropertyConfig;
15145 -},{}],101:[function(_dereq_,module,exports){
15161 +},{}],99:[function(_dereq_,module,exports){
15162 /**
15163 * Copyright 2013-present, Facebook, Inc.
15164 * All rights reserved.
@@ -15158,15 +15174,15 @@ module.exports = SVGDOMPropertyConfig;
15174
15175 var EventConstants = _dereq_(16);
15176 var EventPropagators = _dereq_(20);
15161 -var ExecutionEnvironment = _dereq_(150);
15177 +var ExecutionEnvironment = _dereq_(148);
15178 var ReactDOMComponentTree = _dereq_(42);
15163 -var ReactInputSelection = _dereq_(73);
15164 -var SyntheticEvent = _dereq_(107);
15179 +var ReactInputSelection = _dereq_(71);
15180 +var SyntheticEvent = _dereq_(105);
15181
15166 -var getActiveElement = _dereq_(159);
15167 -var isTextInputElement = _dereq_(139);
15168 -var keyOf = _dereq_(168);
15169 -var shallowEqual = _dereq_(173);
15182 +var getActiveElement = _dereq_(157);
15183 +var isTextInputElement = _dereq_(137);
15184 +var keyOf = _dereq_(166);
15185 +var shallowEqual = _dereq_(170);
15186
15187 var topLevelTypes = EventConstants.topLevelTypes;
15188
@@ -15339,7 +15355,7 @@ var SelectEventPlugin = {
15355 };
15356
15357 module.exports = SelectEventPlugin;
15342 -},{"107":107,"139":139,"150":150,"159":159,"16":16,"168":168,"173":173,"20":20,"42":42,"73":73}],102:[function(_dereq_,module,exports){
15358 +},{"105":105,"137":137,"148":148,"157":157,"16":16,"166":166,"170":170,"20":20,"42":42,"71":71}],100:[function(_dereq_,module,exports){
15359 /**
15360 * Copyright 2013-present, Facebook, Inc.
15361 * All rights reserved.
@@ -15353,28 +15369,28 @@ module.exports = SelectEventPlugin;
15369
15370 'use strict';
15371
15356 -var _prodInvariant = _dereq_(142);
15372 +var _prodInvariant = _dereq_(140);
15373
15374 var EventConstants = _dereq_(16);
15359 -var EventListener = _dereq_(149);
15375 +var EventListener = _dereq_(147);
15376 var EventPropagators = _dereq_(20);
15377 var ReactDOMComponentTree = _dereq_(42);
15362 -var SyntheticAnimationEvent = _dereq_(103);
15363 -var SyntheticClipboardEvent = _dereq_(104);
15364 -var SyntheticEvent = _dereq_(107);
15365 -var SyntheticFocusEvent = _dereq_(108);
15366 -var SyntheticKeyboardEvent = _dereq_(110);
15367 -var SyntheticMouseEvent = _dereq_(111);
15368 -var SyntheticDragEvent = _dereq_(106);
15369 -var SyntheticTouchEvent = _dereq_(112);
15370 -var SyntheticTransitionEvent = _dereq_(113);
15371 -var SyntheticUIEvent = _dereq_(114);
15372 -var SyntheticWheelEvent = _dereq_(115);
15373 -
15374 -var emptyFunction = _dereq_(156);
15375 -var getEventCharCode = _dereq_(128);
15376 -var invariant = _dereq_(164);
15377 -var keyOf = _dereq_(168);
15378 +var SyntheticAnimationEvent = _dereq_(101);
15379 +var SyntheticClipboardEvent = _dereq_(102);
15380 +var SyntheticEvent = _dereq_(105);
15381 +var SyntheticFocusEvent = _dereq_(106);
15382 +var SyntheticKeyboardEvent = _dereq_(108);
15383 +var SyntheticMouseEvent = _dereq_(109);
15384 +var SyntheticDragEvent = _dereq_(104);
15385 +var SyntheticTouchEvent = _dereq_(110);
15386 +var SyntheticTransitionEvent = _dereq_(111);
15387 +var SyntheticUIEvent = _dereq_(112);
15388 +var SyntheticWheelEvent = _dereq_(113);
15389 +
15390 +var emptyFunction = _dereq_(154);
15391 +var getEventCharCode = _dereq_(126);
15392 +var invariant = _dereq_(162);
15393 +var keyOf = _dereq_(166);
15394
15395 var topLevelTypes = EventConstants.topLevelTypes;
15396
@@ -15828,6 +15844,8 @@ var ON_CLICK_KEY = keyOf({ onClick: null });
15844 var onClickListeners = {};
15845
15846 function getDictionaryKey(inst) {
15847 + // Prevents V8 performance issue:
15848 + // https://github.com/facebook/react/pull/7232
15849 return '.' + inst._rootNodeID;
15850 }
15851
@@ -15973,7 +15991,7 @@ var SimpleEventPlugin = {
15991 };
15992
15993 module.exports = SimpleEventPlugin;
15976 -},{"103":103,"104":104,"106":106,"107":107,"108":108,"110":110,"111":111,"112":112,"113":113,"114":114,"115":115,"128":128,"142":142,"149":149,"156":156,"16":16,"164":164,"168":168,"20":20,"42":42}],103:[function(_dereq_,module,exports){
15994 +},{"101":101,"102":102,"104":104,"105":105,"106":106,"108":108,"109":109,"110":110,"111":111,"112":112,"113":113,"126":126,"140":140,"147":147,"154":154,"16":16,"162":162,"166":166,"20":20,"42":42}],101:[function(_dereq_,module,exports){
15995 /**
15996 * Copyright 2013-present, Facebook, Inc.
15997 * All rights reserved.
@@ -15987,7 +16005,7 @@ module.exports = SimpleEventPlugin;
16005
16006 'use strict';
16007
15990 -var SyntheticEvent = _dereq_(107);
16008 +var SyntheticEvent = _dereq_(105);
16009
16010 /**
16011 * @interface Event
@@ -16013,7 +16031,7 @@ function SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, na
16031 SyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);
16032
16033 module.exports = SyntheticAnimationEvent;
16016 -},{"107":107}],104:[function(_dereq_,module,exports){
16034 +},{"105":105}],102:[function(_dereq_,module,exports){
16035 /**
16036 * Copyright 2013-present, Facebook, Inc.
16037 * All rights reserved.
@@ -16027,7 +16045,7 @@ module.exports = SyntheticAnimationEvent;
16045
16046 'use strict';
16047
16030 -var SyntheticEvent = _dereq_(107);
16048 +var SyntheticEvent = _dereq_(105);
16049
16050 /**
16051 * @interface Event
@@ -16052,7 +16070,7 @@ function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, na
16070 SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);
16071
16072 module.exports = SyntheticClipboardEvent;
16055 -},{"107":107}],105:[function(_dereq_,module,exports){
16073 +},{"105":105}],103:[function(_dereq_,module,exports){
16074 /**
16075 * Copyright 2013-present, Facebook, Inc.
16076 * All rights reserved.
@@ -16066,7 +16084,7 @@ module.exports = SyntheticClipboardEvent;
16084
16085 'use strict';
16086
16069 -var SyntheticEvent = _dereq_(107);
16087 +var SyntheticEvent = _dereq_(105);
16088
16089 /**
16090 * @interface Event
@@ -16089,7 +16107,7 @@ function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent,
16107 SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);
16108
16109 module.exports = SyntheticCompositionEvent;
16092 -},{"107":107}],106:[function(_dereq_,module,exports){
16110 +},{"105":105}],104:[function(_dereq_,module,exports){
16111 /**
16112 * Copyright 2013-present, Facebook, Inc.
16113 * All rights reserved.
@@ -16103,7 +16121,7 @@ module.exports = SyntheticCompositionEvent;
16121
16122 'use strict';
16123
16106 -var SyntheticMouseEvent = _dereq_(111);
16124 +var SyntheticMouseEvent = _dereq_(109);
16125
16126 /**
16127 * @interface DragEvent
@@ -16126,7 +16144,7 @@ function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeE
16144 SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);
16145
16146 module.exports = SyntheticDragEvent;
16129 -},{"111":111}],107:[function(_dereq_,module,exports){
16147 +},{"109":109}],105:[function(_dereq_,module,exports){
16148 /**
16149 * Copyright 2013-present, Facebook, Inc.
16150 * All rights reserved.
@@ -16140,12 +16158,12 @@ module.exports = SyntheticDragEvent;
16158
16159 'use strict';
16160
16143 -var _assign = _dereq_(175);
16161 +var _assign = _dereq_(172);
16162
16163 var PooledClass = _dereq_(25);
16164
16147 -var emptyFunction = _dereq_(156);
16148 -var warning = _dereq_(174);
16165 +var emptyFunction = _dereq_(154);
16166 +var warning = _dereq_(171);
16167
16168 var didWarnForAddedNewProperty = false;
16169 var isProxySupported = typeof Proxy === 'function';
@@ -16256,9 +16274,16 @@ _assign(SyntheticEvent.prototype, {
16274
16275 if (event.stopPropagation) {
16276 event.stopPropagation();
16259 - } else {
16277 + } else if (typeof event.cancelBubble !== 'unknown') {
16278 + // eslint-disable-line valid-typeof
16279 + // The ChangeEventPlugin registers a "propertychange" event for
16280 + // IE. This event does not support bubbling or cancelling, and
16281 + // any references to cancelBubble throw "Member not found". A
16282 + // typeof check of "unknown" circumvents this issue (and is also
16283 + // IE specific).
16284 event.cancelBubble = true;
16285 }
16286 +
16287 this.isPropagationStopped = emptyFunction.thatReturnsTrue;
16288 },
16289
@@ -16387,7 +16412,7 @@ function getPooledWarningPropertyDefinition(propName, getVal) {
16412 "development" !== '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;
16413 }
16414 }
16390 -},{"156":156,"174":174,"175":175,"25":25}],108:[function(_dereq_,module,exports){
16415 +},{"154":154,"171":171,"172":172,"25":25}],106:[function(_dereq_,module,exports){
16416 /**
16417 * Copyright 2013-present, Facebook, Inc.
16418 * All rights reserved.
@@ -16401,7 +16426,7 @@ function getPooledWarningPropertyDefinition(propName, getVal) {
16426
16427 'use strict';
16428
16404 -var SyntheticUIEvent = _dereq_(114);
16429 +var SyntheticUIEvent = _dereq_(112);
16430
16431 /**
16432 * @interface FocusEvent
@@ -16424,7 +16449,7 @@ function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16449 SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);
16450
16451 module.exports = SyntheticFocusEvent;
16427 -},{"114":114}],109:[function(_dereq_,module,exports){
16452 +},{"112":112}],107:[function(_dereq_,module,exports){
16453 /**
16454 * Copyright 2013-present, Facebook, Inc.
16455 * All rights reserved.
@@ -16438,7 +16463,7 @@ module.exports = SyntheticFocusEvent;
16463
16464 'use strict';
16465
16441 -var SyntheticEvent = _dereq_(107);
16466 +var SyntheticEvent = _dereq_(105);
16467
16468 /**
16469 * @interface Event
@@ -16462,7 +16487,7 @@ function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16487 SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);
16488
16489 module.exports = SyntheticInputEvent;
16465 -},{"107":107}],110:[function(_dereq_,module,exports){
16490 +},{"105":105}],108:[function(_dereq_,module,exports){
16491 /**
16492 * Copyright 2013-present, Facebook, Inc.
16493 * All rights reserved.
@@ -16476,11 +16501,11 @@ module.exports = SyntheticInputEvent;
16501
16502 'use strict';
16503
16479 -var SyntheticUIEvent = _dereq_(114);
16504 +var SyntheticUIEvent = _dereq_(112);
16505
16481 -var getEventCharCode = _dereq_(128);
16482 -var getEventKey = _dereq_(129);
16483 -var getEventModifierState = _dereq_(130);
16506 +var getEventCharCode = _dereq_(126);
16507 +var getEventKey = _dereq_(127);
16508 +var getEventModifierState = _dereq_(128);
16509
16510 /**
16511 * @interface KeyboardEvent
@@ -16547,7 +16572,7 @@ function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nat
16572 SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);
16573
16574 module.exports = SyntheticKeyboardEvent;
16550 -},{"114":114,"128":128,"129":129,"130":130}],111:[function(_dereq_,module,exports){
16575 +},{"112":112,"126":126,"127":127,"128":128}],109:[function(_dereq_,module,exports){
16576 /**
16577 * Copyright 2013-present, Facebook, Inc.
16578 * All rights reserved.
@@ -16561,10 +16586,10 @@ module.exports = SyntheticKeyboardEvent;
16586
16587 'use strict';
16588
16564 -var SyntheticUIEvent = _dereq_(114);
16565 -var ViewportMetrics = _dereq_(117);
16589 +var SyntheticUIEvent = _dereq_(112);
16590 +var ViewportMetrics = _dereq_(115);
16591
16567 -var getEventModifierState = _dereq_(130);
16592 +var getEventModifierState = _dereq_(128);
16593
16594 /**
16595 * @interface MouseEvent
@@ -16620,7 +16645,7 @@ function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16645 SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);
16646
16647 module.exports = SyntheticMouseEvent;
16623 -},{"114":114,"117":117,"130":130}],112:[function(_dereq_,module,exports){
16648 +},{"112":112,"115":115,"128":128}],110:[function(_dereq_,module,exports){
16649 /**
16650 * Copyright 2013-present, Facebook, Inc.
16651 * All rights reserved.
@@ -16634,9 +16659,9 @@ module.exports = SyntheticMouseEvent;
16659
16660 'use strict';
16661
16637 -var SyntheticUIEvent = _dereq_(114);
16662 +var SyntheticUIEvent = _dereq_(112);
16663
16639 -var getEventModifierState = _dereq_(130);
16664 +var getEventModifierState = _dereq_(128);
16665
16666 /**
16667 * @interface TouchEvent
@@ -16666,7 +16691,7 @@ function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16691 SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);
16692
16693 module.exports = SyntheticTouchEvent;
16669 -},{"114":114,"130":130}],113:[function(_dereq_,module,exports){
16694 +},{"112":112,"128":128}],111:[function(_dereq_,module,exports){
16695 /**
16696 * Copyright 2013-present, Facebook, Inc.
16697 * All rights reserved.
@@ -16680,7 +16705,7 @@ module.exports = SyntheticTouchEvent;
16705
16706 'use strict';
16707
16683 -var SyntheticEvent = _dereq_(107);
16708 +var SyntheticEvent = _dereq_(105);
16709
16710 /**
16711 * @interface Event
@@ -16706,7 +16731,7 @@ function SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, n
16731 SyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);
16732
16733 module.exports = SyntheticTransitionEvent;
16709 -},{"107":107}],114:[function(_dereq_,module,exports){
16734 +},{"105":105}],112:[function(_dereq_,module,exports){
16735 /**
16736 * Copyright 2013-present, Facebook, Inc.
16737 * All rights reserved.
@@ -16720,9 +16745,9 @@ module.exports = SyntheticTransitionEvent;
16745
16746 'use strict';
16747
16723 -var SyntheticEvent = _dereq_(107);
16748 +var SyntheticEvent = _dereq_(105);
16749
16725 -var getEventTarget = _dereq_(131);
16750 +var getEventTarget = _dereq_(129);
16751
16752 /**
16753 * @interface UIEvent
@@ -16766,7 +16791,7 @@ function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEve
16791 SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);
16792
16793 module.exports = SyntheticUIEvent;
16769 -},{"107":107,"131":131}],115:[function(_dereq_,module,exports){
16794 +},{"105":105,"129":129}],113:[function(_dereq_,module,exports){
16795 /**
16796 * Copyright 2013-present, Facebook, Inc.
16797 * All rights reserved.
@@ -16780,7 +16805,7 @@ module.exports = SyntheticUIEvent;
16805
16806 'use strict';
16807
16783 -var SyntheticMouseEvent = _dereq_(111);
16808 +var SyntheticMouseEvent = _dereq_(109);
16809
16810 /**
16811 * @interface WheelEvent
@@ -16821,7 +16846,7 @@ function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16846 SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);
16847
16848 module.exports = SyntheticWheelEvent;
16824 -},{"111":111}],116:[function(_dereq_,module,exports){
16849 +},{"109":109}],114:[function(_dereq_,module,exports){
16850 /**
16851 * Copyright 2013-present, Facebook, Inc.
16852 * All rights reserved.
@@ -16835,9 +16860,9 @@ module.exports = SyntheticWheelEvent;
16860
16861 'use strict';
16862
16838 -var _prodInvariant = _dereq_(142);
16863 +var _prodInvariant = _dereq_(140);
16864
16840 -var invariant = _dereq_(164);
16865 +var invariant = _dereq_(162);
16866
16867 /**
16868 * `Transaction` creates a black box that is able to wrap any method such that
@@ -17055,7 +17080,7 @@ var Transaction = {
17080 };
17081
17082 module.exports = Transaction;
17058 -},{"142":142,"164":164}],117:[function(_dereq_,module,exports){
17083 +},{"140":140,"162":162}],115:[function(_dereq_,module,exports){
17084 /**
17085 * Copyright 2013-present, Facebook, Inc.
17086 * All rights reserved.
@@ -17083,7 +17108,7 @@ var ViewportMetrics = {
17108 };
17109
17110 module.exports = ViewportMetrics;
17086 -},{}],118:[function(_dereq_,module,exports){
17111 +},{}],116:[function(_dereq_,module,exports){
17112 /**
17113 * Copyright 2014-present, Facebook, Inc.
17114 * All rights reserved.
@@ -17098,9 +17123,9 @@ module.exports = ViewportMetrics;
17123
17124 'use strict';
17125
17101 -var _prodInvariant = _dereq_(142);
17126 +var _prodInvariant = _dereq_(140);
17127
17103 -var invariant = _dereq_(164);
17128 +var invariant = _dereq_(162);
17129
17130 /**
17131 * Accumulates items that must not be null or undefined into the first one. This
@@ -17142,7 +17167,7 @@ function accumulateInto(current, next) {
17167 }
17168
17169 module.exports = accumulateInto;
17145 -},{"142":142,"164":164}],119:[function(_dereq_,module,exports){
17170 +},{"140":140,"162":162}],117:[function(_dereq_,module,exports){
17171 /**
17172 * Copyright 2013-present, Facebook, Inc.
17173 * All rights reserved.
@@ -17187,7 +17212,7 @@ function adler32(data) {
17212 }
17213
17214 module.exports = adler32;
17190 -},{}],120:[function(_dereq_,module,exports){
17215 +},{}],118:[function(_dereq_,module,exports){
17216 /**
17217 * Copyright 2013-present, Facebook, Inc.
17218 * All rights reserved.
@@ -17212,7 +17237,7 @@ if ("development" !== 'production') {
17237 }
17238
17239 module.exports = canDefineProperty;
17215 -},{}],121:[function(_dereq_,module,exports){
17240 +},{}],119:[function(_dereq_,module,exports){
17241 (function (process){
17242 /**
17243 * Copyright 2013-present, Facebook, Inc.
@@ -17227,15 +17252,15 @@ module.exports = canDefineProperty;
17252
17253 'use strict';
17254
17230 -var _prodInvariant = _dereq_(142);
17255 +var _prodInvariant = _dereq_(140);
17256
17232 -var ReactPropTypeLocationNames = _dereq_(84);
17233 -var ReactPropTypesSecret = _dereq_(87);
17257 +var ReactPropTypeLocationNames = _dereq_(82);
17258 +var ReactPropTypesSecret = _dereq_(85);
17259
17235 -var invariant = _dereq_(164);
17236 -var warning = _dereq_(174);
17260 +var invariant = _dereq_(162);
17261 +var warning = _dereq_(171);
17262
17238 -var ReactComponentTreeDevtool;
17263 +var ReactComponentTreeHook;
17264
17265 if (typeof process !== 'undefined' && process.env && "development" === 'test') {
17266 // Temporary hack.
@@ -17243,7 +17268,7 @@ if (typeof process !== 'undefined' && process.env && "development" === 'test') {
17268 // https://github.com/facebook/react/issues/7240
17269 // Remove the inline requires when we don't need them anymore:
17270 // https://github.com/facebook/react/pull/7178
17246 - ReactComponentTreeDevtool = _dereq_(35);
17271 + ReactComponentTreeHook = _dereq_(35);
17272 }
17273
17274 var loggedTypeFailures = {};
@@ -17284,13 +17309,13 @@ function checkReactTypeSpec(typeSpecs, values, location, componentName, element,
17309 var componentStackInfo = '';
17310
17311 if ("development" !== 'production') {
17287 - if (!ReactComponentTreeDevtool) {
17288 - ReactComponentTreeDevtool = _dereq_(35);
17312 + if (!ReactComponentTreeHook) {
17313 + ReactComponentTreeHook = _dereq_(35);
17314 }
17315 if (debugID !== null) {
17291 - componentStackInfo = ReactComponentTreeDevtool.getStackAddendumByID(debugID);
17316 + componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);
17317 } else if (element !== null) {
17293 - componentStackInfo = ReactComponentTreeDevtool.getCurrentStackAddendum(element);
17318 + componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);
17319 }
17320 }
17321
@@ -17302,7 +17327,7 @@ function checkReactTypeSpec(typeSpecs, values, location, componentName, element,
17327
17328 module.exports = checkReactTypeSpec;
17329 }).call(this,undefined)
17305 -},{"142":142,"164":164,"174":174,"35":35,"84":84,"87":87}],122:[function(_dereq_,module,exports){
17330 +},{"140":140,"162":162,"171":171,"35":35,"82":82,"85":85}],120:[function(_dereq_,module,exports){
17331 /**
17332 * Copyright 2013-present, Facebook, Inc.
17333 * All rights reserved.
@@ -17335,7 +17360,7 @@ var createMicrosoftUnsafeLocalFunction = function (func) {
17360 };
17361
17362 module.exports = createMicrosoftUnsafeLocalFunction;
17338 -},{}],123:[function(_dereq_,module,exports){
17363 +},{}],121:[function(_dereq_,module,exports){
17364 /**
17365 * Copyright 2013-present, Facebook, Inc.
17366 * All rights reserved.
@@ -17350,7 +17375,7 @@ module.exports = createMicrosoftUnsafeLocalFunction;
17375 'use strict';
17376
17377 var CSSProperty = _dereq_(3);
17353 -var warning = _dereq_(174);
17378 +var warning = _dereq_(171);
17379
17380 var isUnitlessNumber = CSSProperty.isUnitlessNumber;
17381 var styleWarnings = {};
@@ -17415,7 +17440,7 @@ function dangerousStyleValue(name, value, component) {
17440 }
17441
17442 module.exports = dangerousStyleValue;
17418 -},{"174":174,"3":3}],124:[function(_dereq_,module,exports){
17443 +},{"171":171,"3":3}],122:[function(_dereq_,module,exports){
17444 /**
17445 * Copyright 2016-present, Facebook, Inc.
17446 * All rights reserved.
@@ -17521,6 +17546,7 @@ function escapeHtml(string) {
17546 }
17547 // end code copied and modified from escape-html
17548
17549 +
17550 /**
17551 * Escapes text to prevent scripting attacks.
17552 *
@@ -17538,7 +17564,7 @@ function escapeTextContentForBrowser(text) {
17564 }
17565
17566 module.exports = escapeTextContentForBrowser;
17541 -},{}],125:[function(_dereq_,module,exports){
17567 +},{}],123:[function(_dereq_,module,exports){
17568 /**
17569 * Copyright 2013-present, Facebook, Inc.
17570 * All rights reserved.
@@ -17552,15 +17578,15 @@ module.exports = escapeTextContentForBrowser;
17578
17579 'use strict';
17580
17555 -var _prodInvariant = _dereq_(142);
17581 +var _prodInvariant = _dereq_(140);
17582
17583 var ReactCurrentOwner = _dereq_(37);
17584 var ReactDOMComponentTree = _dereq_(42);
17559 -var ReactInstanceMap = _dereq_(74);
17585 +var ReactInstanceMap = _dereq_(72);
17586
17561 -var getHostComponentFromComposite = _dereq_(132);
17562 -var invariant = _dereq_(164);
17563 -var warning = _dereq_(174);
17587 +var getHostComponentFromComposite = _dereq_(130);
17588 +var invariant = _dereq_(162);
17589 +var warning = _dereq_(171);
17590
17591 /**
17592 * Returns the DOM node rendered by this element.
@@ -17599,7 +17625,7 @@ function findDOMNode(componentOrElement) {
17625 }
17626
17627 module.exports = findDOMNode;
17602 -},{"132":132,"142":142,"164":164,"174":174,"37":37,"42":42,"74":74}],126:[function(_dereq_,module,exports){
17628 +},{"130":130,"140":140,"162":162,"171":171,"37":37,"42":42,"72":72}],124:[function(_dereq_,module,exports){
17629 (function (process){
17630 /**
17631 * Copyright 2013-present, Facebook, Inc.
@@ -17616,10 +17642,10 @@ module.exports = findDOMNode;
17642 'use strict';
17643
17644 var KeyEscapeUtils = _dereq_(23);
17619 -var traverseAllChildren = _dereq_(147);
17620 -var warning = _dereq_(174);
17645 +var traverseAllChildren = _dereq_(145);
17646 +var warning = _dereq_(171);
17647
17622 -var ReactComponentTreeDevtool;
17648 +var ReactComponentTreeHook;
17649
17650 if (typeof process !== 'undefined' && process.env && "development" === 'test') {
17651 // Temporary hack.
@@ -17627,7 +17653,7 @@ if (typeof process !== 'undefined' && process.env && "development" === 'test') {
17653 // https://github.com/facebook/react/issues/7240
17654 // Remove the inline requires when we don't need them anymore:
17655 // https://github.com/facebook/react/pull/7178
17630 - ReactComponentTreeDevtool = _dereq_(35);
17656 + ReactComponentTreeHook = _dereq_(35);
17657 }
17658
17659 /**
@@ -17642,10 +17668,12 @@ function flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID
17668 var result = traverseContext;
17669 var keyUnique = result[name] === undefined;
17670 if ("development" !== 'production') {
17645 - if (!ReactComponentTreeDevtool) {
17646 - ReactComponentTreeDevtool = _dereq_(35);
17671 + if (!ReactComponentTreeHook) {
17672 + ReactComponentTreeHook = _dereq_(35);
17673 + }
17674 + if (!keyUnique) {
17675 + "development" !== '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;
17676 }
17648 - "development" !== 'production' ? warning(keyUnique, '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), ReactComponentTreeDevtool.getStackAddendumByID(selfDebugID)) : void 0;
17677 }
17678 if (keyUnique && child != null) {
17679 result[name] = child;
@@ -17676,7 +17704,7 @@ function flattenChildren(children, selfDebugID) {
17704
17705 module.exports = flattenChildren;
17706 }).call(this,undefined)
17679 -},{"147":147,"174":174,"23":23,"35":35}],127:[function(_dereq_,module,exports){
17707 +},{"145":145,"171":171,"23":23,"35":35}],125:[function(_dereq_,module,exports){
17708 /**
17709 * Copyright 2013-present, Facebook, Inc.
17710 * All rights reserved.
@@ -17708,7 +17736,7 @@ function forEachAccumulated(arr, cb, scope) {
17736 }
17737
17738 module.exports = forEachAccumulated;
17711 -},{}],128:[function(_dereq_,module,exports){
17739 +},{}],126:[function(_dereq_,module,exports){
17740 /**
17741 * Copyright 2013-present, Facebook, Inc.
17742 * All rights reserved.
@@ -17759,7 +17787,7 @@ function getEventCharCode(nativeEvent) {
17787 }
17788
17789 module.exports = getEventCharCode;
17762 -},{}],129:[function(_dereq_,module,exports){

This file is too large to show in full.