react 15.3.1-rc.1 → 15.3.2

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * React (with addons) v15.3.1-rc.1
2
+ * React (with addons) v15.3.2
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
  /**
@@ -316,8 +316,10 @@ function getNativeBeforeInputChars(topLevelType, nativeEvent) {
316
316
  function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
317
317
  // If we are currently composing (IME) and using a fallback to do so,
318
318
  // try to extract the composed characters from the fallback object.
319
+ // If composition event is available, we extract a string only at
320
+ // compositionevent, otherwise extract it at fallback events.
319
321
  if (currentComposition) {
320
- if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {
322
+ if (topLevelType === topLevelTypes.topCompositionEnd || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {
321
323
  var chars = currentComposition.getData();
322
324
  FallbackCompositionState.release(currentComposition);
323
325
  currentComposition = null;
@@ -585,8 +587,8 @@ var ReactInstrumentation = _dereq_(78);
585
587
  var camelizeStyleName = _dereq_(166);
586
588
  var dangerousStyleValue = _dereq_(134);
587
589
  var hyphenateStyleName = _dereq_(177);
588
- var memoizeStringOnly = _dereq_(184);
589
- var warning = _dereq_(188);
590
+ var memoizeStringOnly = _dereq_(183);
591
+ var warning = _dereq_(187);
590
592
 
591
593
  var processStyleName = memoizeStringOnly(function (styleName) {
592
594
  return hyphenateStyleName(styleName);
@@ -770,7 +772,7 @@ var CSSPropertyOperations = {
770
772
  };
771
773
 
772
774
  module.exports = CSSPropertyOperations;
773
- },{"134":134,"164":164,"166":166,"177":177,"184":184,"188":188,"3":3,"78":78}],5:[function(_dereq_,module,exports){
775
+ },{"134":134,"164":164,"166":166,"177":177,"183":183,"187":187,"3":3,"78":78}],5:[function(_dereq_,module,exports){
774
776
  /**
775
777
  * Copyright 2013-present, Facebook, Inc.
776
778
  * All rights reserved.
@@ -785,7 +787,7 @@ module.exports = CSSPropertyOperations;
785
787
  'use strict';
786
788
 
787
789
  var _prodInvariant = _dereq_(153),
788
- _assign = _dereq_(189);
790
+ _assign = _dereq_(188);
789
791
 
790
792
  var PooledClass = _dereq_(26);
791
793
 
@@ -877,7 +879,7 @@ _assign(CallbackQueue.prototype, {
877
879
  PooledClass.addPoolingTo(CallbackQueue);
878
880
 
879
881
  module.exports = CallbackQueue;
880
- },{"153":153,"178":178,"189":189,"26":26}],6:[function(_dereq_,module,exports){
882
+ },{"153":153,"178":178,"188":188,"26":26}],6:[function(_dereq_,module,exports){
881
883
  /**
882
884
  * Copyright 2013-present, Facebook, Inc.
883
885
  * All rights reserved.
@@ -935,7 +937,7 @@ function shouldUseChangeEvent(elem) {
935
937
  var doesChangeEventBubble = false;
936
938
  if (ExecutionEnvironment.canUseDOM) {
937
939
  // See `handleChange` comment below
938
- doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);
940
+ doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);
939
941
  }
940
942
 
941
943
  function manualDispatchChangeEvent(nativeEvent) {
@@ -1001,7 +1003,7 @@ if (ExecutionEnvironment.canUseDOM) {
1001
1003
  // deleting text, so we ignore its input events.
1002
1004
  // IE10+ fire input events to often, such when a placeholder
1003
1005
  // changes or when an input with a placeholder is focused.
1004
- isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 11);
1006
+ isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);
1005
1007
  }
1006
1008
 
1007
1009
  /**
@@ -1764,7 +1766,7 @@ var ReactDOMComponentTree = _dereq_(46);
1764
1766
  var ReactInstrumentation = _dereq_(78);
1765
1767
 
1766
1768
  var quoteAttributeValueForBrowser = _dereq_(152);
1767
- var warning = _dereq_(188);
1769
+ var warning = _dereq_(187);
1768
1770
 
1769
1771
  var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
1770
1772
  var illegalAttributeNameCache = {};
@@ -1967,7 +1969,7 @@ var DOMPropertyOperations = {
1967
1969
  };
1968
1970
 
1969
1971
  module.exports = DOMPropertyOperations;
1970
- },{"10":10,"152":152,"188":188,"46":46,"78":78}],12:[function(_dereq_,module,exports){
1972
+ },{"10":10,"152":152,"187":187,"46":46,"78":78}],12:[function(_dereq_,module,exports){
1971
1973
  /**
1972
1974
  * Copyright 2013-present, Facebook, Inc.
1973
1975
  * All rights reserved.
@@ -2819,7 +2821,7 @@ var EventConstants = _dereq_(16);
2819
2821
  var ReactErrorUtils = _dereq_(68);
2820
2822
 
2821
2823
  var invariant = _dereq_(178);
2822
- var warning = _dereq_(188);
2824
+ var warning = _dereq_(187);
2823
2825
 
2824
2826
  /**
2825
2827
  * Injected dependencies:
@@ -3029,7 +3031,7 @@ var EventPluginUtils = {
3029
3031
  };
3030
3032
 
3031
3033
  module.exports = EventPluginUtils;
3032
- },{"153":153,"16":16,"178":178,"188":188,"68":68}],20:[function(_dereq_,module,exports){
3034
+ },{"153":153,"16":16,"178":178,"187":187,"68":68}],20:[function(_dereq_,module,exports){
3033
3035
  /**
3034
3036
  * Copyright 2013-present, Facebook, Inc.
3035
3037
  * All rights reserved.
@@ -3049,7 +3051,7 @@ var EventPluginUtils = _dereq_(19);
3049
3051
 
3050
3052
  var accumulateInto = _dereq_(129);
3051
3053
  var forEachAccumulated = _dereq_(138);
3052
- var warning = _dereq_(188);
3054
+ var warning = _dereq_(187);
3053
3055
 
3054
3056
  var PropagationPhases = EventConstants.PropagationPhases;
3055
3057
  var getListener = EventPluginHub.getListener;
@@ -3167,7 +3169,7 @@ var EventPropagators = {
3167
3169
  };
3168
3170
 
3169
3171
  module.exports = EventPropagators;
3170
- },{"129":129,"138":138,"16":16,"17":17,"188":188,"19":19}],21:[function(_dereq_,module,exports){
3172
+ },{"129":129,"138":138,"16":16,"17":17,"187":187,"19":19}],21:[function(_dereq_,module,exports){
3171
3173
  /**
3172
3174
  * Copyright 2013-present, Facebook, Inc.
3173
3175
  * All rights reserved.
@@ -3181,7 +3183,7 @@ module.exports = EventPropagators;
3181
3183
 
3182
3184
  'use strict';
3183
3185
 
3184
- var _assign = _dereq_(189);
3186
+ var _assign = _dereq_(188);
3185
3187
 
3186
3188
  var PooledClass = _dereq_(26);
3187
3189
 
@@ -3263,7 +3265,7 @@ _assign(FallbackCompositionState.prototype, {
3263
3265
  PooledClass.addPoolingTo(FallbackCompositionState);
3264
3266
 
3265
3267
  module.exports = FallbackCompositionState;
3266
- },{"146":146,"189":189,"26":26}],22:[function(_dereq_,module,exports){
3268
+ },{"146":146,"188":188,"26":26}],22:[function(_dereq_,module,exports){
3267
3269
  /**
3268
3270
  * Copyright 2013-present, Facebook, Inc.
3269
3271
  * All rights reserved.
@@ -3298,6 +3300,8 @@ var HTMLDOMPropertyConfig = {
3298
3300
  allowFullScreen: HAS_BOOLEAN_VALUE,
3299
3301
  allowTransparency: 0,
3300
3302
  alt: 0,
3303
+ // specifies target context for links with `preload` type
3304
+ as: 0,
3301
3305
  async: HAS_BOOLEAN_VALUE,
3302
3306
  autoComplete: 0,
3303
3307
  // autoFocus is polyfilled/normalized by AutoFocusUtils
@@ -3378,6 +3382,7 @@ var HTMLDOMPropertyConfig = {
3378
3382
  optimum: 0,
3379
3383
  pattern: 0,
3380
3384
  placeholder: 0,
3385
+ playsInline: HAS_BOOLEAN_VALUE,
3381
3386
  poster: 0,
3382
3387
  preload: 0,
3383
3388
  profile: 0,
@@ -3591,7 +3596,7 @@ var ReactPropTypeLocations = _dereq_(90);
3591
3596
  var ReactPropTypesSecret = _dereq_(92);
3592
3597
 
3593
3598
  var invariant = _dereq_(178);
3594
- var warning = _dereq_(188);
3599
+ var warning = _dereq_(187);
3595
3600
 
3596
3601
  var hasReadOnlyValue = {
3597
3602
  'button': true,
@@ -3707,7 +3712,7 @@ var LinkedValueUtils = {
3707
3712
  };
3708
3713
 
3709
3714
  module.exports = LinkedValueUtils;
3710
- },{"153":153,"178":178,"188":188,"90":90,"91":91,"92":92}],26:[function(_dereq_,module,exports){
3715
+ },{"153":153,"178":178,"187":187,"90":90,"91":91,"92":92}],26:[function(_dereq_,module,exports){
3711
3716
  /**
3712
3717
  * Copyright 2013-present, Facebook, Inc.
3713
3718
  * All rights reserved.
@@ -3843,7 +3848,7 @@ module.exports = PooledClass;
3843
3848
 
3844
3849
  'use strict';
3845
3850
 
3846
- var _assign = _dereq_(189);
3851
+ var _assign = _dereq_(188);
3847
3852
 
3848
3853
  var ReactChildren = _dereq_(32);
3849
3854
  var ReactComponent = _dereq_(35);
@@ -3855,7 +3860,7 @@ var ReactPropTypes = _dereq_(91);
3855
3860
  var ReactVersion = _dereq_(108);
3856
3861
 
3857
3862
  var onlyChild = _dereq_(151);
3858
- var warning = _dereq_(188);
3863
+ var warning = _dereq_(187);
3859
3864
 
3860
3865
  var createElement = ReactElement.createElement;
3861
3866
  var createFactory = ReactElement.createFactory;
@@ -3919,7 +3924,7 @@ var React = {
3919
3924
  };
3920
3925
 
3921
3926
  module.exports = React;
3922
- },{"108":108,"151":151,"188":188,"189":189,"32":32,"34":34,"35":35,"49":49,"65":65,"66":66,"91":91,"93":93}],28:[function(_dereq_,module,exports){
3927
+ },{"108":108,"151":151,"187":187,"188":188,"32":32,"34":34,"35":35,"49":49,"65":65,"66":66,"91":91,"93":93}],28:[function(_dereq_,module,exports){
3923
3928
  /**
3924
3929
  * Copyright 2013-present, Facebook, Inc.
3925
3930
  * All rights reserved.
@@ -3933,7 +3938,7 @@ module.exports = React;
3933
3938
 
3934
3939
  'use strict';
3935
3940
 
3936
- var _assign = _dereq_(189);
3941
+ var _assign = _dereq_(188);
3937
3942
 
3938
3943
  var EventConstants = _dereq_(16);
3939
3944
  var EventPluginRegistry = _dereq_(18);
@@ -4212,6 +4217,19 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
4212
4217
  return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);
4213
4218
  },
4214
4219
 
4220
+ /**
4221
+ * Protect against document.createEvent() returning null
4222
+ * Some popup blocker extensions appear to do this:
4223
+ * https://github.com/facebook/react/issues/6887
4224
+ */
4225
+ supportsEventPageXY: function () {
4226
+ if (!document.createEvent) {
4227
+ return false;
4228
+ }
4229
+ var ev = document.createEvent('MouseEvent');
4230
+ return ev != null && 'pageX' in ev;
4231
+ },
4232
+
4215
4233
  /**
4216
4234
  * Listens to window scroll and resize events. We cache scroll values so that
4217
4235
  * application code can access them without triggering reflows.
@@ -4225,7 +4243,7 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
4225
4243
  */
4226
4244
  ensureScrollValueMonitoring: function () {
4227
4245
  if (hasEventPageXY === undefined) {
4228
- hasEventPageXY = document.createEvent && 'pageX' in document.createEvent('MouseEvent');
4246
+ hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();
4229
4247
  }
4230
4248
  if (!hasEventPageXY && !isMonitoringScrollValue) {
4231
4249
  var refresh = ViewportMetrics.refreshScrollValues;
@@ -4237,7 +4255,7 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
4237
4255
  });
4238
4256
 
4239
4257
  module.exports = ReactBrowserEventEmitter;
4240
- },{"128":128,"147":147,"149":149,"16":16,"18":18,"189":189,"69":69}],29:[function(_dereq_,module,exports){
4258
+ },{"128":128,"147":147,"149":149,"16":16,"18":18,"188":188,"69":69}],29:[function(_dereq_,module,exports){
4241
4259
  /**
4242
4260
  * Copyright 2013-present, Facebook, Inc.
4243
4261
  * All rights reserved.
@@ -4251,7 +4269,7 @@ module.exports = ReactBrowserEventEmitter;
4251
4269
 
4252
4270
  'use strict';
4253
4271
 
4254
- var _assign = _dereq_(189);
4272
+ var _assign = _dereq_(188);
4255
4273
 
4256
4274
  var React = _dereq_(27);
4257
4275
 
@@ -4325,7 +4343,7 @@ var ReactCSSTransitionGroup = React.createClass({
4325
4343
  });
4326
4344
 
4327
4345
  module.exports = ReactCSSTransitionGroup;
4328
- },{"105":105,"189":189,"27":27,"30":30}],30:[function(_dereq_,module,exports){
4346
+ },{"105":105,"188":188,"27":27,"30":30}],30:[function(_dereq_,module,exports){
4329
4347
  /**
4330
4348
  * Copyright 2013-present, Facebook, Inc.
4331
4349
  * All rights reserved.
@@ -4514,7 +4532,7 @@ var instantiateReactComponent = _dereq_(148);
4514
4532
  var KeyEscapeUtils = _dereq_(23);
4515
4533
  var shouldUpdateReactComponent = _dereq_(158);
4516
4534
  var traverseAllChildren = _dereq_(159);
4517
- var warning = _dereq_(188);
4535
+ var warning = _dereq_(187);
4518
4536
 
4519
4537
  var ReactComponentTreeHook;
4520
4538
 
@@ -4650,7 +4668,7 @@ var ReactChildReconciler = {
4650
4668
 
4651
4669
  module.exports = ReactChildReconciler;
4652
4670
  }).call(this,undefined)
4653
- },{"148":148,"158":158,"159":159,"188":188,"23":23,"38":38,"95":95}],32:[function(_dereq_,module,exports){
4671
+ },{"148":148,"158":158,"159":159,"187":187,"23":23,"38":38,"95":95}],32:[function(_dereq_,module,exports){
4654
4672
  /**
4655
4673
  * Copyright 2013-present, Facebook, Inc.
4656
4674
  * All rights reserved.
@@ -4858,7 +4876,7 @@ module.exports = ReactChildren;
4858
4876
 
4859
4877
  var ReactComponentTreeHook = _dereq_(38);
4860
4878
 
4861
- var warning = _dereq_(188);
4879
+ var warning = _dereq_(187);
4862
4880
 
4863
4881
  function handleElement(debugID, element) {
4864
4882
  if (element == null) {
@@ -4897,7 +4915,7 @@ var ReactChildrenMutationWarningHook = {
4897
4915
  };
4898
4916
 
4899
4917
  module.exports = ReactChildrenMutationWarningHook;
4900
- },{"188":188,"38":38}],34:[function(_dereq_,module,exports){
4918
+ },{"187":187,"38":38}],34:[function(_dereq_,module,exports){
4901
4919
  /**
4902
4920
  * Copyright 2013-present, Facebook, Inc.
4903
4921
  * All rights reserved.
@@ -4912,7 +4930,7 @@ module.exports = ReactChildrenMutationWarningHook;
4912
4930
  'use strict';
4913
4931
 
4914
4932
  var _prodInvariant = _dereq_(153),
4915
- _assign = _dereq_(189);
4933
+ _assign = _dereq_(188);
4916
4934
 
4917
4935
  var ReactComponent = _dereq_(35);
4918
4936
  var ReactElement = _dereq_(65);
@@ -4924,7 +4942,7 @@ var emptyObject = _dereq_(171);
4924
4942
  var invariant = _dereq_(178);
4925
4943
  var keyMirror = _dereq_(181);
4926
4944
  var keyOf = _dereq_(182);
4927
- var warning = _dereq_(188);
4945
+ var warning = _dereq_(187);
4928
4946
 
4929
4947
  var MIXINS_KEY = keyOf({ mixins: null });
4930
4948
 
@@ -5630,7 +5648,7 @@ var ReactClass = {
5630
5648
  };
5631
5649
 
5632
5650
  module.exports = ReactClass;
5633
- },{"153":153,"171":171,"178":178,"181":181,"182":182,"188":188,"189":189,"35":35,"65":65,"86":86,"89":89,"90":90}],35:[function(_dereq_,module,exports){
5651
+ },{"153":153,"171":171,"178":178,"181":181,"182":182,"187":187,"188":188,"35":35,"65":65,"86":86,"89":89,"90":90}],35:[function(_dereq_,module,exports){
5634
5652
  /**
5635
5653
  * Copyright 2013-present, Facebook, Inc.
5636
5654
  * All rights reserved.
@@ -5651,7 +5669,7 @@ var ReactNoopUpdateQueue = _dereq_(86);
5651
5669
  var canDefineProperty = _dereq_(131);
5652
5670
  var emptyObject = _dereq_(171);
5653
5671
  var invariant = _dereq_(178);
5654
- var warning = _dereq_(188);
5672
+ var warning = _dereq_(187);
5655
5673
 
5656
5674
  /**
5657
5675
  * Base class helpers for the updating state of a component.
@@ -5749,7 +5767,7 @@ if ("development" !== 'production') {
5749
5767
  }
5750
5768
 
5751
5769
  module.exports = ReactComponent;
5752
- },{"131":131,"153":153,"171":171,"178":178,"188":188,"86":86}],36:[function(_dereq_,module,exports){
5770
+ },{"131":131,"153":153,"171":171,"178":178,"187":187,"86":86}],36:[function(_dereq_,module,exports){
5753
5771
  /**
5754
5772
  * Copyright 2013-present, Facebook, Inc.
5755
5773
  * All rights reserved.
@@ -5845,11 +5863,54 @@ var _prodInvariant = _dereq_(153);
5845
5863
  var ReactCurrentOwner = _dereq_(41);
5846
5864
 
5847
5865
  var invariant = _dereq_(178);
5848
- var warning = _dereq_(188);
5866
+ var warning = _dereq_(187);
5867
+
5868
+ function isNative(fn) {
5869
+ // Based on isNative() from Lodash
5870
+ var funcToString = Function.prototype.toString;
5871
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
5872
+ var reIsNative = RegExp('^' + funcToString
5873
+ // Take an example native function source for comparison
5874
+ .call(hasOwnProperty)
5875
+ // Strip regex characters so we can use it for regex
5876
+ .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
5877
+ // Remove hasOwnProperty from the template to make it generic
5878
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
5879
+ try {
5880
+ var source = funcToString.call(fn);
5881
+ return reIsNative.test(source);
5882
+ } catch (err) {
5883
+ return false;
5884
+ }
5885
+ }
5886
+
5887
+ var canUseCollections =
5888
+ // Array.from
5889
+ typeof Array.from === 'function' &&
5890
+ // Map
5891
+ typeof Map === 'function' && isNative(Map) &&
5892
+ // Map.prototype.keys
5893
+ Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&
5894
+ // Set
5895
+ typeof Set === 'function' && isNative(Set) &&
5896
+ // Set.prototype.keys
5897
+ Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);
5898
+
5899
+ var itemMap;
5900
+ var rootIDSet;
5901
+
5902
+ var itemByKey;
5903
+ var rootByKey;
5849
5904
 
5850
- var itemByKey = {};
5851
- var unmountedIDs = {};
5852
- var rootIDs = {};
5905
+ if (canUseCollections) {
5906
+ itemMap = new Map();
5907
+ rootIDSet = new Set();
5908
+ } else {
5909
+ itemByKey = {};
5910
+ rootByKey = {};
5911
+ }
5912
+
5913
+ var unmountedIDs = [];
5853
5914
 
5854
5915
  // Use non-numeric keys to prevent V8 performance issues:
5855
5916
  // https://github.com/facebook/react/pull/7232
@@ -5861,18 +5922,25 @@ function getIDFromKey(key) {
5861
5922
  }
5862
5923
 
5863
5924
  function get(id) {
5864
- var key = getKeyFromID(id);
5865
- return itemByKey[key];
5925
+ if (canUseCollections) {
5926
+ return itemMap.get(id);
5927
+ } else {
5928
+ var key = getKeyFromID(id);
5929
+ return itemByKey[key];
5930
+ }
5866
5931
  }
5867
5932
 
5868
5933
  function remove(id) {
5869
- var key = getKeyFromID(id);
5870
- delete itemByKey[key];
5934
+ if (canUseCollections) {
5935
+ itemMap['delete'](id);
5936
+ } else {
5937
+ var key = getKeyFromID(id);
5938
+ delete itemByKey[key];
5939
+ }
5871
5940
  }
5872
5941
 
5873
5942
  function create(id, element, parentID) {
5874
- var key = getKeyFromID(id);
5875
- itemByKey[key] = {
5943
+ var item = {
5876
5944
  element: element,
5877
5945
  parentID: parentID,
5878
5946
  text: null,
@@ -5880,6 +5948,47 @@ function create(id, element, parentID) {
5880
5948
  isMounted: false,
5881
5949
  updateCount: 0
5882
5950
  };
5951
+
5952
+ if (canUseCollections) {
5953
+ itemMap.set(id, item);
5954
+ } else {
5955
+ var key = getKeyFromID(id);
5956
+ itemByKey[key] = item;
5957
+ }
5958
+ }
5959
+
5960
+ function addRoot(id) {
5961
+ if (canUseCollections) {
5962
+ rootIDSet.add(id);
5963
+ } else {
5964
+ var key = getKeyFromID(id);
5965
+ rootByKey[key] = true;
5966
+ }
5967
+ }
5968
+
5969
+ function removeRoot(id) {
5970
+ if (canUseCollections) {
5971
+ rootIDSet['delete'](id);
5972
+ } else {
5973
+ var key = getKeyFromID(id);
5974
+ delete rootByKey[key];
5975
+ }
5976
+ }
5977
+
5978
+ function getRegisteredIDs() {
5979
+ if (canUseCollections) {
5980
+ return Array.from(itemMap.keys());
5981
+ } else {
5982
+ return Object.keys(itemByKey).map(getIDFromKey);
5983
+ }
5984
+ }
5985
+
5986
+ function getRootIDs() {
5987
+ if (canUseCollections) {
5988
+ return Array.from(rootIDSet.keys());
5989
+ } else {
5990
+ return Object.keys(rootByKey).map(getIDFromKey);
5991
+ }
5883
5992
  }
5884
5993
 
5885
5994
  function purgeDeep(id) {
@@ -5942,10 +6051,6 @@ var ReactComponentTreeHook = {
5942
6051
  },
5943
6052
  onBeforeMountComponent: function (id, element, parentID) {
5944
6053
  create(id, element, parentID);
5945
-
5946
- if (parentID === 0) {
5947
- rootIDs[id] = true;
5948
- }
5949
6054
  },
5950
6055
  onBeforeUpdateComponent: function (id, element) {
5951
6056
  var item = get(id);
@@ -5959,6 +6064,10 @@ var ReactComponentTreeHook = {
5959
6064
  onMountComponent: function (id) {
5960
6065
  var item = get(id);
5961
6066
  item.isMounted = true;
6067
+ var isRoot = item.parentID === 0;
6068
+ if (isRoot) {
6069
+ addRoot(id);
6070
+ }
5962
6071
  },
5963
6072
  onUpdateComponent: function (id) {
5964
6073
  var item = get(id);
@@ -5978,9 +6087,12 @@ var ReactComponentTreeHook = {
5978
6087
  // got a chance to mount, but it still gets an unmounting event during
5979
6088
  // the error boundary cleanup.
5980
6089
  item.isMounted = false;
6090
+ var isRoot = item.parentID === 0;
6091
+ if (isRoot) {
6092
+ removeRoot(id);
6093
+ }
5981
6094
  }
5982
- unmountedIDs[id] = true;
5983
- delete rootIDs[id];
6095
+ unmountedIDs.push(id);
5984
6096
  },
5985
6097
  purgeUnmountedComponents: function () {
5986
6098
  if (ReactComponentTreeHook._preventPurging) {
@@ -5988,10 +6100,11 @@ var ReactComponentTreeHook = {
5988
6100
  return;
5989
6101
  }
5990
6102
 
5991
- for (var id in unmountedIDs) {
6103
+ for (var i = 0; i < unmountedIDs.length; i++) {
6104
+ var id = unmountedIDs[i];
5992
6105
  purgeDeep(id);
5993
6106
  }
5994
- unmountedIDs = {};
6107
+ unmountedIDs.length = 0;
5995
6108
  },
5996
6109
  isMounted: function (id) {
5997
6110
  var item = get(id);
@@ -6066,16 +6179,15 @@ var ReactComponentTreeHook = {
6066
6179
  var item = get(id);
6067
6180
  return item ? item.updateCount : 0;
6068
6181
  },
6069
- getRootIDs: function () {
6070
- return Object.keys(rootIDs);
6071
- },
6072
- getRegisteredIDs: function () {
6073
- return Object.keys(itemByKey).map(getIDFromKey);
6074
- }
6182
+
6183
+
6184
+ getRegisteredIDs: getRegisteredIDs,
6185
+
6186
+ getRootIDs: getRootIDs
6075
6187
  };
6076
6188
 
6077
6189
  module.exports = ReactComponentTreeHook;
6078
- },{"153":153,"178":178,"188":188,"41":41}],39:[function(_dereq_,module,exports){
6190
+ },{"153":153,"178":178,"187":187,"41":41}],39:[function(_dereq_,module,exports){
6079
6191
  /**
6080
6192
  * Copyright 2013-present, Facebook, Inc.
6081
6193
  * All rights reserved.
@@ -6139,7 +6251,7 @@ module.exports = ReactComponentWithPureRenderMixin;
6139
6251
  'use strict';
6140
6252
 
6141
6253
  var _prodInvariant = _dereq_(153),
6142
- _assign = _dereq_(189);
6254
+ _assign = _dereq_(188);
6143
6255
 
6144
6256
  var ReactComponentEnvironment = _dereq_(37);
6145
6257
  var ReactCurrentOwner = _dereq_(41);
@@ -6154,9 +6266,9 @@ var ReactReconciler = _dereq_(95);
6154
6266
  var checkReactTypeSpec = _dereq_(132);
6155
6267
  var emptyObject = _dereq_(171);
6156
6268
  var invariant = _dereq_(178);
6157
- var shallowEqual = _dereq_(187);
6269
+ var shallowEqual = _dereq_(186);
6158
6270
  var shouldUpdateReactComponent = _dereq_(158);
6159
- var warning = _dereq_(188);
6271
+ var warning = _dereq_(187);
6160
6272
 
6161
6273
  var CompositeTypes = {
6162
6274
  ImpureClass: 0,
@@ -6179,28 +6291,6 @@ function warnIfInvalidElement(Component, element) {
6179
6291
  }
6180
6292
  }
6181
6293
 
6182
- function invokeComponentDidMountWithTimer() {
6183
- var publicInstance = this._instance;
6184
- if (this._debugID !== 0) {
6185
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidMount');
6186
- }
6187
- publicInstance.componentDidMount();
6188
- if (this._debugID !== 0) {
6189
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidMount');
6190
- }
6191
- }
6192
-
6193
- function invokeComponentDidUpdateWithTimer(prevProps, prevState, prevContext) {
6194
- var publicInstance = this._instance;
6195
- if (this._debugID !== 0) {
6196
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidUpdate');
6197
- }
6198
- publicInstance.componentDidUpdate(prevProps, prevState, prevContext);
6199
- if (this._debugID !== 0) {
6200
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidUpdate');
6201
- }
6202
- }
6203
-
6204
6294
  function shouldConstruct(Component) {
6205
6295
  return !!(Component.prototype && Component.prototype.isReactComponent);
6206
6296
  }
@@ -6209,6 +6299,23 @@ function isPureComponent(Component) {
6209
6299
  return !!(Component.prototype && Component.prototype.isPureReactComponent);
6210
6300
  }
6211
6301
 
6302
+ // Separated into a function to contain deoptimizations caused by try/finally.
6303
+ function measureLifeCyclePerf(fn, debugID, timerType) {
6304
+ if (debugID === 0) {
6305
+ // Top-level wrappers (see ReactMount) and empty components (see
6306
+ // ReactDOMEmptyComponent) are invisible to hooks and devtools.
6307
+ // Both are implementation details that should go away in the future.
6308
+ return fn();
6309
+ }
6310
+
6311
+ ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);
6312
+ try {
6313
+ return fn();
6314
+ } finally {
6315
+ ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);
6316
+ }
6317
+ }
6318
+
6212
6319
  /**
6213
6320
  * ------------------ The Life-Cycle of a Composite Component ------------------
6214
6321
  *
@@ -6300,6 +6407,8 @@ var ReactCompositeComponentMixin = {
6300
6407
  * @internal
6301
6408
  */
6302
6409
  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
6410
+ var _this = this;
6411
+
6303
6412
  this._context = context;
6304
6413
  this._mountOrder = nextMountID++;
6305
6414
  this._hostParent = hostParent;
@@ -6389,7 +6498,11 @@ var ReactCompositeComponentMixin = {
6389
6498
 
6390
6499
  if (inst.componentDidMount) {
6391
6500
  if ("development" !== 'production') {
6392
- transaction.getReactMountReady().enqueue(invokeComponentDidMountWithTimer, this);
6501
+ transaction.getReactMountReady().enqueue(function () {
6502
+ measureLifeCyclePerf(function () {
6503
+ return inst.componentDidMount();
6504
+ }, _this._debugID, 'componentDidMount');
6505
+ });
6393
6506
  } else {
6394
6507
  transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);
6395
6508
  }
@@ -6413,35 +6526,26 @@ var ReactCompositeComponentMixin = {
6413
6526
 
6414
6527
  _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {
6415
6528
  var Component = this._currentElement.type;
6416
- var instanceOrElement;
6529
+
6417
6530
  if (doConstruct) {
6418
6531
  if ("development" !== 'production') {
6419
- if (this._debugID !== 0) {
6420
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'ctor');
6421
- }
6422
- }
6423
- instanceOrElement = new Component(publicProps, publicContext, updateQueue);
6424
- if ("development" !== 'production') {
6425
- if (this._debugID !== 0) {
6426
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'ctor');
6427
- }
6532
+ return measureLifeCyclePerf(function () {
6533
+ return new Component(publicProps, publicContext, updateQueue);
6534
+ }, this._debugID, 'ctor');
6535
+ } else {
6536
+ return new Component(publicProps, publicContext, updateQueue);
6428
6537
  }
6538
+ }
6539
+
6540
+ // This can still be an instance in case of factory components
6541
+ // but we'll count this as time spent rendering as the more common case.
6542
+ if ("development" !== 'production') {
6543
+ return measureLifeCyclePerf(function () {
6544
+ return Component(publicProps, publicContext, updateQueue);
6545
+ }, this._debugID, 'render');
6429
6546
  } else {
6430
- // This can still be an instance in case of factory components
6431
- // but we'll count this as time spent rendering as the more common case.
6432
- if ("development" !== 'production') {
6433
- if (this._debugID !== 0) {
6434
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render');
6435
- }
6436
- }
6437
- instanceOrElement = Component(publicProps, publicContext, updateQueue);
6438
- if ("development" !== 'production') {
6439
- if (this._debugID !== 0) {
6440
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render');
6441
- }
6442
- }
6547
+ return Component(publicProps, publicContext, updateQueue);
6443
6548
  }
6444
- return instanceOrElement;
6445
6549
  },
6446
6550
 
6447
6551
  performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {
@@ -6450,11 +6554,6 @@ var ReactCompositeComponentMixin = {
6450
6554
  try {
6451
6555
  markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);
6452
6556
  } catch (e) {
6453
- if ("development" !== 'production') {
6454
- if (this._debugID !== 0) {
6455
- ReactInstrumentation.debugTool.onError();
6456
- }
6457
- }
6458
6557
  // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint
6459
6558
  transaction.rollback(checkpoint);
6460
6559
  this._instance.unstable_handleError(e);
@@ -6475,17 +6574,19 @@ var ReactCompositeComponentMixin = {
6475
6574
 
6476
6575
  performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {
6477
6576
  var inst = this._instance;
6577
+
6578
+ var debugID = 0;
6579
+ if ("development" !== 'production') {
6580
+ debugID = this._debugID;
6581
+ }
6582
+
6478
6583
  if (inst.componentWillMount) {
6479
6584
  if ("development" !== 'production') {
6480
- if (this._debugID !== 0) {
6481
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillMount');
6482
- }
6483
- }
6484
- inst.componentWillMount();
6485
- if ("development" !== 'production') {
6486
- if (this._debugID !== 0) {
6487
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillMount');
6488
- }
6585
+ measureLifeCyclePerf(function () {
6586
+ return inst.componentWillMount();
6587
+ }, debugID, 'componentWillMount');
6588
+ } else {
6589
+ inst.componentWillMount();
6489
6590
  }
6490
6591
  // When mounting, calls to `setState` by `componentWillMount` will set
6491
6592
  // `this._pendingStateQueue` without triggering a re-render.
@@ -6505,15 +6606,12 @@ var ReactCompositeComponentMixin = {
6505
6606
  );
6506
6607
  this._renderedComponent = child;
6507
6608
 
6508
- var selfDebugID = 0;
6509
- if ("development" !== 'production') {
6510
- selfDebugID = this._debugID;
6511
- }
6512
- var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), selfDebugID);
6609
+ var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);
6513
6610
 
6514
6611
  if ("development" !== 'production') {
6515
- if (this._debugID !== 0) {
6516
- ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []);
6612
+ if (debugID !== 0) {
6613
+ var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];
6614
+ ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);
6517
6615
  }
6518
6616
  }
6519
6617
 
@@ -6534,24 +6632,22 @@ var ReactCompositeComponentMixin = {
6534
6632
  if (!this._renderedComponent) {
6535
6633
  return;
6536
6634
  }
6635
+
6537
6636
  var inst = this._instance;
6538
6637
 
6539
6638
  if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {
6540
6639
  inst._calledComponentWillUnmount = true;
6541
- if ("development" !== 'production') {
6542
- if (this._debugID !== 0) {
6543
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUnmount');
6544
- }
6545
- }
6640
+
6546
6641
  if (safely) {
6547
6642
  var name = this.getName() + '.componentWillUnmount()';
6548
6643
  ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));
6549
6644
  } else {
6550
- inst.componentWillUnmount();
6551
- }
6552
- if ("development" !== 'production') {
6553
- if (this._debugID !== 0) {
6554
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUnmount');
6645
+ if ("development" !== 'production') {
6646
+ measureLifeCyclePerf(function () {
6647
+ return inst.componentWillUnmount();
6648
+ }, this._debugID, 'componentWillUnmount');
6649
+ } else {
6650
+ inst.componentWillUnmount();
6555
6651
  }
6556
6652
  }
6557
6653
  }
@@ -6638,13 +6734,21 @@ var ReactCompositeComponentMixin = {
6638
6734
  _processChildContext: function (currentContext) {
6639
6735
  var Component = this._currentElement.type;
6640
6736
  var inst = this._instance;
6641
- if ("development" !== 'production') {
6642
- ReactInstrumentation.debugTool.onBeginProcessingChildContext();
6643
- }
6644
- var childContext = inst.getChildContext && inst.getChildContext();
6645
- if ("development" !== 'production') {
6646
- ReactInstrumentation.debugTool.onEndProcessingChildContext();
6737
+ var childContext;
6738
+
6739
+ if (inst.getChildContext) {
6740
+ if ("development" !== 'production') {
6741
+ ReactInstrumentation.debugTool.onBeginProcessingChildContext();
6742
+ try {
6743
+ childContext = inst.getChildContext();
6744
+ } finally {
6745
+ ReactInstrumentation.debugTool.onEndProcessingChildContext();
6746
+ }
6747
+ } else {
6748
+ childContext = inst.getChildContext();
6749
+ }
6647
6750
  }
6751
+
6648
6752
  if (childContext) {
6649
6753
  !(typeof Component.childContextTypes === 'object') ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;
6650
6754
  if ("development" !== 'production') {
@@ -6739,15 +6843,11 @@ var ReactCompositeComponentMixin = {
6739
6843
  // immediately reconciled instead of waiting for the next batch.
6740
6844
  if (willReceive && inst.componentWillReceiveProps) {
6741
6845
  if ("development" !== 'production') {
6742
- if (this._debugID !== 0) {
6743
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillReceiveProps');
6744
- }
6745
- }
6746
- inst.componentWillReceiveProps(nextProps, nextContext);
6747
- if ("development" !== 'production') {
6748
- if (this._debugID !== 0) {
6749
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillReceiveProps');
6750
- }
6846
+ measureLifeCyclePerf(function () {
6847
+ return inst.componentWillReceiveProps(nextProps, nextContext);
6848
+ }, this._debugID, 'componentWillReceiveProps');
6849
+ } else {
6850
+ inst.componentWillReceiveProps(nextProps, nextContext);
6751
6851
  }
6752
6852
  }
6753
6853
 
@@ -6757,15 +6857,11 @@ var ReactCompositeComponentMixin = {
6757
6857
  if (!this._pendingForceUpdate) {
6758
6858
  if (inst.shouldComponentUpdate) {
6759
6859
  if ("development" !== 'production') {
6760
- if (this._debugID !== 0) {
6761
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'shouldComponentUpdate');
6762
- }
6763
- }
6764
- shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);
6765
- if ("development" !== 'production') {
6766
- if (this._debugID !== 0) {
6767
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'shouldComponentUpdate');
6768
- }
6860
+ shouldUpdate = measureLifeCyclePerf(function () {
6861
+ return inst.shouldComponentUpdate(nextProps, nextState, nextContext);
6862
+ }, this._debugID, 'shouldComponentUpdate');
6863
+ } else {
6864
+ shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);
6769
6865
  }
6770
6866
  } else {
6771
6867
  if (this._compositeType === CompositeTypes.PureClass) {
@@ -6831,6 +6927,8 @@ var ReactCompositeComponentMixin = {
6831
6927
  * @private
6832
6928
  */
6833
6929
  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {
6930
+ var _this2 = this;
6931
+
6834
6932
  var inst = this._instance;
6835
6933
 
6836
6934
  var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);
@@ -6845,15 +6943,11 @@ var ReactCompositeComponentMixin = {
6845
6943
 
6846
6944
  if (inst.componentWillUpdate) {
6847
6945
  if ("development" !== 'production') {
6848
- if (this._debugID !== 0) {
6849
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUpdate');
6850
- }
6851
- }
6852
- inst.componentWillUpdate(nextProps, nextState, nextContext);
6853
- if ("development" !== 'production') {
6854
- if (this._debugID !== 0) {
6855
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUpdate');
6856
- }
6946
+ measureLifeCyclePerf(function () {
6947
+ return inst.componentWillUpdate(nextProps, nextState, nextContext);
6948
+ }, this._debugID, 'componentWillUpdate');
6949
+ } else {
6950
+ inst.componentWillUpdate(nextProps, nextState, nextContext);
6857
6951
  }
6858
6952
  }
6859
6953
 
@@ -6867,7 +6961,9 @@ var ReactCompositeComponentMixin = {
6867
6961
 
6868
6962
  if (hasComponentDidUpdate) {
6869
6963
  if ("development" !== 'production') {
6870
- transaction.getReactMountReady().enqueue(invokeComponentDidUpdateWithTimer.bind(this, prevProps, prevState, prevContext), this);
6964
+ transaction.getReactMountReady().enqueue(function () {
6965
+ measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');
6966
+ });
6871
6967
  } else {
6872
6968
  transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);
6873
6969
  }
@@ -6884,6 +6980,12 @@ var ReactCompositeComponentMixin = {
6884
6980
  var prevComponentInstance = this._renderedComponent;
6885
6981
  var prevRenderedElement = prevComponentInstance._currentElement;
6886
6982
  var nextRenderedElement = this._renderValidatedComponent();
6983
+
6984
+ var debugID = 0;
6985
+ if ("development" !== 'production') {
6986
+ debugID = this._debugID;
6987
+ }
6988
+
6887
6989
  if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {
6888
6990
  ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));
6889
6991
  } else {
@@ -6896,15 +6998,12 @@ var ReactCompositeComponentMixin = {
6896
6998
  );
6897
6999
  this._renderedComponent = child;
6898
7000
 
6899
- var selfDebugID = 0;
6900
- if ("development" !== 'production') {
6901
- selfDebugID = this._debugID;
6902
- }
6903
- var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), selfDebugID);
7001
+ var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);
6904
7002
 
6905
7003
  if ("development" !== 'production') {
6906
- if (this._debugID !== 0) {
6907
- ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []);
7004
+ if (debugID !== 0) {
7005
+ var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];
7006
+ ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);
6908
7007
  }
6909
7008
  }
6910
7009
 
@@ -6926,17 +7025,14 @@ var ReactCompositeComponentMixin = {
6926
7025
  */
6927
7026
  _renderValidatedComponentWithoutOwnerOrContext: function () {
6928
7027
  var inst = this._instance;
7028
+ var renderedComponent;
6929
7029
 
6930
7030
  if ("development" !== 'production') {
6931
- if (this._debugID !== 0) {
6932
- ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render');
6933
- }
6934
- }
6935
- var renderedComponent = inst.render();
6936
- if ("development" !== 'production') {
6937
- if (this._debugID !== 0) {
6938
- ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render');
6939
- }
7031
+ renderedComponent = measureLifeCyclePerf(function () {
7032
+ return inst.render();
7033
+ }, this._debugID, 'render');
7034
+ } else {
7035
+ renderedComponent = inst.render();
6940
7036
  }
6941
7037
 
6942
7038
  if ("development" !== 'production') {
@@ -6987,7 +7083,7 @@ var ReactCompositeComponentMixin = {
6987
7083
  var publicComponentInstance = component.getPublicInstance();
6988
7084
  if ("development" !== 'production') {
6989
7085
  var componentName = component && component.getName ? component.getName() : 'a component';
6990
- "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()) : void 0;
7086
+ "development" !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;
6991
7087
  }
6992
7088
  var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;
6993
7089
  refs[ref] = publicComponentInstance;
@@ -7045,7 +7141,7 @@ var ReactCompositeComponent = {
7045
7141
  };
7046
7142
 
7047
7143
  module.exports = ReactCompositeComponent;
7048
- },{"132":132,"153":153,"158":158,"171":171,"178":178,"187":187,"188":188,"189":189,"37":37,"41":41,"65":65,"68":68,"77":77,"78":78,"85":85,"90":90,"95":95}],41:[function(_dereq_,module,exports){
7144
+ },{"132":132,"153":153,"158":158,"171":171,"178":178,"186":186,"187":187,"188":188,"37":37,"41":41,"65":65,"68":68,"77":77,"78":78,"85":85,"90":90,"95":95}],41:[function(_dereq_,module,exports){
7049
7145
  /**
7050
7146
  * Copyright 2013-present, Facebook, Inc.
7051
7147
  * All rights reserved.
@@ -7103,7 +7199,7 @@ var ReactVersion = _dereq_(108);
7103
7199
  var findDOMNode = _dereq_(136);
7104
7200
  var getHostComponentFromComposite = _dereq_(143);
7105
7201
  var renderSubtreeIntoContainer = _dereq_(154);
7106
- var warning = _dereq_(188);
7202
+ var warning = _dereq_(187);
7107
7203
 
7108
7204
  ReactDefaultInjection.inject();
7109
7205
 
@@ -7188,7 +7284,7 @@ if ("development" !== 'production') {
7188
7284
  }
7189
7285
 
7190
7286
  module.exports = ReactDOM;
7191
- },{"107":107,"108":108,"136":136,"143":143,"154":154,"164":164,"188":188,"46":46,"53":53,"61":61,"64":64,"78":78,"82":82,"95":95}],43:[function(_dereq_,module,exports){
7287
+ },{"107":107,"108":108,"136":136,"143":143,"154":154,"164":164,"187":187,"46":46,"53":53,"61":61,"64":64,"78":78,"82":82,"95":95}],43:[function(_dereq_,module,exports){
7192
7288
  /**
7193
7289
  * Copyright 2013-present, Facebook, Inc.
7194
7290
  * All rights reserved.
@@ -7230,7 +7326,7 @@ module.exports = ReactDOMButton;
7230
7326
  'use strict';
7231
7327
 
7232
7328
  var _prodInvariant = _dereq_(153),
7233
- _assign = _dereq_(189);
7329
+ _assign = _dereq_(188);
7234
7330
 
7235
7331
  var AutoFocusUtils = _dereq_(1);
7236
7332
  var CSSPropertyOperations = _dereq_(4);
@@ -7258,9 +7354,9 @@ var escapeTextContentForBrowser = _dereq_(135);
7258
7354
  var invariant = _dereq_(178);
7259
7355
  var isEventSupported = _dereq_(149);
7260
7356
  var keyOf = _dereq_(182);
7261
- var shallowEqual = _dereq_(187);
7357
+ var shallowEqual = _dereq_(186);
7262
7358
  var validateDOMNesting = _dereq_(161);
7263
- var warning = _dereq_(188);
7359
+ var warning = _dereq_(187);
7264
7360
 
7265
7361
  var Flags = ReactDOMComponentFlags;
7266
7362
  var deleteListener = EventPluginHub.deleteListener;
@@ -7411,12 +7507,13 @@ function optionPostMount() {
7411
7507
  ReactDOMOption.postMountWrapper(inst);
7412
7508
  }
7413
7509
 
7414
- var setContentChildForInstrumentation = emptyFunction;
7510
+ var setAndValidateContentChildDev = emptyFunction;
7415
7511
  if ("development" !== 'production') {
7416
- setContentChildForInstrumentation = function (content) {
7512
+ setAndValidateContentChildDev = function (content) {
7417
7513
  var hasExistingContent = this._contentDebugID != null;
7418
7514
  var debugID = this._debugID;
7419
- var contentDebugID = debugID + '#text';
7515
+ // This ID represents the inlined child that has no backing instance:
7516
+ var contentDebugID = -debugID;
7420
7517
 
7421
7518
  if (content == null) {
7422
7519
  if (hasExistingContent) {
@@ -7426,6 +7523,7 @@ if ("development" !== 'production') {
7426
7523
  return;
7427
7524
  }
7428
7525
 
7526
+ validateDOMNesting(null, String(content), this, this._ancestorInfo);
7429
7527
  this._contentDebugID = contentDebugID;
7430
7528
  if (hasExistingContent) {
7431
7529
  ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);
@@ -7600,7 +7698,7 @@ function ReactDOMComponent(element) {
7600
7698
  this._flags = 0;
7601
7699
  if ("development" !== 'production') {
7602
7700
  this._ancestorInfo = null;
7603
- setContentChildForInstrumentation.call(this, null);
7701
+ setAndValidateContentChildDev.call(this, null);
7604
7702
  }
7605
7703
  }
7606
7704
 
@@ -7700,7 +7798,7 @@ ReactDOMComponent.Mixin = {
7700
7798
  if (parentInfo) {
7701
7799
  // parentInfo should always be present except for the top-level
7702
7800
  // component when server rendering
7703
- validateDOMNesting(this._tag, this, parentInfo);
7801
+ validateDOMNesting(this._tag, null, this, parentInfo);
7704
7802
  }
7705
7803
  this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);
7706
7804
  }
@@ -7869,7 +7967,7 @@ ReactDOMComponent.Mixin = {
7869
7967
  // TODO: Validate that text is allowed as a child of this node
7870
7968
  ret = escapeTextContentForBrowser(contentToUse);
7871
7969
  if ("development" !== 'production') {
7872
- setContentChildForInstrumentation.call(this, contentToUse);
7970
+ setAndValidateContentChildDev.call(this, contentToUse);
7873
7971
  }
7874
7972
  } else if (childrenToUse != null) {
7875
7973
  var mountImages = this.mountChildren(childrenToUse, transaction, context);
@@ -7906,7 +8004,7 @@ ReactDOMComponent.Mixin = {
7906
8004
  if (contentToUse != null) {
7907
8005
  // TODO: Validate that text is allowed as a child of this node
7908
8006
  if ("development" !== 'production') {
7909
- setContentChildForInstrumentation.call(this, contentToUse);
8007
+ setAndValidateContentChildDev.call(this, contentToUse);
7910
8008
  }
7911
8009
  DOMLazyTree.queueText(lazyTree, contentToUse);
7912
8010
  } else if (childrenToUse != null) {
@@ -8138,7 +8236,7 @@ ReactDOMComponent.Mixin = {
8138
8236
  if (lastContent !== nextContent) {
8139
8237
  this.updateTextContent('' + nextContent);
8140
8238
  if ("development" !== 'production') {
8141
- setContentChildForInstrumentation.call(this, nextContent);
8239
+ setAndValidateContentChildDev.call(this, nextContent);
8142
8240
  }
8143
8241
  }
8144
8242
  } else if (nextHtml != null) {
@@ -8150,7 +8248,7 @@ ReactDOMComponent.Mixin = {
8150
8248
  }
8151
8249
  } else if (nextChildren != null) {
8152
8250
  if ("development" !== 'production') {
8153
- setContentChildForInstrumentation.call(this, null);
8251
+ setAndValidateContentChildDev.call(this, null);
8154
8252
  }
8155
8253
 
8156
8254
  this.updateChildren(nextChildren, transaction, context);
@@ -8205,7 +8303,7 @@ ReactDOMComponent.Mixin = {
8205
8303
  this._wrapperState = null;
8206
8304
 
8207
8305
  if ("development" !== 'production') {
8208
- setContentChildForInstrumentation.call(this, null);
8306
+ setAndValidateContentChildDev.call(this, null);
8209
8307
  }
8210
8308
  },
8211
8309
 
@@ -8218,7 +8316,7 @@ ReactDOMComponent.Mixin = {
8218
8316
  _assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);
8219
8317
 
8220
8318
  module.exports = ReactDOMComponent;
8221
- },{"1":1,"10":10,"11":11,"135":135,"149":149,"153":153,"16":16,"161":161,"17":17,"170":170,"178":178,"18":18,"182":182,"187":187,"188":188,"189":189,"28":28,"4":4,"43":43,"45":45,"46":46,"52":52,"54":54,"55":55,"59":59,"78":78,"8":8,"83":83,"9":9,"99":99}],45:[function(_dereq_,module,exports){
8319
+ },{"1":1,"10":10,"11":11,"135":135,"149":149,"153":153,"16":16,"161":161,"17":17,"170":170,"178":178,"18":18,"182":182,"186":186,"187":187,"188":188,"28":28,"4":4,"43":43,"45":45,"46":46,"52":52,"54":54,"55":55,"59":59,"78":78,"8":8,"83":83,"9":9,"99":99}],45:[function(_dereq_,module,exports){
8222
8320
  /**
8223
8321
  * Copyright 2015-present, Facebook, Inc.
8224
8322
  * All rights reserved.
@@ -8474,7 +8572,7 @@ module.exports = ReactDOMContainerInfo;
8474
8572
 
8475
8573
  'use strict';
8476
8574
 
8477
- var _assign = _dereq_(189);
8575
+ var _assign = _dereq_(188);
8478
8576
 
8479
8577
  var DOMLazyTree = _dereq_(8);
8480
8578
  var ReactDOMComponentTree = _dereq_(46);
@@ -8521,7 +8619,7 @@ _assign(ReactDOMEmptyComponent.prototype, {
8521
8619
  });
8522
8620
 
8523
8621
  module.exports = ReactDOMEmptyComponent;
8524
- },{"189":189,"46":46,"8":8}],49:[function(_dereq_,module,exports){
8622
+ },{"188":188,"46":46,"8":8}],49:[function(_dereq_,module,exports){
8525
8623
  /**
8526
8624
  * Copyright 2013-present, Facebook, Inc.
8527
8625
  * All rights reserved.
@@ -8537,20 +8635,15 @@ module.exports = ReactDOMEmptyComponent;
8537
8635
 
8538
8636
  var ReactElement = _dereq_(65);
8539
8637
 
8540
- var mapObject = _dereq_(183);
8541
-
8542
8638
  /**
8543
8639
  * Create a factory that creates HTML tag elements.
8544
8640
  *
8545
- * @param {string} tag Tag name (e.g. `div`).
8546
8641
  * @private
8547
8642
  */
8548
- function createDOMFactory(tag) {
8549
- if ("development" !== 'production') {
8550
- var ReactElementValidator = _dereq_(66);
8551
- return ReactElementValidator.createFactory(tag);
8552
- }
8553
- return ReactElement.createFactory(tag);
8643
+ var createDOMFactory = ReactElement.createFactory;
8644
+ if ("development" !== 'production') {
8645
+ var ReactElementValidator = _dereq_(66);
8646
+ createDOMFactory = ReactElementValidator.createFactory;
8554
8647
  }
8555
8648
 
8556
8649
  /**
@@ -8559,146 +8652,145 @@ function createDOMFactory(tag) {
8559
8652
  *
8560
8653
  * @public
8561
8654
  */
8562
- var ReactDOMFactories = mapObject({
8563
- a: 'a',
8564
- abbr: 'abbr',
8565
- address: 'address',
8566
- area: 'area',
8567
- article: 'article',
8568
- aside: 'aside',
8569
- audio: 'audio',
8570
- b: 'b',
8571
- base: 'base',
8572
- bdi: 'bdi',
8573
- bdo: 'bdo',
8574
- big: 'big',
8575
- blockquote: 'blockquote',
8576
- body: 'body',
8577
- br: 'br',
8578
- button: 'button',
8579
- canvas: 'canvas',
8580
- caption: 'caption',
8581
- cite: 'cite',
8582
- code: 'code',
8583
- col: 'col',
8584
- colgroup: 'colgroup',
8585
- data: 'data',
8586
- datalist: 'datalist',
8587
- dd: 'dd',
8588
- del: 'del',
8589
- details: 'details',
8590
- dfn: 'dfn',
8591
- dialog: 'dialog',
8592
- div: 'div',
8593
- dl: 'dl',
8594
- dt: 'dt',
8595
- em: 'em',
8596
- embed: 'embed',
8597
- fieldset: 'fieldset',
8598
- figcaption: 'figcaption',
8599
- figure: 'figure',
8600
- footer: 'footer',
8601
- form: 'form',
8602
- h1: 'h1',
8603
- h2: 'h2',
8604
- h3: 'h3',
8605
- h4: 'h4',
8606
- h5: 'h5',
8607
- h6: 'h6',
8608
- head: 'head',
8609
- header: 'header',
8610
- hgroup: 'hgroup',
8611
- hr: 'hr',
8612
- html: 'html',
8613
- i: 'i',
8614
- iframe: 'iframe',
8615
- img: 'img',
8616
- input: 'input',
8617
- ins: 'ins',
8618
- kbd: 'kbd',
8619
- keygen: 'keygen',
8620
- label: 'label',
8621
- legend: 'legend',
8622
- li: 'li',
8623
- link: 'link',
8624
- main: 'main',
8625
- map: 'map',
8626
- mark: 'mark',
8627
- menu: 'menu',
8628
- menuitem: 'menuitem',
8629
- meta: 'meta',
8630
- meter: 'meter',
8631
- nav: 'nav',
8632
- noscript: 'noscript',
8633
- object: 'object',
8634
- ol: 'ol',
8635
- optgroup: 'optgroup',
8636
- option: 'option',
8637
- output: 'output',
8638
- p: 'p',
8639
- param: 'param',
8640
- picture: 'picture',
8641
- pre: 'pre',
8642
- progress: 'progress',
8643
- q: 'q',
8644
- rp: 'rp',
8645
- rt: 'rt',
8646
- ruby: 'ruby',
8647
- s: 's',
8648
- samp: 'samp',
8649
- script: 'script',
8650
- section: 'section',
8651
- select: 'select',
8652
- small: 'small',
8653
- source: 'source',
8654
- span: 'span',
8655
- strong: 'strong',
8656
- style: 'style',
8657
- sub: 'sub',
8658
- summary: 'summary',
8659
- sup: 'sup',
8660
- table: 'table',
8661
- tbody: 'tbody',
8662
- td: 'td',
8663
- textarea: 'textarea',
8664
- tfoot: 'tfoot',
8665
- th: 'th',
8666
- thead: 'thead',
8667
- time: 'time',
8668
- title: 'title',
8669
- tr: 'tr',
8670
- track: 'track',
8671
- u: 'u',
8672
- ul: 'ul',
8673
- 'var': 'var',
8674
- video: 'video',
8675
- wbr: 'wbr',
8655
+ var ReactDOMFactories = {
8656
+ a: createDOMFactory('a'),
8657
+ abbr: createDOMFactory('abbr'),
8658
+ address: createDOMFactory('address'),
8659
+ area: createDOMFactory('area'),
8660
+ article: createDOMFactory('article'),
8661
+ aside: createDOMFactory('aside'),
8662
+ audio: createDOMFactory('audio'),
8663
+ b: createDOMFactory('b'),
8664
+ base: createDOMFactory('base'),
8665
+ bdi: createDOMFactory('bdi'),
8666
+ bdo: createDOMFactory('bdo'),
8667
+ big: createDOMFactory('big'),
8668
+ blockquote: createDOMFactory('blockquote'),
8669
+ body: createDOMFactory('body'),
8670
+ br: createDOMFactory('br'),
8671
+ button: createDOMFactory('button'),
8672
+ canvas: createDOMFactory('canvas'),
8673
+ caption: createDOMFactory('caption'),
8674
+ cite: createDOMFactory('cite'),
8675
+ code: createDOMFactory('code'),
8676
+ col: createDOMFactory('col'),
8677
+ colgroup: createDOMFactory('colgroup'),
8678
+ data: createDOMFactory('data'),
8679
+ datalist: createDOMFactory('datalist'),
8680
+ dd: createDOMFactory('dd'),
8681
+ del: createDOMFactory('del'),
8682
+ details: createDOMFactory('details'),
8683
+ dfn: createDOMFactory('dfn'),
8684
+ dialog: createDOMFactory('dialog'),
8685
+ div: createDOMFactory('div'),
8686
+ dl: createDOMFactory('dl'),
8687
+ dt: createDOMFactory('dt'),
8688
+ em: createDOMFactory('em'),
8689
+ embed: createDOMFactory('embed'),
8690
+ fieldset: createDOMFactory('fieldset'),
8691
+ figcaption: createDOMFactory('figcaption'),
8692
+ figure: createDOMFactory('figure'),
8693
+ footer: createDOMFactory('footer'),
8694
+ form: createDOMFactory('form'),
8695
+ h1: createDOMFactory('h1'),
8696
+ h2: createDOMFactory('h2'),
8697
+ h3: createDOMFactory('h3'),
8698
+ h4: createDOMFactory('h4'),
8699
+ h5: createDOMFactory('h5'),
8700
+ h6: createDOMFactory('h6'),
8701
+ head: createDOMFactory('head'),
8702
+ header: createDOMFactory('header'),
8703
+ hgroup: createDOMFactory('hgroup'),
8704
+ hr: createDOMFactory('hr'),
8705
+ html: createDOMFactory('html'),
8706
+ i: createDOMFactory('i'),
8707
+ iframe: createDOMFactory('iframe'),
8708
+ img: createDOMFactory('img'),
8709
+ input: createDOMFactory('input'),
8710
+ ins: createDOMFactory('ins'),
8711
+ kbd: createDOMFactory('kbd'),
8712
+ keygen: createDOMFactory('keygen'),
8713
+ label: createDOMFactory('label'),
8714
+ legend: createDOMFactory('legend'),
8715
+ li: createDOMFactory('li'),
8716
+ link: createDOMFactory('link'),
8717
+ main: createDOMFactory('main'),
8718
+ map: createDOMFactory('map'),
8719
+ mark: createDOMFactory('mark'),
8720
+ menu: createDOMFactory('menu'),
8721
+ menuitem: createDOMFactory('menuitem'),
8722
+ meta: createDOMFactory('meta'),
8723
+ meter: createDOMFactory('meter'),
8724
+ nav: createDOMFactory('nav'),
8725
+ noscript: createDOMFactory('noscript'),
8726
+ object: createDOMFactory('object'),
8727
+ ol: createDOMFactory('ol'),
8728
+ optgroup: createDOMFactory('optgroup'),
8729
+ option: createDOMFactory('option'),
8730
+ output: createDOMFactory('output'),
8731
+ p: createDOMFactory('p'),
8732
+ param: createDOMFactory('param'),
8733
+ picture: createDOMFactory('picture'),
8734
+ pre: createDOMFactory('pre'),
8735
+ progress: createDOMFactory('progress'),
8736
+ q: createDOMFactory('q'),
8737
+ rp: createDOMFactory('rp'),
8738
+ rt: createDOMFactory('rt'),
8739
+ ruby: createDOMFactory('ruby'),
8740
+ s: createDOMFactory('s'),
8741
+ samp: createDOMFactory('samp'),
8742
+ script: createDOMFactory('script'),
8743
+ section: createDOMFactory('section'),
8744
+ select: createDOMFactory('select'),
8745
+ small: createDOMFactory('small'),
8746
+ source: createDOMFactory('source'),
8747
+ span: createDOMFactory('span'),
8748
+ strong: createDOMFactory('strong'),
8749
+ style: createDOMFactory('style'),
8750
+ sub: createDOMFactory('sub'),
8751
+ summary: createDOMFactory('summary'),
8752
+ sup: createDOMFactory('sup'),
8753
+ table: createDOMFactory('table'),
8754
+ tbody: createDOMFactory('tbody'),
8755
+ td: createDOMFactory('td'),
8756
+ textarea: createDOMFactory('textarea'),
8757
+ tfoot: createDOMFactory('tfoot'),
8758
+ th: createDOMFactory('th'),
8759
+ thead: createDOMFactory('thead'),
8760
+ time: createDOMFactory('time'),
8761
+ title: createDOMFactory('title'),
8762
+ tr: createDOMFactory('tr'),
8763
+ track: createDOMFactory('track'),
8764
+ u: createDOMFactory('u'),
8765
+ ul: createDOMFactory('ul'),
8766
+ 'var': createDOMFactory('var'),
8767
+ video: createDOMFactory('video'),
8768
+ wbr: createDOMFactory('wbr'),
8676
8769
 
8677
8770
  // SVG
8678
- circle: 'circle',
8679
- clipPath: 'clipPath',
8680
- defs: 'defs',
8681
- ellipse: 'ellipse',
8682
- g: 'g',
8683
- image: 'image',
8684
- line: 'line',
8685
- linearGradient: 'linearGradient',
8686
- mask: 'mask',
8687
- path: 'path',
8688
- pattern: 'pattern',
8689
- polygon: 'polygon',
8690
- polyline: 'polyline',
8691
- radialGradient: 'radialGradient',
8692
- rect: 'rect',
8693
- stop: 'stop',
8694
- svg: 'svg',
8695
- text: 'text',
8696
- tspan: 'tspan'
8697
-
8698
- }, createDOMFactory);
8771
+ circle: createDOMFactory('circle'),
8772
+ clipPath: createDOMFactory('clipPath'),
8773
+ defs: createDOMFactory('defs'),
8774
+ ellipse: createDOMFactory('ellipse'),
8775
+ g: createDOMFactory('g'),
8776
+ image: createDOMFactory('image'),
8777
+ line: createDOMFactory('line'),
8778
+ linearGradient: createDOMFactory('linearGradient'),
8779
+ mask: createDOMFactory('mask'),
8780
+ path: createDOMFactory('path'),
8781
+ pattern: createDOMFactory('pattern'),
8782
+ polygon: createDOMFactory('polygon'),
8783
+ polyline: createDOMFactory('polyline'),
8784
+ radialGradient: createDOMFactory('radialGradient'),
8785
+ rect: createDOMFactory('rect'),
8786
+ stop: createDOMFactory('stop'),
8787
+ svg: createDOMFactory('svg'),
8788
+ text: createDOMFactory('text'),
8789
+ tspan: createDOMFactory('tspan')
8790
+ };
8699
8791
 
8700
8792
  module.exports = ReactDOMFactories;
8701
- },{"183":183,"65":65,"66":66}],50:[function(_dereq_,module,exports){
8793
+ },{"65":65,"66":66}],50:[function(_dereq_,module,exports){
8702
8794
  /**
8703
8795
  * Copyright 2013-present, Facebook, Inc.
8704
8796
  * All rights reserved.
@@ -8767,7 +8859,7 @@ module.exports = ReactDOMIDOperations;
8767
8859
  'use strict';
8768
8860
 
8769
8861
  var _prodInvariant = _dereq_(153),
8770
- _assign = _dereq_(189);
8862
+ _assign = _dereq_(188);
8771
8863
 
8772
8864
  var DisabledInputUtils = _dereq_(14);
8773
8865
  var DOMPropertyOperations = _dereq_(11);
@@ -8776,7 +8868,7 @@ var ReactDOMComponentTree = _dereq_(46);
8776
8868
  var ReactUpdates = _dereq_(107);
8777
8869
 
8778
8870
  var invariant = _dereq_(178);
8779
- var warning = _dereq_(188);
8871
+ var warning = _dereq_(187);
8780
8872
 
8781
8873
  var didWarnValueLink = false;
8782
8874
  var didWarnCheckedLink = false;
@@ -8794,7 +8886,7 @@ function forceUpdateIfMounted() {
8794
8886
 
8795
8887
  function isControlled(props) {
8796
8888
  var usesChecked = props.type === 'checkbox' || props.type === 'radio';
8797
- return usesChecked ? props.checked !== undefined : props.value !== undefined;
8889
+ return usesChecked ? props.checked != null : props.value != null;
8798
8890
  }
8799
8891
 
8800
8892
  /**
@@ -8824,7 +8916,11 @@ var ReactDOMInput = {
8824
8916
  type: undefined,
8825
8917
  // Make sure we set .step before .value (setting .value before .step
8826
8918
  // means .value is rounded on mount, based upon step precision)
8827
- step: undefined
8919
+ step: undefined,
8920
+ // Make sure we set .min & .max before .value (to ensure proper order
8921
+ // in corner cases such as min or max deriving from value, e.g. Issue #7170)
8922
+ min: undefined,
8923
+ max: undefined
8828
8924
  }, DisabledInputUtils.getHostProps(inst, props), {
8829
8925
  defaultChecked: undefined,
8830
8926
  defaultValue: undefined,
@@ -9018,7 +9114,7 @@ function _handleChange(event) {
9018
9114
  }
9019
9115
 
9020
9116
  module.exports = ReactDOMInput;
9021
- },{"107":107,"11":11,"14":14,"153":153,"178":178,"188":188,"189":189,"25":25,"46":46}],53:[function(_dereq_,module,exports){
9117
+ },{"107":107,"11":11,"14":14,"153":153,"178":178,"187":187,"188":188,"25":25,"46":46}],53:[function(_dereq_,module,exports){
9022
9118
  /**
9023
9119
  * Copyright 2013-present, Facebook, Inc.
9024
9120
  * All rights reserved.
@@ -9034,7 +9130,7 @@ module.exports = ReactDOMInput;
9034
9130
 
9035
9131
  var ReactComponentTreeHook = _dereq_(38);
9036
9132
 
9037
- var warning = _dereq_(188);
9133
+ var warning = _dereq_(187);
9038
9134
 
9039
9135
  var didWarnValueNull = false;
9040
9136
 
@@ -9062,7 +9158,7 @@ var ReactDOMNullInputValuePropHook = {
9062
9158
  };
9063
9159
 
9064
9160
  module.exports = ReactDOMNullInputValuePropHook;
9065
- },{"188":188,"38":38}],54:[function(_dereq_,module,exports){
9161
+ },{"187":187,"38":38}],54:[function(_dereq_,module,exports){
9066
9162
  /**
9067
9163
  * Copyright 2013-present, Facebook, Inc.
9068
9164
  * All rights reserved.
@@ -9076,13 +9172,13 @@ module.exports = ReactDOMNullInputValuePropHook;
9076
9172
 
9077
9173
  'use strict';
9078
9174
 
9079
- var _assign = _dereq_(189);
9175
+ var _assign = _dereq_(188);
9080
9176
 
9081
9177
  var ReactChildren = _dereq_(32);
9082
9178
  var ReactDOMComponentTree = _dereq_(46);
9083
9179
  var ReactDOMSelect = _dereq_(55);
9084
9180
 
9085
- var warning = _dereq_(188);
9181
+ var warning = _dereq_(187);
9086
9182
  var didWarnInvalidOptionChildren = false;
9087
9183
 
9088
9184
  function flattenChildren(children) {
@@ -9186,7 +9282,7 @@ var ReactDOMOption = {
9186
9282
  };
9187
9283
 
9188
9284
  module.exports = ReactDOMOption;
9189
- },{"188":188,"189":189,"32":32,"46":46,"55":55}],55:[function(_dereq_,module,exports){
9285
+ },{"187":187,"188":188,"32":32,"46":46,"55":55}],55:[function(_dereq_,module,exports){
9190
9286
  /**
9191
9287
  * Copyright 2013-present, Facebook, Inc.
9192
9288
  * All rights reserved.
@@ -9200,14 +9296,14 @@ module.exports = ReactDOMOption;
9200
9296
 
9201
9297
  'use strict';
9202
9298
 
9203
- var _assign = _dereq_(189);
9299
+ var _assign = _dereq_(188);
9204
9300
 
9205
9301
  var DisabledInputUtils = _dereq_(14);
9206
9302
  var LinkedValueUtils = _dereq_(25);
9207
9303
  var ReactDOMComponentTree = _dereq_(46);
9208
9304
  var ReactUpdates = _dereq_(107);
9209
9305
 
9210
- var warning = _dereq_(188);
9306
+ var warning = _dereq_(187);
9211
9307
 
9212
9308
  var didWarnValueLink = false;
9213
9309
  var didWarnValueDefaultValue = false;
@@ -9388,7 +9484,7 @@ function _handleChange(event) {
9388
9484
  }
9389
9485
 
9390
9486
  module.exports = ReactDOMSelect;
9391
- },{"107":107,"14":14,"188":188,"189":189,"25":25,"46":46}],56:[function(_dereq_,module,exports){
9487
+ },{"107":107,"14":14,"187":187,"188":188,"25":25,"46":46}],56:[function(_dereq_,module,exports){
9392
9488
  /**
9393
9489
  * Copyright 2013-present, Facebook, Inc.
9394
9490
  * All rights reserved.
@@ -9643,7 +9739,7 @@ module.exports = ReactDOMServer;
9643
9739
  'use strict';
9644
9740
 
9645
9741
  var _prodInvariant = _dereq_(153),
9646
- _assign = _dereq_(189);
9742
+ _assign = _dereq_(188);
9647
9743
 
9648
9744
  var DOMChildrenOperations = _dereq_(7);
9649
9745
  var DOMLazyTree = _dereq_(8);
@@ -9704,7 +9800,7 @@ _assign(ReactDOMTextComponent.prototype, {
9704
9800
  if (parentInfo) {
9705
9801
  // parentInfo should always be present except for the top-level
9706
9802
  // component when server rendering
9707
- validateDOMNesting('#text', this, parentInfo);
9803
+ validateDOMNesting(null, this._stringText, this, parentInfo);
9708
9804
  }
9709
9805
  }
9710
9806
 
@@ -9793,7 +9889,7 @@ _assign(ReactDOMTextComponent.prototype, {
9793
9889
  });
9794
9890
 
9795
9891
  module.exports = ReactDOMTextComponent;
9796
- },{"135":135,"153":153,"161":161,"178":178,"189":189,"46":46,"7":7,"8":8}],59:[function(_dereq_,module,exports){
9892
+ },{"135":135,"153":153,"161":161,"178":178,"188":188,"46":46,"7":7,"8":8}],59:[function(_dereq_,module,exports){
9797
9893
  /**
9798
9894
  * Copyright 2013-present, Facebook, Inc.
9799
9895
  * All rights reserved.
@@ -9808,7 +9904,7 @@ module.exports = ReactDOMTextComponent;
9808
9904
  'use strict';
9809
9905
 
9810
9906
  var _prodInvariant = _dereq_(153),
9811
- _assign = _dereq_(189);
9907
+ _assign = _dereq_(188);
9812
9908
 
9813
9909
  var DisabledInputUtils = _dereq_(14);
9814
9910
  var LinkedValueUtils = _dereq_(25);
@@ -9816,7 +9912,7 @@ var ReactDOMComponentTree = _dereq_(46);
9816
9912
  var ReactUpdates = _dereq_(107);
9817
9913
 
9818
9914
  var invariant = _dereq_(178);
9819
- var warning = _dereq_(188);
9915
+ var warning = _dereq_(187);
9820
9916
 
9821
9917
  var didWarnValueLink = false;
9822
9918
  var didWarnValDefaultVal = false;
@@ -9949,7 +10045,7 @@ function _handleChange(event) {
9949
10045
  }
9950
10046
 
9951
10047
  module.exports = ReactDOMTextarea;
9952
- },{"107":107,"14":14,"153":153,"178":178,"188":188,"189":189,"25":25,"46":46}],60:[function(_dereq_,module,exports){
10048
+ },{"107":107,"14":14,"153":153,"178":178,"187":187,"188":188,"25":25,"46":46}],60:[function(_dereq_,module,exports){
9953
10049
  /**
9954
10050
  * Copyright 2015-present, Facebook, Inc.
9955
10051
  * All rights reserved.
@@ -10104,7 +10200,7 @@ var DOMProperty = _dereq_(10);
10104
10200
  var EventPluginRegistry = _dereq_(18);
10105
10201
  var ReactComponentTreeHook = _dereq_(38);
10106
10202
 
10107
- var warning = _dereq_(188);
10203
+ var warning = _dereq_(187);
10108
10204
 
10109
10205
  if ("development" !== 'production') {
10110
10206
  var reactProps = {
@@ -10199,7 +10295,7 @@ var ReactDOMUnknownPropertyHook = {
10199
10295
  };
10200
10296
 
10201
10297
  module.exports = ReactDOMUnknownPropertyHook;
10202
- },{"10":10,"18":18,"188":188,"38":38}],62:[function(_dereq_,module,exports){
10298
+ },{"10":10,"18":18,"187":187,"38":38}],62:[function(_dereq_,module,exports){
10203
10299
  /**
10204
10300
  * Copyright 2016-present, Facebook, Inc.
10205
10301
  * All rights reserved.
@@ -10219,8 +10315,8 @@ var ReactComponentTreeHook = _dereq_(38);
10219
10315
  var ReactChildrenMutationWarningHook = _dereq_(33);
10220
10316
  var ExecutionEnvironment = _dereq_(164);
10221
10317
 
10222
- var performanceNow = _dereq_(186);
10223
- var warning = _dereq_(188);
10318
+ var performanceNow = _dereq_(185);
10319
+ var warning = _dereq_(187);
10224
10320
 
10225
10321
  var hooks = [];
10226
10322
  var didHookThrowForEvent = {};
@@ -10440,12 +10536,6 @@ var ReactDebugTool = {
10440
10536
  endLifeCycleTimer(debugID, timerType);
10441
10537
  emitEvent('onEndLifeCycleTimer', debugID, timerType);
10442
10538
  },
10443
- onError: function (debugID) {
10444
- if (currentTimerDebugID != null) {
10445
- endLifeCycleTimer(currentTimerDebugID, currentTimerType);
10446
- }
10447
- emitEvent('onError', debugID);
10448
- },
10449
10539
  onBeginProcessingChildContext: function () {
10450
10540
  emitEvent('onBeginProcessingChildContext');
10451
10541
  },
@@ -10507,7 +10597,7 @@ if (/[?&]react_perf\b/.test(url)) {
10507
10597
  }
10508
10598
 
10509
10599
  module.exports = ReactDebugTool;
10510
- },{"164":164,"186":186,"188":188,"33":33,"38":38,"74":74,"79":79}],63:[function(_dereq_,module,exports){
10600
+ },{"164":164,"185":185,"187":187,"33":33,"38":38,"74":74,"79":79}],63:[function(_dereq_,module,exports){
10511
10601
  /**
10512
10602
  * Copyright 2013-present, Facebook, Inc.
10513
10603
  * All rights reserved.
@@ -10521,7 +10611,7 @@ module.exports = ReactDebugTool;
10521
10611
 
10522
10612
  'use strict';
10523
10613
 
10524
- var _assign = _dereq_(189);
10614
+ var _assign = _dereq_(188);
10525
10615
 
10526
10616
  var ReactUpdates = _dereq_(107);
10527
10617
  var Transaction = _dereq_(127);
@@ -10576,7 +10666,7 @@ var ReactDefaultBatchingStrategy = {
10576
10666
  };
10577
10667
 
10578
10668
  module.exports = ReactDefaultBatchingStrategy;
10579
- },{"107":107,"127":127,"170":170,"189":189}],64:[function(_dereq_,module,exports){
10669
+ },{"107":107,"127":127,"170":170,"188":188}],64:[function(_dereq_,module,exports){
10580
10670
  /**
10581
10671
  * Copyright 2013-present, Facebook, Inc.
10582
10672
  * All rights reserved.
@@ -10675,11 +10765,11 @@ module.exports = {
10675
10765
 
10676
10766
  'use strict';
10677
10767
 
10678
- var _assign = _dereq_(189);
10768
+ var _assign = _dereq_(188);
10679
10769
 
10680
10770
  var ReactCurrentOwner = _dereq_(41);
10681
10771
 
10682
- var warning = _dereq_(188);
10772
+ var warning = _dereq_(187);
10683
10773
  var canDefineProperty = _dereq_(131);
10684
10774
  var hasOwnProperty = Object.prototype.hasOwnProperty;
10685
10775
 
@@ -10720,6 +10810,34 @@ function hasValidKey(config) {
10720
10810
  return config.key !== undefined;
10721
10811
  }
10722
10812
 
10813
+ function defineKeyPropWarningGetter(props, displayName) {
10814
+ var warnAboutAccessingKey = function () {
10815
+ if (!specialPropKeyWarningShown) {
10816
+ specialPropKeyWarningShown = true;
10817
+ "development" !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
10818
+ }
10819
+ };
10820
+ warnAboutAccessingKey.isReactWarning = true;
10821
+ Object.defineProperty(props, 'key', {
10822
+ get: warnAboutAccessingKey,
10823
+ configurable: true
10824
+ });
10825
+ }
10826
+
10827
+ function defineRefPropWarningGetter(props, displayName) {
10828
+ var warnAboutAccessingRef = function () {
10829
+ if (!specialPropRefWarningShown) {
10830
+ specialPropRefWarningShown = true;
10831
+ "development" !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
10832
+ }
10833
+ };
10834
+ warnAboutAccessingRef.isReactWarning = true;
10835
+ Object.defineProperty(props, 'ref', {
10836
+ get: warnAboutAccessingRef,
10837
+ configurable: true
10838
+ });
10839
+ }
10840
+
10723
10841
  /**
10724
10842
  * Factory method to create a new React element. This no longer adheres to
10725
10843
  * the class pattern, so do not use new to call it. Also, no instanceof check
@@ -10826,14 +10944,6 @@ ReactElement.createElement = function (type, config, children) {
10826
10944
  var source = null;
10827
10945
 
10828
10946
  if (config != null) {
10829
- if ("development" !== 'production') {
10830
- "development" !== 'production' ? warning(
10831
- /* eslint-disable no-proto */
10832
- config.__proto__ == null || config.__proto__ === Object.prototype,
10833
- /* eslint-enable no-proto */
10834
- 'React.createElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;
10835
- }
10836
-
10837
10947
  if (hasValidRef(config)) {
10838
10948
  ref = config.ref;
10839
10949
  }
@@ -10874,39 +10984,15 @@ ReactElement.createElement = function (type, config, children) {
10874
10984
  }
10875
10985
  }
10876
10986
  if ("development" !== 'production') {
10877
- var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
10878
-
10879
- // Create dummy `key` and `ref` property to `props` to warn users against its use
10880
- var warnAboutAccessingKey = function () {
10881
- if (!specialPropKeyWarningShown) {
10882
- specialPropKeyWarningShown = true;
10883
- "development" !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
10884
- }
10885
- return undefined;
10886
- };
10887
- warnAboutAccessingKey.isReactWarning = true;
10888
-
10889
- var warnAboutAccessingRef = function () {
10890
- if (!specialPropRefWarningShown) {
10891
- specialPropRefWarningShown = true;
10892
- "development" !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
10893
- }
10894
- return undefined;
10895
- };
10896
- warnAboutAccessingRef.isReactWarning = true;
10897
-
10898
- if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {
10899
- if (!props.hasOwnProperty('key')) {
10900
- Object.defineProperty(props, 'key', {
10901
- get: warnAboutAccessingKey,
10902
- configurable: true
10903
- });
10904
- }
10905
- if (!props.hasOwnProperty('ref')) {
10906
- Object.defineProperty(props, 'ref', {
10907
- get: warnAboutAccessingRef,
10908
- configurable: true
10909
- });
10987
+ if (key || ref) {
10988
+ if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {
10989
+ var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
10990
+ if (key) {
10991
+ defineKeyPropWarningGetter(props, displayName);
10992
+ }
10993
+ if (ref) {
10994
+ defineRefPropWarningGetter(props, displayName);
10995
+ }
10910
10996
  }
10911
10997
  }
10912
10998
  }
@@ -10958,14 +11044,6 @@ ReactElement.cloneElement = function (element, config, children) {
10958
11044
  var owner = element._owner;
10959
11045
 
10960
11046
  if (config != null) {
10961
- if ("development" !== 'production') {
10962
- "development" !== 'production' ? warning(
10963
- /* eslint-disable no-proto */
10964
- config.__proto__ == null || config.__proto__ === Object.prototype,
10965
- /* eslint-enable no-proto */
10966
- 'React.cloneElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;
10967
- }
10968
-
10969
11047
  if (hasValidRef(config)) {
10970
11048
  // Silently steal the ref from the parent.
10971
11049
  ref = config.ref;
@@ -11022,7 +11100,7 @@ ReactElement.isValidElement = function (object) {
11022
11100
  ReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE;
11023
11101
 
11024
11102
  module.exports = ReactElement;
11025
- },{"131":131,"188":188,"189":189,"41":41}],66:[function(_dereq_,module,exports){
11103
+ },{"131":131,"187":187,"188":188,"41":41}],66:[function(_dereq_,module,exports){
11026
11104
  /**
11027
11105
  * Copyright 2014-present, Facebook, Inc.
11028
11106
  * All rights reserved.
@@ -11052,7 +11130,7 @@ var checkReactTypeSpec = _dereq_(132);
11052
11130
 
11053
11131
  var canDefineProperty = _dereq_(131);
11054
11132
  var getIteratorFn = _dereq_(144);
11055
- var warning = _dereq_(188);
11133
+ var warning = _dereq_(187);
11056
11134
 
11057
11135
  function getDeclarationErrorAddendum() {
11058
11136
  if (ReactCurrentOwner.current) {
@@ -11251,7 +11329,7 @@ var ReactElementValidator = {
11251
11329
  };
11252
11330
 
11253
11331
  module.exports = ReactElementValidator;
11254
- },{"131":131,"132":132,"144":144,"188":188,"38":38,"41":41,"65":65,"90":90}],67:[function(_dereq_,module,exports){
11332
+ },{"131":131,"132":132,"144":144,"187":187,"38":38,"41":41,"65":65,"90":90}],67:[function(_dereq_,module,exports){
11255
11333
  /**
11256
11334
  * Copyright 2014-present, Facebook, Inc.
11257
11335
  * All rights reserved.
@@ -11407,7 +11485,7 @@ module.exports = ReactEventEmitterMixin;
11407
11485
 
11408
11486
  'use strict';
11409
11487
 
11410
- var _assign = _dereq_(189);
11488
+ var _assign = _dereq_(188);
11411
11489
 
11412
11490
  var EventListener = _dereq_(163);
11413
11491
  var ExecutionEnvironment = _dereq_(164);
@@ -11551,7 +11629,7 @@ var ReactEventListener = {
11551
11629
  };
11552
11630
 
11553
11631
  module.exports = ReactEventListener;
11554
- },{"107":107,"142":142,"163":163,"164":164,"175":175,"189":189,"26":26,"46":46}],71:[function(_dereq_,module,exports){
11632
+ },{"107":107,"142":142,"163":163,"164":164,"175":175,"188":188,"26":26,"46":46}],71:[function(_dereq_,module,exports){
11555
11633
  /**
11556
11634
  * Copyright 2013-present, Facebook, Inc.
11557
11635
  * All rights reserved.
@@ -11595,7 +11673,7 @@ var ReactElement = _dereq_(65);
11595
11673
 
11596
11674
  var emptyFunction = _dereq_(170);
11597
11675
  var invariant = _dereq_(178);
11598
- var warning = _dereq_(188);
11676
+ var warning = _dereq_(187);
11599
11677
 
11600
11678
  /**
11601
11679
  * We used to allow keyed objects to serve as a collection of ReactElements,
@@ -11644,7 +11722,7 @@ var ReactFragment = {
11644
11722
  };
11645
11723
 
11646
11724
  module.exports = ReactFragment;
11647
- },{"153":153,"170":170,"178":178,"188":188,"32":32,"65":65}],73:[function(_dereq_,module,exports){
11725
+ },{"153":153,"170":170,"178":178,"187":187,"32":32,"65":65}],73:[function(_dereq_,module,exports){
11648
11726
  /**
11649
11727
  * Copyright 2014-present, Facebook, Inc.
11650
11728
  * All rights reserved.
@@ -11659,7 +11737,7 @@ module.exports = ReactFragment;
11659
11737
  'use strict';
11660
11738
 
11661
11739
  var _prodInvariant = _dereq_(153),
11662
- _assign = _dereq_(189);
11740
+ _assign = _dereq_(188);
11663
11741
 
11664
11742
  var invariant = _dereq_(178);
11665
11743
 
@@ -11721,7 +11799,7 @@ var ReactHostComponent = {
11721
11799
  };
11722
11800
 
11723
11801
  module.exports = ReactHostComponent;
11724
- },{"153":153,"178":178,"189":189}],74:[function(_dereq_,module,exports){
11802
+ },{"153":153,"178":178,"188":188}],74:[function(_dereq_,module,exports){
11725
11803
  /**
11726
11804
  * Copyright 2016-present, Facebook, Inc.
11727
11805
  * All rights reserved.
@@ -12006,7 +12084,7 @@ module.exports = { debugTool: debugTool };
12006
12084
 
12007
12085
  'use strict';
12008
12086
 
12009
- var warning = _dereq_(188);
12087
+ var warning = _dereq_(187);
12010
12088
 
12011
12089
  if ("development" !== 'production') {
12012
12090
  var processingChildContext = false;
@@ -12029,7 +12107,7 @@ var ReactInvalidSetStateWarningHook = {
12029
12107
  };
12030
12108
 
12031
12109
  module.exports = ReactInvalidSetStateWarningHook;
12032
- },{"188":188}],80:[function(_dereq_,module,exports){
12110
+ },{"187":187}],80:[function(_dereq_,module,exports){
12033
12111
  /**
12034
12112
  * Copyright 2013-present, Facebook, Inc.
12035
12113
  * All rights reserved.
@@ -12189,7 +12267,7 @@ var instantiateReactComponent = _dereq_(148);
12189
12267
  var invariant = _dereq_(178);
12190
12268
  var setInnerHTML = _dereq_(155);
12191
12269
  var shouldUpdateReactComponent = _dereq_(158);
12192
- var warning = _dereq_(188);
12270
+ var warning = _dereq_(187);
12193
12271
 
12194
12272
  var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
12195
12273
  var ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;
@@ -12329,6 +12407,41 @@ function hasNonRootReactChild(container) {
12329
12407
  }
12330
12408
  }
12331
12409
 
12410
+ /**
12411
+ * True if the supplied DOM node is a React DOM element and
12412
+ * it has been rendered by another copy of React.
12413
+ *
12414
+ * @param {?DOMElement} node The candidate DOM node.
12415
+ * @return {boolean} True if the DOM has been rendered by another copy of React
12416
+ * @internal
12417
+ */
12418
+ function nodeIsRenderedByOtherInstance(container) {
12419
+ var rootEl = getReactRootElementInContainer(container);
12420
+ return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));
12421
+ }
12422
+
12423
+ /**
12424
+ * True if the supplied DOM node is a valid node element.
12425
+ *
12426
+ * @param {?DOMElement} node The candidate DOM node.
12427
+ * @return {boolean} True if the DOM is a valid DOM node.
12428
+ * @internal
12429
+ */
12430
+ function isValidContainer(node) {
12431
+ return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));
12432
+ }
12433
+
12434
+ /**
12435
+ * True if the supplied DOM node is a valid React node element.
12436
+ *
12437
+ * @param {?DOMElement} node The candidate DOM node.
12438
+ * @return {boolean} True if the DOM is a valid React DOM node.
12439
+ * @internal
12440
+ */
12441
+ function isReactNode(node) {
12442
+ return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));
12443
+ }
12444
+
12332
12445
  function getHostRootInstanceInContainer(container) {
12333
12446
  var rootEl = getReactRootElementInContainer(container);
12334
12447
  var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);
@@ -12429,7 +12542,7 @@ var ReactMount = {
12429
12542
  // verify that that's the case.
12430
12543
  "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;
12431
12544
 
12432
- !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;
12545
+ !isValidContainer(container) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;
12433
12546
 
12434
12547
  ReactBrowserEventEmitter.ensureScrollValueMonitoring();
12435
12548
  var componentInstance = instantiateReactComponent(nextElement, false);
@@ -12558,7 +12671,11 @@ var ReactMount = {
12558
12671
  // render but we still don't expect to be in a render call here.)
12559
12672
  "development" !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;
12560
12673
 
12561
- !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;
12674
+ !isValidContainer(container) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;
12675
+
12676
+ if ("development" !== 'production') {
12677
+ "development" !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;
12678
+ }
12562
12679
 
12563
12680
  var prevComponent = getTopLevelWrapperInContainer(container);
12564
12681
  if (!prevComponent) {
@@ -12581,7 +12698,7 @@ var ReactMount = {
12581
12698
  },
12582
12699
 
12583
12700
  _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {
12584
- !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;
12701
+ !isValidContainer(container) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;
12585
12702
 
12586
12703
  if (shouldReuseMarkup) {
12587
12704
  var rootElement = getReactRootElementInContainer(container);
@@ -12648,7 +12765,7 @@ var ReactMount = {
12648
12765
  };
12649
12766
 
12650
12767
  module.exports = ReactMount;
12651
- },{"10":10,"106":106,"107":107,"148":148,"153":153,"155":155,"158":158,"171":171,"178":178,"188":188,"28":28,"41":41,"46":46,"47":47,"50":50,"65":65,"71":71,"77":77,"78":78,"8":8,"81":81,"95":95}],83:[function(_dereq_,module,exports){
12768
+ },{"10":10,"106":106,"107":107,"148":148,"153":153,"155":155,"158":158,"171":171,"178":178,"187":187,"28":28,"41":41,"46":46,"47":47,"50":50,"65":65,"71":71,"77":77,"78":78,"8":8,"81":81,"95":95}],83:[function(_dereq_,module,exports){
12652
12769
  /**
12653
12770
  * Copyright 2013-present, Facebook, Inc.
12654
12771
  * All rights reserved.
@@ -13188,7 +13305,7 @@ module.exports = ReactNodeTypes;
13188
13305
 
13189
13306
  'use strict';
13190
13307
 
13191
- var warning = _dereq_(188);
13308
+ var warning = _dereq_(187);
13192
13309
 
13193
13310
  function warnNoop(publicInstance, callerName) {
13194
13311
  if ("development" !== 'production') {
@@ -13271,7 +13388,7 @@ var ReactNoopUpdateQueue = {
13271
13388
  };
13272
13389
 
13273
13390
  module.exports = ReactNoopUpdateQueue;
13274
- },{"188":188}],87:[function(_dereq_,module,exports){
13391
+ },{"187":187}],87:[function(_dereq_,module,exports){
13275
13392
  /**
13276
13393
  * Copyright 2013-present, Facebook, Inc.
13277
13394
  * All rights reserved.
@@ -13380,12 +13497,12 @@ module.exports = ReactOwner;
13380
13497
 
13381
13498
  'use strict';
13382
13499
 
13383
- var _assign = _dereq_(189);
13500
+ var _assign = _dereq_(188);
13384
13501
 
13385
13502
  var _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
13386
13503
 
13387
13504
  var ReactDebugTool = _dereq_(62);
13388
- var warning = _dereq_(188);
13505
+ var warning = _dereq_(187);
13389
13506
  var alreadyWarned = false;
13390
13507
 
13391
13508
  function roundFloat(val) {
@@ -13861,7 +13978,7 @@ var ReactPerfAnalysis = {
13861
13978
  };
13862
13979
 
13863
13980
  module.exports = ReactPerfAnalysis;
13864
- },{"188":188,"189":189,"62":62}],89:[function(_dereq_,module,exports){
13981
+ },{"187":187,"188":188,"62":62}],89:[function(_dereq_,module,exports){
13865
13982
  /**
13866
13983
  * Copyright 2013-present, Facebook, Inc.
13867
13984
  * All rights reserved.
@@ -13929,7 +14046,7 @@ var ReactPropTypesSecret = _dereq_(92);
13929
14046
 
13930
14047
  var emptyFunction = _dereq_(170);
13931
14048
  var getIteratorFn = _dereq_(144);
13932
- var warning = _dereq_(188);
14049
+ var warning = _dereq_(187);
13933
14050
 
13934
14051
  /**
13935
14052
  * Collection of methods that allow declaration and validation of props that are
@@ -14018,6 +14135,20 @@ function is(x, y) {
14018
14135
  }
14019
14136
  /*eslint-enable no-self-compare*/
14020
14137
 
14138
+ /**
14139
+ * We use an Error-like object for backward compatibility as people may call
14140
+ * PropTypes directly and inspect their output. However we don't use real
14141
+ * Errors anymore. We don't inspect their stack anyway, and creating them
14142
+ * is prohibitively expensive if they are created too often, such as what
14143
+ * happens in oneOfType() for any type before the one that matched.
14144
+ */
14145
+ function PropTypeError(message) {
14146
+ this.message = message;
14147
+ this.stack = '';
14148
+ }
14149
+ // Make `instanceof Error` still work for returned errors.
14150
+ PropTypeError.prototype = Error.prototype;
14151
+
14021
14152
  function createChainableTypeChecker(validate) {
14022
14153
  if ("development" !== 'production') {
14023
14154
  var manualPropTypeCallCache = {};
@@ -14037,7 +14168,7 @@ function createChainableTypeChecker(validate) {
14037
14168
  if (props[propName] == null) {
14038
14169
  var locationName = ReactPropTypeLocationNames[location];
14039
14170
  if (isRequired) {
14040
- return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));
14171
+ return new PropTypeError('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));
14041
14172
  }
14042
14173
  return null;
14043
14174
  } else {
@@ -14062,7 +14193,7 @@ function createPrimitiveTypeChecker(expectedType) {
14062
14193
  // 'of type `object`'.
14063
14194
  var preciseType = getPreciseType(propValue);
14064
14195
 
14065
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
14196
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
14066
14197
  }
14067
14198
  return null;
14068
14199
  }
@@ -14076,13 +14207,13 @@ function createAnyTypeChecker() {
14076
14207
  function createArrayOfTypeChecker(typeChecker) {
14077
14208
  function validate(props, propName, componentName, location, propFullName) {
14078
14209
  if (typeof typeChecker !== 'function') {
14079
- return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
14210
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
14080
14211
  }
14081
14212
  var propValue = props[propName];
14082
14213
  if (!Array.isArray(propValue)) {
14083
14214
  var locationName = ReactPropTypeLocationNames[location];
14084
14215
  var propType = getPropType(propValue);
14085
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
14216
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
14086
14217
  }
14087
14218
  for (var i = 0; i < propValue.length; i++) {
14088
14219
  var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
@@ -14101,7 +14232,7 @@ function createElementTypeChecker() {
14101
14232
  if (!ReactElement.isValidElement(propValue)) {
14102
14233
  var locationName = ReactPropTypeLocationNames[location];
14103
14234
  var propType = getPropType(propValue);
14104
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
14235
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
14105
14236
  }
14106
14237
  return null;
14107
14238
  }
@@ -14114,7 +14245,7 @@ function createInstanceTypeChecker(expectedClass) {
14114
14245
  var locationName = ReactPropTypeLocationNames[location];
14115
14246
  var expectedClassName = expectedClass.name || ANONYMOUS;
14116
14247
  var actualClassName = getClassName(props[propName]);
14117
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
14248
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
14118
14249
  }
14119
14250
  return null;
14120
14251
  }
@@ -14137,7 +14268,7 @@ function createEnumTypeChecker(expectedValues) {
14137
14268
 
14138
14269
  var locationName = ReactPropTypeLocationNames[location];
14139
14270
  var valuesString = JSON.stringify(expectedValues);
14140
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
14271
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
14141
14272
  }
14142
14273
  return createChainableTypeChecker(validate);
14143
14274
  }
@@ -14145,13 +14276,13 @@ function createEnumTypeChecker(expectedValues) {
14145
14276
  function createObjectOfTypeChecker(typeChecker) {
14146
14277
  function validate(props, propName, componentName, location, propFullName) {
14147
14278
  if (typeof typeChecker !== 'function') {
14148
- return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
14279
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
14149
14280
  }
14150
14281
  var propValue = props[propName];
14151
14282
  var propType = getPropType(propValue);
14152
14283
  if (propType !== 'object') {
14153
14284
  var locationName = ReactPropTypeLocationNames[location];
14154
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
14285
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
14155
14286
  }
14156
14287
  for (var key in propValue) {
14157
14288
  if (propValue.hasOwnProperty(key)) {
@@ -14181,7 +14312,7 @@ function createUnionTypeChecker(arrayOfTypeCheckers) {
14181
14312
  }
14182
14313
 
14183
14314
  var locationName = ReactPropTypeLocationNames[location];
14184
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
14315
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
14185
14316
  }
14186
14317
  return createChainableTypeChecker(validate);
14187
14318
  }
@@ -14190,7 +14321,7 @@ function createNodeChecker() {
14190
14321
  function validate(props, propName, componentName, location, propFullName) {
14191
14322
  if (!isNode(props[propName])) {
14192
14323
  var locationName = ReactPropTypeLocationNames[location];
14193
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
14324
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
14194
14325
  }
14195
14326
  return null;
14196
14327
  }
@@ -14203,7 +14334,7 @@ function createShapeTypeChecker(shapeTypes) {
14203
14334
  var propType = getPropType(propValue);
14204
14335
  if (propType !== 'object') {
14205
14336
  var locationName = ReactPropTypeLocationNames[location];
14206
- return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
14337
+ return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
14207
14338
  }
14208
14339
  for (var key in shapeTypes) {
14209
14340
  var checker = shapeTypes[key];
@@ -14327,7 +14458,7 @@ function getClassName(propValue) {
14327
14458
  }
14328
14459
 
14329
14460
  module.exports = ReactPropTypes;
14330
- },{"144":144,"170":170,"188":188,"65":65,"89":89,"92":92}],92:[function(_dereq_,module,exports){
14461
+ },{"144":144,"170":170,"187":187,"65":65,"89":89,"92":92}],92:[function(_dereq_,module,exports){
14331
14462
  /**
14332
14463
  * Copyright 2013-present, Facebook, Inc.
14333
14464
  * All rights reserved.
@@ -14358,7 +14489,7 @@ module.exports = ReactPropTypesSecret;
14358
14489
 
14359
14490
  'use strict';
14360
14491
 
14361
- var _assign = _dereq_(189);
14492
+ var _assign = _dereq_(188);
14362
14493
 
14363
14494
  var ReactComponent = _dereq_(35);
14364
14495
  var ReactNoopUpdateQueue = _dereq_(86);
@@ -14387,7 +14518,7 @@ _assign(ReactPureComponent.prototype, ReactComponent.prototype);
14387
14518
  ReactPureComponent.prototype.isPureReactComponent = true;
14388
14519
 
14389
14520
  module.exports = ReactPureComponent;
14390
- },{"171":171,"189":189,"35":35,"86":86}],94:[function(_dereq_,module,exports){
14521
+ },{"171":171,"188":188,"35":35,"86":86}],94:[function(_dereq_,module,exports){
14391
14522
  /**
14392
14523
  * Copyright 2013-present, Facebook, Inc.
14393
14524
  * All rights reserved.
@@ -14401,7 +14532,7 @@ module.exports = ReactPureComponent;
14401
14532
 
14402
14533
  'use strict';
14403
14534
 
14404
- var _assign = _dereq_(189);
14535
+ var _assign = _dereq_(188);
14405
14536
 
14406
14537
  var CallbackQueue = _dereq_(5);
14407
14538
  var PooledClass = _dereq_(26);
@@ -14566,7 +14697,7 @@ _assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);
14566
14697
  PooledClass.addPoolingTo(ReactReconcileTransaction);
14567
14698
 
14568
14699
  module.exports = ReactReconcileTransaction;
14569
- },{"106":106,"127":127,"189":189,"26":26,"28":28,"5":5,"76":76,"78":78}],95:[function(_dereq_,module,exports){
14700
+ },{"106":106,"127":127,"188":188,"26":26,"28":28,"5":5,"76":76,"78":78}],95:[function(_dereq_,module,exports){
14570
14701
  /**
14571
14702
  * Copyright 2013-present, Facebook, Inc.
14572
14703
  * All rights reserved.
@@ -14583,7 +14714,7 @@ module.exports = ReactReconcileTransaction;
14583
14714
  var ReactRef = _dereq_(96);
14584
14715
  var ReactInstrumentation = _dereq_(78);
14585
14716
 
14586
- var warning = _dereq_(188);
14717
+ var warning = _dereq_(187);
14587
14718
 
14588
14719
  /**
14589
14720
  * Helper to call ReactRef.attachRefs with this composite component, split out
@@ -14735,7 +14866,7 @@ var ReactReconciler = {
14735
14866
  };
14736
14867
 
14737
14868
  module.exports = ReactReconciler;
14738
- },{"188":188,"78":78,"96":96}],96:[function(_dereq_,module,exports){
14869
+ },{"187":187,"78":78,"96":96}],96:[function(_dereq_,module,exports){
14739
14870
  /**
14740
14871
  * Copyright 2013-present, Facebook, Inc.
14741
14872
  * All rights reserved.
@@ -14797,7 +14928,7 @@ ReactRef.shouldUpdateRefs = function (prevElement, nextElement) {
14797
14928
  var prevEmpty = prevElement === null || prevElement === false;
14798
14929
  var nextEmpty = nextElement === null || nextElement === false;
14799
14930
 
14800
- return(
14931
+ return (
14801
14932
  // This has a few false positives w/r/t empty components.
14802
14933
  prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref ||
14803
14934
  // If owner changes but we have an unchanged function ref, don't update refs
@@ -14944,7 +15075,7 @@ module.exports = {
14944
15075
 
14945
15076
  'use strict';
14946
15077
 
14947
- var _assign = _dereq_(189);
15078
+ var _assign = _dereq_(188);
14948
15079
 
14949
15080
  var PooledClass = _dereq_(26);
14950
15081
  var Transaction = _dereq_(127);
@@ -15021,7 +15152,7 @@ _assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);
15021
15152
  PooledClass.addPoolingTo(ReactServerRenderingTransaction);
15022
15153
 
15023
15154
  module.exports = ReactServerRenderingTransaction;
15024
- },{"100":100,"127":127,"189":189,"26":26,"78":78}],100:[function(_dereq_,module,exports){
15155
+ },{"100":100,"127":127,"188":188,"26":26,"78":78}],100:[function(_dereq_,module,exports){
15025
15156
  /**
15026
15157
  * Copyright 2015-present, Facebook, Inc.
15027
15158
  * All rights reserved.
@@ -15040,7 +15171,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
15040
15171
 
15041
15172
  var ReactUpdateQueue = _dereq_(106);
15042
15173
  var Transaction = _dereq_(127);
15043
- var warning = _dereq_(188);
15174
+ var warning = _dereq_(187);
15044
15175
 
15045
15176
  function warnNoop(publicInstance, callerName) {
15046
15177
  if ("development" !== 'production') {
@@ -15163,7 +15294,7 @@ var ReactServerUpdateQueue = function () {
15163
15294
  }();
15164
15295
 
15165
15296
  module.exports = ReactServerUpdateQueue;
15166
- },{"106":106,"127":127,"188":188}],101:[function(_dereq_,module,exports){
15297
+ },{"106":106,"127":127,"187":187}],101:[function(_dereq_,module,exports){
15167
15298
  /**
15168
15299
  * Copyright 2013-present, Facebook, Inc.
15169
15300
  * All rights reserved.
@@ -15283,7 +15414,7 @@ module.exports = ReactStateSetters;
15283
15414
  'use strict';
15284
15415
 
15285
15416
  var _prodInvariant = _dereq_(153),
15286
- _assign = _dereq_(189);
15417
+ _assign = _dereq_(188);
15287
15418
 
15288
15419
  var EventConstants = _dereq_(16);
15289
15420
  var EventPluginHub = _dereq_(17);
@@ -15787,7 +15918,7 @@ Object.keys(topLevelTypes).forEach(function (eventType) {
15787
15918
  });
15788
15919
 
15789
15920
  module.exports = ReactTestUtils;
15790
- },{"107":107,"118":118,"136":136,"153":153,"16":16,"17":17,"171":171,"178":178,"18":18,"189":189,"20":20,"27":27,"28":28,"40":40,"42":42,"46":46,"64":64,"65":65,"77":77,"95":95}],103:[function(_dereq_,module,exports){
15921
+ },{"107":107,"118":118,"136":136,"153":153,"16":16,"17":17,"171":171,"178":178,"18":18,"188":188,"20":20,"27":27,"28":28,"40":40,"42":42,"46":46,"64":64,"65":65,"77":77,"95":95}],103:[function(_dereq_,module,exports){
15791
15922
  /**
15792
15923
  * Copyright 2013-present, Facebook, Inc.
15793
15924
  * All rights reserved.
@@ -15979,7 +16110,7 @@ module.exports = ReactTransitionEvents;
15979
16110
 
15980
16111
  'use strict';
15981
16112
 
15982
- var _assign = _dereq_(189);
16113
+ var _assign = _dereq_(188);
15983
16114
 
15984
16115
  var React = _dereq_(27);
15985
16116
  var ReactInstanceMap = _dereq_(77);
@@ -16212,7 +16343,7 @@ var ReactTransitionGroup = React.createClass({
16212
16343
  });
16213
16344
 
16214
16345
  module.exports = ReactTransitionGroup;
16215
- },{"103":103,"170":170,"189":189,"27":27,"77":77}],106:[function(_dereq_,module,exports){
16346
+ },{"103":103,"170":170,"188":188,"27":27,"77":77}],106:[function(_dereq_,module,exports){
16216
16347
  /**
16217
16348
  * Copyright 2015-present, Facebook, Inc.
16218
16349
  * All rights reserved.
@@ -16234,7 +16365,7 @@ var ReactInstrumentation = _dereq_(78);
16234
16365
  var ReactUpdates = _dereq_(107);
16235
16366
 
16236
16367
  var invariant = _dereq_(178);
16237
- var warning = _dereq_(188);
16368
+ var warning = _dereq_(187);
16238
16369
 
16239
16370
  function enqueueUpdate(internalInstance) {
16240
16371
  ReactUpdates.enqueueUpdate(internalInstance);
@@ -16439,7 +16570,7 @@ var ReactUpdateQueue = {
16439
16570
  };
16440
16571
 
16441
16572
  module.exports = ReactUpdateQueue;
16442
- },{"107":107,"153":153,"178":178,"188":188,"41":41,"77":77,"78":78}],107:[function(_dereq_,module,exports){
16573
+ },{"107":107,"153":153,"178":178,"187":187,"41":41,"77":77,"78":78}],107:[function(_dereq_,module,exports){
16443
16574
  /**
16444
16575
  * Copyright 2013-present, Facebook, Inc.
16445
16576
  * All rights reserved.
@@ -16454,7 +16585,7 @@ module.exports = ReactUpdateQueue;
16454
16585
  'use strict';
16455
16586
 
16456
16587
  var _prodInvariant = _dereq_(153),
16457
- _assign = _dereq_(189);
16588
+ _assign = _dereq_(188);
16458
16589
 
16459
16590
  var CallbackQueue = _dereq_(5);
16460
16591
  var PooledClass = _dereq_(26);
@@ -16691,7 +16822,7 @@ var ReactUpdates = {
16691
16822
  };
16692
16823
 
16693
16824
  module.exports = ReactUpdates;
16694
- },{"127":127,"153":153,"178":178,"189":189,"26":26,"5":5,"71":71,"95":95}],108:[function(_dereq_,module,exports){
16825
+ },{"127":127,"153":153,"178":178,"188":188,"26":26,"5":5,"71":71,"95":95}],108:[function(_dereq_,module,exports){
16695
16826
  /**
16696
16827
  * Copyright 2013-present, Facebook, Inc.
16697
16828
  * All rights reserved.
@@ -16705,7 +16836,7 @@ module.exports = ReactUpdates;
16705
16836
 
16706
16837
  'use strict';
16707
16838
 
16708
- module.exports = '15.3.1-rc.1';
16839
+ module.exports = '15.3.2';
16709
16840
  },{}],109:[function(_dereq_,module,exports){
16710
16841
  /**
16711
16842
  * Copyright 2013-present, Facebook, Inc.
@@ -16761,7 +16892,7 @@ module.exports = React;
16761
16892
 
16762
16893
  'use strict';
16763
16894
 
16764
- var _assign = _dereq_(189);
16895
+ var _assign = _dereq_(188);
16765
16896
 
16766
16897
  var ReactDOM = _dereq_(42);
16767
16898
  var ReactDOMServer = _dereq_(57);
@@ -16774,7 +16905,7 @@ var ReactWithAddonsUMDEntry = _assign({
16774
16905
  }, ReactWithAddons);
16775
16906
 
16776
16907
  module.exports = ReactWithAddonsUMDEntry;
16777
- },{"109":109,"189":189,"42":42,"57":57}],111:[function(_dereq_,module,exports){
16908
+ },{"109":109,"188":188,"42":42,"57":57}],111:[function(_dereq_,module,exports){
16778
16909
  /**
16779
16910
  * Copyright 2013-present, Facebook, Inc.
16780
16911
  * All rights reserved.
@@ -17101,7 +17232,7 @@ var SyntheticEvent = _dereq_(118);
17101
17232
  var getActiveElement = _dereq_(173);
17102
17233
  var isTextInputElement = _dereq_(150);
17103
17234
  var keyOf = _dereq_(182);
17104
- var shallowEqual = _dereq_(187);
17235
+ var shallowEqual = _dereq_(186);
17105
17236
 
17106
17237
  var topLevelTypes = EventConstants.topLevelTypes;
17107
17238
 
@@ -17113,7 +17244,7 @@ var eventTypes = {
17113
17244
  bubbled: keyOf({ onSelect: null }),
17114
17245
  captured: keyOf({ onSelectCapture: null })
17115
17246
  },
17116
- dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]
17247
+ dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]
17117
17248
  }
17118
17249
  };
17119
17250
 
@@ -17274,7 +17405,7 @@ var SelectEventPlugin = {
17274
17405
  };
17275
17406
 
17276
17407
  module.exports = SelectEventPlugin;
17277
- },{"118":118,"150":150,"16":16,"164":164,"173":173,"182":182,"187":187,"20":20,"46":46,"76":76}],113:[function(_dereq_,module,exports){
17408
+ },{"118":118,"150":150,"16":16,"164":164,"173":173,"182":182,"186":186,"20":20,"46":46,"76":76}],113:[function(_dereq_,module,exports){
17278
17409
  /**
17279
17410
  * Copyright 2013-present, Facebook, Inc.
17280
17411
  * All rights reserved.
@@ -18077,12 +18208,12 @@ module.exports = SyntheticDragEvent;
18077
18208
 
18078
18209
  'use strict';
18079
18210
 
18080
- var _assign = _dereq_(189);
18211
+ var _assign = _dereq_(188);
18081
18212
 
18082
18213
  var PooledClass = _dereq_(26);
18083
18214
 
18084
18215
  var emptyFunction = _dereq_(170);
18085
- var warning = _dereq_(188);
18216
+ var warning = _dereq_(187);
18086
18217
 
18087
18218
  var didWarnForAddedNewProperty = false;
18088
18219
  var isProxySupported = typeof Proxy === 'function';
@@ -18179,7 +18310,8 @@ _assign(SyntheticEvent.prototype, {
18179
18310
 
18180
18311
  if (event.preventDefault) {
18181
18312
  event.preventDefault();
18182
- } else {
18313
+ } else if (typeof event.returnValue !== 'unknown') {
18314
+ // eslint-disable-line valid-typeof
18183
18315
  event.returnValue = false;
18184
18316
  }
18185
18317
  this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
@@ -18331,7 +18463,7 @@ function getPooledWarningPropertyDefinition(propName, getVal) {
18331
18463
  "development" !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
18332
18464
  }
18333
18465
  }
18334
- },{"170":170,"188":188,"189":189,"26":26}],119:[function(_dereq_,module,exports){
18466
+ },{"170":170,"187":187,"188":188,"26":26}],119:[function(_dereq_,module,exports){
18335
18467
  /**
18336
18468
  * Copyright 2013-present, Facebook, Inc.
18337
18469
  * All rights reserved.
@@ -19177,7 +19309,7 @@ var ReactPropTypeLocationNames = _dereq_(89);
19177
19309
  var ReactPropTypesSecret = _dereq_(92);
19178
19310
 
19179
19311
  var invariant = _dereq_(178);
19180
- var warning = _dereq_(188);
19312
+ var warning = _dereq_(187);
19181
19313
 
19182
19314
  var ReactComponentTreeHook;
19183
19315
 
@@ -19246,7 +19378,7 @@ function checkReactTypeSpec(typeSpecs, values, location, componentName, element,
19246
19378
 
19247
19379
  module.exports = checkReactTypeSpec;
19248
19380
  }).call(this,undefined)
19249
- },{"153":153,"178":178,"188":188,"38":38,"89":89,"92":92}],133:[function(_dereq_,module,exports){
19381
+ },{"153":153,"178":178,"187":187,"38":38,"89":89,"92":92}],133:[function(_dereq_,module,exports){
19250
19382
  /**
19251
19383
  * Copyright 2013-present, Facebook, Inc.
19252
19384
  * All rights reserved.
@@ -19294,7 +19426,7 @@ module.exports = createMicrosoftUnsafeLocalFunction;
19294
19426
  'use strict';
19295
19427
 
19296
19428
  var CSSProperty = _dereq_(3);
19297
- var warning = _dereq_(188);
19429
+ var warning = _dereq_(187);
19298
19430
 
19299
19431
  var isUnitlessNumber = CSSProperty.isUnitlessNumber;
19300
19432
  var styleWarnings = {};
@@ -19359,7 +19491,7 @@ function dangerousStyleValue(name, value, component) {
19359
19491
  }
19360
19492
 
19361
19493
  module.exports = dangerousStyleValue;
19362
- },{"188":188,"3":3}],135:[function(_dereq_,module,exports){
19494
+ },{"187":187,"3":3}],135:[function(_dereq_,module,exports){
19363
19495
  /**
19364
19496
  * Copyright 2016-present, Facebook, Inc.
19365
19497
  * All rights reserved.
@@ -19465,6 +19597,7 @@ function escapeHtml(string) {
19465
19597
  }
19466
19598
  // end code copied and modified from escape-html
19467
19599
 
19600
+
19468
19601
  /**
19469
19602
  * Escapes text to prevent scripting attacks.
19470
19603
  *
@@ -19504,7 +19637,7 @@ var ReactInstanceMap = _dereq_(77);
19504
19637
 
19505
19638
  var getHostComponentFromComposite = _dereq_(143);
19506
19639
  var invariant = _dereq_(178);
19507
- var warning = _dereq_(188);
19640
+ var warning = _dereq_(187);
19508
19641
 
19509
19642
  /**
19510
19643
  * Returns the DOM node rendered by this element.
@@ -19543,7 +19676,7 @@ function findDOMNode(componentOrElement) {
19543
19676
  }
19544
19677
 
19545
19678
  module.exports = findDOMNode;
19546
- },{"143":143,"153":153,"178":178,"188":188,"41":41,"46":46,"77":77}],137:[function(_dereq_,module,exports){
19679
+ },{"143":143,"153":153,"178":178,"187":187,"41":41,"46":46,"77":77}],137:[function(_dereq_,module,exports){
19547
19680
  (function (process){
19548
19681
  /**
19549
19682
  * Copyright 2013-present, Facebook, Inc.
@@ -19561,7 +19694,7 @@ module.exports = findDOMNode;
19561
19694
 
19562
19695
  var KeyEscapeUtils = _dereq_(23);
19563
19696
  var traverseAllChildren = _dereq_(159);
19564
- var warning = _dereq_(188);
19697
+ var warning = _dereq_(187);
19565
19698
 
19566
19699
  var ReactComponentTreeHook;
19567
19700
 
@@ -19622,7 +19755,7 @@ function flattenChildren(children, selfDebugID) {
19622
19755
 
19623
19756
  module.exports = flattenChildren;
19624
19757
  }).call(this,undefined)
19625
- },{"159":159,"188":188,"23":23,"38":38}],138:[function(_dereq_,module,exports){
19758
+ },{"159":159,"187":187,"23":23,"38":38}],138:[function(_dereq_,module,exports){
19626
19759
  /**
19627
19760
  * Copyright 2013-present, Facebook, Inc.
19628
19761
  * All rights reserved.
@@ -20187,14 +20320,14 @@ module.exports = getVendorPrefixedEventName;
20187
20320
  'use strict';
20188
20321
 
20189
20322
  var _prodInvariant = _dereq_(153),
20190
- _assign = _dereq_(189);
20323
+ _assign = _dereq_(188);
20191
20324
 
20192
20325
  var ReactCompositeComponent = _dereq_(40);
20193
20326
  var ReactEmptyComponent = _dereq_(67);
20194
20327
  var ReactHostComponent = _dereq_(73);
20195
20328
 
20196
20329
  var invariant = _dereq_(178);
20197
- var warning = _dereq_(188);
20330
+ var warning = _dereq_(187);
20198
20331
 
20199
20332
  // To avoid a cyclic dependency, we create the final class in this module
20200
20333
  var ReactCompositeComponentWrapper = function (element) {
@@ -20292,7 +20425,7 @@ function instantiateReactComponent(node, shouldHaveDebugID) {
20292
20425
  }
20293
20426
 
20294
20427
  module.exports = instantiateReactComponent;
20295
- },{"153":153,"178":178,"188":188,"189":189,"40":40,"67":67,"73":73}],149:[function(_dereq_,module,exports){
20428
+ },{"153":153,"178":178,"187":187,"188":188,"40":40,"67":67,"73":73}],149:[function(_dereq_,module,exports){
20296
20429
  /**
20297
20430
  * Copyright 2013-present, Facebook, Inc.
20298
20431
  * All rights reserved.
@@ -20439,7 +20572,7 @@ var invariant = _dereq_(178);
20439
20572
  * structure.
20440
20573
  */
20441
20574
  function onlyChild(children) {
20442
- !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : _prodInvariant('23') : void 0;
20575
+ !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;
20443
20576
  return children;
20444
20577
  }
20445
20578
 
@@ -20568,9 +20701,9 @@ var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {
20568
20701
  if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {
20569
20702
  reusableSVGContainer = reusableSVGContainer || document.createElement('div');
20570
20703
  reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';
20571
- var newNodes = reusableSVGContainer.firstChild.childNodes;
20572
- for (var i = 0; i < newNodes.length; i++) {
20573
- node.appendChild(newNodes[i]);
20704
+ var svgNode = reusableSVGContainer.firstChild;
20705
+ while (svgNode.firstChild) {
20706
+ node.appendChild(svgNode.firstChild);
20574
20707
  }
20575
20708
  } else {
20576
20709
  node.innerHTML = html;
@@ -20690,7 +20823,7 @@ module.exports = setTextContent;
20690
20823
 
20691
20824
  'use strict';
20692
20825
 
20693
- var shallowEqual = _dereq_(187);
20826
+ var shallowEqual = _dereq_(186);
20694
20827
 
20695
20828
  /**
20696
20829
  * Does a shallow comparison for props and state.
@@ -20702,7 +20835,7 @@ function shallowCompare(instance, nextProps, nextState) {
20702
20835
  }
20703
20836
 
20704
20837
  module.exports = shallowCompare;
20705
- },{"187":187}],158:[function(_dereq_,module,exports){
20838
+ },{"186":186}],158:[function(_dereq_,module,exports){
20706
20839
  /**
20707
20840
  * Copyright 2013-present, Facebook, Inc.
20708
20841
  * All rights reserved.
@@ -20767,7 +20900,7 @@ var ReactElement = _dereq_(65);
20767
20900
  var getIteratorFn = _dereq_(144);
20768
20901
  var invariant = _dereq_(178);
20769
20902
  var KeyEscapeUtils = _dereq_(23);
20770
- var warning = _dereq_(188);
20903
+ var warning = _dereq_(187);
20771
20904
 
20772
20905
  var SEPARATOR = '.';
20773
20906
  var SUBSEPARATOR = ':';
@@ -20913,7 +21046,7 @@ function traverseAllChildren(children, callback, traverseContext) {
20913
21046
  }
20914
21047
 
20915
21048
  module.exports = traverseAllChildren;
20916
- },{"144":144,"153":153,"178":178,"188":188,"23":23,"41":41,"65":65}],160:[function(_dereq_,module,exports){
21049
+ },{"144":144,"153":153,"178":178,"187":187,"23":23,"41":41,"65":65}],160:[function(_dereq_,module,exports){
20917
21050
  /**
20918
21051
  * Copyright 2013-present, Facebook, Inc.
20919
21052
  * All rights reserved.
@@ -20930,7 +21063,7 @@ module.exports = traverseAllChildren;
20930
21063
  'use strict';
20931
21064
 
20932
21065
  var _prodInvariant = _dereq_(153),
20933
- _assign = _dereq_(189);
21066
+ _assign = _dereq_(188);
20934
21067
 
20935
21068
  var keyOf = _dereq_(182);
20936
21069
  var invariant = _dereq_(178);
@@ -21027,7 +21160,7 @@ function update(value, spec) {
21027
21160
  }
21028
21161
 
21029
21162
  module.exports = update;
21030
- },{"153":153,"178":178,"182":182,"189":189}],161:[function(_dereq_,module,exports){
21163
+ },{"153":153,"178":178,"182":182,"188":188}],161:[function(_dereq_,module,exports){
21031
21164
  /**
21032
21165
  * Copyright 2015-present, Facebook, Inc.
21033
21166
  * All rights reserved.
@@ -21041,10 +21174,10 @@ module.exports = update;
21041
21174
 
21042
21175
  'use strict';
21043
21176
 
21044
- var _assign = _dereq_(189);
21177
+ var _assign = _dereq_(188);
21045
21178
 
21046
21179
  var emptyFunction = _dereq_(170);
21047
- var warning = _dereq_(188);
21180
+ var warning = _dereq_(187);
21048
21181
 
21049
21182
  var validateDOMNesting = emptyFunction;
21050
21183
 
@@ -21317,11 +21450,16 @@ if ("development" !== 'production') {
21317
21450
 
21318
21451
  var didWarn = {};
21319
21452
 
21320
- validateDOMNesting = function (childTag, childInstance, ancestorInfo) {
21453
+ validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {
21321
21454
  ancestorInfo = ancestorInfo || emptyAncestorInfo;
21322
21455
  var parentInfo = ancestorInfo.current;
21323
21456
  var parentTag = parentInfo && parentInfo.tag;
21324
21457
 
21458
+ if (childText != null) {
21459
+ "development" !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;
21460
+ childTag = '#text';
21461
+ }
21462
+
21325
21463
  var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;
21326
21464
  var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);
21327
21465
  var problematic = invalidParent || invalidAncestor;
@@ -21369,7 +21507,15 @@ if ("development" !== 'production') {
21369
21507
  didWarn[warnKey] = true;
21370
21508
 
21371
21509
  var tagDisplayName = childTag;
21372
- if (childTag !== '#text') {
21510
+ var whitespaceInfo = '';
21511
+ if (childTag === '#text') {
21512
+ if (/\S/.test(childText)) {
21513
+ tagDisplayName = 'Text nodes';
21514
+ } else {
21515
+ tagDisplayName = 'Whitespace text nodes';
21516
+ whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.';
21517
+ }
21518
+ } else {
21373
21519
  tagDisplayName = '<' + childTag + '>';
21374
21520
  }
21375
21521
 
@@ -21378,7 +21524,7 @@ if ("development" !== 'production') {
21378
21524
  if (ancestorTag === 'table' && childTag === 'tr') {
21379
21525
  info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';
21380
21526
  }
21381
- "development" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>. ' + 'See %s.%s', tagDisplayName, ancestorTag, ownerInfo, info) : void 0;
21527
+ "development" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;
21382
21528
  } else {
21383
21529
  "development" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;
21384
21530
  }
@@ -21397,7 +21543,7 @@ if ("development" !== 'production') {
21397
21543
  }
21398
21544
 
21399
21545
  module.exports = validateDOMNesting;
21400
- },{"170":170,"188":188,"189":189}],162:[function(_dereq_,module,exports){
21546
+ },{"170":170,"187":187,"188":188}],162:[function(_dereq_,module,exports){
21401
21547
  'use strict';
21402
21548
 
21403
21549
  /**
@@ -21825,7 +21971,7 @@ function toArray(obj) {
21825
21971
  * @return {boolean}
21826
21972
  */
21827
21973
  function hasArrayNature(obj) {
21828
- return(
21974
+ return (
21829
21975
  // not null/false
21830
21976
  !!obj && (
21831
21977
  // arrays are objects, NodeLists are functions in Safari
@@ -22471,57 +22617,6 @@ var keyOf = function keyOf(oneKeyObj) {
22471
22617
 
22472
22618
  module.exports = keyOf;
22473
22619
  },{}],183:[function(_dereq_,module,exports){
22474
- /**
22475
- * Copyright (c) 2013-present, Facebook, Inc.
22476
- * All rights reserved.
22477
- *
22478
- * This source code is licensed under the BSD-style license found in the
22479
- * LICENSE file in the root directory of this source tree. An additional grant
22480
- * of patent rights can be found in the PATENTS file in the same directory.
22481
- *
22482
- */
22483
-
22484
- 'use strict';
22485
-
22486
- var hasOwnProperty = Object.prototype.hasOwnProperty;
22487
-
22488
- /**
22489
- * Executes the provided `callback` once for each enumerable own property in the
22490
- * object and constructs a new object from the results. The `callback` is
22491
- * invoked with three arguments:
22492
- *
22493
- * - the property value
22494
- * - the property name
22495
- * - the object being traversed
22496
- *
22497
- * Properties that are added after the call to `mapObject` will not be visited
22498
- * by `callback`. If the values of existing properties are changed, the value
22499
- * passed to `callback` will be the value at the time `mapObject` visits them.
22500
- * Properties that are deleted before being visited are not visited.
22501
- *
22502
- * @grep function objectMap()
22503
- * @grep function objMap()
22504
- *
22505
- * @param {?object} object
22506
- * @param {function} callback
22507
- * @param {*} context
22508
- * @return {?object}
22509
- */
22510
- function mapObject(object, callback, context) {
22511
- if (!object) {
22512
- return null;
22513
- }
22514
- var result = {};
22515
- for (var name in object) {
22516
- if (hasOwnProperty.call(object, name)) {
22517
- result[name] = callback.call(context, object[name], name, object);
22518
- }
22519
- }
22520
- return result;
22521
- }
22522
-
22523
- module.exports = mapObject;
22524
- },{}],184:[function(_dereq_,module,exports){
22525
22620
  /**
22526
22621
  * Copyright (c) 2013-present, Facebook, Inc.
22527
22622
  * All rights reserved.
@@ -22551,7 +22646,7 @@ function memoizeStringOnly(callback) {
22551
22646
  }
22552
22647
 
22553
22648
  module.exports = memoizeStringOnly;
22554
- },{}],185:[function(_dereq_,module,exports){
22649
+ },{}],184:[function(_dereq_,module,exports){
22555
22650
  /**
22556
22651
  * Copyright (c) 2013-present, Facebook, Inc.
22557
22652
  * All rights reserved.
@@ -22574,7 +22669,7 @@ if (ExecutionEnvironment.canUseDOM) {
22574
22669
  }
22575
22670
 
22576
22671
  module.exports = performance || {};
22577
- },{"164":164}],186:[function(_dereq_,module,exports){
22672
+ },{"164":164}],185:[function(_dereq_,module,exports){
22578
22673
  'use strict';
22579
22674
 
22580
22675
  /**
@@ -22588,7 +22683,7 @@ module.exports = performance || {};
22588
22683
  * @typechecks
22589
22684
  */
22590
22685
 
22591
- var performance = _dereq_(185);
22686
+ var performance = _dereq_(184);
22592
22687
 
22593
22688
  var performanceNow;
22594
22689
 
@@ -22608,7 +22703,7 @@ if (performance.now) {
22608
22703
  }
22609
22704
 
22610
22705
  module.exports = performanceNow;
22611
- },{"185":185}],187:[function(_dereq_,module,exports){
22706
+ },{"184":184}],186:[function(_dereq_,module,exports){
22612
22707
  /**
22613
22708
  * Copyright (c) 2013-present, Facebook, Inc.
22614
22709
  * All rights reserved.
@@ -22675,7 +22770,7 @@ function shallowEqual(objA, objB) {
22675
22770
  }
22676
22771
 
22677
22772
  module.exports = shallowEqual;
22678
- },{}],188:[function(_dereq_,module,exports){
22773
+ },{}],187:[function(_dereq_,module,exports){
22679
22774
  /**
22680
22775
  * Copyright 2014-2015, Facebook, Inc.
22681
22776
  * All rights reserved.
@@ -22700,20 +22795,12 @@ var emptyFunction = _dereq_(170);
22700
22795
  var warning = emptyFunction;
22701
22796
 
22702
22797
  if ("development" !== 'production') {
22703
- warning = function warning(condition, format) {
22704
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
22705
- args[_key - 2] = arguments[_key];
22706
- }
22707
-
22708
- if (format === undefined) {
22709
- throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
22710
- }
22711
-
22712
- if (format.indexOf('Failed Composite propType: ') === 0) {
22713
- return; // Ignore CompositeComponent proptype check.
22714
- }
22798
+ (function () {
22799
+ var printWarning = function printWarning(format) {
22800
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
22801
+ args[_key - 1] = arguments[_key];
22802
+ }
22715
22803
 
22716
- if (!condition) {
22717
22804
  var argIndex = 0;
22718
22805
  var message = 'Warning: ' + format.replace(/%s/g, function () {
22719
22806
  return args[argIndex++];
@@ -22727,12 +22814,30 @@ if ("development" !== 'production') {
22727
22814
  // to find the callsite that caused this warning to fire.
22728
22815
  throw new Error(message);
22729
22816
  } catch (x) {}
22730
- }
22731
- };
22817
+ };
22818
+
22819
+ warning = function warning(condition, format) {
22820
+ if (format === undefined) {
22821
+ throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
22822
+ }
22823
+
22824
+ if (format.indexOf('Failed Composite propType: ') === 0) {
22825
+ return; // Ignore CompositeComponent proptype check.
22826
+ }
22827
+
22828
+ if (!condition) {
22829
+ for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
22830
+ args[_key2 - 2] = arguments[_key2];
22831
+ }
22832
+
22833
+ printWarning.apply(undefined, [format].concat(args));
22834
+ }
22835
+ };
22836
+ })();
22732
22837
  }
22733
22838
 
22734
22839
  module.exports = warning;
22735
- },{"170":170}],189:[function(_dereq_,module,exports){
22840
+ },{"170":170}],188:[function(_dereq_,module,exports){
22736
22841
  'use strict';
22737
22842
  /* eslint-disable no-unused-vars */
22738
22843
  var hasOwnProperty = Object.prototype.hasOwnProperty;