react 0.14.0-rc1 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +31 -0
  2. package/PATENTS +33 -0
  3. package/README.md +4 -4
  4. package/dist/react-with-addons.js +745 -516
  5. package/dist/react-with-addons.min.js +6 -6
  6. package/dist/react.js +491 -279
  7. package/dist/react.min.js +6 -6
  8. package/lib/CSSPropertyOperations.js +6 -1
  9. package/lib/ChangeEventPlugin.js +3 -1
  10. package/lib/DOMChildrenOperations.js +5 -0
  11. package/lib/DOMPropertyOperations.js +7 -0
  12. package/lib/EventPluginHub.js +15 -4
  13. package/lib/EventPluginUtils.js +10 -5
  14. package/lib/HTMLDOMPropertyConfig.js +21 -2
  15. package/lib/React.js +1 -0
  16. package/lib/ReactBrowserEventEmitter.js +6 -0
  17. package/lib/ReactCSSTransitionGroup.js +1 -1
  18. package/lib/ReactCSSTransitionGroupChild.js +5 -0
  19. package/lib/ReactClass.js +0 -1
  20. package/lib/ReactComponent.js +3 -4
  21. package/lib/ReactCompositeComponent.js +24 -11
  22. package/lib/ReactDOMComponent.js +74 -21
  23. package/lib/ReactDOMIDOperations.js +0 -1
  24. package/lib/ReactDOMInput.js +6 -1
  25. package/lib/ReactDOMSelection.js +16 -0
  26. package/lib/ReactDOMTextarea.js +3 -1
  27. package/lib/ReactDefaultPerf.js +10 -4
  28. package/lib/ReactDefaultPerfAnalysis.js +7 -1
  29. package/lib/ReactElement.js +4 -13
  30. package/lib/ReactElementValidator.js +14 -7
  31. package/lib/ReactErrorUtils.js +31 -20
  32. package/lib/ReactEventEmitterMixin.js +1 -1
  33. package/lib/ReactLink.js +1 -1
  34. package/lib/ReactMount.js +15 -3
  35. package/lib/ReactPropTransferer.js +1 -1
  36. package/lib/ReactRef.js +1 -2
  37. package/lib/ReactTestUtils.js +21 -9
  38. package/lib/ReactVersion.js +1 -1
  39. package/lib/SyntheticEvent.js +0 -1
  40. package/lib/canDefineProperty.js +24 -0
  41. package/lib/createHierarchyRenderer.js +1 -1
  42. package/lib/getTestDocument.js +4 -11
  43. package/lib/traverseAllChildren.js +7 -2
  44. package/package.json +4 -2
  45. package/dist/react-dom.js +0 -42
  46. package/dist/react-dom.min.js +0 -12
  47. package/lib/joinClasses.js +0 -39
  48. package/lib/memoizeStringOnly.js +0 -31
package/LICENSE ADDED
@@ -0,0 +1,31 @@
1
+ BSD License
2
+
3
+ For React software
4
+
5
+ Copyright (c) 2013-2015, Facebook, Inc.
6
+ All rights reserved.
7
+
8
+ Redistribution and use in source and binary forms, with or without modification,
9
+ are permitted provided that the following conditions are met:
10
+
11
+ * Redistributions of source code must retain the above copyright notice, this
12
+ list of conditions and the following disclaimer.
13
+
14
+ * Redistributions in binary form must reproduce the above copyright notice,
15
+ this list of conditions and the following disclaimer in the documentation
16
+ and/or other materials provided with the distribution.
17
+
18
+ * Neither the name Facebook nor the names of its contributors may be used to
19
+ endorse or promote products derived from this software without specific
20
+ prior written permission.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
23
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
26
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
27
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
29
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/PATENTS ADDED
@@ -0,0 +1,33 @@
1
+ Additional Grant of Patent Rights Version 2
2
+
3
+ "Software" means the React software distributed by Facebook, Inc.
4
+
5
+ Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software
6
+ ("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
7
+ (subject to the termination provision below) license under any Necessary
8
+ Claims, to make, have made, use, sell, offer to sell, import, and otherwise
9
+ transfer the Software. For avoidance of doubt, no license is granted under
10
+ Facebook's rights in any patent claims that are infringed by (i) modifications
11
+ to the Software made by you or any third party or (ii) the Software in
12
+ combination with any software or other technology.
13
+
14
+ The license granted hereunder will terminate, automatically and without notice,
15
+ if you (or any of your subsidiaries, corporate affiliates or agents) initiate
16
+ directly or indirectly, or take a direct financial interest in, any Patent
17
+ Assertion: (i) against Facebook or any of its subsidiaries or corporate
18
+ affiliates, (ii) against any party if such Patent Assertion arises in whole or
19
+ in part from any software, technology, product or service of Facebook or any of
20
+ its subsidiaries or corporate affiliates, or (iii) against any party relating
21
+ to the Software. Notwithstanding the foregoing, if Facebook or any of its
22
+ subsidiaries or corporate affiliates files a lawsuit alleging patent
23
+ infringement against you in the first instance, and you respond by filing a
24
+ patent infringement counterclaim in that lawsuit against that party that is
25
+ unrelated to the Software, the license granted hereunder will not terminate
26
+ under section (i) of this paragraph due to such counterclaim.
27
+
28
+ A "Necessary Claim" is a claim of a patent owned by Facebook that is
29
+ necessarily infringed by the Software standing alone.
30
+
31
+ A "Patent Assertion" is any lawsuit or other action alleging direct, indirect,
32
+ or contributory infringement or inducement to infringe any patent, including a
33
+ cross-claim or counterclaim.
package/README.md CHANGED
@@ -14,10 +14,10 @@ To use React in production mode, set the environment variable `NODE_ENV` to `pro
14
14
  ```js
15
15
  var React = require('react');
16
16
 
17
- // Addons can be accessed individually from the "addons" directory.
18
- var createFragment = require('react/addons/createFragment');
19
- var immutabilityHelpers = require('react/addons/update');
20
- var CSSTransitionGroup = require('react/addons/CSSTransitionGroup');
17
+ // Addons are in separate packages:
18
+ var createFragment = require('react-addons-create-fragment');
19
+ var immutabilityHelpers = require('react-addons-update');
20
+ var CSSTransitionGroup = require('react-addons-css-transition-group');
21
21
  ```
22
22
 
23
23
  For a complete list of addons visit the [addons documentation page](https://facebook.github.io/react/docs/addons.html).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * React (with addons) v0.14.0-rc1
2
+ * React (with addons) v0.14.3
3
3
  */
4
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
5
  /**
@@ -30,10 +30,10 @@ var ReactFragment = _dereq_(64);
30
30
  var ReactTransitionGroup = _dereq_(94);
31
31
  var ReactUpdates = _dereq_(96);
32
32
 
33
- var cloneWithProps = _dereq_(117);
34
- var shallowCompare = _dereq_(141);
35
- var update = _dereq_(144);
36
- var warning = _dereq_(172);
33
+ var cloneWithProps = _dereq_(118);
34
+ var shallowCompare = _dereq_(140);
35
+ var update = _dereq_(143);
36
+ var warning = _dereq_(173);
37
37
 
38
38
  var warnedAboutBatchedUpdates = false;
39
39
 
@@ -62,7 +62,7 @@ if ("development" !== 'production') {
62
62
  }
63
63
 
64
64
  module.exports = React;
65
- },{"117":117,"141":141,"144":144,"172":172,"22":22,"26":26,"29":29,"37":37,"55":55,"64":64,"91":91,"94":94,"96":96}],2:[function(_dereq_,module,exports){
65
+ },{"118":118,"140":140,"143":143,"173":173,"22":22,"26":26,"29":29,"37":37,"55":55,"64":64,"91":91,"94":94,"96":96}],2:[function(_dereq_,module,exports){
66
66
  /**
67
67
  * Copyright 2013-2015, Facebook, Inc.
68
68
  * All rights reserved.
@@ -79,8 +79,8 @@ module.exports = React;
79
79
 
80
80
  var ReactMount = _dereq_(72);
81
81
 
82
- var findDOMNode = _dereq_(121);
83
- var focusNode = _dereq_(156);
82
+ var findDOMNode = _dereq_(122);
83
+ var focusNode = _dereq_(155);
84
84
 
85
85
  var Mixin = {
86
86
  componentDidMount: function () {
@@ -99,7 +99,7 @@ var AutoFocusUtils = {
99
99
  };
100
100
 
101
101
  module.exports = AutoFocusUtils;
102
- },{"121":121,"156":156,"72":72}],3:[function(_dereq_,module,exports){
102
+ },{"122":122,"155":155,"72":72}],3:[function(_dereq_,module,exports){
103
103
  /**
104
104
  * Copyright 2013-2015 Facebook, Inc.
105
105
  * All rights reserved.
@@ -116,7 +116,7 @@ module.exports = AutoFocusUtils;
116
116
 
117
117
  var EventConstants = _dereq_(15);
118
118
  var EventPropagators = _dereq_(19);
119
- var ExecutionEnvironment = _dereq_(148);
119
+ var ExecutionEnvironment = _dereq_(147);
120
120
  var FallbackCompositionState = _dereq_(20);
121
121
  var SyntheticCompositionEvent = _dereq_(103);
122
122
  var SyntheticInputEvent = _dereq_(107);
@@ -505,7 +505,7 @@ var BeforeInputEventPlugin = {
505
505
  };
506
506
 
507
507
  module.exports = BeforeInputEventPlugin;
508
- },{"103":103,"107":107,"148":148,"15":15,"166":166,"19":19,"20":20}],4:[function(_dereq_,module,exports){
508
+ },{"103":103,"107":107,"147":147,"15":15,"166":166,"19":19,"20":20}],4:[function(_dereq_,module,exports){
509
509
  /**
510
510
  * Copyright 2013-2015, Facebook, Inc.
511
511
  * All rights reserved.
@@ -661,13 +661,14 @@ module.exports = CSSProperty;
661
661
  'use strict';
662
662
 
663
663
  var CSSProperty = _dereq_(4);
664
- var ExecutionEnvironment = _dereq_(148);
664
+ var ExecutionEnvironment = _dereq_(147);
665
+ var ReactPerf = _dereq_(78);
665
666
 
666
- var camelizeStyleName = _dereq_(150);
667
- var dangerousStyleValue = _dereq_(118);
668
- var hyphenateStyleName = _dereq_(161);
669
- var memoizeStringOnly = _dereq_(135);
670
- var warning = _dereq_(172);
667
+ var camelizeStyleName = _dereq_(149);
668
+ var dangerousStyleValue = _dereq_(119);
669
+ var hyphenateStyleName = _dereq_(160);
670
+ var memoizeStringOnly = _dereq_(168);
671
+ var warning = _dereq_(173);
671
672
 
672
673
  var processStyleName = memoizeStringOnly(function (styleName) {
673
674
  return hyphenateStyleName(styleName);
@@ -815,8 +816,12 @@ var CSSPropertyOperations = {
815
816
 
816
817
  };
817
818
 
819
+ ReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', {
820
+ setValueForStyles: 'setValueForStyles'
821
+ });
822
+
818
823
  module.exports = CSSPropertyOperations;
819
- },{"118":118,"135":135,"148":148,"150":150,"161":161,"172":172,"4":4}],6:[function(_dereq_,module,exports){
824
+ },{"119":119,"147":147,"149":149,"160":160,"168":168,"173":173,"4":4,"78":78}],6:[function(_dereq_,module,exports){
820
825
  /**
821
826
  * Copyright 2013-2015, Facebook, Inc.
822
827
  * All rights reserved.
@@ -833,7 +838,7 @@ module.exports = CSSPropertyOperations;
833
838
  var PooledClass = _dereq_(25);
834
839
 
835
840
  var assign = _dereq_(24);
836
- var invariant = _dereq_(162);
841
+ var invariant = _dereq_(161);
837
842
 
838
843
  /**
839
844
  * A specialized pseudo-event module to help keep track of components waiting to
@@ -910,7 +915,7 @@ assign(CallbackQueue.prototype, {
910
915
  PooledClass.addPoolingTo(CallbackQueue);
911
916
 
912
917
  module.exports = CallbackQueue;
913
- },{"162":162,"24":24,"25":25}],7:[function(_dereq_,module,exports){
918
+ },{"161":161,"24":24,"25":25}],7:[function(_dereq_,module,exports){
914
919
  /**
915
920
  * Copyright 2013-2015, Facebook, Inc.
916
921
  * All rights reserved.
@@ -927,13 +932,13 @@ module.exports = CallbackQueue;
927
932
  var EventConstants = _dereq_(15);
928
933
  var EventPluginHub = _dereq_(16);
929
934
  var EventPropagators = _dereq_(19);
930
- var ExecutionEnvironment = _dereq_(148);
935
+ var ExecutionEnvironment = _dereq_(147);
931
936
  var ReactUpdates = _dereq_(96);
932
937
  var SyntheticEvent = _dereq_(105);
933
938
 
934
- var getEventTarget = _dereq_(127);
935
- var isEventSupported = _dereq_(132);
936
- var isTextInputElement = _dereq_(133);
939
+ var getEventTarget = _dereq_(128);
940
+ var isEventSupported = _dereq_(133);
941
+ var isTextInputElement = _dereq_(134);
937
942
  var keyOf = _dereq_(166);
938
943
 
939
944
  var topLevelTypes = EventConstants.topLevelTypes;
@@ -990,7 +995,7 @@ function manualDispatchChangeEvent(nativeEvent) {
990
995
 
991
996
  function runEventInBatch(event) {
992
997
  EventPluginHub.enqueueEvents(event);
993
- EventPluginHub.processEventQueue();
998
+ EventPluginHub.processEventQueue(false);
994
999
  }
995
1000
 
996
1001
  function startWatchingForChangeEventIE8(target, targetID) {
@@ -1060,6 +1065,8 @@ function startWatchingForValueChange(target, targetID) {
1060
1065
  activeElementValue = target.value;
1061
1066
  activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');
1062
1067
 
1068
+ // Not guarded in a canDefineProperty check: IE8 supports defineProperty only
1069
+ // on DOM elements
1063
1070
  Object.defineProperty(activeElement, 'value', newValueProp);
1064
1071
  activeElement.attachEvent('onpropertychange', handlePropertyChange);
1065
1072
  }
@@ -1230,7 +1237,7 @@ var ChangeEventPlugin = {
1230
1237
  };
1231
1238
 
1232
1239
  module.exports = ChangeEventPlugin;
1233
- },{"105":105,"127":127,"132":132,"133":133,"148":148,"15":15,"16":16,"166":166,"19":19,"96":96}],8:[function(_dereq_,module,exports){
1240
+ },{"105":105,"128":128,"133":133,"134":134,"147":147,"15":15,"16":16,"166":166,"19":19,"96":96}],8:[function(_dereq_,module,exports){
1234
1241
  /**
1235
1242
  * Copyright 2013-2015, Facebook, Inc.
1236
1243
  * All rights reserved.
@@ -1271,10 +1278,11 @@ module.exports = ClientReactRootIndex;
1271
1278
 
1272
1279
  var Danger = _dereq_(12);
1273
1280
  var ReactMultiChildUpdateTypes = _dereq_(74);
1281
+ var ReactPerf = _dereq_(78);
1274
1282
 
1275
- var setInnerHTML = _dereq_(139);
1276
- var setTextContent = _dereq_(140);
1277
- var invariant = _dereq_(162);
1283
+ var setInnerHTML = _dereq_(138);
1284
+ var setTextContent = _dereq_(139);
1285
+ var invariant = _dereq_(161);
1278
1286
 
1279
1287
  /**
1280
1288
  * Inserts `childNode` as a child of `parentNode` at the `index`.
@@ -1378,8 +1386,12 @@ var DOMChildrenOperations = {
1378
1386
 
1379
1387
  };
1380
1388
 
1389
+ ReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', {
1390
+ updateTextContent: 'updateTextContent'
1391
+ });
1392
+
1381
1393
  module.exports = DOMChildrenOperations;
1382
- },{"12":12,"139":139,"140":140,"162":162,"74":74}],10:[function(_dereq_,module,exports){
1394
+ },{"12":12,"138":138,"139":139,"161":161,"74":74,"78":78}],10:[function(_dereq_,module,exports){
1383
1395
  /**
1384
1396
  * Copyright 2013-2015, Facebook, Inc.
1385
1397
  * All rights reserved.
@@ -1394,7 +1406,7 @@ module.exports = DOMChildrenOperations;
1394
1406
 
1395
1407
  'use strict';
1396
1408
 
1397
- var invariant = _dereq_(162);
1409
+ var invariant = _dereq_(161);
1398
1410
 
1399
1411
  function checkMask(value, bitmask) {
1400
1412
  return (value & bitmask) === bitmask;
@@ -1614,7 +1626,7 @@ var DOMProperty = {
1614
1626
  };
1615
1627
 
1616
1628
  module.exports = DOMProperty;
1617
- },{"162":162}],11:[function(_dereq_,module,exports){
1629
+ },{"161":161}],11:[function(_dereq_,module,exports){
1618
1630
  /**
1619
1631
  * Copyright 2013-2015, Facebook, Inc.
1620
1632
  * All rights reserved.
@@ -1630,9 +1642,10 @@ module.exports = DOMProperty;
1630
1642
  'use strict';
1631
1643
 
1632
1644
  var DOMProperty = _dereq_(10);
1645
+ var ReactPerf = _dereq_(78);
1633
1646
 
1634
- var quoteAttributeValueForBrowser = _dereq_(137);
1635
- var warning = _dereq_(172);
1647
+ var quoteAttributeValueForBrowser = _dereq_(136);
1648
+ var warning = _dereq_(173);
1636
1649
 
1637
1650
  // Simplified subset
1638
1651
  var VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\w\.\-]*$/;
@@ -1832,8 +1845,14 @@ var DOMPropertyOperations = {
1832
1845
 
1833
1846
  };
1834
1847
 
1848
+ ReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', {
1849
+ setValueForProperty: 'setValueForProperty',
1850
+ setValueForAttribute: 'setValueForAttribute',
1851
+ deleteValueForProperty: 'deleteValueForProperty'
1852
+ });
1853
+
1835
1854
  module.exports = DOMPropertyOperations;
1836
- },{"10":10,"137":137,"172":172}],12:[function(_dereq_,module,exports){
1855
+ },{"10":10,"136":136,"173":173,"78":78}],12:[function(_dereq_,module,exports){
1837
1856
  /**
1838
1857
  * Copyright 2013-2015, Facebook, Inc.
1839
1858
  * All rights reserved.
@@ -1848,12 +1867,12 @@ module.exports = DOMPropertyOperations;
1848
1867
 
1849
1868
  'use strict';
1850
1869
 
1851
- var ExecutionEnvironment = _dereq_(148);
1870
+ var ExecutionEnvironment = _dereq_(147);
1852
1871
 
1853
- var createNodesFromMarkup = _dereq_(153);
1854
- var emptyFunction = _dereq_(154);
1855
- var getMarkupWrap = _dereq_(158);
1856
- var invariant = _dereq_(162);
1872
+ var createNodesFromMarkup = _dereq_(152);
1873
+ var emptyFunction = _dereq_(153);
1874
+ var getMarkupWrap = _dereq_(157);
1875
+ var invariant = _dereq_(161);
1857
1876
 
1858
1877
  var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/;
1859
1878
  var RESULT_INDEX_ATTR = 'data-danger-index';
@@ -1979,7 +1998,7 @@ var Danger = {
1979
1998
  };
1980
1999
 
1981
2000
  module.exports = Danger;
1982
- },{"148":148,"153":153,"154":154,"158":158,"162":162}],13:[function(_dereq_,module,exports){
2001
+ },{"147":147,"152":152,"153":153,"157":157,"161":161}],13:[function(_dereq_,module,exports){
1983
2002
  /**
1984
2003
  * Copyright 2013-2015, Facebook, Inc.
1985
2004
  * All rights reserved.
@@ -2244,9 +2263,9 @@ var EventPluginUtils = _dereq_(18);
2244
2263
  var ReactErrorUtils = _dereq_(61);
2245
2264
 
2246
2265
  var accumulateInto = _dereq_(115);
2247
- var forEachAccumulated = _dereq_(123);
2248
- var invariant = _dereq_(162);
2249
- var warning = _dereq_(172);
2266
+ var forEachAccumulated = _dereq_(124);
2267
+ var invariant = _dereq_(161);
2268
+ var warning = _dereq_(173);
2250
2269
 
2251
2270
  /**
2252
2271
  * Internal store for event listeners
@@ -2263,17 +2282,24 @@ var eventQueue = null;
2263
2282
  * Dispatches an event and releases it back into the pool, unless persistent.
2264
2283
  *
2265
2284
  * @param {?object} event Synthetic event to be dispatched.
2285
+ * @param {boolean} simulated If the event is simulated (changes exn behavior)
2266
2286
  * @private
2267
2287
  */
2268
- var executeDispatchesAndRelease = function (event) {
2288
+ var executeDispatchesAndRelease = function (event, simulated) {
2269
2289
  if (event) {
2270
- EventPluginUtils.executeDispatchesInOrder(event);
2290
+ EventPluginUtils.executeDispatchesInOrder(event, simulated);
2271
2291
 
2272
2292
  if (!event.isPersistent()) {
2273
2293
  event.constructor.release(event);
2274
2294
  }
2275
2295
  }
2276
2296
  };
2297
+ var executeDispatchesAndReleaseSimulated = function (e) {
2298
+ return executeDispatchesAndRelease(e, true);
2299
+ };
2300
+ var executeDispatchesAndReleaseTopLevel = function (e) {
2301
+ return executeDispatchesAndRelease(e, false);
2302
+ };
2277
2303
 
2278
2304
  /**
2279
2305
  * - `InstanceHandle`: [required] Module that performs logical traversals of DOM
@@ -2469,12 +2495,16 @@ var EventPluginHub = {
2469
2495
  *
2470
2496
  * @internal
2471
2497
  */
2472
- processEventQueue: function () {
2498
+ processEventQueue: function (simulated) {
2473
2499
  // Set `eventQueue` to null before processing it so that we can tell if more
2474
2500
  // events get enqueued while processing.
2475
2501
  var processingEventQueue = eventQueue;
2476
2502
  eventQueue = null;
2477
- forEachAccumulated(processingEventQueue, executeDispatchesAndRelease);
2503
+ if (simulated) {
2504
+ forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);
2505
+ } else {
2506
+ forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);
2507
+ }
2478
2508
  !!eventQueue ? "development" !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined;
2479
2509
  // This would be a good time to rethrow if any of the event handlers threw.
2480
2510
  ReactErrorUtils.rethrowCaughtError();
@@ -2494,7 +2524,7 @@ var EventPluginHub = {
2494
2524
  };
2495
2525
 
2496
2526
  module.exports = EventPluginHub;
2497
- },{"115":115,"123":123,"162":162,"17":17,"172":172,"18":18,"61":61}],17:[function(_dereq_,module,exports){
2527
+ },{"115":115,"124":124,"161":161,"17":17,"173":173,"18":18,"61":61}],17:[function(_dereq_,module,exports){
2498
2528
  /**
2499
2529
  * Copyright 2013-2015, Facebook, Inc.
2500
2530
  * All rights reserved.
@@ -2509,7 +2539,7 @@ module.exports = EventPluginHub;
2509
2539
 
2510
2540
  'use strict';
2511
2541
 
2512
- var invariant = _dereq_(162);
2542
+ var invariant = _dereq_(161);
2513
2543
 
2514
2544
  /**
2515
2545
  * Injectable ordering of event plugins.
@@ -2715,7 +2745,7 @@ var EventPluginRegistry = {
2715
2745
  };
2716
2746
 
2717
2747
  module.exports = EventPluginRegistry;
2718
- },{"162":162}],18:[function(_dereq_,module,exports){
2748
+ },{"161":161}],18:[function(_dereq_,module,exports){
2719
2749
  /**
2720
2750
  * Copyright 2013-2015, Facebook, Inc.
2721
2751
  * All rights reserved.
@@ -2732,8 +2762,8 @@ module.exports = EventPluginRegistry;
2732
2762
  var EventConstants = _dereq_(15);
2733
2763
  var ReactErrorUtils = _dereq_(61);
2734
2764
 
2735
- var invariant = _dereq_(162);
2736
- var warning = _dereq_(172);
2765
+ var invariant = _dereq_(161);
2766
+ var warning = _dereq_(173);
2737
2767
 
2738
2768
  /**
2739
2769
  * Injected dependencies:
@@ -2784,20 +2814,25 @@ if ("development" !== 'production') {
2784
2814
  /**
2785
2815
  * Dispatch the event to the listener.
2786
2816
  * @param {SyntheticEvent} event SyntheticEvent to handle
2817
+ * @param {boolean} simulated If the event is simulated (changes exn behavior)
2787
2818
  * @param {function} listener Application-level callback
2788
2819
  * @param {string} domID DOM id to pass to the callback.
2789
2820
  */
2790
- function executeDispatch(event, listener, domID) {
2821
+ function executeDispatch(event, simulated, listener, domID) {
2791
2822
  var type = event.type || 'unknown-event';
2792
2823
  event.currentTarget = injection.Mount.getNode(domID);
2793
- ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID);
2824
+ if (simulated) {
2825
+ ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID);
2826
+ } else {
2827
+ ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID);
2828
+ }
2794
2829
  event.currentTarget = null;
2795
2830
  }
2796
2831
 
2797
2832
  /**
2798
2833
  * Standard/simple iteration through an event's collected dispatches.
2799
2834
  */
2800
- function executeDispatchesInOrder(event) {
2835
+ function executeDispatchesInOrder(event, simulated) {
2801
2836
  var dispatchListeners = event._dispatchListeners;
2802
2837
  var dispatchIDs = event._dispatchIDs;
2803
2838
  if ("development" !== 'production') {
@@ -2809,10 +2844,10 @@ function executeDispatchesInOrder(event) {
2809
2844
  break;
2810
2845
  }
2811
2846
  // Listeners and IDs are two parallel arrays that are always in sync.
2812
- executeDispatch(event, dispatchListeners[i], dispatchIDs[i]);
2847
+ executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]);
2813
2848
  }
2814
2849
  } else if (dispatchListeners) {
2815
- executeDispatch(event, dispatchListeners, dispatchIDs);
2850
+ executeDispatch(event, simulated, dispatchListeners, dispatchIDs);
2816
2851
  }
2817
2852
  event._dispatchListeners = null;
2818
2853
  event._dispatchIDs = null;
@@ -2913,7 +2948,7 @@ var EventPluginUtils = {
2913
2948
  };
2914
2949
 
2915
2950
  module.exports = EventPluginUtils;
2916
- },{"15":15,"162":162,"172":172,"61":61}],19:[function(_dereq_,module,exports){
2951
+ },{"15":15,"161":161,"173":173,"61":61}],19:[function(_dereq_,module,exports){
2917
2952
  /**
2918
2953
  * Copyright 2013-2015, Facebook, Inc.
2919
2954
  * All rights reserved.
@@ -2930,10 +2965,10 @@ module.exports = EventPluginUtils;
2930
2965
  var EventConstants = _dereq_(15);
2931
2966
  var EventPluginHub = _dereq_(16);
2932
2967
 
2933
- var warning = _dereq_(172);
2968
+ var warning = _dereq_(173);
2934
2969
 
2935
2970
  var accumulateInto = _dereq_(115);
2936
- var forEachAccumulated = _dereq_(123);
2971
+ var forEachAccumulated = _dereq_(124);
2937
2972
 
2938
2973
  var PropagationPhases = EventConstants.PropagationPhases;
2939
2974
  var getListener = EventPluginHub.getListener;
@@ -3049,7 +3084,7 @@ var EventPropagators = {
3049
3084
  };
3050
3085
 
3051
3086
  module.exports = EventPropagators;
3052
- },{"115":115,"123":123,"15":15,"16":16,"172":172}],20:[function(_dereq_,module,exports){
3087
+ },{"115":115,"124":124,"15":15,"16":16,"173":173}],20:[function(_dereq_,module,exports){
3053
3088
  /**
3054
3089
  * Copyright 2013-2015, Facebook, Inc.
3055
3090
  * All rights reserved.
@@ -3067,7 +3102,7 @@ module.exports = EventPropagators;
3067
3102
  var PooledClass = _dereq_(25);
3068
3103
 
3069
3104
  var assign = _dereq_(24);
3070
- var getTextContentAccessor = _dereq_(130);
3105
+ var getTextContentAccessor = _dereq_(131);
3071
3106
 
3072
3107
  /**
3073
3108
  * This helper class stores information about text content of a target node,
@@ -3145,7 +3180,7 @@ assign(FallbackCompositionState.prototype, {
3145
3180
  PooledClass.addPoolingTo(FallbackCompositionState);
3146
3181
 
3147
3182
  module.exports = FallbackCompositionState;
3148
- },{"130":130,"24":24,"25":25}],21:[function(_dereq_,module,exports){
3183
+ },{"131":131,"24":24,"25":25}],21:[function(_dereq_,module,exports){
3149
3184
  /**
3150
3185
  * Copyright 2013-2015, Facebook, Inc.
3151
3186
  * All rights reserved.
@@ -3160,7 +3195,7 @@ module.exports = FallbackCompositionState;
3160
3195
  'use strict';
3161
3196
 
3162
3197
  var DOMProperty = _dereq_(10);
3163
- var ExecutionEnvironment = _dereq_(148);
3198
+ var ExecutionEnvironment = _dereq_(147);
3164
3199
 
3165
3200
  var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;
3166
3201
  var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;
@@ -3217,6 +3252,7 @@ var HTMLDOMPropertyConfig = {
3217
3252
  crossOrigin: null,
3218
3253
  data: null, // For `<object />` acts as `src`.
3219
3254
  dateTime: MUST_USE_ATTRIBUTE,
3255
+ 'default': HAS_BOOLEAN_VALUE,
3220
3256
  defer: HAS_BOOLEAN_VALUE,
3221
3257
  dir: null,
3222
3258
  disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
@@ -3241,9 +3277,11 @@ var HTMLDOMPropertyConfig = {
3241
3277
  icon: null,
3242
3278
  id: MUST_USE_PROPERTY,
3243
3279
  inputMode: MUST_USE_ATTRIBUTE,
3280
+ integrity: null,
3244
3281
  is: MUST_USE_ATTRIBUTE,
3245
3282
  keyParams: MUST_USE_ATTRIBUTE,
3246
3283
  keyType: MUST_USE_ATTRIBUTE,
3284
+ kind: null,
3247
3285
  label: null,
3248
3286
  lang: null,
3249
3287
  list: MUST_USE_ATTRIBUTE,
@@ -3262,6 +3300,7 @@ var HTMLDOMPropertyConfig = {
3262
3300
  multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
3263
3301
  muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
3264
3302
  name: null,
3303
+ nonce: MUST_USE_ATTRIBUTE,
3265
3304
  noValidate: HAS_BOOLEAN_VALUE,
3266
3305
  open: HAS_BOOLEAN_VALUE,
3267
3306
  optimum: null,
@@ -3273,6 +3312,7 @@ var HTMLDOMPropertyConfig = {
3273
3312
  readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
3274
3313
  rel: null,
3275
3314
  required: HAS_BOOLEAN_VALUE,
3315
+ reversed: HAS_BOOLEAN_VALUE,
3276
3316
  role: MUST_USE_ATTRIBUTE,
3277
3317
  rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
3278
3318
  rowSpan: null,
@@ -3289,6 +3329,7 @@ var HTMLDOMPropertyConfig = {
3289
3329
  spellCheck: null,
3290
3330
  src: null,
3291
3331
  srcDoc: MUST_USE_PROPERTY,
3332
+ srcLang: null,
3292
3333
  srcSet: MUST_USE_ATTRIBUTE,
3293
3334
  start: HAS_NUMERIC_VALUE,
3294
3335
  step: null,
@@ -3304,6 +3345,19 @@ var HTMLDOMPropertyConfig = {
3304
3345
  wmode: MUST_USE_ATTRIBUTE,
3305
3346
  wrap: null,
3306
3347
 
3348
+ /**
3349
+ * RDFa Properties
3350
+ */
3351
+ about: MUST_USE_ATTRIBUTE,
3352
+ datatype: MUST_USE_ATTRIBUTE,
3353
+ inlist: MUST_USE_ATTRIBUTE,
3354
+ prefix: MUST_USE_ATTRIBUTE,
3355
+ // property is also supported for OpenGraph in meta tags.
3356
+ property: MUST_USE_ATTRIBUTE,
3357
+ resource: MUST_USE_ATTRIBUTE,
3358
+ 'typeof': MUST_USE_ATTRIBUTE,
3359
+ vocab: MUST_USE_ATTRIBUTE,
3360
+
3307
3361
  /**
3308
3362
  * Non-standard Properties
3309
3363
  */
@@ -3313,6 +3367,8 @@ var HTMLDOMPropertyConfig = {
3313
3367
  autoCorrect: null,
3314
3368
  // autoSave allows WebKit/Blink to persist values of input fields on page reloads
3315
3369
  autoSave: null,
3370
+ // color is for Safari mask-icon link
3371
+ color: null,
3316
3372
  // itemProp, itemScope, itemType are for
3317
3373
  // Microdata support. See http://schema.org/docs/gs.html
3318
3374
  itemProp: MUST_USE_ATTRIBUTE,
@@ -3323,8 +3379,6 @@ var HTMLDOMPropertyConfig = {
3323
3379
  // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api
3324
3380
  itemID: MUST_USE_ATTRIBUTE,
3325
3381
  itemRef: MUST_USE_ATTRIBUTE,
3326
- // property is supported for OpenGraph in meta tags.
3327
- property: null,
3328
3382
  // results show looking glass icon and recent searches on input
3329
3383
  // search fields in WebKit/Blink
3330
3384
  results: null,
@@ -3359,7 +3413,7 @@ var HTMLDOMPropertyConfig = {
3359
3413
  };
3360
3414
 
3361
3415
  module.exports = HTMLDOMPropertyConfig;
3362
- },{"10":10,"148":148}],22:[function(_dereq_,module,exports){
3416
+ },{"10":10,"147":147}],22:[function(_dereq_,module,exports){
3363
3417
  /**
3364
3418
  * Copyright 2013-2015, Facebook, Inc.
3365
3419
  * All rights reserved.
@@ -3414,8 +3468,8 @@ module.exports = LinkedStateMixin;
3414
3468
  var ReactPropTypes = _dereq_(82);
3415
3469
  var ReactPropTypeLocations = _dereq_(81);
3416
3470
 
3417
- var invariant = _dereq_(162);
3418
- var warning = _dereq_(172);
3471
+ var invariant = _dereq_(161);
3472
+ var warning = _dereq_(173);
3419
3473
 
3420
3474
  var hasReadOnlyValue = {
3421
3475
  'button': true,
@@ -3531,7 +3585,7 @@ var LinkedValueUtils = {
3531
3585
  };
3532
3586
 
3533
3587
  module.exports = LinkedValueUtils;
3534
- },{"162":162,"172":172,"81":81,"82":82}],24:[function(_dereq_,module,exports){
3588
+ },{"161":161,"173":173,"81":81,"82":82}],24:[function(_dereq_,module,exports){
3535
3589
  /**
3536
3590
  * Copyright 2014-2015, Facebook, Inc.
3537
3591
  * All rights reserved.
@@ -3593,7 +3647,7 @@ module.exports = assign;
3593
3647
 
3594
3648
  'use strict';
3595
3649
 
3596
- var invariant = _dereq_(162);
3650
+ var invariant = _dereq_(161);
3597
3651
 
3598
3652
  /**
3599
3653
  * Static poolers. Several custom versions for each potential number of
@@ -3699,7 +3753,7 @@ var PooledClass = {
3699
3753
  };
3700
3754
 
3701
3755
  module.exports = PooledClass;
3702
- },{"162":162}],26:[function(_dereq_,module,exports){
3756
+ },{"161":161}],26:[function(_dereq_,module,exports){
3703
3757
  /**
3704
3758
  * Copyright 2013-2015, Facebook, Inc.
3705
3759
  * All rights reserved.
@@ -3718,7 +3772,7 @@ var ReactDOMServer = _dereq_(50);
3718
3772
  var ReactIsomorphic = _dereq_(69);
3719
3773
 
3720
3774
  var assign = _dereq_(24);
3721
- var deprecated = _dereq_(119);
3775
+ var deprecated = _dereq_(120);
3722
3776
 
3723
3777
  // `version` will be added here by ReactIsomorphic.
3724
3778
  var React = {};
@@ -3737,9 +3791,10 @@ assign(React, {
3737
3791
  });
3738
3792
 
3739
3793
  React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;
3794
+ React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer;
3740
3795
 
3741
3796
  module.exports = React;
3742
- },{"119":119,"24":24,"40":40,"50":50,"69":69}],27:[function(_dereq_,module,exports){
3797
+ },{"120":120,"24":24,"40":40,"50":50,"69":69}],27:[function(_dereq_,module,exports){
3743
3798
  /**
3744
3799
  * Copyright 2013-2015, Facebook, Inc.
3745
3800
  * All rights reserved.
@@ -3755,8 +3810,8 @@ module.exports = React;
3755
3810
 
3756
3811
  var ReactInstanceMap = _dereq_(68);
3757
3812
 
3758
- var findDOMNode = _dereq_(121);
3759
- var warning = _dereq_(172);
3813
+ var findDOMNode = _dereq_(122);
3814
+ var warning = _dereq_(173);
3760
3815
 
3761
3816
  var didWarnKey = '_getDOMNodeDidWarn';
3762
3817
 
@@ -3776,7 +3831,7 @@ var ReactBrowserComponentMixin = {
3776
3831
  };
3777
3832
 
3778
3833
  module.exports = ReactBrowserComponentMixin;
3779
- },{"121":121,"172":172,"68":68}],28:[function(_dereq_,module,exports){
3834
+ },{"122":122,"173":173,"68":68}],28:[function(_dereq_,module,exports){
3780
3835
  /**
3781
3836
  * Copyright 2013-2015, Facebook, Inc.
3782
3837
  * All rights reserved.
@@ -3795,10 +3850,11 @@ var EventConstants = _dereq_(15);
3795
3850
  var EventPluginHub = _dereq_(16);
3796
3851
  var EventPluginRegistry = _dereq_(17);
3797
3852
  var ReactEventEmitterMixin = _dereq_(62);
3853
+ var ReactPerf = _dereq_(78);
3798
3854
  var ViewportMetrics = _dereq_(114);
3799
3855
 
3800
3856
  var assign = _dereq_(24);
3801
- var isEventSupported = _dereq_(132);
3857
+ var isEventSupported = _dereq_(133);
3802
3858
 
3803
3859
  /**
3804
3860
  * Summary of `ReactBrowserEventEmitter` event handling:
@@ -4094,8 +4150,13 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
4094
4150
 
4095
4151
  });
4096
4152
 
4153
+ ReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', {
4154
+ putListener: 'putListener',
4155
+ deleteListener: 'deleteListener'
4156
+ });
4157
+
4097
4158
  module.exports = ReactBrowserEventEmitter;
4098
- },{"114":114,"132":132,"15":15,"16":16,"17":17,"24":24,"62":62}],29:[function(_dereq_,module,exports){
4159
+ },{"114":114,"133":133,"15":15,"16":16,"17":17,"24":24,"62":62,"78":78}],29:[function(_dereq_,module,exports){
4099
4160
  /**
4100
4161
  * Copyright 2013-2015, Facebook, Inc.
4101
4162
  * All rights reserved.
@@ -4125,7 +4186,7 @@ function createTransitionTimeoutPropValidator(transitionType) {
4125
4186
  // If the transition is enabled
4126
4187
  if (props[enabledPropName]) {
4127
4188
  // If no timeout duration is provided
4128
- if (!props[timeoutPropName]) {
4189
+ if (props[timeoutPropName] == null) {
4129
4190
  return new Error(timeoutPropName + ' wasn\'t supplied to ReactCSSTransitionGroup: ' + 'this can cause unreliable animations and won\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.');
4130
4191
 
4131
4192
  // If the duration isn't a number
@@ -4197,10 +4258,10 @@ module.exports = ReactCSSTransitionGroup;
4197
4258
  var React = _dereq_(26);
4198
4259
  var ReactDOM = _dereq_(40);
4199
4260
 
4200
- var CSSCore = _dereq_(146);
4261
+ var CSSCore = _dereq_(145);
4201
4262
  var ReactTransitionEvents = _dereq_(93);
4202
4263
 
4203
- var onlyChild = _dereq_(136);
4264
+ var onlyChild = _dereq_(135);
4204
4265
 
4205
4266
  // We don't remove the element from the DOM until we receive an animationend or
4206
4267
  // transitionend event. If the user screws up and forgets to add an animation
@@ -4278,6 +4339,7 @@ var ReactCSSTransitionGroupChild = React.createClass({
4278
4339
  if (userSpecifiedDelay) {
4279
4340
  // Clean-up the animation after the specified delay
4280
4341
  timeout = setTimeout(endListener, userSpecifiedDelay);
4342
+ this.transitionTimeouts.push(timeout);
4281
4343
  } else {
4282
4344
  // DEPRECATED: this listener will be removed in a future version of react
4283
4345
  ReactTransitionEvents.addEndEventListener(node, endListener);
@@ -4302,12 +4364,16 @@ var ReactCSSTransitionGroupChild = React.createClass({
4302
4364
 
4303
4365
  componentWillMount: function () {
4304
4366
  this.classNameQueue = [];
4367
+ this.transitionTimeouts = [];
4305
4368
  },
4306
4369
 
4307
4370
  componentWillUnmount: function () {
4308
4371
  if (this.timeout) {
4309
4372
  clearTimeout(this.timeout);
4310
4373
  }
4374
+ this.transitionTimeouts.forEach(function (timeout) {
4375
+ clearTimeout(timeout);
4376
+ });
4311
4377
  },
4312
4378
 
4313
4379
  componentWillAppear: function (done) {
@@ -4340,7 +4406,7 @@ var ReactCSSTransitionGroupChild = React.createClass({
4340
4406
  });
4341
4407
 
4342
4408
  module.exports = ReactCSSTransitionGroupChild;
4343
- },{"136":136,"146":146,"26":26,"40":40,"93":93}],31:[function(_dereq_,module,exports){
4409
+ },{"135":135,"145":145,"26":26,"40":40,"93":93}],31:[function(_dereq_,module,exports){
4344
4410
  /**
4345
4411
  * Copyright 2014-2015, Facebook, Inc.
4346
4412
  * All rights reserved.
@@ -4357,10 +4423,10 @@ module.exports = ReactCSSTransitionGroupChild;
4357
4423
 
4358
4424
  var ReactReconciler = _dereq_(84);
4359
4425
 
4360
- var instantiateReactComponent = _dereq_(131);
4361
- var shouldUpdateReactComponent = _dereq_(142);
4362
- var traverseAllChildren = _dereq_(143);
4363
- var warning = _dereq_(172);
4426
+ var instantiateReactComponent = _dereq_(132);
4427
+ var shouldUpdateReactComponent = _dereq_(141);
4428
+ var traverseAllChildren = _dereq_(142);
4429
+ var warning = _dereq_(173);
4364
4430
 
4365
4431
  function instantiateChild(childInstances, child, name) {
4366
4432
  // We found a component instance.
@@ -4463,7 +4529,7 @@ var ReactChildReconciler = {
4463
4529
  };
4464
4530
 
4465
4531
  module.exports = ReactChildReconciler;
4466
- },{"131":131,"142":142,"143":143,"172":172,"84":84}],32:[function(_dereq_,module,exports){
4532
+ },{"132":132,"141":141,"142":142,"173":173,"84":84}],32:[function(_dereq_,module,exports){
4467
4533
  /**
4468
4534
  * Copyright 2013-2015, Facebook, Inc.
4469
4535
  * All rights reserved.
@@ -4480,8 +4546,8 @@ module.exports = ReactChildReconciler;
4480
4546
  var PooledClass = _dereq_(25);
4481
4547
  var ReactElement = _dereq_(57);
4482
4548
 
4483
- var emptyFunction = _dereq_(154);
4484
- var traverseAllChildren = _dereq_(143);
4549
+ var emptyFunction = _dereq_(153);
4550
+ var traverseAllChildren = _dereq_(142);
4485
4551
 
4486
4552
  var twoArgumentPooler = PooledClass.twoArgumentPooler;
4487
4553
  var fourArgumentPooler = PooledClass.fourArgumentPooler;
@@ -4646,7 +4712,7 @@ var ReactChildren = {
4646
4712
  };
4647
4713
 
4648
4714
  module.exports = ReactChildren;
4649
- },{"143":143,"154":154,"25":25,"57":57}],33:[function(_dereq_,module,exports){
4715
+ },{"142":142,"153":153,"25":25,"57":57}],33:[function(_dereq_,module,exports){
4650
4716
  /**
4651
4717
  * Copyright 2013-2015, Facebook, Inc.
4652
4718
  * All rights reserved.
@@ -4667,11 +4733,11 @@ var ReactPropTypeLocationNames = _dereq_(80);
4667
4733
  var ReactNoopUpdateQueue = _dereq_(76);
4668
4734
 
4669
4735
  var assign = _dereq_(24);
4670
- var emptyObject = _dereq_(155);
4671
- var invariant = _dereq_(162);
4736
+ var emptyObject = _dereq_(154);
4737
+ var invariant = _dereq_(161);
4672
4738
  var keyMirror = _dereq_(165);
4673
4739
  var keyOf = _dereq_(166);
4674
- var warning = _dereq_(172);
4740
+ var warning = _dereq_(173);
4675
4741
 
4676
4742
  var MIXINS_KEY = keyOf({ mixins: null });
4677
4743
 
@@ -5369,7 +5435,6 @@ var ReactClass = {
5369
5435
  };
5370
5436
  Constructor.prototype = new ReactClassComponent();
5371
5437
  Constructor.prototype.constructor = Constructor;
5372
- Constructor.isReactClass = {};
5373
5438
 
5374
5439
  injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
5375
5440
 
@@ -5419,7 +5484,7 @@ var ReactClass = {
5419
5484
  };
5420
5485
 
5421
5486
  module.exports = ReactClass;
5422
- },{"155":155,"162":162,"165":165,"166":166,"172":172,"24":24,"34":34,"57":57,"76":76,"80":80,"81":81}],34:[function(_dereq_,module,exports){
5487
+ },{"154":154,"161":161,"165":165,"166":166,"173":173,"24":24,"34":34,"57":57,"76":76,"80":80,"81":81}],34:[function(_dereq_,module,exports){
5423
5488
  /**
5424
5489
  * Copyright 2013-2015, Facebook, Inc.
5425
5490
  * All rights reserved.
@@ -5435,9 +5500,10 @@ module.exports = ReactClass;
5435
5500
 
5436
5501
  var ReactNoopUpdateQueue = _dereq_(76);
5437
5502
 
5438
- var emptyObject = _dereq_(155);
5439
- var invariant = _dereq_(162);
5440
- var warning = _dereq_(172);
5503
+ var canDefineProperty = _dereq_(117);
5504
+ var emptyObject = _dereq_(154);
5505
+ var invariant = _dereq_(161);
5506
+ var warning = _dereq_(173);
5441
5507
 
5442
5508
  /**
5443
5509
  * Base class helpers for the updating state of a component.
@@ -5451,7 +5517,7 @@ function ReactComponent(props, context, updater) {
5451
5517
  this.updater = updater || ReactNoopUpdateQueue;
5452
5518
  }
5453
5519
 
5454
- ReactComponent.isReactClass = {};
5520
+ ReactComponent.prototype.isReactComponent = {};
5455
5521
 
5456
5522
  /**
5457
5523
  * Sets a subset of the state. Always use this to mutate
@@ -5524,15 +5590,13 @@ if ("development" !== 'production') {
5524
5590
  setProps: ['setProps', 'Instead, call render again at the top level.']
5525
5591
  };
5526
5592
  var defineDeprecationWarning = function (methodName, info) {
5527
- try {
5593
+ if (canDefineProperty) {
5528
5594
  Object.defineProperty(ReactComponent.prototype, methodName, {
5529
5595
  get: function () {
5530
5596
  "development" !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined;
5531
5597
  return undefined;
5532
5598
  }
5533
5599
  });
5534
- } catch (x) {
5535
- // IE will fail on defineProperty (es5-shim/sham too)
5536
5600
  }
5537
5601
  };
5538
5602
  for (var fnName in deprecatedAPIs) {
@@ -5543,7 +5607,7 @@ if ("development" !== 'production') {
5543
5607
  }
5544
5608
 
5545
5609
  module.exports = ReactComponent;
5546
- },{"155":155,"162":162,"172":172,"76":76}],35:[function(_dereq_,module,exports){
5610
+ },{"117":117,"154":154,"161":161,"173":173,"76":76}],35:[function(_dereq_,module,exports){
5547
5611
  /**
5548
5612
  * Copyright 2013-2015, Facebook, Inc.
5549
5613
  * All rights reserved.
@@ -5599,7 +5663,7 @@ module.exports = ReactComponentBrowserEnvironment;
5599
5663
 
5600
5664
  'use strict';
5601
5665
 
5602
- var invariant = _dereq_(162);
5666
+ var invariant = _dereq_(161);
5603
5667
 
5604
5668
  var injected = false;
5605
5669
 
@@ -5637,7 +5701,7 @@ var ReactComponentEnvironment = {
5637
5701
  };
5638
5702
 
5639
5703
  module.exports = ReactComponentEnvironment;
5640
- },{"162":162}],37:[function(_dereq_,module,exports){
5704
+ },{"161":161}],37:[function(_dereq_,module,exports){
5641
5705
  /**
5642
5706
  * Copyright 2013-2015, Facebook, Inc.
5643
5707
  * All rights reserved.
@@ -5651,7 +5715,7 @@ module.exports = ReactComponentEnvironment;
5651
5715
 
5652
5716
  'use strict';
5653
5717
 
5654
- var shallowCompare = _dereq_(141);
5718
+ var shallowCompare = _dereq_(140);
5655
5719
 
5656
5720
  /**
5657
5721
  * If your React component's render function is "pure", e.g. it will render the
@@ -5684,7 +5748,7 @@ var ReactComponentWithPureRenderMixin = {
5684
5748
  };
5685
5749
 
5686
5750
  module.exports = ReactComponentWithPureRenderMixin;
5687
- },{"141":141}],38:[function(_dereq_,module,exports){
5751
+ },{"140":140}],38:[function(_dereq_,module,exports){
5688
5752
  /**
5689
5753
  * Copyright 2013-2015, Facebook, Inc.
5690
5754
  * All rights reserved.
@@ -5709,10 +5773,10 @@ var ReactReconciler = _dereq_(84);
5709
5773
  var ReactUpdateQueue = _dereq_(95);
5710
5774
 
5711
5775
  var assign = _dereq_(24);
5712
- var emptyObject = _dereq_(155);
5713
- var invariant = _dereq_(162);
5714
- var shouldUpdateReactComponent = _dereq_(142);
5715
- var warning = _dereq_(172);
5776
+ var emptyObject = _dereq_(154);
5777
+ var invariant = _dereq_(161);
5778
+ var shouldUpdateReactComponent = _dereq_(141);
5779
+ var warning = _dereq_(173);
5716
5780
 
5717
5781
  function getDeclarationErrorAddendum(component) {
5718
5782
  var owner = component._currentElement._owner || null;
@@ -5728,7 +5792,7 @@ function getDeclarationErrorAddendum(component) {
5728
5792
  function StatelessComponent(Component) {}
5729
5793
  StatelessComponent.prototype.render = function () {
5730
5794
  var Component = ReactInstanceMap.get(this)._currentElement.type;
5731
- return new Component(this.props, this.context, this.updater);
5795
+ return Component(this.props, this.context, this.updater);
5732
5796
  };
5733
5797
 
5734
5798
  /**
@@ -5822,18 +5886,26 @@ var ReactCompositeComponentMixin = {
5822
5886
  var inst;
5823
5887
  var renderedElement;
5824
5888
 
5825
- if ("development" !== 'production') {
5826
- ReactCurrentOwner.current = this;
5827
- try {
5889
+ // This is a way to detect if Component is a stateless arrow function
5890
+ // component, which is not newable. It might not be 100% reliable but is
5891
+ // something we can do until we start detecting that Component extends
5892
+ // React.Component. We already assume that typeof Component === 'function'.
5893
+ var canInstantiate = ('prototype' in Component);
5894
+
5895
+ if (canInstantiate) {
5896
+ if ("development" !== 'production') {
5897
+ ReactCurrentOwner.current = this;
5898
+ try {
5899
+ inst = new Component(publicProps, publicContext, ReactUpdateQueue);
5900
+ } finally {
5901
+ ReactCurrentOwner.current = null;
5902
+ }
5903
+ } else {
5828
5904
  inst = new Component(publicProps, publicContext, ReactUpdateQueue);
5829
- } finally {
5830
- ReactCurrentOwner.current = null;
5831
5905
  }
5832
- } else {
5833
- inst = new Component(publicProps, publicContext, ReactUpdateQueue);
5834
5906
  }
5835
5907
 
5836
- if (inst === null || inst === false || ReactElement.isValidElement(inst)) {
5908
+ if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) {
5837
5909
  renderedElement = inst;
5838
5910
  inst = new StatelessComponent(Component);
5839
5911
  }
@@ -5846,7 +5918,7 @@ var ReactCompositeComponentMixin = {
5846
5918
  } else {
5847
5919
  // We support ES6 inheriting from React.Component, the module pattern,
5848
5920
  // and stateless components, but not ES6 classes that don't extend
5849
- "development" !== 'production' ? warning(Component.isReactClass || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined;
5921
+ "development" !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined;
5850
5922
  }
5851
5923
  }
5852
5924
 
@@ -6304,8 +6376,13 @@ var ReactCompositeComponentMixin = {
6304
6376
  attachRef: function (ref, component) {
6305
6377
  var inst = this.getPublicInstance();
6306
6378
  !(inst != null) ? "development" !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined;
6379
+ var publicComponentInstance = component.getPublicInstance();
6380
+ if ("development" !== 'production') {
6381
+ var componentName = component && component.getName ? component.getName() : 'a component';
6382
+ "development" !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined;
6383
+ }
6307
6384
  var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;
6308
- refs[ref] = component.getPublicInstance();
6385
+ refs[ref] = publicComponentInstance;
6309
6386
  },
6310
6387
 
6311
6388
  /**
@@ -6366,7 +6443,7 @@ var ReactCompositeComponent = {
6366
6443
  };
6367
6444
 
6368
6445
  module.exports = ReactCompositeComponent;
6369
- },{"142":142,"155":155,"162":162,"172":172,"24":24,"36":36,"39":39,"57":57,"68":68,"78":78,"80":80,"81":81,"84":84,"95":95}],39:[function(_dereq_,module,exports){
6446
+ },{"141":141,"154":154,"161":161,"173":173,"24":24,"36":36,"39":39,"57":57,"68":68,"78":78,"80":80,"81":81,"84":84,"95":95}],39:[function(_dereq_,module,exports){
6370
6447
  /**
6371
6448
  * Copyright 2013-2015, Facebook, Inc.
6372
6449
  * All rights reserved.
@@ -6423,9 +6500,9 @@ var ReactReconciler = _dereq_(84);
6423
6500
  var ReactUpdates = _dereq_(96);
6424
6501
  var ReactVersion = _dereq_(97);
6425
6502
 
6426
- var findDOMNode = _dereq_(121);
6427
- var renderSubtreeIntoContainer = _dereq_(138);
6428
- var warning = _dereq_(172);
6503
+ var findDOMNode = _dereq_(122);
6504
+ var renderSubtreeIntoContainer = _dereq_(137);
6505
+ var warning = _dereq_(173);
6429
6506
 
6430
6507
  ReactDefaultInjection.inject();
6431
6508
 
@@ -6456,7 +6533,7 @@ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVT
6456
6533
  }
6457
6534
 
6458
6535
  if ("development" !== 'production') {
6459
- var ExecutionEnvironment = _dereq_(148);
6536
+ var ExecutionEnvironment = _dereq_(147);
6460
6537
  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {
6461
6538
 
6462
6539
  // First check if devtools is not installed
@@ -6490,7 +6567,7 @@ if ("development" !== 'production') {
6490
6567
  }
6491
6568
 
6492
6569
  module.exports = React;
6493
- },{"121":121,"138":138,"148":148,"172":172,"39":39,"51":51,"54":54,"67":67,"72":72,"78":78,"84":84,"96":96,"97":97}],41:[function(_dereq_,module,exports){
6570
+ },{"122":122,"137":137,"147":147,"173":173,"39":39,"51":51,"54":54,"67":67,"72":72,"78":78,"84":84,"96":96,"97":97}],41:[function(_dereq_,module,exports){
6494
6571
  /**
6495
6572
  * Copyright 2013-2015, Facebook, Inc.
6496
6573
  * All rights reserved.
@@ -6576,15 +6653,16 @@ var ReactPerf = _dereq_(78);
6576
6653
  var ReactUpdateQueue = _dereq_(95);
6577
6654
 
6578
6655
  var assign = _dereq_(24);
6579
- var escapeTextContentForBrowser = _dereq_(120);
6580
- var invariant = _dereq_(162);
6581
- var isEventSupported = _dereq_(132);
6656
+ var canDefineProperty = _dereq_(117);
6657
+ var escapeTextContentForBrowser = _dereq_(121);
6658
+ var invariant = _dereq_(161);
6659
+ var isEventSupported = _dereq_(133);
6582
6660
  var keyOf = _dereq_(166);
6583
- var setInnerHTML = _dereq_(139);
6584
- var setTextContent = _dereq_(140);
6585
- var shallowEqual = _dereq_(170);
6586
- var validateDOMNesting = _dereq_(145);
6587
- var warning = _dereq_(172);
6661
+ var setInnerHTML = _dereq_(138);
6662
+ var setTextContent = _dereq_(139);
6663
+ var shallowEqual = _dereq_(171);
6664
+ var validateDOMNesting = _dereq_(144);
6665
+ var warning = _dereq_(173);
6588
6666
 
6589
6667
  var deleteListener = ReactBrowserEventEmitter.deleteListener;
6590
6668
  var listenTo = ReactBrowserEventEmitter.listenTo;
@@ -6593,16 +6671,12 @@ var registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;
6593
6671
  // For quickly matching children type, to test if can be treated as content.
6594
6672
  var CONTENT_TYPES = { 'string': true, 'number': true };
6595
6673
 
6674
+ var CHILDREN = keyOf({ children: null });
6596
6675
  var STYLE = keyOf({ style: null });
6676
+ var HTML = keyOf({ __html: null });
6597
6677
 
6598
6678
  var ELEMENT_NODE_TYPE = 1;
6599
6679
 
6600
- var canDefineProperty = false;
6601
- try {
6602
- Object.defineProperty({}, 'test', { get: function () {} });
6603
- canDefineProperty = true;
6604
- } catch (e) {}
6605
-
6606
6680
  function getDeclarationErrorAddendum(internalInstance) {
6607
6681
  if (internalInstance) {
6608
6682
  var owner = internalInstance._currentElement._owner || null;
@@ -6681,6 +6755,30 @@ function legacyReplaceProps(partialProps, callback) {
6681
6755
  }
6682
6756
  }
6683
6757
 
6758
+ function friendlyStringify(obj) {
6759
+ if (typeof obj === 'object') {
6760
+ if (Array.isArray(obj)) {
6761
+ return '[' + obj.map(friendlyStringify).join(', ') + ']';
6762
+ } else {
6763
+ var pairs = [];
6764
+ for (var key in obj) {
6765
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
6766
+ var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key);
6767
+ pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));
6768
+ }
6769
+ }
6770
+ return '{' + pairs.join(', ') + '}';
6771
+ }
6772
+ } else if (typeof obj === 'string') {
6773
+ return JSON.stringify(obj);
6774
+ } else if (typeof obj === 'function') {
6775
+ return '[function object]';
6776
+ }
6777
+ // Differs from JSON.stringify in that undefined becauses undefined and that
6778
+ // inf and nan don't become null
6779
+ return String(obj);
6780
+ }
6781
+
6684
6782
  var styleMutationWarning = {};
6685
6783
 
6686
6784
  function checkAndWarnForMutatedStyle(style1, style2, component) {
@@ -6706,7 +6804,7 @@ function checkAndWarnForMutatedStyle(style1, style2, component) {
6706
6804
 
6707
6805
  styleMutationWarning[hash] = true;
6708
6806
 
6709
- "development" !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', JSON.stringify(style1), JSON.stringify(style2)) : undefined;
6807
+ "development" !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined;
6710
6808
  }
6711
6809
 
6712
6810
  /**
@@ -6725,7 +6823,7 @@ function assertValidProps(component, props) {
6725
6823
  }
6726
6824
  if (props.dangerouslySetInnerHTML != null) {
6727
6825
  !(props.children == null) ? "development" !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined;
6728
- !(typeof props.dangerouslySetInnerHTML === 'object' && '__html' in props.dangerouslySetInnerHTML) ? "development" !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined;
6826
+ !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? "development" !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined;
6729
6827
  }
6730
6828
  if ("development" !== 'production') {
6731
6829
  "development" !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined;
@@ -6818,6 +6916,10 @@ function trapBubbledEventsLocal() {
6818
6916
  }
6819
6917
  }
6820
6918
 
6919
+ function mountReadyInputWrapper() {
6920
+ ReactDOMInput.mountReadyWrapper(this);
6921
+ }
6922
+
6821
6923
  function postUpdateSelectWrapper() {
6822
6924
  ReactDOMSelect.postUpdateWrapper(this);
6823
6925
  }
@@ -6872,13 +6974,11 @@ function validateDangerousTag(tag) {
6872
6974
  }
6873
6975
  }
6874
6976
 
6875
- function processChildContext(context, inst) {
6876
- if ("development" !== 'production') {
6877
- // Pass down our tag name to child components for validation purposes
6878
- context = assign({}, context);
6879
- var info = context[validateDOMNesting.ancestorInfoContextKey];
6880
- context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst);
6881
- }
6977
+ function processChildContextDev(context, inst) {
6978
+ // Pass down our tag name to child components for validation purposes
6979
+ context = assign({}, context);
6980
+ var info = context[validateDOMNesting.ancestorInfoContextKey];
6981
+ context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst);
6882
6982
  return context;
6883
6983
  }
6884
6984
 
@@ -6910,6 +7010,10 @@ function ReactDOMComponent(tag) {
6910
7010
  this._wrapperState = null;
6911
7011
  this._topLevelWrapper = null;
6912
7012
  this._nodeWithLegacyProperties = null;
7013
+ if ("development" !== 'production') {
7014
+ this._unprocessedContextDev = null;
7015
+ this._processedContextDev = null;
7016
+ }
6913
7017
  }
6914
7018
 
6915
7019
  ReactDOMComponent.displayName = 'ReactDOMComponent';
@@ -6975,6 +7079,12 @@ ReactDOMComponent.Mixin = {
6975
7079
  }
6976
7080
  }
6977
7081
 
7082
+ if ("development" !== 'production') {
7083
+ this._unprocessedContextDev = context;
7084
+ this._processedContextDev = processChildContextDev(context, this);
7085
+ context = this._processedContextDev;
7086
+ }
7087
+
6978
7088
  var mountImage;
6979
7089
  if (transaction.useCreateElement) {
6980
7090
  var ownerDocument = context[ReactMount.ownerDocumentContextKey];
@@ -6996,8 +7106,10 @@ ReactDOMComponent.Mixin = {
6996
7106
  }
6997
7107
 
6998
7108
  switch (this._tag) {
6999
- case 'button':
7000
7109
  case 'input':
7110
+ transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this);
7111
+ // falls through
7112
+ case 'button':
7001
7113
  case 'select':
7002
7114
  case 'textarea':
7003
7115
  if (props.autoFocus) {
@@ -7034,7 +7146,9 @@ ReactDOMComponent.Mixin = {
7034
7146
  continue;
7035
7147
  }
7036
7148
  if (registrationNameModules.hasOwnProperty(propKey)) {
7037
- enqueuePutListener(this._rootNodeID, propKey, propValue, transaction);
7149
+ if (propValue) {
7150
+ enqueuePutListener(this._rootNodeID, propKey, propValue, transaction);
7151
+ }
7038
7152
  } else {
7039
7153
  if (propKey === STYLE) {
7040
7154
  if (propValue) {
@@ -7048,7 +7162,9 @@ ReactDOMComponent.Mixin = {
7048
7162
  }
7049
7163
  var markup = null;
7050
7164
  if (this._tag != null && isCustomComponent(this._tag, props)) {
7051
- markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);
7165
+ if (propKey !== CHILDREN) {
7166
+ markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);
7167
+ }
7052
7168
  } else {
7053
7169
  markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);
7054
7170
  }
@@ -7093,7 +7209,7 @@ ReactDOMComponent.Mixin = {
7093
7209
  // TODO: Validate that text is allowed as a child of this node
7094
7210
  ret = escapeTextContentForBrowser(contentToUse);
7095
7211
  } else if (childrenToUse != null) {
7096
- var mountImages = this.mountChildren(childrenToUse, transaction, processChildContext(context, this));
7212
+ var mountImages = this.mountChildren(childrenToUse, transaction, context);
7097
7213
  ret = mountImages.join('');
7098
7214
  }
7099
7215
  }
@@ -7128,7 +7244,7 @@ ReactDOMComponent.Mixin = {
7128
7244
  // TODO: Validate that text is allowed as a child of this node
7129
7245
  setTextContent(el, contentToUse);
7130
7246
  } else if (childrenToUse != null) {
7131
- var mountImages = this.mountChildren(childrenToUse, transaction, processChildContext(context, this));
7247
+ var mountImages = this.mountChildren(childrenToUse, transaction, context);
7132
7248
  for (var i = 0; i < mountImages.length; i++) {
7133
7249
  el.appendChild(mountImages[i]);
7134
7250
  }
@@ -7189,9 +7305,20 @@ ReactDOMComponent.Mixin = {
7189
7305
  break;
7190
7306
  }
7191
7307
 
7308
+ if ("development" !== 'production') {
7309
+ // If the context is reference-equal to the old one, pass down the same
7310
+ // processed object so the update bailout in ReactReconciler behaves
7311
+ // correctly (and identically in dev and prod). See #5005.
7312
+ if (this._unprocessedContextDev !== context) {
7313
+ this._unprocessedContextDev = context;
7314
+ this._processedContextDev = processChildContextDev(context, this);
7315
+ }
7316
+ context = this._processedContextDev;
7317
+ }
7318
+
7192
7319
  assertValidProps(this, nextProps);
7193
7320
  this._updateDOMProperties(lastProps, nextProps, transaction, null);
7194
- this._updateDOMChildren(lastProps, nextProps, transaction, processChildContext(context, this));
7321
+ this._updateDOMChildren(lastProps, nextProps, transaction, context);
7195
7322
 
7196
7323
  if (!canDefineProperty && this._nodeWithLegacyProperties) {
7197
7324
  this._nodeWithLegacyProperties.props = nextProps;
@@ -7297,6 +7424,9 @@ ReactDOMComponent.Mixin = {
7297
7424
  if (!node) {
7298
7425
  node = ReactMount.getNode(this._rootNodeID);
7299
7426
  }
7427
+ if (propKey === CHILDREN) {
7428
+ nextProp = null;
7429
+ }
7300
7430
  DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp);
7301
7431
  } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {
7302
7432
  if (!node) {
@@ -7451,7 +7581,7 @@ ReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', {
7451
7581
  assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);
7452
7582
 
7453
7583
  module.exports = ReactDOMComponent;
7454
- },{"10":10,"11":11,"120":120,"132":132,"139":139,"140":140,"145":145,"15":15,"162":162,"166":166,"170":170,"172":172,"2":2,"24":24,"28":28,"35":35,"41":41,"46":46,"47":47,"48":48,"5":5,"52":52,"72":72,"73":73,"78":78,"95":95}],43:[function(_dereq_,module,exports){
7584
+ },{"10":10,"11":11,"117":117,"121":121,"133":133,"138":138,"139":139,"144":144,"15":15,"161":161,"166":166,"171":171,"173":173,"2":2,"24":24,"28":28,"35":35,"41":41,"46":46,"47":47,"48":48,"5":5,"52":52,"72":72,"73":73,"78":78,"95":95}],43:[function(_dereq_,module,exports){
7455
7585
  /**
7456
7586
  * Copyright 2013-2015, Facebook, Inc.
7457
7587
  * All rights reserved.
@@ -7668,7 +7798,7 @@ var DOMPropertyOperations = _dereq_(11);
7668
7798
  var ReactMount = _dereq_(72);
7669
7799
  var ReactPerf = _dereq_(78);
7670
7800
 
7671
- var invariant = _dereq_(162);
7801
+ var invariant = _dereq_(161);
7672
7802
 
7673
7803
  /**
7674
7804
  * Errors for properties that should not be updated with `updatePropertyByID()`.
@@ -7738,13 +7868,12 @@ var ReactDOMIDOperations = {
7738
7868
  };
7739
7869
 
7740
7870
  ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {
7741
- updatePropertyByID: 'updatePropertyByID',
7742
7871
  dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID',
7743
7872
  dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates'
7744
7873
  });
7745
7874
 
7746
7875
  module.exports = ReactDOMIDOperations;
7747
- },{"11":11,"162":162,"72":72,"78":78,"9":9}],46:[function(_dereq_,module,exports){
7876
+ },{"11":11,"161":161,"72":72,"78":78,"9":9}],46:[function(_dereq_,module,exports){
7748
7877
  /**
7749
7878
  * Copyright 2013-2015, Facebook, Inc.
7750
7879
  * All rights reserved.
@@ -7764,7 +7893,7 @@ var ReactMount = _dereq_(72);
7764
7893
  var ReactUpdates = _dereq_(96);
7765
7894
 
7766
7895
  var assign = _dereq_(24);
7767
- var invariant = _dereq_(162);
7896
+ var invariant = _dereq_(161);
7768
7897
 
7769
7898
  var instancesByReactID = {};
7770
7899
 
@@ -7808,7 +7937,9 @@ var ReactDOMInput = {
7808
7937
  },
7809
7938
 
7810
7939
  mountWrapper: function (inst, props) {
7811
- LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);
7940
+ if ("development" !== 'production') {
7941
+ LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);
7942
+ }
7812
7943
 
7813
7944
  var defaultValue = props.defaultValue;
7814
7945
  inst._wrapperState = {
@@ -7816,7 +7947,10 @@ var ReactDOMInput = {
7816
7947
  initialValue: defaultValue != null ? defaultValue : null,
7817
7948
  onChange: _handleChange.bind(inst)
7818
7949
  };
7950
+ },
7819
7951
 
7952
+ mountReadyWrapper: function (inst) {
7953
+ // Can't be in mountWrapper or else server rendering leaks.
7820
7954
  instancesByReactID[inst._rootNodeID] = inst;
7821
7955
  },
7822
7956
 
@@ -7893,7 +8027,7 @@ function _handleChange(event) {
7893
8027
  }
7894
8028
 
7895
8029
  module.exports = ReactDOMInput;
7896
- },{"162":162,"23":23,"24":24,"45":45,"72":72,"96":96}],47:[function(_dereq_,module,exports){
8030
+ },{"161":161,"23":23,"24":24,"45":45,"72":72,"96":96}],47:[function(_dereq_,module,exports){
7897
8031
  /**
7898
8032
  * Copyright 2013-2015, Facebook, Inc.
7899
8033
  * All rights reserved.
@@ -7911,7 +8045,7 @@ var ReactChildren = _dereq_(32);
7911
8045
  var ReactDOMSelect = _dereq_(48);
7912
8046
 
7913
8047
  var assign = _dereq_(24);
7914
- var warning = _dereq_(172);
8048
+ var warning = _dereq_(173);
7915
8049
 
7916
8050
  var valueContextKey = ReactDOMSelect.valueContextKey;
7917
8051
 
@@ -7980,7 +8114,7 @@ var ReactDOMOption = {
7980
8114
  };
7981
8115
 
7982
8116
  module.exports = ReactDOMOption;
7983
- },{"172":172,"24":24,"32":32,"48":48}],48:[function(_dereq_,module,exports){
8117
+ },{"173":173,"24":24,"32":32,"48":48}],48:[function(_dereq_,module,exports){
7984
8118
  /**
7985
8119
  * Copyright 2013-2015, Facebook, Inc.
7986
8120
  * All rights reserved.
@@ -7999,7 +8133,7 @@ var ReactMount = _dereq_(72);
7999
8133
  var ReactUpdates = _dereq_(96);
8000
8134
 
8001
8135
  var assign = _dereq_(24);
8002
- var warning = _dereq_(172);
8136
+ var warning = _dereq_(173);
8003
8137
 
8004
8138
  var valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2);
8005
8139
 
@@ -8169,7 +8303,7 @@ function _handleChange(event) {
8169
8303
  }
8170
8304
 
8171
8305
  module.exports = ReactDOMSelect;
8172
- },{"172":172,"23":23,"24":24,"72":72,"96":96}],49:[function(_dereq_,module,exports){
8306
+ },{"173":173,"23":23,"24":24,"72":72,"96":96}],49:[function(_dereq_,module,exports){
8173
8307
  /**
8174
8308
  * Copyright 2013-2015, Facebook, Inc.
8175
8309
  * All rights reserved.
@@ -8183,10 +8317,10 @@ module.exports = ReactDOMSelect;
8183
8317
 
8184
8318
  'use strict';
8185
8319
 
8186
- var ExecutionEnvironment = _dereq_(148);
8320
+ var ExecutionEnvironment = _dereq_(147);
8187
8321
 
8188
- var getNodeForCharacterOffset = _dereq_(129);
8189
- var getTextContentAccessor = _dereq_(130);
8322
+ var getNodeForCharacterOffset = _dereq_(130);
8323
+ var getTextContentAccessor = _dereq_(131);
8190
8324
 
8191
8325
  /**
8192
8326
  * While `isCollapsed` is available on the Selection object and `collapsed`
@@ -8248,6 +8382,22 @@ function getModernOffsets(node) {
8248
8382
 
8249
8383
  var currentRange = selection.getRangeAt(0);
8250
8384
 
8385
+ // In Firefox, range.startContainer and range.endContainer can be "anonymous
8386
+ // divs", e.g. the up/down buttons on an <input type="number">. Anonymous
8387
+ // divs do not seem to expose properties, triggering a "Permission denied
8388
+ // error" if any of its properties are accessed. The only seemingly possible
8389
+ // way to avoid erroring is to access a property that typically works for
8390
+ // non-anonymous divs and catch any error that may otherwise arise. See
8391
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=208427
8392
+ try {
8393
+ /* eslint-disable no-unused-expressions */
8394
+ currentRange.startContainer.nodeType;
8395
+ currentRange.endContainer.nodeType;
8396
+ /* eslint-enable no-unused-expressions */
8397
+ } catch (e) {
8398
+ return null;
8399
+ }
8400
+
8251
8401
  // If the node and offset values are the same, the selection is collapsed.
8252
8402
  // `Selection.isCollapsed` is available natively, but IE sometimes gets
8253
8403
  // this value wrong.
@@ -8366,7 +8516,7 @@ var ReactDOMSelection = {
8366
8516
  };
8367
8517
 
8368
8518
  module.exports = ReactDOMSelection;
8369
- },{"129":129,"130":130,"148":148}],50:[function(_dereq_,module,exports){
8519
+ },{"130":130,"131":131,"147":147}],50:[function(_dereq_,module,exports){
8370
8520
  /**
8371
8521
  * Copyright 2013-2015, Facebook, Inc.
8372
8522
  * All rights reserved.
@@ -8414,9 +8564,9 @@ var ReactComponentBrowserEnvironment = _dereq_(35);
8414
8564
  var ReactMount = _dereq_(72);
8415
8565
 
8416
8566
  var assign = _dereq_(24);
8417
- var escapeTextContentForBrowser = _dereq_(120);
8418
- var setTextContent = _dereq_(140);
8419
- var validateDOMNesting = _dereq_(145);
8567
+ var escapeTextContentForBrowser = _dereq_(121);
8568
+ var setTextContent = _dereq_(139);
8569
+ var validateDOMNesting = _dereq_(144);
8420
8570
 
8421
8571
  /**
8422
8572
  * Text nodes violate a couple assumptions that React makes about components:
@@ -8521,7 +8671,7 @@ assign(ReactDOMTextComponent.prototype, {
8521
8671
  });
8522
8672
 
8523
8673
  module.exports = ReactDOMTextComponent;
8524
- },{"11":11,"120":120,"140":140,"145":145,"24":24,"35":35,"72":72,"9":9}],52:[function(_dereq_,module,exports){
8674
+ },{"11":11,"121":121,"139":139,"144":144,"24":24,"35":35,"72":72,"9":9}],52:[function(_dereq_,module,exports){
8525
8675
  /**
8526
8676
  * Copyright 2013-2015, Facebook, Inc.
8527
8677
  * All rights reserved.
@@ -8540,8 +8690,8 @@ var ReactDOMIDOperations = _dereq_(45);
8540
8690
  var ReactUpdates = _dereq_(96);
8541
8691
 
8542
8692
  var assign = _dereq_(24);
8543
- var invariant = _dereq_(162);
8544
- var warning = _dereq_(172);
8693
+ var invariant = _dereq_(161);
8694
+ var warning = _dereq_(173);
8545
8695
 
8546
8696
  function forceUpdateIfMounted() {
8547
8697
  if (this._rootNodeID) {
@@ -8582,7 +8732,9 @@ var ReactDOMTextarea = {
8582
8732
  },
8583
8733
 
8584
8734
  mountWrapper: function (inst, props) {
8585
- LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);
8735
+ if ("development" !== 'production') {
8736
+ LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);
8737
+ }
8586
8738
 
8587
8739
  var defaultValue = props.defaultValue;
8588
8740
  // TODO (yungsters): Remove support for children content in <textarea>.
@@ -8633,7 +8785,7 @@ function _handleChange(event) {
8633
8785
  }
8634
8786
 
8635
8787
  module.exports = ReactDOMTextarea;
8636
- },{"162":162,"172":172,"23":23,"24":24,"45":45,"96":96}],53:[function(_dereq_,module,exports){
8788
+ },{"161":161,"173":173,"23":23,"24":24,"45":45,"96":96}],53:[function(_dereq_,module,exports){
8637
8789
  /**
8638
8790
  * Copyright 2013-2015, Facebook, Inc.
8639
8791
  * All rights reserved.
@@ -8651,7 +8803,7 @@ var ReactUpdates = _dereq_(96);
8651
8803
  var Transaction = _dereq_(113);
8652
8804
 
8653
8805
  var assign = _dereq_(24);
8654
- var emptyFunction = _dereq_(154);
8806
+ var emptyFunction = _dereq_(153);
8655
8807
 
8656
8808
  var RESET_BATCHED_UPDATES = {
8657
8809
  initialize: emptyFunction,
@@ -8701,7 +8853,7 @@ var ReactDefaultBatchingStrategy = {
8701
8853
  };
8702
8854
 
8703
8855
  module.exports = ReactDefaultBatchingStrategy;
8704
- },{"113":113,"154":154,"24":24,"96":96}],54:[function(_dereq_,module,exports){
8856
+ },{"113":113,"153":153,"24":24,"96":96}],54:[function(_dereq_,module,exports){
8705
8857
  /**
8706
8858
  * Copyright 2013-2015, Facebook, Inc.
8707
8859
  * All rights reserved.
@@ -8720,7 +8872,7 @@ var ChangeEventPlugin = _dereq_(7);
8720
8872
  var ClientReactRootIndex = _dereq_(8);
8721
8873
  var DefaultEventPluginOrder = _dereq_(13);
8722
8874
  var EnterLeaveEventPlugin = _dereq_(14);
8723
- var ExecutionEnvironment = _dereq_(148);
8875
+ var ExecutionEnvironment = _dereq_(147);
8724
8876
  var HTMLDOMPropertyConfig = _dereq_(21);
8725
8877
  var ReactBrowserComponentMixin = _dereq_(27);
8726
8878
  var ReactComponentBrowserEnvironment = _dereq_(35);
@@ -8799,7 +8951,7 @@ function inject() {
8799
8951
  module.exports = {
8800
8952
  inject: inject
8801
8953
  };
8802
- },{"100":100,"101":101,"13":13,"14":14,"148":148,"21":21,"27":27,"3":3,"35":35,"42":42,"51":51,"53":53,"55":55,"63":63,"65":65,"67":67,"7":7,"72":72,"8":8,"83":83,"98":98,"99":99}],55:[function(_dereq_,module,exports){
8954
+ },{"100":100,"101":101,"13":13,"14":14,"147":147,"21":21,"27":27,"3":3,"35":35,"42":42,"51":51,"53":53,"55":55,"63":63,"65":65,"67":67,"7":7,"72":72,"8":8,"83":83,"98":98,"99":99}],55:[function(_dereq_,module,exports){
8803
8955
  /**
8804
8956
  * Copyright 2013-2015, Facebook, Inc.
8805
8957
  * All rights reserved.
@@ -8819,7 +8971,7 @@ var ReactDefaultPerfAnalysis = _dereq_(56);
8819
8971
  var ReactMount = _dereq_(72);
8820
8972
  var ReactPerf = _dereq_(78);
8821
8973
 
8822
- var performanceNow = _dereq_(169);
8974
+ var performanceNow = _dereq_(170);
8823
8975
 
8824
8976
  function roundFloat(val) {
8825
8977
  return Math.floor(val * 100) / 100;
@@ -8945,13 +9097,14 @@ var ReactDefaultPerf = {
8945
9097
  counts: {},
8946
9098
  writes: {},
8947
9099
  displayNames: {},
8948
- totalTime: 0
9100
+ totalTime: 0,
9101
+ created: {}
8949
9102
  });
8950
9103
  start = performanceNow();
8951
9104
  rv = func.apply(this, args);
8952
9105
  ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start;
8953
9106
  return rv;
8954
- } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactDOMIDOperations') {
9107
+ } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') {
8955
9108
  start = performanceNow();
8956
9109
  rv = func.apply(this, args);
8957
9110
  totalTime = performanceNow() - start;
@@ -8979,13 +9132,17 @@ var ReactDefaultPerf = {
8979
9132
  });
8980
9133
  } else {
8981
9134
  // basic format
8982
- ReactDefaultPerf._recordWrite(args[0], fnName, totalTime, Array.prototype.slice.call(args, 1));
9135
+ var id = args[0];
9136
+ if (typeof id === 'object') {
9137
+ id = ReactMount.getID(args[0]);
9138
+ }
9139
+ ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1));
8983
9140
  }
8984
9141
  return rv;
8985
9142
  } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()?
8986
9143
  fnName === '_renderValidatedComponent')) {
8987
9144
 
8988
- if (typeof this._currentElement.type === 'string') {
9145
+ if (this._currentElement.type === ReactMount.TopLevelWrapper) {
8989
9146
  return func.apply(this, args);
8990
9147
  }
8991
9148
 
@@ -8999,6 +9156,7 @@ var ReactDefaultPerf = {
8999
9156
  if (isRender) {
9000
9157
  addValue(entry.counts, rootNodeID, 1);
9001
9158
  } else if (isMount) {
9159
+ entry.created[rootNodeID] = true;
9002
9160
  mountStack.push(0);
9003
9161
  }
9004
9162
 
@@ -9031,7 +9189,7 @@ var ReactDefaultPerf = {
9031
9189
  };
9032
9190
 
9033
9191
  module.exports = ReactDefaultPerf;
9034
- },{"10":10,"169":169,"56":56,"72":72,"78":78}],56:[function(_dereq_,module,exports){
9192
+ },{"10":10,"170":170,"56":56,"72":72,"78":78}],56:[function(_dereq_,module,exports){
9035
9193
  /**
9036
9194
  * Copyright 2013-2015, Facebook, Inc.
9037
9195
  * All rights reserved.
@@ -9056,7 +9214,9 @@ var DOM_OPERATION_TYPES = {
9056
9214
  REMOVE_NODE: 'remove',
9057
9215
  SET_MARKUP: 'set innerHTML',
9058
9216
  TEXT_CONTENT: 'set textContent',
9059
- 'updatePropertyByID': 'update attribute',
9217
+ 'setValueForProperty': 'update attribute',
9218
+ 'setValueForAttribute': 'update attribute',
9219
+ 'deleteValueForProperty': 'remove attribute',
9060
9220
  'dangerouslyReplaceNodeWithMarkupByID': 'replace'
9061
9221
  };
9062
9222
 
@@ -9210,6 +9370,10 @@ function getUnchangedComponents(measurement) {
9210
9370
  break;
9211
9371
  }
9212
9372
  }
9373
+ // check if component newly created
9374
+ if (measurement.created[id]) {
9375
+ isDirty = true;
9376
+ }
9213
9377
  if (!isDirty && measurement.counts[id] > 0) {
9214
9378
  cleanComponents[id] = true;
9215
9379
  }
@@ -9242,10 +9406,11 @@ module.exports = ReactDefaultPerfAnalysis;
9242
9406
  var ReactCurrentOwner = _dereq_(39);
9243
9407
 
9244
9408
  var assign = _dereq_(24);
9409
+ var canDefineProperty = _dereq_(117);
9245
9410
 
9246
9411
  // The Symbol used to tag the ReactElement type. If there is no native Symbol
9247
9412
  // nor polyfill, then a plain number is used for performance.
9248
- var TYPE_SYMBOL = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;
9413
+ var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;
9249
9414
 
9250
9415
  var RESERVED_PROPS = {
9251
9416
  key: true,
@@ -9254,16 +9419,6 @@ var RESERVED_PROPS = {
9254
9419
  __source: true
9255
9420
  };
9256
9421
 
9257
- var canDefineProperty = false;
9258
- if ("development" !== 'production') {
9259
- try {
9260
- Object.defineProperty({}, 'x', {});
9261
- canDefineProperty = true;
9262
- } catch (x) {
9263
- // IE will fail on defineProperty
9264
- }
9265
- }
9266
-
9267
9422
  /**
9268
9423
  * Base constructor for all React elements. This is only used to make this
9269
9424
  * work with a dynamic instanceof check. Nothing should live on this prototype.
@@ -9285,7 +9440,7 @@ if ("development" !== 'production') {
9285
9440
  var ReactElement = function (type, key, ref, self, source, owner, props) {
9286
9441
  var element = {
9287
9442
  // This tag allow us to uniquely identify this as a React Element
9288
- $$typeof: TYPE_SYMBOL,
9443
+ $$typeof: REACT_ELEMENT_TYPE,
9289
9444
 
9290
9445
  // Built-in properties that belong on the element
9291
9446
  type: type,
@@ -9478,11 +9633,11 @@ ReactElement.cloneElement = function (element, config, children) {
9478
9633
  * @final
9479
9634
  */
9480
9635
  ReactElement.isValidElement = function (object) {
9481
- return typeof object === 'object' && object !== null && object.$$typeof === TYPE_SYMBOL;
9636
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
9482
9637
  };
9483
9638
 
9484
9639
  module.exports = ReactElement;
9485
- },{"24":24,"39":39}],58:[function(_dereq_,module,exports){
9640
+ },{"117":117,"24":24,"39":39}],58:[function(_dereq_,module,exports){
9486
9641
  /**
9487
9642
  * Copyright 2014-2015, Facebook, Inc.
9488
9643
  * All rights reserved.
@@ -9508,9 +9663,10 @@ var ReactPropTypeLocations = _dereq_(81);
9508
9663
  var ReactPropTypeLocationNames = _dereq_(80);
9509
9664
  var ReactCurrentOwner = _dereq_(39);
9510
9665
 
9511
- var getIteratorFn = _dereq_(128);
9512
- var invariant = _dereq_(162);
9513
- var warning = _dereq_(172);
9666
+ var canDefineProperty = _dereq_(117);
9667
+ var getIteratorFn = _dereq_(129);
9668
+ var invariant = _dereq_(161);
9669
+ var warning = _dereq_(173);
9514
9670
 
9515
9671
  function getDeclarationErrorAddendum() {
9516
9672
  if (ReactCurrentOwner.current) {
@@ -9542,7 +9698,7 @@ var loggedTypeFailures = {};
9542
9698
  * @param {*} parentType element's parent's type.
9543
9699
  */
9544
9700
  function validateExplicitKey(element, parentType) {
9545
- if (element._store.validated || element.key != null) {
9701
+ if (!element._store || element._store.validated || element.key != null) {
9546
9702
  return;
9547
9703
  }
9548
9704
  element._store.validated = true;
@@ -9699,9 +9855,10 @@ function validatePropTypes(element) {
9699
9855
  var ReactElementValidator = {
9700
9856
 
9701
9857
  createElement: function (type, props, children) {
9858
+ var validType = typeof type === 'string' || typeof type === 'function';
9702
9859
  // We warn in this case but don't throw. We expect the element creation to
9703
9860
  // succeed and there will likely be errors in render.
9704
- "development" !== 'production' ? warning(typeof type === 'string' || typeof type === 'function', '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()) : undefined;
9861
+ "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()) : undefined;
9705
9862
 
9706
9863
  var element = ReactElement.createElement.apply(this, arguments);
9707
9864
 
@@ -9711,8 +9868,15 @@ var ReactElementValidator = {
9711
9868
  return element;
9712
9869
  }
9713
9870
 
9714
- for (var i = 2; i < arguments.length; i++) {
9715
- validateChildKeys(arguments[i], type);
9871
+ // Skip key warning if the type isn't valid since our key validation logic
9872
+ // doesn't expect a non-string/function type and can throw confusing errors.
9873
+ // We don't want exception behavior to differ between dev and prod.
9874
+ // (Rendering will throw with a helpful message and as soon as the type is
9875
+ // fixed, the key warnings will appear.)
9876
+ if (validType) {
9877
+ for (var i = 2; i < arguments.length; i++) {
9878
+ validateChildKeys(arguments[i], type);
9879
+ }
9716
9880
  }
9717
9881
 
9718
9882
  validatePropTypes(element);
@@ -9726,7 +9890,7 @@ var ReactElementValidator = {
9726
9890
  validatedFactory.type = type;
9727
9891
 
9728
9892
  if ("development" !== 'production') {
9729
- try {
9893
+ if (canDefineProperty) {
9730
9894
  Object.defineProperty(validatedFactory, 'type', {
9731
9895
  enumerable: false,
9732
9896
  get: function () {
@@ -9737,8 +9901,6 @@ var ReactElementValidator = {
9737
9901
  return type;
9738
9902
  }
9739
9903
  });
9740
- } catch (x) {
9741
- // IE will fail on defineProperty (es5-shim/sham too)
9742
9904
  }
9743
9905
  }
9744
9906
 
@@ -9757,7 +9919,7 @@ var ReactElementValidator = {
9757
9919
  };
9758
9920
 
9759
9921
  module.exports = ReactElementValidator;
9760
- },{"128":128,"162":162,"172":172,"39":39,"57":57,"80":80,"81":81}],59:[function(_dereq_,module,exports){
9922
+ },{"117":117,"129":129,"161":161,"173":173,"39":39,"57":57,"80":80,"81":81}],59:[function(_dereq_,module,exports){
9761
9923
  /**
9762
9924
  * Copyright 2014-2015, Facebook, Inc.
9763
9925
  * All rights reserved.
@@ -9875,25 +10037,33 @@ module.exports = ReactEmptyComponentRegistry;
9875
10037
 
9876
10038
  var caughtError = null;
9877
10039
 
10040
+ /**
10041
+ * Call a function while guarding against errors that happens within it.
10042
+ *
10043
+ * @param {?String} name of the guard to use for logging or debugging
10044
+ * @param {Function} func The function to invoke
10045
+ * @param {*} a First argument
10046
+ * @param {*} b Second argument
10047
+ */
10048
+ function invokeGuardedCallback(name, func, a, b) {
10049
+ try {
10050
+ return func(a, b);
10051
+ } catch (x) {
10052
+ if (caughtError === null) {
10053
+ caughtError = x;
10054
+ }
10055
+ return undefined;
10056
+ }
10057
+ }
10058
+
9878
10059
  var ReactErrorUtils = {
10060
+ invokeGuardedCallback: invokeGuardedCallback,
10061
+
9879
10062
  /**
9880
- * Call a function while guarding against errors that happens within it.
9881
- *
9882
- * @param {?String} name of the guard to use for logging or debugging
9883
- * @param {Function} func The function to invoke
9884
- * @param {*} a First argument
9885
- * @param {*} b Second argument
10063
+ * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event
10064
+ * handler are sure to be rethrown by rethrowCaughtError.
9886
10065
  */
9887
- invokeGuardedCallback: function (name, func, a, b) {
9888
- try {
9889
- return func(a, b);
9890
- } catch (x) {
9891
- if (caughtError === null) {
9892
- caughtError = x;
9893
- }
9894
- return undefined;
9895
- }
9896
- },
10066
+ invokeGuardedCallbackWithCatch: invokeGuardedCallback,
9897
10067
 
9898
10068
  /**
9899
10069
  * During execution of guarded functions we will capture the first error which
@@ -9913,13 +10083,16 @@ if ("development" !== 'production') {
9913
10083
  * To help development we can get better devtools integration by simulating a
9914
10084
  * real browser event.
9915
10085
  */
9916
- if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof Event === 'function') {
10086
+ if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {
9917
10087
  var fakeNode = document.createElement('react');
9918
10088
  ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {
9919
10089
  var boundFunc = func.bind(null, a, b);
9920
- fakeNode.addEventListener(name, boundFunc, false);
9921
- fakeNode.dispatchEvent(new Event(name));
9922
- fakeNode.removeEventListener(name, boundFunc, false);
10090
+ var evtType = 'react-' + name;
10091
+ fakeNode.addEventListener(evtType, boundFunc, false);
10092
+ var evt = document.createEvent('Event');
10093
+ evt.initEvent(evtType, false, false);
10094
+ fakeNode.dispatchEvent(evt);
10095
+ fakeNode.removeEventListener(evtType, boundFunc, false);
9923
10096
  };
9924
10097
  }
9925
10098
  }
@@ -9943,7 +10116,7 @@ var EventPluginHub = _dereq_(16);
9943
10116
 
9944
10117
  function runEventQueueInBatch(events) {
9945
10118
  EventPluginHub.enqueueEvents(events);
9946
- EventPluginHub.processEventQueue();
10119
+ EventPluginHub.processEventQueue(false);
9947
10120
  }
9948
10121
 
9949
10122
  var ReactEventEmitterMixin = {
@@ -9979,16 +10152,16 @@ module.exports = ReactEventEmitterMixin;
9979
10152
 
9980
10153
  'use strict';
9981
10154
 
9982
- var EventListener = _dereq_(147);
9983
- var ExecutionEnvironment = _dereq_(148);
10155
+ var EventListener = _dereq_(146);
10156
+ var ExecutionEnvironment = _dereq_(147);
9984
10157
  var PooledClass = _dereq_(25);
9985
10158
  var ReactInstanceHandles = _dereq_(67);
9986
10159
  var ReactMount = _dereq_(72);
9987
10160
  var ReactUpdates = _dereq_(96);
9988
10161
 
9989
10162
  var assign = _dereq_(24);
9990
- var getEventTarget = _dereq_(127);
9991
- var getUnboundedScrollPosition = _dereq_(159);
10163
+ var getEventTarget = _dereq_(128);
10164
+ var getUnboundedScrollPosition = _dereq_(158);
9992
10165
 
9993
10166
  var DOCUMENT_FRAGMENT_NODE_TYPE = 11;
9994
10167
 
@@ -10176,7 +10349,7 @@ var ReactEventListener = {
10176
10349
  };
10177
10350
 
10178
10351
  module.exports = ReactEventListener;
10179
- },{"127":127,"147":147,"148":148,"159":159,"24":24,"25":25,"67":67,"72":72,"96":96}],64:[function(_dereq_,module,exports){
10352
+ },{"128":128,"146":146,"147":147,"158":158,"24":24,"25":25,"67":67,"72":72,"96":96}],64:[function(_dereq_,module,exports){
10180
10353
  /**
10181
10354
  * Copyright 2015, Facebook, Inc.
10182
10355
  * All rights reserved.
@@ -10193,9 +10366,9 @@ module.exports = ReactEventListener;
10193
10366
  var ReactChildren = _dereq_(32);
10194
10367
  var ReactElement = _dereq_(57);
10195
10368
 
10196
- var emptyFunction = _dereq_(154);
10197
- var invariant = _dereq_(162);
10198
- var warning = _dereq_(172);
10369
+ var emptyFunction = _dereq_(153);
10370
+ var invariant = _dereq_(161);
10371
+ var warning = _dereq_(173);
10199
10372
 
10200
10373
  /**
10201
10374
  * We used to allow keyed objects to serve as a collection of ReactElements,
@@ -10241,7 +10414,7 @@ var ReactFragment = {
10241
10414
  };
10242
10415
 
10243
10416
  module.exports = ReactFragment;
10244
- },{"154":154,"162":162,"172":172,"32":32,"57":57}],65:[function(_dereq_,module,exports){
10417
+ },{"153":153,"161":161,"173":173,"32":32,"57":57}],65:[function(_dereq_,module,exports){
10245
10418
  /**
10246
10419
  * Copyright 2013-2015, Facebook, Inc.
10247
10420
  * All rights reserved.
@@ -10296,9 +10469,9 @@ module.exports = ReactInjection;
10296
10469
 
10297
10470
  var ReactDOMSelection = _dereq_(49);
10298
10471
 
10299
- var containsNode = _dereq_(151);
10300
- var focusNode = _dereq_(156);
10301
- var getActiveElement = _dereq_(157);
10472
+ var containsNode = _dereq_(150);
10473
+ var focusNode = _dereq_(155);
10474
+ var getActiveElement = _dereq_(156);
10302
10475
 
10303
10476
  function isInDocument(node) {
10304
10477
  return containsNode(document.documentElement, node);
@@ -10405,7 +10578,7 @@ var ReactInputSelection = {
10405
10578
  };
10406
10579
 
10407
10580
  module.exports = ReactInputSelection;
10408
- },{"151":151,"156":156,"157":157,"49":49}],67:[function(_dereq_,module,exports){
10581
+ },{"150":150,"155":155,"156":156,"49":49}],67:[function(_dereq_,module,exports){
10409
10582
  /**
10410
10583
  * Copyright 2013-2015, Facebook, Inc.
10411
10584
  * All rights reserved.
@@ -10422,7 +10595,7 @@ module.exports = ReactInputSelection;
10422
10595
 
10423
10596
  var ReactRootIndex = _dereq_(86);
10424
10597
 
10425
- var invariant = _dereq_(162);
10598
+ var invariant = _dereq_(161);
10426
10599
 
10427
10600
  var SEPARATOR = '.';
10428
10601
  var SEPARATOR_LENGTH = SEPARATOR.length;
@@ -10708,7 +10881,7 @@ var ReactInstanceHandles = {
10708
10881
  };
10709
10882
 
10710
10883
  module.exports = ReactInstanceHandles;
10711
- },{"162":162,"86":86}],68:[function(_dereq_,module,exports){
10884
+ },{"161":161,"86":86}],68:[function(_dereq_,module,exports){
10712
10885
  /**
10713
10886
  * Copyright 2013-2015, Facebook, Inc.
10714
10887
  * All rights reserved.
@@ -10780,7 +10953,7 @@ var ReactPropTypes = _dereq_(82);
10780
10953
  var ReactVersion = _dereq_(97);
10781
10954
 
10782
10955
  var assign = _dereq_(24);
10783
- var onlyChild = _dereq_(136);
10956
+ var onlyChild = _dereq_(135);
10784
10957
 
10785
10958
  var createElement = ReactElement.createElement;
10786
10959
  var createFactory = ReactElement.createFactory;
@@ -10831,7 +11004,7 @@ var React = {
10831
11004
  };
10832
11005
 
10833
11006
  module.exports = React;
10834
- },{"136":136,"24":24,"32":32,"33":33,"34":34,"43":43,"57":57,"58":58,"82":82,"97":97}],70:[function(_dereq_,module,exports){
11007
+ },{"135":135,"24":24,"32":32,"33":33,"34":34,"43":43,"57":57,"58":58,"82":82,"97":97}],70:[function(_dereq_,module,exports){
10835
11008
  /**
10836
11009
  * Copyright 2013-2015, Facebook, Inc.
10837
11010
  * All rights reserved.
@@ -10860,7 +11033,7 @@ module.exports = React;
10860
11033
  * var valueLink = new ReactLink(this.state.value, this._handleValueChange);
10861
11034
  * return <input valueLink={valueLink} />;
10862
11035
  * },
10863
- * this._handleValueChange: function(newValue) {
11036
+ * _handleValueChange: function(newValue) {
10864
11037
  * this.setState({value: newValue});
10865
11038
  * }
10866
11039
  * });
@@ -10976,14 +11149,14 @@ var ReactUpdateQueue = _dereq_(95);
10976
11149
  var ReactUpdates = _dereq_(96);
10977
11150
 
10978
11151
  var assign = _dereq_(24);
10979
- var emptyObject = _dereq_(155);
10980
- var containsNode = _dereq_(151);
10981
- var instantiateReactComponent = _dereq_(131);
10982
- var invariant = _dereq_(162);
10983
- var setInnerHTML = _dereq_(139);
10984
- var shouldUpdateReactComponent = _dereq_(142);
10985
- var validateDOMNesting = _dereq_(145);
10986
- var warning = _dereq_(172);
11152
+ var emptyObject = _dereq_(154);
11153
+ var containsNode = _dereq_(150);
11154
+ var instantiateReactComponent = _dereq_(132);
11155
+ var invariant = _dereq_(161);
11156
+ var setInnerHTML = _dereq_(138);
11157
+ var shouldUpdateReactComponent = _dereq_(141);
11158
+ var validateDOMNesting = _dereq_(144);
11159
+ var warning = _dereq_(173);
10987
11160
 
10988
11161
  var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
10989
11162
  var nodeCache = {};
@@ -11297,7 +11470,11 @@ function findFirstReactDOMImpl(node) {
11297
11470
  do {
11298
11471
  lastID = internalGetID(current);
11299
11472
  current = current.parentNode;
11300
- !(current != null) ? "development" !== 'production' ? invariant(false, 'findFirstReactDOMImpl(...): Unexpected detached subtree found when ' + 'traversing DOM from node `%s`.', nodeID) : invariant(false) : undefined;
11473
+ if (current == null) {
11474
+ // The passed-in node has been detached from the container it was
11475
+ // originally rendered into.
11476
+ return null;
11477
+ }
11301
11478
  } while (lastID !== reactRootID);
11302
11479
 
11303
11480
  if (current === containersByReactRootID[reactRootID]) {
@@ -11313,7 +11490,7 @@ function findFirstReactDOMImpl(node) {
11313
11490
  * here.
11314
11491
  */
11315
11492
  var TopLevelWrapper = function () {};
11316
- TopLevelWrapper.isReactClass = {};
11493
+ TopLevelWrapper.prototype.isReactComponent = {};
11317
11494
  if ("development" !== 'production') {
11318
11495
  TopLevelWrapper.displayName = 'TopLevelWrapper';
11319
11496
  }
@@ -11341,6 +11518,9 @@ TopLevelWrapper.prototype.render = function () {
11341
11518
  * Inside of `container`, the first element rendered is the "reactRoot".
11342
11519
  */
11343
11520
  var ReactMount = {
11521
+
11522
+ TopLevelWrapper: TopLevelWrapper,
11523
+
11344
11524
  /** Exposed for debugging purposes **/
11345
11525
  _instancesByReactRootID: instancesByReactRootID,
11346
11526
 
@@ -11459,7 +11639,12 @@ var ReactMount = {
11459
11639
  var prevWrappedElement = prevComponent._currentElement;
11460
11640
  var prevElement = prevWrappedElement.props;
11461
11641
  if (shouldUpdateReactComponent(prevElement, nextElement)) {
11462
- return ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, callback)._renderedComponent.getPublicInstance();
11642
+ var publicInst = prevComponent._renderedComponent.getPublicInstance();
11643
+ var updatedCallback = callback && function () {
11644
+ callback.call(publicInst);
11645
+ };
11646
+ ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, updatedCallback);
11647
+ return publicInst;
11463
11648
  } else {
11464
11649
  ReactMount.unmountComponentAtNode(container);
11465
11650
  }
@@ -11786,7 +11971,7 @@ ReactPerf.measureMethods(ReactMount, 'ReactMount', {
11786
11971
  });
11787
11972
 
11788
11973
  module.exports = ReactMount;
11789
- },{"10":10,"131":131,"139":139,"142":142,"145":145,"151":151,"155":155,"162":162,"172":172,"24":24,"28":28,"39":39,"44":44,"57":57,"60":60,"67":67,"68":68,"71":71,"78":78,"84":84,"95":95,"96":96}],73:[function(_dereq_,module,exports){
11974
+ },{"10":10,"132":132,"138":138,"141":141,"144":144,"150":150,"154":154,"161":161,"173":173,"24":24,"28":28,"39":39,"44":44,"57":57,"60":60,"67":67,"68":68,"71":71,"78":78,"84":84,"95":95,"96":96}],73:[function(_dereq_,module,exports){
11790
11975
  /**
11791
11976
  * Copyright 2013-2015, Facebook, Inc.
11792
11977
  * All rights reserved.
@@ -11808,7 +11993,7 @@ var ReactCurrentOwner = _dereq_(39);
11808
11993
  var ReactReconciler = _dereq_(84);
11809
11994
  var ReactChildReconciler = _dereq_(31);
11810
11995
 
11811
- var flattenChildren = _dereq_(122);
11996
+ var flattenChildren = _dereq_(123);
11812
11997
 
11813
11998
  /**
11814
11999
  * Updating children of a component may trigger recursive updates. The depth is
@@ -12283,7 +12468,7 @@ var ReactMultiChild = {
12283
12468
  };
12284
12469
 
12285
12470
  module.exports = ReactMultiChild;
12286
- },{"122":122,"31":31,"36":36,"39":39,"74":74,"84":84}],74:[function(_dereq_,module,exports){
12471
+ },{"123":123,"31":31,"36":36,"39":39,"74":74,"84":84}],74:[function(_dereq_,module,exports){
12287
12472
  /**
12288
12473
  * Copyright 2013-2015, Facebook, Inc.
12289
12474
  * All rights reserved.
@@ -12331,7 +12516,7 @@ module.exports = ReactMultiChildUpdateTypes;
12331
12516
  'use strict';
12332
12517
 
12333
12518
  var assign = _dereq_(24);
12334
- var invariant = _dereq_(162);
12519
+ var invariant = _dereq_(161);
12335
12520
 
12336
12521
  var autoGenerateWrapperClass = null;
12337
12522
  var genericComponentClass = null;
@@ -12411,7 +12596,7 @@ var ReactNativeComponent = {
12411
12596
  };
12412
12597
 
12413
12598
  module.exports = ReactNativeComponent;
12414
- },{"162":162,"24":24}],76:[function(_dereq_,module,exports){
12599
+ },{"161":161,"24":24}],76:[function(_dereq_,module,exports){
12415
12600
  /**
12416
12601
  * Copyright 2015, Facebook, Inc.
12417
12602
  * All rights reserved.
@@ -12425,7 +12610,7 @@ module.exports = ReactNativeComponent;
12425
12610
 
12426
12611
  'use strict';
12427
12612
 
12428
- var warning = _dereq_(172);
12613
+ var warning = _dereq_(173);
12429
12614
 
12430
12615
  function warnTDZ(publicInstance, callerName) {
12431
12616
  if ("development" !== 'production') {
@@ -12530,7 +12715,7 @@ var ReactNoopUpdateQueue = {
12530
12715
  };
12531
12716
 
12532
12717
  module.exports = ReactNoopUpdateQueue;
12533
- },{"172":172}],77:[function(_dereq_,module,exports){
12718
+ },{"173":173}],77:[function(_dereq_,module,exports){
12534
12719
  /**
12535
12720
  * Copyright 2013-2015, Facebook, Inc.
12536
12721
  * All rights reserved.
@@ -12544,7 +12729,7 @@ module.exports = ReactNoopUpdateQueue;
12544
12729
 
12545
12730
  'use strict';
12546
12731
 
12547
- var invariant = _dereq_(162);
12732
+ var invariant = _dereq_(161);
12548
12733
 
12549
12734
  /**
12550
12735
  * ReactOwners are capable of storing references to owned components.
@@ -12622,7 +12807,7 @@ var ReactOwner = {
12622
12807
  };
12623
12808
 
12624
12809
  module.exports = ReactOwner;
12625
- },{"162":162}],78:[function(_dereq_,module,exports){
12810
+ },{"161":161}],78:[function(_dereq_,module,exports){
12626
12811
  /**
12627
12812
  * Copyright 2013-2015, Facebook, Inc.
12628
12813
  * All rights reserved.
@@ -12734,8 +12919,8 @@ module.exports = ReactPerf;
12734
12919
  'use strict';
12735
12920
 
12736
12921
  var assign = _dereq_(24);
12737
- var emptyFunction = _dereq_(154);
12738
- var joinClasses = _dereq_(134);
12922
+ var emptyFunction = _dereq_(153);
12923
+ var joinClasses = _dereq_(164);
12739
12924
 
12740
12925
  /**
12741
12926
  * Creates a transfer strategy that will merge prop values using the supplied
@@ -12828,7 +13013,7 @@ var ReactPropTransferer = {
12828
13013
  };
12829
13014
 
12830
13015
  module.exports = ReactPropTransferer;
12831
- },{"134":134,"154":154,"24":24}],80:[function(_dereq_,module,exports){
13016
+ },{"153":153,"164":164,"24":24}],80:[function(_dereq_,module,exports){
12832
13017
  /**
12833
13018
  * Copyright 2013-2015, Facebook, Inc.
12834
13019
  * All rights reserved.
@@ -12893,8 +13078,8 @@ module.exports = ReactPropTypeLocations;
12893
13078
  var ReactElement = _dereq_(57);
12894
13079
  var ReactPropTypeLocationNames = _dereq_(80);
12895
13080
 
12896
- var emptyFunction = _dereq_(154);
12897
- var getIteratorFn = _dereq_(128);
13081
+ var emptyFunction = _dereq_(153);
13082
+ var getIteratorFn = _dereq_(129);
12898
13083
 
12899
13084
  /**
12900
13085
  * Collection of methods that allow declaration and validation of props that are
@@ -13233,7 +13418,7 @@ function getClassName(propValue) {
13233
13418
  }
13234
13419
 
13235
13420
  module.exports = ReactPropTypes;
13236
- },{"128":128,"154":154,"57":57,"80":80}],83:[function(_dereq_,module,exports){
13421
+ },{"129":129,"153":153,"57":57,"80":80}],83:[function(_dereq_,module,exports){
13237
13422
  /**
13238
13423
  * Copyright 2013-2015, Facebook, Inc.
13239
13424
  * All rights reserved.
@@ -13555,8 +13740,7 @@ ReactRef.shouldUpdateRefs = function (prevElement, nextElement) {
13555
13740
  var prevEmpty = prevElement === null || prevElement === false;
13556
13741
  var nextEmpty = nextElement === null || nextElement === false;
13557
13742
 
13558
- return (
13559
- // This has a few false positives w/r/t empty components.
13743
+ return(
13560
13744
  // This has a few false positives w/r/t empty components.
13561
13745
  prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref
13562
13746
  );
@@ -13649,9 +13833,9 @@ var ReactServerBatchingStrategy = _dereq_(87);
13649
13833
  var ReactServerRenderingTransaction = _dereq_(89);
13650
13834
  var ReactUpdates = _dereq_(96);
13651
13835
 
13652
- var emptyObject = _dereq_(155);
13653
- var instantiateReactComponent = _dereq_(131);
13654
- var invariant = _dereq_(162);
13836
+ var emptyObject = _dereq_(154);
13837
+ var instantiateReactComponent = _dereq_(132);
13838
+ var invariant = _dereq_(161);
13655
13839
 
13656
13840
  /**
13657
13841
  * @param {ReactElement} element
@@ -13711,7 +13895,7 @@ module.exports = {
13711
13895
  renderToString: renderToString,
13712
13896
  renderToStaticMarkup: renderToStaticMarkup
13713
13897
  };
13714
- },{"131":131,"155":155,"162":162,"53":53,"57":57,"67":67,"71":71,"87":87,"89":89,"96":96}],89:[function(_dereq_,module,exports){
13898
+ },{"132":132,"154":154,"161":161,"53":53,"57":57,"67":67,"71":71,"87":87,"89":89,"96":96}],89:[function(_dereq_,module,exports){
13715
13899
  /**
13716
13900
  * Copyright 2014-2015, Facebook, Inc.
13717
13901
  * All rights reserved.
@@ -13731,7 +13915,7 @@ var CallbackQueue = _dereq_(6);
13731
13915
  var Transaction = _dereq_(113);
13732
13916
 
13733
13917
  var assign = _dereq_(24);
13734
- var emptyFunction = _dereq_(154);
13918
+ var emptyFunction = _dereq_(153);
13735
13919
 
13736
13920
  /**
13737
13921
  * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks
@@ -13799,7 +13983,7 @@ assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);
13799
13983
  PooledClass.addPoolingTo(ReactServerRenderingTransaction);
13800
13984
 
13801
13985
  module.exports = ReactServerRenderingTransaction;
13802
- },{"113":113,"154":154,"24":24,"25":25,"6":6}],90:[function(_dereq_,module,exports){
13986
+ },{"113":113,"153":153,"24":24,"25":25,"6":6}],90:[function(_dereq_,module,exports){
13803
13987
  /**
13804
13988
  * Copyright 2013-2015, Facebook, Inc.
13805
13989
  * All rights reserved.
@@ -13933,9 +14117,9 @@ var ReactUpdates = _dereq_(96);
13933
14117
  var SyntheticEvent = _dereq_(105);
13934
14118
 
13935
14119
  var assign = _dereq_(24);
13936
- var emptyObject = _dereq_(155);
13937
- var findDOMNode = _dereq_(121);
13938
- var invariant = _dereq_(162);
14120
+ var emptyObject = _dereq_(154);
14121
+ var findDOMNode = _dereq_(122);
14122
+ var invariant = _dereq_(161);
13939
14123
 
13940
14124
  var topLevelTypes = EventConstants.topLevelTypes;
13941
14125
 
@@ -13951,6 +14135,7 @@ function findAllInRenderedTreeInternal(inst, test) {
13951
14135
  }
13952
14136
  var publicInst = inst.getPublicInstance();
13953
14137
  var ret = test(publicInst) ? [publicInst] : [];
14138
+ var currentElement = inst._currentElement;
13954
14139
  if (ReactTestUtils.isDOMComponent(publicInst)) {
13955
14140
  var renderedChildren = inst._renderedChildren;
13956
14141
  var key;
@@ -13960,7 +14145,7 @@ function findAllInRenderedTreeInternal(inst, test) {
13960
14145
  }
13961
14146
  ret = ret.concat(findAllInRenderedTreeInternal(renderedChildren[key], test));
13962
14147
  }
13963
- } else if (ReactTestUtils.isCompositeComponent(publicInst)) {
14148
+ } else if (ReactElement.isValidElement(currentElement) && typeof currentElement.type === 'function') {
13964
14149
  ret = ret.concat(findAllInRenderedTreeInternal(inst._renderedComponent, test));
13965
14150
  }
13966
14151
  return ret;
@@ -13991,8 +14176,6 @@ var ReactTestUtils = {
13991
14176
  },
13992
14177
 
13993
14178
  isDOMComponent: function (inst) {
13994
- // TODO: Fix this heuristic. It's just here because composites can currently
13995
- // pretend to be DOM components.
13996
14179
  return !!(inst && inst.nodeType === 1 && inst.tagName);
13997
14180
  },
13998
14181
 
@@ -14006,7 +14189,7 @@ var ReactTestUtils = {
14006
14189
  // this returns when we have DOM nodes as refs directly
14007
14190
  return false;
14008
14191
  }
14009
- return typeof inst.render === 'function' && typeof inst.setState === 'function';
14192
+ return inst != null && typeof inst.render === 'function' && typeof inst.setState === 'function';
14010
14193
  },
14011
14194
 
14012
14195
  isCompositeComponentWithType: function (inst, type) {
@@ -14057,11 +14240,21 @@ var ReactTestUtils = {
14057
14240
  * components with the class name matching `className`.
14058
14241
  * @return {array} an array of all the matches.
14059
14242
  */
14060
- scryRenderedDOMComponentsWithClass: function (root, className) {
14243
+ scryRenderedDOMComponentsWithClass: function (root, classNames) {
14244
+ if (!Array.isArray(classNames)) {
14245
+ classNames = classNames.split(/\s+/);
14246
+ }
14061
14247
  return ReactTestUtils.findAllInRenderedTree(root, function (inst) {
14062
14248
  if (ReactTestUtils.isDOMComponent(inst)) {
14063
- var instClassName = ReactDOM.findDOMNode(inst).className;
14064
- return instClassName && ('' + instClassName).split(/\s+/).indexOf(className) !== -1;
14249
+ var className = inst.className;
14250
+ if (typeof className !== 'string') {
14251
+ // SVG, probably.
14252
+ className = inst.getAttribute('class') || '';
14253
+ }
14254
+ var classList = className.split(/\s+/);
14255
+ return classNames.every(function (name) {
14256
+ return classList.indexOf(name) !== -1;
14257
+ });
14065
14258
  }
14066
14259
  return false;
14067
14260
  });
@@ -14215,8 +14408,11 @@ NoopInternalComponent.prototype = {
14215
14408
  this._currentElement = element;
14216
14409
  },
14217
14410
 
14218
- unmountComponent: function () {}
14411
+ unmountComponent: function () {},
14219
14412
 
14413
+ getPublicInstance: function () {
14414
+ return null;
14415
+ }
14220
14416
  };
14221
14417
 
14222
14418
  var ShallowComponentWrapper = function () {};
@@ -14294,7 +14490,7 @@ function makeSimulator(eventType) {
14294
14490
 
14295
14491
  ReactUpdates.batchedUpdates(function () {
14296
14492
  EventPluginHub.enqueueEvents(event);
14297
- EventPluginHub.processEventQueue();
14493
+ EventPluginHub.processEventQueue(true);
14298
14494
  });
14299
14495
  };
14300
14496
  }
@@ -14366,7 +14562,7 @@ Object.keys(topLevelTypes).forEach(function (eventType) {
14366
14562
  });
14367
14563
 
14368
14564
  module.exports = ReactTestUtils;
14369
- },{"105":105,"121":121,"15":15,"155":155,"16":16,"162":162,"19":19,"24":24,"26":26,"28":28,"38":38,"40":40,"57":57,"67":67,"68":68,"72":72,"96":96}],92:[function(_dereq_,module,exports){
14565
+ },{"105":105,"122":122,"15":15,"154":154,"16":16,"161":161,"19":19,"24":24,"26":26,"28":28,"38":38,"40":40,"57":57,"67":67,"68":68,"72":72,"96":96}],92:[function(_dereq_,module,exports){
14370
14566
  /**
14371
14567
  * Copyright 2013-2015, Facebook, Inc.
14372
14568
  * All rights reserved.
@@ -14381,7 +14577,7 @@ module.exports = ReactTestUtils;
14381
14577
 
14382
14578
  'use strict';
14383
14579
 
14384
- var flattenChildren = _dereq_(122);
14580
+ var flattenChildren = _dereq_(123);
14385
14581
 
14386
14582
  var ReactTransitionChildMapping = {
14387
14583
  /**
@@ -14465,7 +14661,7 @@ var ReactTransitionChildMapping = {
14465
14661
  };
14466
14662
 
14467
14663
  module.exports = ReactTransitionChildMapping;
14468
- },{"122":122}],93:[function(_dereq_,module,exports){
14664
+ },{"123":123}],93:[function(_dereq_,module,exports){
14469
14665
  /**
14470
14666
  * Copyright 2013-2015, Facebook, Inc.
14471
14667
  * All rights reserved.
@@ -14479,7 +14675,7 @@ module.exports = ReactTransitionChildMapping;
14479
14675
 
14480
14676
  'use strict';
14481
14677
 
14482
- var ExecutionEnvironment = _dereq_(148);
14678
+ var ExecutionEnvironment = _dereq_(147);
14483
14679
 
14484
14680
  /**
14485
14681
  * EVENT_NAME_MAP is used to determine which event fired when a
@@ -14575,7 +14771,7 @@ var ReactTransitionEvents = {
14575
14771
  };
14576
14772
 
14577
14773
  module.exports = ReactTransitionEvents;
14578
- },{"148":148}],94:[function(_dereq_,module,exports){
14774
+ },{"147":147}],94:[function(_dereq_,module,exports){
14579
14775
  /**
14580
14776
  * Copyright 2013-2015, Facebook, Inc.
14581
14777
  * All rights reserved.
@@ -14593,7 +14789,7 @@ var React = _dereq_(26);
14593
14789
  var ReactTransitionChildMapping = _dereq_(92);
14594
14790
 
14595
14791
  var assign = _dereq_(24);
14596
- var emptyFunction = _dereq_(154);
14792
+ var emptyFunction = _dereq_(153);
14597
14793
 
14598
14794
  var ReactTransitionGroup = React.createClass({
14599
14795
  displayName: 'ReactTransitionGroup',
@@ -14781,7 +14977,7 @@ var ReactTransitionGroup = React.createClass({
14781
14977
  });
14782
14978
 
14783
14979
  module.exports = ReactTransitionGroup;
14784
- },{"154":154,"24":24,"26":26,"92":92}],95:[function(_dereq_,module,exports){
14980
+ },{"153":153,"24":24,"26":26,"92":92}],95:[function(_dereq_,module,exports){
14785
14981
  /**
14786
14982
  * Copyright 2015, Facebook, Inc.
14787
14983
  * All rights reserved.
@@ -14801,8 +14997,8 @@ var ReactInstanceMap = _dereq_(68);
14801
14997
  var ReactUpdates = _dereq_(96);
14802
14998
 
14803
14999
  var assign = _dereq_(24);
14804
- var invariant = _dereq_(162);
14805
- var warning = _dereq_(172);
15000
+ var invariant = _dereq_(161);
15001
+ var warning = _dereq_(173);
14806
15002
 
14807
15003
  function enqueueUpdate(internalInstance) {
14808
15004
  ReactUpdates.enqueueUpdate(internalInstance);
@@ -15039,7 +15235,7 @@ var ReactUpdateQueue = {
15039
15235
  };
15040
15236
 
15041
15237
  module.exports = ReactUpdateQueue;
15042
- },{"162":162,"172":172,"24":24,"39":39,"57":57,"68":68,"96":96}],96:[function(_dereq_,module,exports){
15238
+ },{"161":161,"173":173,"24":24,"39":39,"57":57,"68":68,"96":96}],96:[function(_dereq_,module,exports){
15043
15239
  /**
15044
15240
  * Copyright 2013-2015, Facebook, Inc.
15045
15241
  * All rights reserved.
@@ -15060,7 +15256,7 @@ var ReactReconciler = _dereq_(84);
15060
15256
  var Transaction = _dereq_(113);
15061
15257
 
15062
15258
  var assign = _dereq_(24);
15063
- var invariant = _dereq_(162);
15259
+ var invariant = _dereq_(161);
15064
15260
 
15065
15261
  var dirtyComponents = [];
15066
15262
  var asapCallbackQueue = CallbackQueue.getPooled();
@@ -15263,7 +15459,7 @@ var ReactUpdates = {
15263
15459
  };
15264
15460
 
15265
15461
  module.exports = ReactUpdates;
15266
- },{"113":113,"162":162,"24":24,"25":25,"6":6,"78":78,"84":84}],97:[function(_dereq_,module,exports){
15462
+ },{"113":113,"161":161,"24":24,"25":25,"6":6,"78":78,"84":84}],97:[function(_dereq_,module,exports){
15267
15463
  /**
15268
15464
  * Copyright 2013-2015, Facebook, Inc.
15269
15465
  * All rights reserved.
@@ -15277,7 +15473,7 @@ module.exports = ReactUpdates;
15277
15473
 
15278
15474
  'use strict';
15279
15475
 
15280
- module.exports = '0.14.0-rc1';
15476
+ module.exports = '0.14.3';
15281
15477
  },{}],98:[function(_dereq_,module,exports){
15282
15478
  /**
15283
15479
  * Copyright 2013-2015, Facebook, Inc.
@@ -15422,14 +15618,14 @@ module.exports = SVGDOMPropertyConfig;
15422
15618
 
15423
15619
  var EventConstants = _dereq_(15);
15424
15620
  var EventPropagators = _dereq_(19);
15425
- var ExecutionEnvironment = _dereq_(148);
15621
+ var ExecutionEnvironment = _dereq_(147);
15426
15622
  var ReactInputSelection = _dereq_(66);
15427
15623
  var SyntheticEvent = _dereq_(105);
15428
15624
 
15429
- var getActiveElement = _dereq_(157);
15430
- var isTextInputElement = _dereq_(133);
15625
+ var getActiveElement = _dereq_(156);
15626
+ var isTextInputElement = _dereq_(134);
15431
15627
  var keyOf = _dereq_(166);
15432
- var shallowEqual = _dereq_(170);
15628
+ var shallowEqual = _dereq_(171);
15433
15629
 
15434
15630
  var topLevelTypes = EventConstants.topLevelTypes;
15435
15631
 
@@ -15608,7 +15804,7 @@ var SelectEventPlugin = {
15608
15804
  };
15609
15805
 
15610
15806
  module.exports = SelectEventPlugin;
15611
- },{"105":105,"133":133,"148":148,"15":15,"157":157,"166":166,"170":170,"19":19,"66":66}],100:[function(_dereq_,module,exports){
15807
+ },{"105":105,"134":134,"147":147,"15":15,"156":156,"166":166,"171":171,"19":19,"66":66}],100:[function(_dereq_,module,exports){
15612
15808
  /**
15613
15809
  * Copyright 2013-2015, Facebook, Inc.
15614
15810
  * All rights reserved.
@@ -15653,7 +15849,7 @@ module.exports = ServerReactRootIndex;
15653
15849
  'use strict';
15654
15850
 
15655
15851
  var EventConstants = _dereq_(15);
15656
- var EventListener = _dereq_(147);
15852
+ var EventListener = _dereq_(146);
15657
15853
  var EventPropagators = _dereq_(19);
15658
15854
  var ReactMount = _dereq_(72);
15659
15855
  var SyntheticClipboardEvent = _dereq_(102);
@@ -15666,9 +15862,9 @@ var SyntheticTouchEvent = _dereq_(110);
15666
15862
  var SyntheticUIEvent = _dereq_(111);
15667
15863
  var SyntheticWheelEvent = _dereq_(112);
15668
15864
 
15669
- var emptyFunction = _dereq_(154);
15670
- var getEventCharCode = _dereq_(124);
15671
- var invariant = _dereq_(162);
15865
+ var emptyFunction = _dereq_(153);
15866
+ var getEventCharCode = _dereq_(125);
15867
+ var invariant = _dereq_(161);
15672
15868
  var keyOf = _dereq_(166);
15673
15869
 
15674
15870
  var topLevelTypes = EventConstants.topLevelTypes;
@@ -16226,7 +16422,7 @@ var SimpleEventPlugin = {
16226
16422
  };
16227
16423
 
16228
16424
  module.exports = SimpleEventPlugin;
16229
- },{"102":102,"104":104,"105":105,"106":106,"108":108,"109":109,"110":110,"111":111,"112":112,"124":124,"147":147,"15":15,"154":154,"162":162,"166":166,"19":19,"72":72}],102:[function(_dereq_,module,exports){
16425
+ },{"102":102,"104":104,"105":105,"106":106,"108":108,"109":109,"110":110,"111":111,"112":112,"125":125,"146":146,"15":15,"153":153,"161":161,"166":166,"19":19,"72":72}],102:[function(_dereq_,module,exports){
16230
16426
  /**
16231
16427
  * Copyright 2013-2015, Facebook, Inc.
16232
16428
  * All rights reserved.
@@ -16360,15 +16556,14 @@ module.exports = SyntheticDragEvent;
16360
16556
  var PooledClass = _dereq_(25);
16361
16557
 
16362
16558
  var assign = _dereq_(24);
16363
- var emptyFunction = _dereq_(154);
16364
- var warning = _dereq_(172);
16559
+ var emptyFunction = _dereq_(153);
16560
+ var warning = _dereq_(173);
16365
16561
 
16366
16562
  /**
16367
16563
  * @interface Event
16368
16564
  * @see http://www.w3.org/TR/DOM-Level-3-Events/
16369
16565
  */
16370
16566
  var EventInterface = {
16371
- path: null,
16372
16567
  type: null,
16373
16568
  // currentTarget is set when dispatching; no use in copying it here
16374
16569
  currentTarget: emptyFunction.thatReturnsNull,
@@ -16521,7 +16716,7 @@ SyntheticEvent.augmentClass = function (Class, Interface) {
16521
16716
  PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);
16522
16717
 
16523
16718
  module.exports = SyntheticEvent;
16524
- },{"154":154,"172":172,"24":24,"25":25}],106:[function(_dereq_,module,exports){
16719
+ },{"153":153,"173":173,"24":24,"25":25}],106:[function(_dereq_,module,exports){
16525
16720
  /**
16526
16721
  * Copyright 2013-2015, Facebook, Inc.
16527
16722
  * All rights reserved.
@@ -16615,9 +16810,9 @@ module.exports = SyntheticInputEvent;
16615
16810
 
16616
16811
  var SyntheticUIEvent = _dereq_(111);
16617
16812
 
16618
- var getEventCharCode = _dereq_(124);
16619
- var getEventKey = _dereq_(125);
16620
- var getEventModifierState = _dereq_(126);
16813
+ var getEventCharCode = _dereq_(125);
16814
+ var getEventKey = _dereq_(126);
16815
+ var getEventModifierState = _dereq_(127);
16621
16816
 
16622
16817
  /**
16623
16818
  * @interface KeyboardEvent
@@ -16684,7 +16879,7 @@ function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nat
16684
16879
  SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);
16685
16880
 
16686
16881
  module.exports = SyntheticKeyboardEvent;
16687
- },{"111":111,"124":124,"125":125,"126":126}],109:[function(_dereq_,module,exports){
16882
+ },{"111":111,"125":125,"126":126,"127":127}],109:[function(_dereq_,module,exports){
16688
16883
  /**
16689
16884
  * Copyright 2013-2015, Facebook, Inc.
16690
16885
  * All rights reserved.
@@ -16702,7 +16897,7 @@ module.exports = SyntheticKeyboardEvent;
16702
16897
  var SyntheticUIEvent = _dereq_(111);
16703
16898
  var ViewportMetrics = _dereq_(114);
16704
16899
 
16705
- var getEventModifierState = _dereq_(126);
16900
+ var getEventModifierState = _dereq_(127);
16706
16901
 
16707
16902
  /**
16708
16903
  * @interface MouseEvent
@@ -16758,7 +16953,7 @@ function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16758
16953
  SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);
16759
16954
 
16760
16955
  module.exports = SyntheticMouseEvent;
16761
- },{"111":111,"114":114,"126":126}],110:[function(_dereq_,module,exports){
16956
+ },{"111":111,"114":114,"127":127}],110:[function(_dereq_,module,exports){
16762
16957
  /**
16763
16958
  * Copyright 2013-2015, Facebook, Inc.
16764
16959
  * All rights reserved.
@@ -16775,7 +16970,7 @@ module.exports = SyntheticMouseEvent;
16775
16970
 
16776
16971
  var SyntheticUIEvent = _dereq_(111);
16777
16972
 
16778
- var getEventModifierState = _dereq_(126);
16973
+ var getEventModifierState = _dereq_(127);
16779
16974
 
16780
16975
  /**
16781
16976
  * @interface TouchEvent
@@ -16805,7 +17000,7 @@ function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, native
16805
17000
  SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);
16806
17001
 
16807
17002
  module.exports = SyntheticTouchEvent;
16808
- },{"111":111,"126":126}],111:[function(_dereq_,module,exports){
17003
+ },{"111":111,"127":127}],111:[function(_dereq_,module,exports){
16809
17004
  /**
16810
17005
  * Copyright 2013-2015, Facebook, Inc.
16811
17006
  * All rights reserved.
@@ -16822,7 +17017,7 @@ module.exports = SyntheticTouchEvent;
16822
17017
 
16823
17018
  var SyntheticEvent = _dereq_(105);
16824
17019
 
16825
- var getEventTarget = _dereq_(127);
17020
+ var getEventTarget = _dereq_(128);
16826
17021
 
16827
17022
  /**
16828
17023
  * @interface UIEvent
@@ -16866,7 +17061,7 @@ function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEve
16866
17061
  SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);
16867
17062
 
16868
17063
  module.exports = SyntheticUIEvent;
16869
- },{"105":105,"127":127}],112:[function(_dereq_,module,exports){
17064
+ },{"105":105,"128":128}],112:[function(_dereq_,module,exports){
16870
17065
  /**
16871
17066
  * Copyright 2013-2015, Facebook, Inc.
16872
17067
  * All rights reserved.
@@ -16936,7 +17131,7 @@ module.exports = SyntheticWheelEvent;
16936
17131
 
16937
17132
  'use strict';
16938
17133
 
16939
- var invariant = _dereq_(162);
17134
+ var invariant = _dereq_(161);
16940
17135
 
16941
17136
  /**
16942
17137
  * `Transaction` creates a black box that is able to wrap any method such that
@@ -17154,7 +17349,7 @@ var Transaction = {
17154
17349
  };
17155
17350
 
17156
17351
  module.exports = Transaction;
17157
- },{"162":162}],114:[function(_dereq_,module,exports){
17352
+ },{"161":161}],114:[function(_dereq_,module,exports){
17158
17353
  /**
17159
17354
  * Copyright 2013-2015, Facebook, Inc.
17160
17355
  * All rights reserved.
@@ -17196,7 +17391,7 @@ module.exports = ViewportMetrics;
17196
17391
 
17197
17392
  'use strict';
17198
17393
 
17199
- var invariant = _dereq_(162);
17394
+ var invariant = _dereq_(161);
17200
17395
 
17201
17396
  /**
17202
17397
  *
@@ -17242,7 +17437,7 @@ function accumulateInto(current, next) {
17242
17437
  }
17243
17438
 
17244
17439
  module.exports = accumulateInto;
17245
- },{"162":162}],116:[function(_dereq_,module,exports){
17440
+ },{"161":161}],116:[function(_dereq_,module,exports){
17246
17441
  /**
17247
17442
  * Copyright 2013-2015, Facebook, Inc.
17248
17443
  * All rights reserved.
@@ -17286,6 +17481,31 @@ function adler32(data) {
17286
17481
 
17287
17482
  module.exports = adler32;
17288
17483
  },{}],117:[function(_dereq_,module,exports){
17484
+ /**
17485
+ * Copyright 2013-2015, Facebook, Inc.
17486
+ * All rights reserved.
17487
+ *
17488
+ * This source code is licensed under the BSD-style license found in the
17489
+ * LICENSE file in the root directory of this source tree. An additional grant
17490
+ * of patent rights can be found in the PATENTS file in the same directory.
17491
+ *
17492
+ * @providesModule canDefineProperty
17493
+ */
17494
+
17495
+ 'use strict';
17496
+
17497
+ var canDefineProperty = false;
17498
+ if ("development" !== 'production') {
17499
+ try {
17500
+ Object.defineProperty({}, 'x', { get: function () {} });
17501
+ canDefineProperty = true;
17502
+ } catch (x) {
17503
+ // IE will fail on defineProperty
17504
+ }
17505
+ }
17506
+
17507
+ module.exports = canDefineProperty;
17508
+ },{}],118:[function(_dereq_,module,exports){
17289
17509
  /**
17290
17510
  * Copyright 2013-2015, Facebook, Inc.
17291
17511
  * All rights reserved.
@@ -17304,7 +17524,7 @@ var ReactElement = _dereq_(57);
17304
17524
  var ReactPropTransferer = _dereq_(79);
17305
17525
 
17306
17526
  var keyOf = _dereq_(166);
17307
- var warning = _dereq_(172);
17527
+ var warning = _dereq_(173);
17308
17528
 
17309
17529
  var CHILDREN_PROP = keyOf({ children: null });
17310
17530
 
@@ -17340,7 +17560,7 @@ function cloneWithProps(child, props) {
17340
17560
  }
17341
17561
 
17342
17562
  module.exports = cloneWithProps;
17343
- },{"166":166,"172":172,"57":57,"79":79}],118:[function(_dereq_,module,exports){
17563
+ },{"166":166,"173":173,"57":57,"79":79}],119:[function(_dereq_,module,exports){
17344
17564
  /**
17345
17565
  * Copyright 2013-2015, Facebook, Inc.
17346
17566
  * All rights reserved.
@@ -17396,7 +17616,7 @@ function dangerousStyleValue(name, value) {
17396
17616
  }
17397
17617
 
17398
17618
  module.exports = dangerousStyleValue;
17399
- },{"4":4}],119:[function(_dereq_,module,exports){
17619
+ },{"4":4}],120:[function(_dereq_,module,exports){
17400
17620
  /**
17401
17621
  * Copyright 2013-2015, Facebook, Inc.
17402
17622
  * All rights reserved.
@@ -17411,7 +17631,7 @@ module.exports = dangerousStyleValue;
17411
17631
  'use strict';
17412
17632
 
17413
17633
  var assign = _dereq_(24);
17414
- var warning = _dereq_(172);
17634
+ var warning = _dereq_(173);
17415
17635
 
17416
17636
  /**
17417
17637
  * This will log a single deprecation notice per function and forward the call
@@ -17445,7 +17665,7 @@ function deprecated(fnName, newModule, newPackage, ctx, fn) {
17445
17665
  }
17446
17666
 
17447
17667
  module.exports = deprecated;
17448
- },{"172":172,"24":24}],120:[function(_dereq_,module,exports){
17668
+ },{"173":173,"24":24}],121:[function(_dereq_,module,exports){
17449
17669
  /**
17450
17670
  * Copyright 2013-2015, Facebook, Inc.
17451
17671
  * All rights reserved.
@@ -17484,7 +17704,7 @@ function escapeTextContentForBrowser(text) {
17484
17704
  }
17485
17705
 
17486
17706
  module.exports = escapeTextContentForBrowser;
17487
- },{}],121:[function(_dereq_,module,exports){
17707
+ },{}],122:[function(_dereq_,module,exports){
17488
17708
  /**
17489
17709
  * Copyright 2013-2015, Facebook, Inc.
17490
17710
  * All rights reserved.
@@ -17503,8 +17723,8 @@ var ReactCurrentOwner = _dereq_(39);
17503
17723
  var ReactInstanceMap = _dereq_(68);
17504
17724
  var ReactMount = _dereq_(72);
17505
17725
 
17506
- var invariant = _dereq_(162);
17507
- var warning = _dereq_(172);
17726
+ var invariant = _dereq_(161);
17727
+ var warning = _dereq_(173);
17508
17728
 
17509
17729
  /**
17510
17730
  * Returns the DOM node rendered by this element.
@@ -17534,7 +17754,7 @@ function findDOMNode(componentOrElement) {
17534
17754
  }
17535
17755
 
17536
17756
  module.exports = findDOMNode;
17537
- },{"162":162,"172":172,"39":39,"68":68,"72":72}],122:[function(_dereq_,module,exports){
17757
+ },{"161":161,"173":173,"39":39,"68":68,"72":72}],123:[function(_dereq_,module,exports){
17538
17758
  /**
17539
17759
  * Copyright 2013-2015, Facebook, Inc.
17540
17760
  * All rights reserved.
@@ -17548,8 +17768,8 @@ module.exports = findDOMNode;
17548
17768
 
17549
17769
  'use strict';
17550
17770
 
17551
- var traverseAllChildren = _dereq_(143);
17552
- var warning = _dereq_(172);
17771
+ var traverseAllChildren = _dereq_(142);
17772
+ var warning = _dereq_(173);
17553
17773
 
17554
17774
  /**
17555
17775
  * @param {function} traverseContext Context passed through traversal.
@@ -17583,7 +17803,7 @@ function flattenChildren(children) {
17583
17803
  }
17584
17804
 
17585
17805
  module.exports = flattenChildren;
17586
- },{"143":143,"172":172}],123:[function(_dereq_,module,exports){
17806
+ },{"142":142,"173":173}],124:[function(_dereq_,module,exports){
17587
17807
  /**
17588
17808
  * Copyright 2013-2015, Facebook, Inc.
17589
17809
  * All rights reserved.
@@ -17613,7 +17833,7 @@ var forEachAccumulated = function (arr, cb, scope) {
17613
17833
  };
17614
17834
 
17615
17835
  module.exports = forEachAccumulated;
17616
- },{}],124:[function(_dereq_,module,exports){
17836
+ },{}],125:[function(_dereq_,module,exports){
17617
17837
  /**
17618
17838
  * Copyright 2013-2015, Facebook, Inc.
17619
17839
  * All rights reserved.
@@ -17664,7 +17884,7 @@ function getEventCharCode(nativeEvent) {
17664
17884
  }
17665
17885
 
17666
17886
  module.exports = getEventCharCode;
17667
- },{}],125:[function(_dereq_,module,exports){
17887
+ },{}],126:[function(_dereq_,module,exports){
17668
17888
  /**
17669
17889
  * Copyright 2013-2015, Facebook, Inc.
17670
17890
  * All rights reserved.
@@ -17679,7 +17899,7 @@ module.exports = getEventCharCode;
17679
17899
 
17680
17900
  'use strict';
17681
17901
 
17682
- var getEventCharCode = _dereq_(124);
17902
+ var getEventCharCode = _dereq_(125);
17683
17903
 
17684
17904
  /**
17685
17905
  * Normalization of deprecated HTML5 `key` values
@@ -17768,7 +17988,7 @@ function getEventKey(nativeEvent) {
17768
17988
  }
17769
17989
 
17770
17990
  module.exports = getEventKey;
17771
- },{"124":124}],126:[function(_dereq_,module,exports){
17991
+ },{"125":125}],127:[function(_dereq_,module,exports){
17772
17992
  /**
17773
17993
  * Copyright 2013-2015, Facebook, Inc.
17774
17994
  * All rights reserved.
@@ -17813,7 +18033,7 @@ function getEventModifierState(nativeEvent) {
17813
18033
  }
17814
18034
 
17815
18035
  module.exports = getEventModifierState;
17816
- },{}],127:[function(_dereq_,module,exports){
18036
+ },{}],128:[function(_dereq_,module,exports){
17817
18037
  /**
17818
18038
  * Copyright 2013-2015, Facebook, Inc.
17819
18039
  * All rights reserved.
@@ -17843,7 +18063,7 @@ function getEventTarget(nativeEvent) {
17843
18063
  }
17844
18064
 
17845
18065
  module.exports = getEventTarget;
17846
- },{}],128:[function(_dereq_,module,exports){
18066
+ },{}],129:[function(_dereq_,module,exports){
17847
18067
  /**
17848
18068
  * Copyright 2013-2015, Facebook, Inc.
17849
18069
  * All rights reserved.
@@ -17884,7 +18104,7 @@ function getIteratorFn(maybeIterable) {
17884
18104
  }
17885
18105
 
17886
18106
  module.exports = getIteratorFn;
17887
- },{}],129:[function(_dereq_,module,exports){
18107
+ },{}],130:[function(_dereq_,module,exports){
17888
18108
  /**
17889
18109
  * Copyright 2013-2015, Facebook, Inc.
17890
18110
  * All rights reserved.
@@ -17958,7 +18178,7 @@ function getNodeForCharacterOffset(root, offset) {
17958
18178
  }
17959
18179
 
17960
18180
  module.exports = getNodeForCharacterOffset;
17961
- },{}],130:[function(_dereq_,module,exports){
18181
+ },{}],131:[function(_dereq_,module,exports){
17962
18182
  /**
17963
18183
  * Copyright 2013-2015, Facebook, Inc.
17964
18184
  * All rights reserved.
@@ -17972,7 +18192,7 @@ module.exports = getNodeForCharacterOffset;
17972
18192
 
17973
18193
  'use strict';
17974
18194
 
17975
- var ExecutionEnvironment = _dereq_(148);
18195
+ var ExecutionEnvironment = _dereq_(147);
17976
18196
 
17977
18197
  var contentKey = null;
17978
18198
 
@@ -17992,7 +18212,7 @@ function getTextContentAccessor() {
17992
18212
  }
17993
18213
 
17994
18214
  module.exports = getTextContentAccessor;
17995
- },{"148":148}],131:[function(_dereq_,module,exports){
18215
+ },{"147":147}],132:[function(_dereq_,module,exports){
17996
18216
  /**
17997
18217
  * Copyright 2013-2015, Facebook, Inc.
17998
18218
  * All rights reserved.
@@ -18012,8 +18232,8 @@ var ReactEmptyComponent = _dereq_(59);
18012
18232
  var ReactNativeComponent = _dereq_(75);
18013
18233
 
18014
18234
  var assign = _dereq_(24);
18015
- var invariant = _dereq_(162);
18016
- var warning = _dereq_(172);
18235
+ var invariant = _dereq_(161);
18236
+ var warning = _dereq_(173);
18017
18237
 
18018
18238
  // To avoid a cyclic dependency, we create the final class in this module
18019
18239
  var ReactCompositeComponentWrapper = function () {};
@@ -18105,7 +18325,7 @@ function instantiateReactComponent(node) {
18105
18325
  }
18106
18326
 
18107
18327
  module.exports = instantiateReactComponent;
18108
- },{"162":162,"172":172,"24":24,"38":38,"59":59,"75":75}],132:[function(_dereq_,module,exports){
18328
+ },{"161":161,"173":173,"24":24,"38":38,"59":59,"75":75}],133:[function(_dereq_,module,exports){
18109
18329
  /**
18110
18330
  * Copyright 2013-2015, Facebook, Inc.
18111
18331
  * All rights reserved.
@@ -18119,7 +18339,7 @@ module.exports = instantiateReactComponent;
18119
18339
 
18120
18340
  'use strict';
18121
18341
 
18122
- var ExecutionEnvironment = _dereq_(148);
18342
+ var ExecutionEnvironment = _dereq_(147);
18123
18343
 
18124
18344
  var useHasFeature;
18125
18345
  if (ExecutionEnvironment.canUseDOM) {
@@ -18166,7 +18386,7 @@ function isEventSupported(eventNameSuffix, capture) {
18166
18386
  }
18167
18387
 
18168
18388
  module.exports = isEventSupported;
18169
- },{"148":148}],133:[function(_dereq_,module,exports){
18389
+ },{"147":147}],134:[function(_dereq_,module,exports){
18170
18390
  /**
18171
18391
  * Copyright 2013-2015, Facebook, Inc.
18172
18392
  * All rights reserved.
@@ -18207,79 +18427,7 @@ function isTextInputElement(elem) {
18207
18427
  }
18208
18428
 
18209
18429
  module.exports = isTextInputElement;
18210
- },{}],134:[function(_dereq_,module,exports){
18211
- /**
18212
- * Copyright 2013-2015, Facebook, Inc.
18213
- * All rights reserved.
18214
- *
18215
- * This source code is licensed under the BSD-style license found in the
18216
- * LICENSE file in the root directory of this source tree. An additional grant
18217
- * of patent rights can be found in the PATENTS file in the same directory.
18218
- *
18219
- * @providesModule joinClasses
18220
- * @typechecks static-only
18221
- */
18222
-
18223
- 'use strict';
18224
-
18225
- /**
18226
- * Combines multiple className strings into one.
18227
- * http://jsperf.com/joinclasses-args-vs-array
18228
- *
18229
- * @param {...?string} className
18230
- * @return {string}
18231
- */
18232
- function joinClasses(className /*, ... */) {
18233
- if (!className) {
18234
- className = '';
18235
- }
18236
- var nextClass;
18237
- var argLength = arguments.length;
18238
- if (argLength > 1) {
18239
- for (var ii = 1; ii < argLength; ii++) {
18240
- nextClass = arguments[ii];
18241
- if (nextClass) {
18242
- className = (className ? className + ' ' : '') + nextClass;
18243
- }
18244
- }
18245
- }
18246
- return className;
18247
- }
18248
-
18249
- module.exports = joinClasses;
18250
18430
  },{}],135:[function(_dereq_,module,exports){
18251
- /**
18252
- * Copyright 2013-2015, Facebook, Inc.
18253
- * All rights reserved.
18254
- *
18255
- * This source code is licensed under the BSD-style license found in the
18256
- * LICENSE file in the root directory of this source tree. An additional grant
18257
- * of patent rights can be found in the PATENTS file in the same directory.
18258
- *
18259
- * @providesModule memoizeStringOnly
18260
- * @typechecks static-only
18261
- */
18262
-
18263
- 'use strict';
18264
-
18265
- /**
18266
- * Memoizes the return value of a function that accepts one string argument.
18267
- *
18268
- * @param {function} callback
18269
- * @return {function}
18270
- */
18271
- function memoizeStringOnly(callback) {
18272
- var cache = {};
18273
- return function (string) {
18274
- if (!cache.hasOwnProperty(string)) {
18275
- cache[string] = callback.call(this, string);
18276
- }
18277
- return cache[string];
18278
- };
18279
- }
18280
-
18281
- module.exports = memoizeStringOnly;
18282
- },{}],136:[function(_dereq_,module,exports){
18283
18431
  /**
18284
18432
  * Copyright 2013-2015, Facebook, Inc.
18285
18433
  * All rights reserved.
@@ -18294,7 +18442,7 @@ module.exports = memoizeStringOnly;
18294
18442
 
18295
18443
  var ReactElement = _dereq_(57);
18296
18444
 
18297
- var invariant = _dereq_(162);
18445
+ var invariant = _dereq_(161);
18298
18446
 
18299
18447
  /**
18300
18448
  * Returns the first child in a collection of children and verifies that there
@@ -18313,7 +18461,7 @@ function onlyChild(children) {
18313
18461
  }
18314
18462
 
18315
18463
  module.exports = onlyChild;
18316
- },{"162":162,"57":57}],137:[function(_dereq_,module,exports){
18464
+ },{"161":161,"57":57}],136:[function(_dereq_,module,exports){
18317
18465
  /**
18318
18466
  * Copyright 2013-2015, Facebook, Inc.
18319
18467
  * All rights reserved.
@@ -18327,7 +18475,7 @@ module.exports = onlyChild;
18327
18475
 
18328
18476
  'use strict';
18329
18477
 
18330
- var escapeTextContentForBrowser = _dereq_(120);
18478
+ var escapeTextContentForBrowser = _dereq_(121);
18331
18479
 
18332
18480
  /**
18333
18481
  * Escapes attribute value to prevent scripting attacks.
@@ -18340,7 +18488,7 @@ function quoteAttributeValueForBrowser(value) {
18340
18488
  }
18341
18489
 
18342
18490
  module.exports = quoteAttributeValueForBrowser;
18343
- },{"120":120}],138:[function(_dereq_,module,exports){
18491
+ },{"121":121}],137:[function(_dereq_,module,exports){
18344
18492
  /**
18345
18493
  * Copyright 2013-2015, Facebook, Inc.
18346
18494
  * All rights reserved.
@@ -18357,7 +18505,7 @@ module.exports = quoteAttributeValueForBrowser;
18357
18505
  var ReactMount = _dereq_(72);
18358
18506
 
18359
18507
  module.exports = ReactMount.renderSubtreeIntoContainer;
18360
- },{"72":72}],139:[function(_dereq_,module,exports){
18508
+ },{"72":72}],138:[function(_dereq_,module,exports){
18361
18509
  /**
18362
18510
  * Copyright 2013-2015, Facebook, Inc.
18363
18511
  * All rights reserved.
@@ -18373,7 +18521,7 @@ module.exports = ReactMount.renderSubtreeIntoContainer;
18373
18521
 
18374
18522
  'use strict';
18375
18523
 
18376
- var ExecutionEnvironment = _dereq_(148);
18524
+ var ExecutionEnvironment = _dereq_(147);
18377
18525
 
18378
18526
  var WHITESPACE_TEST = /^[ \r\n\t\f]/;
18379
18527
  var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/;
@@ -18448,7 +18596,7 @@ if (ExecutionEnvironment.canUseDOM) {
18448
18596
  }
18449
18597
 
18450
18598
  module.exports = setInnerHTML;
18451
- },{"148":148}],140:[function(_dereq_,module,exports){
18599
+ },{"147":147}],139:[function(_dereq_,module,exports){
18452
18600
  /**
18453
18601
  * Copyright 2013-2015, Facebook, Inc.
18454
18602
  * All rights reserved.
@@ -18462,9 +18610,9 @@ module.exports = setInnerHTML;
18462
18610
 
18463
18611
  'use strict';
18464
18612
 
18465
- var ExecutionEnvironment = _dereq_(148);
18466
- var escapeTextContentForBrowser = _dereq_(120);
18467
- var setInnerHTML = _dereq_(139);
18613
+ var ExecutionEnvironment = _dereq_(147);
18614
+ var escapeTextContentForBrowser = _dereq_(121);
18615
+ var setInnerHTML = _dereq_(138);
18468
18616
 
18469
18617
  /**
18470
18618
  * Set the textContent property of a node, ensuring that whitespace is preserved
@@ -18489,7 +18637,7 @@ if (ExecutionEnvironment.canUseDOM) {
18489
18637
  }
18490
18638
 
18491
18639
  module.exports = setTextContent;
18492
- },{"120":120,"139":139,"148":148}],141:[function(_dereq_,module,exports){
18640
+ },{"121":121,"138":138,"147":147}],140:[function(_dereq_,module,exports){
18493
18641
  /**
18494
18642
  * Copyright 2013-2015, Facebook, Inc.
18495
18643
  * All rights reserved.
@@ -18503,7 +18651,7 @@ module.exports = setTextContent;
18503
18651
 
18504
18652
  'use strict';
18505
18653
 
18506
- var shallowEqual = _dereq_(170);
18654
+ var shallowEqual = _dereq_(171);
18507
18655
 
18508
18656
  /**
18509
18657
  * Does a shallow comparison for props and state.
@@ -18514,7 +18662,7 @@ function shallowCompare(instance, nextProps, nextState) {
18514
18662
  }
18515
18663
 
18516
18664
  module.exports = shallowCompare;
18517
- },{"170":170}],142:[function(_dereq_,module,exports){
18665
+ },{"171":171}],141:[function(_dereq_,module,exports){
18518
18666
  /**
18519
18667
  * Copyright 2013-2015, Facebook, Inc.
18520
18668
  * All rights reserved.
@@ -18558,7 +18706,7 @@ function shouldUpdateReactComponent(prevElement, nextElement) {
18558
18706
  }
18559
18707
 
18560
18708
  module.exports = shouldUpdateReactComponent;
18561
- },{}],143:[function(_dereq_,module,exports){
18709
+ },{}],142:[function(_dereq_,module,exports){
18562
18710
  /**
18563
18711
  * Copyright 2013-2015, Facebook, Inc.
18564
18712
  * All rights reserved.
@@ -18576,9 +18724,9 @@ var ReactCurrentOwner = _dereq_(39);
18576
18724
  var ReactElement = _dereq_(57);
18577
18725
  var ReactInstanceHandles = _dereq_(67);
18578
18726
 
18579
- var getIteratorFn = _dereq_(128);
18580
- var invariant = _dereq_(162);
18581
- var warning = _dereq_(172);
18727
+ var getIteratorFn = _dereq_(129);
18728
+ var invariant = _dereq_(161);
18729
+ var warning = _dereq_(173);
18582
18730
 
18583
18731
  var SEPARATOR = ReactInstanceHandles.SEPARATOR;
18584
18732
  var SUBSEPARATOR = ':';
@@ -18704,14 +18852,19 @@ function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext)
18704
18852
  } else if (type === 'object') {
18705
18853
  var addendum = '';
18706
18854
  if ("development" !== 'production') {
18855
+ addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
18856
+ if (children._isReactElement) {
18857
+ addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';
18858
+ }
18707
18859
  if (ReactCurrentOwner.current) {
18708
18860
  var name = ReactCurrentOwner.current.getName();
18709
18861
  if (name) {
18710
- addendum = ' Check the render method of `' + name + '`.';
18862
+ addendum += ' Check the render method of `' + name + '`.';
18711
18863
  }
18712
18864
  }
18713
18865
  }
18714
- !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found object with keys ' + '{%s}). If you meant to render a collection of children, use an ' + 'array instead or wrap the object using ' + 'React.addons.createFragment(object).%s', Object.keys(children).join(', '), addendum) : invariant(false) : undefined;
18866
+ var childrenString = String(children);
18867
+ !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined;
18715
18868
  }
18716
18869
  }
18717
18870
 
@@ -18743,7 +18896,7 @@ function traverseAllChildren(children, callback, traverseContext) {
18743
18896
  }
18744
18897
 
18745
18898
  module.exports = traverseAllChildren;
18746
- },{"128":128,"162":162,"172":172,"39":39,"57":57,"67":67}],144:[function(_dereq_,module,exports){
18899
+ },{"129":129,"161":161,"173":173,"39":39,"57":57,"67":67}],143:[function(_dereq_,module,exports){
18747
18900
  /**
18748
18901
  * Copyright 2013-2015, Facebook, Inc.
18749
18902
  * All rights reserved.
@@ -18761,7 +18914,7 @@ module.exports = traverseAllChildren;
18761
18914
 
18762
18915
  var assign = _dereq_(24);
18763
18916
  var keyOf = _dereq_(166);
18764
- var invariant = _dereq_(162);
18917
+ var invariant = _dereq_(161);
18765
18918
  var hasOwnProperty = ({}).hasOwnProperty;
18766
18919
 
18767
18920
  function shallowCopy(x) {
@@ -18851,7 +19004,7 @@ function update(value, spec) {
18851
19004
  }
18852
19005
 
18853
19006
  module.exports = update;
18854
- },{"162":162,"166":166,"24":24}],145:[function(_dereq_,module,exports){
19007
+ },{"161":161,"166":166,"24":24}],144:[function(_dereq_,module,exports){
18855
19008
  /**
18856
19009
  * Copyright 2015, Facebook, Inc.
18857
19010
  * All rights reserved.
@@ -18866,8 +19019,8 @@ module.exports = update;
18866
19019
  'use strict';
18867
19020
 
18868
19021
  var assign = _dereq_(24);
18869
- var emptyFunction = _dereq_(154);
18870
- var warning = _dereq_(172);
19022
+ var emptyFunction = _dereq_(153);
19023
+ var warning = _dereq_(173);
18871
19024
 
18872
19025
  var validateDOMNesting = emptyFunction;
18873
19026
 
@@ -19215,7 +19368,7 @@ if ("development" !== 'production') {
19215
19368
  }
19216
19369
 
19217
19370
  module.exports = validateDOMNesting;
19218
- },{"154":154,"172":172,"24":24}],146:[function(_dereq_,module,exports){
19371
+ },{"153":153,"173":173,"24":24}],145:[function(_dereq_,module,exports){
19219
19372
  /**
19220
19373
  * Copyright 2013-2015, Facebook, Inc.
19221
19374
  * All rights reserved.
@@ -19230,7 +19383,7 @@ module.exports = validateDOMNesting;
19230
19383
 
19231
19384
  'use strict';
19232
19385
 
19233
- var invariant = _dereq_(162);
19386
+ var invariant = _dereq_(161);
19234
19387
 
19235
19388
  /**
19236
19389
  * The CSSCore module specifies the API (and implements most of the methods)
@@ -19313,7 +19466,7 @@ var CSSCore = {
19313
19466
  };
19314
19467
 
19315
19468
  module.exports = CSSCore;
19316
- },{"162":162}],147:[function(_dereq_,module,exports){
19469
+ },{"161":161}],146:[function(_dereq_,module,exports){
19317
19470
  /**
19318
19471
  * Copyright 2013-2015, Facebook, Inc.
19319
19472
  *
@@ -19335,7 +19488,7 @@ module.exports = CSSCore;
19335
19488
 
19336
19489
  'use strict';
19337
19490
 
19338
- var emptyFunction = _dereq_(154);
19491
+ var emptyFunction = _dereq_(153);
19339
19492
 
19340
19493
  /**
19341
19494
  * Upstream version of event listener. Does not take into account specific
@@ -19398,7 +19551,7 @@ var EventListener = {
19398
19551
  };
19399
19552
 
19400
19553
  module.exports = EventListener;
19401
- },{"154":154}],148:[function(_dereq_,module,exports){
19554
+ },{"153":153}],147:[function(_dereq_,module,exports){
19402
19555
  /**
19403
19556
  * Copyright 2013-2015, Facebook, Inc.
19404
19557
  * All rights reserved.
@@ -19435,7 +19588,7 @@ var ExecutionEnvironment = {
19435
19588
  };
19436
19589
 
19437
19590
  module.exports = ExecutionEnvironment;
19438
- },{}],149:[function(_dereq_,module,exports){
19591
+ },{}],148:[function(_dereq_,module,exports){
19439
19592
  /**
19440
19593
  * Copyright 2013-2015, Facebook, Inc.
19441
19594
  * All rights reserved.
@@ -19468,7 +19621,7 @@ function camelize(string) {
19468
19621
  }
19469
19622
 
19470
19623
  module.exports = camelize;
19471
- },{}],150:[function(_dereq_,module,exports){
19624
+ },{}],149:[function(_dereq_,module,exports){
19472
19625
  /**
19473
19626
  * Copyright 2013-2015, Facebook, Inc.
19474
19627
  * All rights reserved.
@@ -19483,7 +19636,7 @@ module.exports = camelize;
19483
19636
 
19484
19637
  'use strict';
19485
19638
 
19486
- var camelize = _dereq_(149);
19639
+ var camelize = _dereq_(148);
19487
19640
 
19488
19641
  var msPattern = /^-ms-/;
19489
19642
 
@@ -19509,7 +19662,7 @@ function camelizeStyleName(string) {
19509
19662
  }
19510
19663
 
19511
19664
  module.exports = camelizeStyleName;
19512
- },{"149":149}],151:[function(_dereq_,module,exports){
19665
+ },{"148":148}],150:[function(_dereq_,module,exports){
19513
19666
  /**
19514
19667
  * Copyright 2013-2015, Facebook, Inc.
19515
19668
  * All rights reserved.
@@ -19524,7 +19677,7 @@ module.exports = camelizeStyleName;
19524
19677
 
19525
19678
  'use strict';
19526
19679
 
19527
- var isTextNode = _dereq_(164);
19680
+ var isTextNode = _dereq_(163);
19528
19681
 
19529
19682
  /*eslint-disable no-bitwise */
19530
19683
 
@@ -19565,7 +19718,7 @@ function containsNode(_x, _x2) {
19565
19718
  }
19566
19719
 
19567
19720
  module.exports = containsNode;
19568
- },{"164":164}],152:[function(_dereq_,module,exports){
19721
+ },{"163":163}],151:[function(_dereq_,module,exports){
19569
19722
  /**
19570
19723
  * Copyright 2013-2015, Facebook, Inc.
19571
19724
  * All rights reserved.
@@ -19580,7 +19733,7 @@ module.exports = containsNode;
19580
19733
 
19581
19734
  'use strict';
19582
19735
 
19583
- var toArray = _dereq_(171);
19736
+ var toArray = _dereq_(172);
19584
19737
 
19585
19738
  /**
19586
19739
  * Perform a heuristic test to determine if an object is "array-like".
@@ -19651,7 +19804,7 @@ function createArrayFromMixed(obj) {
19651
19804
  }
19652
19805
 
19653
19806
  module.exports = createArrayFromMixed;
19654
- },{"171":171}],153:[function(_dereq_,module,exports){
19807
+ },{"172":172}],152:[function(_dereq_,module,exports){
19655
19808
  /**
19656
19809
  * Copyright 2013-2015, Facebook, Inc.
19657
19810
  * All rights reserved.
@@ -19668,11 +19821,11 @@ module.exports = createArrayFromMixed;
19668
19821
 
19669
19822
  'use strict';
19670
19823
 
19671
- var ExecutionEnvironment = _dereq_(148);
19824
+ var ExecutionEnvironment = _dereq_(147);
19672
19825
 
19673
- var createArrayFromMixed = _dereq_(152);
19674
- var getMarkupWrap = _dereq_(158);
19675
- var invariant = _dereq_(162);
19826
+ var createArrayFromMixed = _dereq_(151);
19827
+ var getMarkupWrap = _dereq_(157);
19828
+ var invariant = _dereq_(161);
19676
19829
 
19677
19830
  /**
19678
19831
  * Dummy container used to render all markup.
@@ -19736,7 +19889,7 @@ function createNodesFromMarkup(markup, handleScript) {
19736
19889
  }
19737
19890
 
19738
19891
  module.exports = createNodesFromMarkup;
19739
- },{"148":148,"152":152,"158":158,"162":162}],154:[function(_dereq_,module,exports){
19892
+ },{"147":147,"151":151,"157":157,"161":161}],153:[function(_dereq_,module,exports){
19740
19893
  /**
19741
19894
  * Copyright 2013-2015, Facebook, Inc.
19742
19895
  * All rights reserved.
@@ -19775,7 +19928,7 @@ emptyFunction.thatReturnsArgument = function (arg) {
19775
19928
  };
19776
19929
 
19777
19930
  module.exports = emptyFunction;
19778
- },{}],155:[function(_dereq_,module,exports){
19931
+ },{}],154:[function(_dereq_,module,exports){
19779
19932
  /**
19780
19933
  * Copyright 2013-2015, Facebook, Inc.
19781
19934
  * All rights reserved.
@@ -19796,7 +19949,7 @@ if ("development" !== 'production') {
19796
19949
  }
19797
19950
 
19798
19951
  module.exports = emptyObject;
19799
- },{}],156:[function(_dereq_,module,exports){
19952
+ },{}],155:[function(_dereq_,module,exports){
19800
19953
  /**
19801
19954
  * Copyright 2013-2015, Facebook, Inc.
19802
19955
  * All rights reserved.
@@ -19823,7 +19976,7 @@ function focusNode(node) {
19823
19976
  }
19824
19977
 
19825
19978
  module.exports = focusNode;
19826
- },{}],157:[function(_dereq_,module,exports){
19979
+ },{}],156:[function(_dereq_,module,exports){
19827
19980
  /**
19828
19981
  * Copyright 2013-2015, Facebook, Inc.
19829
19982
  * All rights reserved.
@@ -19840,11 +19993,15 @@ module.exports = focusNode;
19840
19993
  * Same as document.activeElement but wraps in a try-catch block. In IE it is
19841
19994
  * not safe to call document.activeElement if there is nothing focused.
19842
19995
  *
19843
- * The activeElement will be null only if the document body is not yet defined.
19996
+ * The activeElement will be null only if the document or document body is not yet defined.
19844
19997
  */
19845
- "use strict";
19998
+ 'use strict';
19846
19999
 
19847
20000
  function getActiveElement() /*?DOMElement*/{
20001
+ if (typeof document === 'undefined') {
20002
+ return null;
20003
+ }
20004
+
19848
20005
  try {
19849
20006
  return document.activeElement || document.body;
19850
20007
  } catch (e) {
@@ -19853,7 +20010,7 @@ function getActiveElement() /*?DOMElement*/{
19853
20010
  }
19854
20011
 
19855
20012
  module.exports = getActiveElement;
19856
- },{}],158:[function(_dereq_,module,exports){
20013
+ },{}],157:[function(_dereq_,module,exports){
19857
20014
  /**
19858
20015
  * Copyright 2013-2015, Facebook, Inc.
19859
20016
  * All rights reserved.
@@ -19869,9 +20026,9 @@ module.exports = getActiveElement;
19869
20026
 
19870
20027
  'use strict';
19871
20028
 
19872
- var ExecutionEnvironment = _dereq_(148);
20029
+ var ExecutionEnvironment = _dereq_(147);
19873
20030
 
19874
- var invariant = _dereq_(162);
20031
+ var invariant = _dereq_(161);
19875
20032
 
19876
20033
  /**
19877
20034
  * Dummy container used to detect which wraps are necessary.
@@ -19949,7 +20106,7 @@ function getMarkupWrap(nodeName) {
19949
20106
  }
19950
20107
 
19951
20108
  module.exports = getMarkupWrap;
19952
- },{"148":148,"162":162}],159:[function(_dereq_,module,exports){
20109
+ },{"147":147,"161":161}],158:[function(_dereq_,module,exports){
19953
20110
  /**
19954
20111
  * Copyright 2013-2015, Facebook, Inc.
19955
20112
  * All rights reserved.
@@ -19962,7 +20119,7 @@ module.exports = getMarkupWrap;
19962
20119
  * @typechecks
19963
20120
  */
19964
20121
 
19965
- "use strict";
20122
+ 'use strict';
19966
20123
 
19967
20124
  /**
19968
20125
  * Gets the scroll position of the supplied element or window.
@@ -19988,7 +20145,7 @@ function getUnboundedScrollPosition(scrollable) {
19988
20145
  }
19989
20146
 
19990
20147
  module.exports = getUnboundedScrollPosition;
19991
- },{}],160:[function(_dereq_,module,exports){
20148
+ },{}],159:[function(_dereq_,module,exports){
19992
20149
  /**
19993
20150
  * Copyright 2013-2015, Facebook, Inc.
19994
20151
  * All rights reserved.
@@ -20022,7 +20179,7 @@ function hyphenate(string) {
20022
20179
  }
20023
20180
 
20024
20181
  module.exports = hyphenate;
20025
- },{}],161:[function(_dereq_,module,exports){
20182
+ },{}],160:[function(_dereq_,module,exports){
20026
20183
  /**
20027
20184
  * Copyright 2013-2015, Facebook, Inc.
20028
20185
  * All rights reserved.
@@ -20037,7 +20194,7 @@ module.exports = hyphenate;
20037
20194
 
20038
20195
  'use strict';
20039
20196
 
20040
- var hyphenate = _dereq_(160);
20197
+ var hyphenate = _dereq_(159);
20041
20198
 
20042
20199
  var msPattern = /^ms-/;
20043
20200
 
@@ -20062,7 +20219,7 @@ function hyphenateStyleName(string) {
20062
20219
  }
20063
20220
 
20064
20221
  module.exports = hyphenateStyleName;
20065
- },{"160":160}],162:[function(_dereq_,module,exports){
20222
+ },{"159":159}],161:[function(_dereq_,module,exports){
20066
20223
  /**
20067
20224
  * Copyright 2013-2015, Facebook, Inc.
20068
20225
  * All rights reserved.
@@ -20074,7 +20231,7 @@ module.exports = hyphenateStyleName;
20074
20231
  * @providesModule invariant
20075
20232
  */
20076
20233
 
20077
- "use strict";
20234
+ 'use strict';
20078
20235
 
20079
20236
  /**
20080
20237
  * Use invariant() to assert state which your program assumes to be true.
@@ -20112,7 +20269,7 @@ var invariant = function (condition, format, a, b, c, d, e, f) {
20112
20269
  };
20113
20270
 
20114
20271
  module.exports = invariant;
20115
- },{}],163:[function(_dereq_,module,exports){
20272
+ },{}],162:[function(_dereq_,module,exports){
20116
20273
  /**
20117
20274
  * Copyright 2013-2015, Facebook, Inc.
20118
20275
  * All rights reserved.
@@ -20136,7 +20293,7 @@ function isNode(object) {
20136
20293
  }
20137
20294
 
20138
20295
  module.exports = isNode;
20139
- },{}],164:[function(_dereq_,module,exports){
20296
+ },{}],163:[function(_dereq_,module,exports){
20140
20297
  /**
20141
20298
  * Copyright 2013-2015, Facebook, Inc.
20142
20299
  * All rights reserved.
@@ -20151,7 +20308,7 @@ module.exports = isNode;
20151
20308
 
20152
20309
  'use strict';
20153
20310
 
20154
- var isNode = _dereq_(163);
20311
+ var isNode = _dereq_(162);
20155
20312
 
20156
20313
  /**
20157
20314
  * @param {*} object The object to check.
@@ -20162,7 +20319,47 @@ function isTextNode(object) {
20162
20319
  }
20163
20320
 
20164
20321
  module.exports = isTextNode;
20165
- },{"163":163}],165:[function(_dereq_,module,exports){
20322
+ },{"162":162}],164:[function(_dereq_,module,exports){
20323
+ /**
20324
+ * Copyright 2013-2015, Facebook, Inc.
20325
+ * All rights reserved.
20326
+ *
20327
+ * This source code is licensed under the BSD-style license found in the
20328
+ * LICENSE file in the root directory of this source tree. An additional grant
20329
+ * of patent rights can be found in the PATENTS file in the same directory.
20330
+ *
20331
+ * @providesModule joinClasses
20332
+ * @typechecks static-only
20333
+ */
20334
+
20335
+ 'use strict';
20336
+
20337
+ /**
20338
+ * Combines multiple className strings into one.
20339
+ * http://jsperf.com/joinclasses-args-vs-array
20340
+ *
20341
+ * @param {...?string} className
20342
+ * @return {string}
20343
+ */
20344
+ function joinClasses(className /*, ... */) {
20345
+ if (!className) {
20346
+ className = '';
20347
+ }
20348
+ var nextClass;
20349
+ var argLength = arguments.length;
20350
+ if (argLength > 1) {
20351
+ for (var ii = 1; ii < argLength; ii++) {
20352
+ nextClass = arguments[ii];
20353
+ if (nextClass) {
20354
+ className = (className ? className + ' ' : '') + nextClass;
20355
+ }
20356
+ }
20357
+ }
20358
+ return className;
20359
+ }
20360
+
20361
+ module.exports = joinClasses;
20362
+ },{}],165:[function(_dereq_,module,exports){
20166
20363
  /**
20167
20364
  * Copyright 2013-2015, Facebook, Inc.
20168
20365
  * All rights reserved.
@@ -20177,7 +20374,7 @@ module.exports = isTextNode;
20177
20374
 
20178
20375
  'use strict';
20179
20376
 
20180
- var invariant = _dereq_(162);
20377
+ var invariant = _dereq_(161);
20181
20378
 
20182
20379
  /**
20183
20380
  * Constructs an enumeration with keys equal to their value.
@@ -20211,7 +20408,7 @@ var keyMirror = function (obj) {
20211
20408
  };
20212
20409
 
20213
20410
  module.exports = keyMirror;
20214
- },{"162":162}],166:[function(_dereq_,module,exports){
20411
+ },{"161":161}],166:[function(_dereq_,module,exports){
20215
20412
  /**
20216
20413
  * Copyright 2013-2015, Facebook, Inc.
20217
20414
  * All rights reserved.
@@ -20300,6 +20497,38 @@ function mapObject(object, callback, context) {
20300
20497
 
20301
20498
  module.exports = mapObject;
20302
20499
  },{}],168:[function(_dereq_,module,exports){
20500
+ /**
20501
+ * Copyright 2013-2015, Facebook, Inc.
20502
+ * All rights reserved.
20503
+ *
20504
+ * This source code is licensed under the BSD-style license found in the
20505
+ * LICENSE file in the root directory of this source tree. An additional grant
20506
+ * of patent rights can be found in the PATENTS file in the same directory.
20507
+ *
20508
+ * @providesModule memoizeStringOnly
20509
+ * @typechecks static-only
20510
+ */
20511
+
20512
+ 'use strict';
20513
+
20514
+ /**
20515
+ * Memoizes the return value of a function that accepts one string argument.
20516
+ *
20517
+ * @param {function} callback
20518
+ * @return {function}
20519
+ */
20520
+ function memoizeStringOnly(callback) {
20521
+ var cache = {};
20522
+ return function (string) {
20523
+ if (!cache.hasOwnProperty(string)) {
20524
+ cache[string] = callback.call(this, string);
20525
+ }
20526
+ return cache[string];
20527
+ };
20528
+ }
20529
+
20530
+ module.exports = memoizeStringOnly;
20531
+ },{}],169:[function(_dereq_,module,exports){
20303
20532
  /**
20304
20533
  * Copyright 2013-2015, Facebook, Inc.
20305
20534
  * All rights reserved.
@@ -20314,7 +20543,7 @@ module.exports = mapObject;
20314
20543
 
20315
20544
  'use strict';
20316
20545
 
20317
- var ExecutionEnvironment = _dereq_(148);
20546
+ var ExecutionEnvironment = _dereq_(147);
20318
20547
 
20319
20548
  var performance;
20320
20549
 
@@ -20323,7 +20552,7 @@ if (ExecutionEnvironment.canUseDOM) {
20323
20552
  }
20324
20553
 
20325
20554
  module.exports = performance || {};
20326
- },{"148":148}],169:[function(_dereq_,module,exports){
20555
+ },{"147":147}],170:[function(_dereq_,module,exports){
20327
20556
  /**
20328
20557
  * Copyright 2013-2015, Facebook, Inc.
20329
20558
  * All rights reserved.
@@ -20338,7 +20567,7 @@ module.exports = performance || {};
20338
20567
 
20339
20568
  'use strict';
20340
20569
 
20341
- var performance = _dereq_(168);
20570
+ var performance = _dereq_(169);
20342
20571
  var curPerformance = performance;
20343
20572
 
20344
20573
  /**
@@ -20353,7 +20582,7 @@ if (!curPerformance || !curPerformance.now) {
20353
20582
  var performanceNow = curPerformance.now.bind(curPerformance);
20354
20583
 
20355
20584
  module.exports = performanceNow;
20356
- },{"168":168}],170:[function(_dereq_,module,exports){
20585
+ },{"169":169}],171:[function(_dereq_,module,exports){
20357
20586
  /**
20358
20587
  * Copyright 2013-2015, Facebook, Inc.
20359
20588
  * All rights reserved.
@@ -20404,7 +20633,7 @@ function shallowEqual(objA, objB) {
20404
20633
  }
20405
20634
 
20406
20635
  module.exports = shallowEqual;
20407
- },{}],171:[function(_dereq_,module,exports){
20636
+ },{}],172:[function(_dereq_,module,exports){
20408
20637
  /**
20409
20638
  * Copyright 2013-2015, Facebook, Inc.
20410
20639
  * All rights reserved.
@@ -20419,7 +20648,7 @@ module.exports = shallowEqual;
20419
20648
 
20420
20649
  'use strict';
20421
20650
 
20422
- var invariant = _dereq_(162);
20651
+ var invariant = _dereq_(161);
20423
20652
 
20424
20653
  /**
20425
20654
  * Convert array-like objects to arrays.
@@ -20462,7 +20691,7 @@ function toArray(obj) {
20462
20691
  }
20463
20692
 
20464
20693
  module.exports = toArray;
20465
- },{"162":162}],172:[function(_dereq_,module,exports){
20694
+ },{"161":161}],173:[function(_dereq_,module,exports){
20466
20695
  /**
20467
20696
  * Copyright 2014-2015, Facebook, Inc.
20468
20697
  * All rights reserved.
@@ -20474,9 +20703,9 @@ module.exports = toArray;
20474
20703
  * @providesModule warning
20475
20704
  */
20476
20705
 
20477
- "use strict";
20706
+ 'use strict';
20478
20707
 
20479
- var emptyFunction = _dereq_(154);
20708
+ var emptyFunction = _dereq_(153);
20480
20709
 
20481
20710
  /**
20482
20711
  * Similar to invariant but only logs a warning if the condition is not met.
@@ -20520,5 +20749,5 @@ if ("development" !== 'production') {
20520
20749
  }
20521
20750
 
20522
20751
  module.exports = warning;
20523
- },{"154":154}]},{},[1])(1)
20752
+ },{"153":153}]},{},[1])(1)
20524
20753
  });