diff --git a/_config.yml b/_config.yml index 188c746c..e5342eaa 100644 --- a/_config.yml +++ b/_config.yml @@ -36,13 +36,13 @@ sass: sass_dir: _css gems: - jekyll-redirect-from -react_version: 15.0.1 +react_version: 15.0.2 react_hashes: - dev: PcrCc8vAh3jounTGQGibvUE4liSu8s91ycPotf/cfEHdSnq9qaW2c9tFr3oyDzW4 - prod: S9sTQnq5vvBUhj91S9s9dhE4fiZWgytnfFyIW7hu3Vk5leHzq03A9dULSd0IqW9N - addons_dev: TUMXymomVw+mFbSSojSWXtBVJiWEfUKUYzgZsgvUsdD9fL/y0PPc55825Ui2ZPY6 - addons_prod: rBjtXXl33XbsJR2IbEYJRYH5VnUUMi4o6Zr7ai4UPxcrY0Cw3QpnaU9iIJ2GcyLy - dom_dev: ukADzi8g85qHW1NDinecbLJu/a+yfhgXK6G2Kl7vCckNICr4Pt1hN7mpfPzsgbD2 - dom_prod: n1Sg+vSen3Mb4Ggzsi2jq4MHCXmlKD0spQXmiYaPSt/8WR7PzpwLTmH8OI+yAluA - dom_server_dev: eQOoGEpIR1fqOenVhLKRmPctitl54hZLIFg9uMYElEMx0r175Qedt3utJwCjsSrr - dom_server_prod: 41Tbqk6dOco41BSH7Fb2xAWh8PJTYntH+OR/m80NT+L5IF6XWcq/kvNZGzhBws60 + dev: dedPNF++oHBwT++5v2VMeXSzyNkqJd7tbc3ic+wN3l0u/NEBcMNuf9a7knYgwTco + prod: 1kql9Cm3anPpO0n0a4T7keJt+N4pixvMU33Bk69kZi1WkN6gbq1EVZdfZLjqwmFq + addons_dev: b7jdy0/iqeUofUONQyRN/Y3DO/h61sL56BgMXJzfokC2mtsi2pJGhQekw6QqI/71 + addons_prod: 1J/3e0bGfmFbeuWDRmyBoBOImeFnDn03OKWsXiWVOThql8Yf1qXaim7NrAqL4RHi + dom_dev: kQ+9o036IWQT7tKVxA8siLqHR0DekC3YXbkA7RsFQHbuqQutOmb3cOsTQ1WFtMhW + dom_prod: q14dOJErroITWJ+DFXug03tOxuZ4fm7u5BkcbboXFWJNvDGPepPWXUuIphvvAsAl + dom_server_dev: WiRnBunlOqqLKTWNe+788pJ0QLFIXXktwBnqNV2OggmTROfZJvn1WfrZyh0xhnja + dom_server_prod: wkSOmc5KBqBSFy+CAVk0ehSoBEMqzpKj4lzcoKLBchNzTIwCAZ3Pe+LX73kyNNhz diff --git a/downloads/react-15.0.2.zip b/downloads/react-15.0.2.zip new file mode 100644 index 00000000..4b4ba527 Binary files /dev/null and b/downloads/react-15.0.2.zip differ diff --git a/js/react-dom.js b/js/react-dom.js index 33595fce..5f621f4e 100644 --- a/js/react-dom.js +++ b/js/react-dom.js @@ -1,5 +1,5 @@ /** - * ReactDOM v15.0.1 + * ReactDOM v15.0.2 * * Copyright 2013-present, Facebook, Inc. * All rights reserved. diff --git a/js/react.js b/js/react.js index 3b7e4633..499694d2 100644 --- a/js/react.js +++ b/js/react.js @@ -1,5 +1,5 @@ /** - * React v15.0.1 + * React v15.0.2 */ (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]+)/; var RESULT_INDEX_ATTR = 'data-danger-index'; @@ -2062,7 +2062,7 @@ var Danger = { }; module.exports = Danger; -},{"142":142,"147":147,"148":148,"152":152,"156":156,"8":8}],13:[function(_dereq_,module,exports){ +},{"144":144,"149":149,"150":150,"154":154,"158":158,"8":8}],13:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -2076,7 +2076,7 @@ module.exports = Danger; 'use strict'; -var keyOf = _dereq_(160); +var keyOf = _dereq_(162); /** * Module that is injectable into `EventPluginHub`, that specifies a @@ -2090,7 +2090,58 @@ var keyOf = _dereq_(160); var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })]; module.exports = DefaultEventPluginOrder; -},{"160":160}],14:[function(_dereq_,module,exports){ +},{"162":162}],14:[function(_dereq_,module,exports){ +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DisabledInputUtils + */ + +'use strict'; + +var disableableMouseListenerNames = { + onClick: true, + onDoubleClick: true, + onMouseDown: true, + onMouseMove: true, + onMouseUp: true, + + onClickCapture: true, + onDoubleClickCapture: true, + onMouseDownCapture: true, + onMouseMoveCapture: true, + onMouseUpCapture: true +}; + +/** + * Implements a native component that does not receive mouse events + * when `disabled` is set. + */ +var DisabledInputUtils = { + getNativeProps: function (inst, props) { + if (!props.disabled) { + return props; + } + + // Copy the props, except the mouse listeners + var nativeProps = {}; + for (var key in props) { + if (!disableableMouseListenerNames[key] && props.hasOwnProperty(key)) { + nativeProps[key] = props[key]; + } + } + + return nativeProps; + } +}; + +module.exports = DisabledInputUtils; +},{}],15:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -2104,12 +2155,12 @@ module.exports = DefaultEventPluginOrder; 'use strict'; -var EventConstants = _dereq_(15); -var EventPropagators = _dereq_(19); -var ReactDOMComponentTree = _dereq_(38); -var SyntheticMouseEvent = _dereq_(105); +var EventConstants = _dereq_(16); +var EventPropagators = _dereq_(20); +var ReactDOMComponentTree = _dereq_(40); +var SyntheticMouseEvent = _dereq_(107); -var keyOf = _dereq_(160); +var keyOf = _dereq_(162); var topLevelTypes = EventConstants.topLevelTypes; @@ -2196,7 +2247,7 @@ var EnterLeaveEventPlugin = { }; module.exports = EnterLeaveEventPlugin; -},{"105":105,"15":15,"160":160,"19":19,"38":38}],15:[function(_dereq_,module,exports){ +},{"107":107,"16":16,"162":162,"20":20,"40":40}],16:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -2210,7 +2261,7 @@ module.exports = EnterLeaveEventPlugin; 'use strict'; -var keyMirror = _dereq_(159); +var keyMirror = _dereq_(161); var PropagationPhases = keyMirror({ bubbled: null, captured: null }); @@ -2294,7 +2345,7 @@ var EventConstants = { }; module.exports = EventConstants; -},{"159":159}],16:[function(_dereq_,module,exports){ +},{"161":161}],17:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -2308,13 +2359,13 @@ module.exports = EventConstants; 'use strict'; -var EventPluginRegistry = _dereq_(17); -var EventPluginUtils = _dereq_(18); -var ReactErrorUtils = _dereq_(63); +var EventPluginRegistry = _dereq_(18); +var EventPluginUtils = _dereq_(19); +var ReactErrorUtils = _dereq_(65); -var accumulateInto = _dereq_(112); -var forEachAccumulated = _dereq_(120); -var invariant = _dereq_(156); +var accumulateInto = _dereq_(114); +var forEachAccumulated = _dereq_(122); +var invariant = _dereq_(158); /** * Internal store for event listeners @@ -2530,7 +2581,7 @@ var EventPluginHub = { }; module.exports = EventPluginHub; -},{"112":112,"120":120,"156":156,"17":17,"18":18,"63":63}],17:[function(_dereq_,module,exports){ +},{"114":114,"122":122,"158":158,"18":18,"19":19,"65":65}],18:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -2544,7 +2595,7 @@ module.exports = EventPluginHub; 'use strict'; -var invariant = _dereq_(156); +var invariant = _dereq_(158); /** * Injectable ordering of event plugins. @@ -2772,7 +2823,7 @@ var EventPluginRegistry = { }; module.exports = EventPluginRegistry; -},{"156":156}],18:[function(_dereq_,module,exports){ +},{"158":158}],19:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -2786,11 +2837,11 @@ module.exports = EventPluginRegistry; 'use strict'; -var EventConstants = _dereq_(15); -var ReactErrorUtils = _dereq_(63); +var EventConstants = _dereq_(16); +var ReactErrorUtils = _dereq_(65); -var invariant = _dereq_(156); -var warning = _dereq_(166); +var invariant = _dereq_(158); +var warning = _dereq_(168); /** * Injected dependencies: @@ -2945,7 +2996,7 @@ function executeDirectDispatch(event) { var dispatchListener = event._dispatchListeners; var dispatchInstance = event._dispatchInstances; !!Array.isArray(dispatchListener) ? "development" !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : void 0; - event.currentTarget = EventPluginUtils.getNodeFromInstance(dispatchInstance); + event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null; var res = dispatchListener ? dispatchListener(event) : null; event.currentTarget = null; event._dispatchListeners = null; @@ -3000,7 +3051,7 @@ var EventPluginUtils = { }; module.exports = EventPluginUtils; -},{"15":15,"156":156,"166":166,"63":63}],19:[function(_dereq_,module,exports){ +},{"158":158,"16":16,"168":168,"65":65}],20:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3014,13 +3065,13 @@ module.exports = EventPluginUtils; 'use strict'; -var EventConstants = _dereq_(15); -var EventPluginHub = _dereq_(16); -var EventPluginUtils = _dereq_(18); +var EventConstants = _dereq_(16); +var EventPluginHub = _dereq_(17); +var EventPluginUtils = _dereq_(19); -var accumulateInto = _dereq_(112); -var forEachAccumulated = _dereq_(120); -var warning = _dereq_(166); +var accumulateInto = _dereq_(114); +var forEachAccumulated = _dereq_(122); +var warning = _dereq_(168); var PropagationPhases = EventConstants.PropagationPhases; var getListener = EventPluginHub.getListener; @@ -3138,7 +3189,7 @@ var EventPropagators = { }; module.exports = EventPropagators; -},{"112":112,"120":120,"15":15,"16":16,"166":166,"18":18}],20:[function(_dereq_,module,exports){ +},{"114":114,"122":122,"16":16,"168":168,"17":17,"19":19}],21:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3152,11 +3203,11 @@ module.exports = EventPropagators; 'use strict'; -var _assign = _dereq_(167); +var _assign = _dereq_(169); -var PooledClass = _dereq_(23); +var PooledClass = _dereq_(25); -var getTextContentAccessor = _dereq_(128); +var getTextContentAccessor = _dereq_(130); /** * This helper class stores information about text content of a target node, @@ -3234,7 +3285,7 @@ _assign(FallbackCompositionState.prototype, { PooledClass.addPoolingTo(FallbackCompositionState); module.exports = FallbackCompositionState; -},{"128":128,"167":167,"23":23}],21:[function(_dereq_,module,exports){ +},{"130":130,"169":169,"25":25}],22:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3444,7 +3495,66 @@ var HTMLDOMPropertyConfig = { }; module.exports = HTMLDOMPropertyConfig; -},{"10":10}],22:[function(_dereq_,module,exports){ +},{"10":10}],23:[function(_dereq_,module,exports){ +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule KeyEscapeUtils + */ + +'use strict'; + +/** + * Escape and wrap key so it is safe to use as a reactid + * + * @param {*} key to be escaped. + * @return {string} the escaped key. + */ + +function escape(key) { + var escapeRegex = /[=:]/g; + var escaperLookup = { + '=': '=0', + ':': '=2' + }; + var escapedString = ('' + key).replace(escapeRegex, function (match) { + return escaperLookup[match]; + }); + + return '$' + escapedString; +} + +/** + * Unescape and unwrap key for human-readable display + * + * @param {string} key to unescape. + * @return {string} the unescaped key. + */ +function unescape(key) { + var unescapeRegex = /(=0|=2)/g; + var unescaperLookup = { + '=0': '=', + '=2': ':' + }; + var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); + + return ('' + keySubstring).replace(unescapeRegex, function (match) { + return unescaperLookup[match]; + }); +} + +var KeyEscapeUtils = { + escape: escape, + unescape: unescape +}; + +module.exports = KeyEscapeUtils; +},{}],24:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3458,11 +3568,11 @@ module.exports = HTMLDOMPropertyConfig; 'use strict'; -var ReactPropTypes = _dereq_(83); -var ReactPropTypeLocations = _dereq_(82); +var ReactPropTypes = _dereq_(85); +var ReactPropTypeLocations = _dereq_(84); -var invariant = _dereq_(156); -var warning = _dereq_(166); +var invariant = _dereq_(158); +var warning = _dereq_(168); var hasReadOnlyValue = { 'button': true, @@ -3578,7 +3688,7 @@ var LinkedValueUtils = { }; module.exports = LinkedValueUtils; -},{"156":156,"166":166,"82":82,"83":83}],23:[function(_dereq_,module,exports){ +},{"158":158,"168":168,"84":84,"85":85}],25:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3592,7 +3702,7 @@ module.exports = LinkedValueUtils; 'use strict'; -var invariant = _dereq_(156); +var invariant = _dereq_(158); /** * Static poolers. Several custom versions for each potential number of @@ -3698,7 +3808,7 @@ var PooledClass = { }; module.exports = PooledClass; -},{"156":156}],24:[function(_dereq_,module,exports){ +},{"158":158}],26:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3712,19 +3822,19 @@ module.exports = PooledClass; 'use strict'; -var _assign = _dereq_(167); +var _assign = _dereq_(169); -var ReactChildren = _dereq_(27); -var ReactComponent = _dereq_(29); -var ReactClass = _dereq_(28); -var ReactDOMFactories = _dereq_(42); -var ReactElement = _dereq_(60); -var ReactElementValidator = _dereq_(61); -var ReactPropTypes = _dereq_(83); -var ReactVersion = _dereq_(93); +var ReactChildren = _dereq_(29); +var ReactComponent = _dereq_(31); +var ReactClass = _dereq_(30); +var ReactDOMFactories = _dereq_(44); +var ReactElement = _dereq_(62); +var ReactElementValidator = _dereq_(63); +var ReactPropTypes = _dereq_(85); +var ReactVersion = _dereq_(95); -var onlyChild = _dereq_(133); -var warning = _dereq_(166); +var onlyChild = _dereq_(135); +var warning = _dereq_(168); var createElement = ReactElement.createElement; var createFactory = ReactElement.createFactory; @@ -3786,7 +3896,7 @@ var React = { }; module.exports = React; -},{"133":133,"166":166,"167":167,"27":27,"28":28,"29":29,"42":42,"60":60,"61":61,"83":83,"93":93}],25:[function(_dereq_,module,exports){ +},{"135":135,"168":168,"169":169,"29":29,"30":30,"31":31,"44":44,"62":62,"63":63,"85":85,"95":95}],27:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -3800,15 +3910,15 @@ module.exports = React; 'use strict'; -var _assign = _dereq_(167); +var _assign = _dereq_(169); -var EventConstants = _dereq_(15); -var EventPluginRegistry = _dereq_(17); -var ReactEventEmitterMixin = _dereq_(64); -var ViewportMetrics = _dereq_(111); +var EventConstants = _dereq_(16); +var EventPluginRegistry = _dereq_(18); +var ReactEventEmitterMixin = _dereq_(66); +var ViewportMetrics = _dereq_(113); -var getVendorPrefixedEventName = _dereq_(129); -var isEventSupported = _dereq_(131); +var getVendorPrefixedEventName = _dereq_(131); +var isEventSupported = _dereq_(133); /** * Summary of `ReactBrowserEventEmitter` event handling: @@ -4104,7 +4214,7 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { }); module.exports = ReactBrowserEventEmitter; -},{"111":111,"129":129,"131":131,"15":15,"167":167,"17":17,"64":64}],26:[function(_dereq_,module,exports){ +},{"113":113,"131":131,"133":133,"16":16,"169":169,"18":18,"66":66}],28:[function(_dereq_,module,exports){ /** * Copyright 2014-present, Facebook, Inc. * All rights reserved. @@ -4118,18 +4228,19 @@ module.exports = ReactBrowserEventEmitter; 'use strict'; -var ReactReconciler = _dereq_(85); +var ReactReconciler = _dereq_(87); -var instantiateReactComponent = _dereq_(130); -var shouldUpdateReactComponent = _dereq_(138); -var traverseAllChildren = _dereq_(139); -var warning = _dereq_(166); +var instantiateReactComponent = _dereq_(132); +var KeyEscapeUtils = _dereq_(23); +var shouldUpdateReactComponent = _dereq_(140); +var traverseAllChildren = _dereq_(141); +var warning = _dereq_(168); function instantiateChild(childInstances, child, name) { // We found a component instance. var keyUnique = childInstances[name] === undefined; if ("development" !== 'production') { - "development" !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : void 0; + "development" !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', KeyEscapeUtils.unescape(name)) : void 0; } if (child != null && keyUnique) { childInstances[name] = instantiateReactComponent(child); @@ -4229,7 +4340,7 @@ var ReactChildReconciler = { }; module.exports = ReactChildReconciler; -},{"130":130,"138":138,"139":139,"166":166,"85":85}],27:[function(_dereq_,module,exports){ +},{"132":132,"140":140,"141":141,"168":168,"23":23,"87":87}],29:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -4243,11 +4354,11 @@ module.exports = ReactChildReconciler; 'use strict'; -var PooledClass = _dereq_(23); -var ReactElement = _dereq_(60); +var PooledClass = _dereq_(25); +var ReactElement = _dereq_(62); -var emptyFunction = _dereq_(148); -var traverseAllChildren = _dereq_(139); +var emptyFunction = _dereq_(150); +var traverseAllChildren = _dereq_(141); var twoArgumentPooler = PooledClass.twoArgumentPooler; var fourArgumentPooler = PooledClass.fourArgumentPooler; @@ -4362,7 +4473,7 @@ function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { /** * Maps children that are typically specified as `props.children`. * - * The provided mapFunction(child, key, index) will be called for each + * The provided mapFunction(child, index) will be called for each * leaf child. * * @param {?*} children Children tree container. @@ -4413,7 +4524,7 @@ var ReactChildren = { }; module.exports = ReactChildren; -},{"139":139,"148":148,"23":23,"60":60}],28:[function(_dereq_,module,exports){ +},{"141":141,"150":150,"25":25,"62":62}],30:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -4427,19 +4538,19 @@ module.exports = ReactChildren; 'use strict'; -var _assign = _dereq_(167); +var _assign = _dereq_(169); -var ReactComponent = _dereq_(29); -var ReactElement = _dereq_(60); -var ReactPropTypeLocations = _dereq_(82); -var ReactPropTypeLocationNames = _dereq_(81); -var ReactNoopUpdateQueue = _dereq_(78); +var ReactComponent = _dereq_(31); +var ReactElement = _dereq_(62); +var ReactPropTypeLocations = _dereq_(84); +var ReactPropTypeLocationNames = _dereq_(83); +var ReactNoopUpdateQueue = _dereq_(80); -var emptyObject = _dereq_(149); -var invariant = _dereq_(156); -var keyMirror = _dereq_(159); -var keyOf = _dereq_(160); -var warning = _dereq_(166); +var emptyObject = _dereq_(151); +var invariant = _dereq_(158); +var keyMirror = _dereq_(161); +var keyOf = _dereq_(162); +var warning = _dereq_(168); var MIXINS_KEY = keyOf({ mixins: null }); @@ -5137,7 +5248,7 @@ var ReactClass = { }; module.exports = ReactClass; -},{"149":149,"156":156,"159":159,"160":160,"166":166,"167":167,"29":29,"60":60,"78":78,"81":81,"82":82}],29:[function(_dereq_,module,exports){ +},{"151":151,"158":158,"161":161,"162":162,"168":168,"169":169,"31":31,"62":62,"80":80,"83":83,"84":84}],31:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -5151,13 +5262,13 @@ module.exports = ReactClass; 'use strict'; -var ReactNoopUpdateQueue = _dereq_(78); -var ReactInstrumentation = _dereq_(70); +var ReactNoopUpdateQueue = _dereq_(80); +var ReactInstrumentation = _dereq_(72); -var canDefineProperty = _dereq_(114); -var emptyObject = _dereq_(149); -var invariant = _dereq_(156); -var warning = _dereq_(166); +var canDefineProperty = _dereq_(116); +var emptyObject = _dereq_(151); +var invariant = _dereq_(158); +var warning = _dereq_(168); /** * Base class helpers for the updating state of a component. @@ -5259,7 +5370,7 @@ if ("development" !== 'production') { } module.exports = ReactComponent; -},{"114":114,"149":149,"156":156,"166":166,"70":70,"78":78}],30:[function(_dereq_,module,exports){ +},{"116":116,"151":151,"158":158,"168":168,"72":72,"80":80}],32:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -5274,8 +5385,8 @@ module.exports = ReactComponent; 'use strict'; var DOMChildrenOperations = _dereq_(7); -var ReactDOMIDOperations = _dereq_(44); -var ReactPerf = _dereq_(80); +var ReactDOMIDOperations = _dereq_(46); +var ReactPerf = _dereq_(82); /** * Abstracts away all functionality of the reconciler that requires knowledge of @@ -5304,7 +5415,7 @@ ReactPerf.measureMethods(ReactComponentBrowserEnvironment, 'ReactComponentBrowse }); module.exports = ReactComponentBrowserEnvironment; -},{"44":44,"7":7,"80":80}],31:[function(_dereq_,module,exports){ +},{"46":46,"7":7,"82":82}],33:[function(_dereq_,module,exports){ /** * Copyright 2014-present, Facebook, Inc. * All rights reserved. @@ -5318,7 +5429,7 @@ module.exports = ReactComponentBrowserEnvironment; 'use strict'; -var invariant = _dereq_(156); +var invariant = _dereq_(158); var injected = false; @@ -5356,7 +5467,7 @@ var ReactComponentEnvironment = { }; module.exports = ReactComponentEnvironment; -},{"156":156}],32:[function(_dereq_,module,exports){ +},{"158":158}],34:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -5370,25 +5481,25 @@ module.exports = ReactComponentEnvironment; 'use strict'; -var _assign = _dereq_(167); - -var ReactComponentEnvironment = _dereq_(31); -var ReactCurrentOwner = _dereq_(33); -var ReactElement = _dereq_(60); -var ReactErrorUtils = _dereq_(63); -var ReactInstanceMap = _dereq_(69); -var ReactInstrumentation = _dereq_(70); -var ReactNodeTypes = _dereq_(77); -var ReactPerf = _dereq_(80); -var ReactPropTypeLocations = _dereq_(82); -var ReactPropTypeLocationNames = _dereq_(81); -var ReactReconciler = _dereq_(85); -var ReactUpdateQueue = _dereq_(91); - -var emptyObject = _dereq_(149); -var invariant = _dereq_(156); -var shouldUpdateReactComponent = _dereq_(138); -var warning = _dereq_(166); +var _assign = _dereq_(169); + +var ReactComponentEnvironment = _dereq_(33); +var ReactCurrentOwner = _dereq_(35); +var ReactElement = _dereq_(62); +var ReactErrorUtils = _dereq_(65); +var ReactInstanceMap = _dereq_(71); +var ReactInstrumentation = _dereq_(72); +var ReactNodeTypes = _dereq_(79); +var ReactPerf = _dereq_(82); +var ReactPropTypeLocations = _dereq_(84); +var ReactPropTypeLocationNames = _dereq_(83); +var ReactReconciler = _dereq_(87); +var ReactUpdateQueue = _dereq_(93); + +var emptyObject = _dereq_(151); +var invariant = _dereq_(158); +var shouldUpdateReactComponent = _dereq_(140); +var warning = _dereq_(168); function getDeclarationErrorAddendum(component) { var owner = component._currentElement._owner || null; @@ -5415,6 +5526,10 @@ function warnIfInvalidElement(Component, element) { } } +function shouldConstruct(Component) { + return Component.prototype && Component.prototype.isReactComponent; +} + /** * ------------------ The Life-Cycle of a Composite Component ------------------ * @@ -5483,6 +5598,9 @@ var ReactCompositeComponentMixin = { // See ReactUpdates and ReactUpdateQueue. this._pendingCallbacks = null; + + // ComponentWillUnmount shall only be called once + this._calledComponentWillUnmount = false; }, /** @@ -5508,37 +5626,15 @@ var ReactCompositeComponentMixin = { var Component = this._currentElement.type; // Initialize the public class - var inst; + var inst = this._constructComponent(publicProps, publicContext); var renderedElement; - if (Component.prototype && Component.prototype.isReactComponent) { - if ("development" !== 'production') { - ReactCurrentOwner.current = this; - try { - inst = new Component(publicProps, publicContext, ReactUpdateQueue); - } finally { - ReactCurrentOwner.current = null; - } - } else { - inst = new Component(publicProps, publicContext, ReactUpdateQueue); - } - } else { - if ("development" !== 'production') { - ReactCurrentOwner.current = this; - try { - inst = Component(publicProps, publicContext, ReactUpdateQueue); - } finally { - ReactCurrentOwner.current = null; - } - } else { - inst = Component(publicProps, publicContext, ReactUpdateQueue); - } - if (inst == null || inst.render == null) { - renderedElement = inst; - warnIfInvalidElement(Component, renderedElement); - !(inst === null || inst === false || ReactElement.isValidElement(inst)) ? "development" !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : invariant(false) : void 0; - inst = new StatelessComponent(Component); - } + // Support functional components + if (!shouldConstruct(Component) && (inst == null || inst.render == null)) { + renderedElement = inst; + warnIfInvalidElement(Component, renderedElement); + !(inst === null || inst === false || ReactElement.isValidElement(inst)) ? "development" !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : invariant(false) : void 0; + inst = new StatelessComponent(Component); } if ("development" !== 'production') { @@ -5603,6 +5699,28 @@ var ReactCompositeComponentMixin = { return markup; }, + _constructComponent: function (publicProps, publicContext) { + if ("development" !== 'production') { + ReactCurrentOwner.current = this; + try { + return this._constructComponentWithoutOwner(publicProps, publicContext); + } finally { + ReactCurrentOwner.current = null; + } + } else { + return this._constructComponentWithoutOwner(publicProps, publicContext); + } + }, + + _constructComponentWithoutOwner: function (publicProps, publicContext) { + var Component = this._currentElement.type; + if (shouldConstruct(Component)) { + return new Component(publicProps, publicContext, ReactUpdateQueue); + } else { + return Component(publicProps, publicContext, ReactUpdateQueue); + } + }, + performInitialMountWithErrorHandling: function (renderedElement, nativeParent, nativeContainerInfo, transaction, context) { var markup; var checkpoint = transaction.checkpoint(); @@ -5667,7 +5785,8 @@ var ReactCompositeComponentMixin = { } var inst = this._instance; - if (inst.componentWillUnmount) { + if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) { + inst._calledComponentWillUnmount = true; if (safely) { var name = this.getName() + '.componentWillUnmount()'; ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst)); @@ -6143,7 +6262,7 @@ var ReactCompositeComponent = { }; module.exports = ReactCompositeComponent; -},{"138":138,"149":149,"156":156,"166":166,"167":167,"31":31,"33":33,"60":60,"63":63,"69":69,"70":70,"77":77,"80":80,"81":81,"82":82,"85":85,"91":91}],33:[function(_dereq_,module,exports){ +},{"140":140,"151":151,"158":158,"168":168,"169":169,"33":33,"35":35,"62":62,"65":65,"71":71,"72":72,"79":79,"82":82,"83":83,"84":84,"87":87,"93":93}],35:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -6175,7 +6294,7 @@ var ReactCurrentOwner = { }; module.exports = ReactCurrentOwner; -},{}],34:[function(_dereq_,module,exports){ +},{}],36:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -6191,18 +6310,18 @@ module.exports = ReactCurrentOwner; 'use strict'; -var ReactDOMComponentTree = _dereq_(38); -var ReactDefaultInjection = _dereq_(57); -var ReactMount = _dereq_(73); -var ReactPerf = _dereq_(80); -var ReactReconciler = _dereq_(85); -var ReactUpdates = _dereq_(92); -var ReactVersion = _dereq_(93); +var ReactDOMComponentTree = _dereq_(40); +var ReactDefaultInjection = _dereq_(59); +var ReactMount = _dereq_(75); +var ReactPerf = _dereq_(82); +var ReactReconciler = _dereq_(87); +var ReactUpdates = _dereq_(94); +var ReactVersion = _dereq_(95); -var findDOMNode = _dereq_(118); -var getNativeComponentFromComposite = _dereq_(126); -var renderSubtreeIntoContainer = _dereq_(135); -var warning = _dereq_(166); +var findDOMNode = _dereq_(120); +var getNativeComponentFromComposite = _dereq_(128); +var renderSubtreeIntoContainer = _dereq_(137); +var warning = _dereq_(168); ReactDefaultInjection.inject(); @@ -6244,7 +6363,7 @@ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVT } if ("development" !== 'production') { - var ExecutionEnvironment = _dereq_(142); + var ExecutionEnvironment = _dereq_(144); if (ExecutionEnvironment.canUseDOM && window.top === window.self) { // First check if devtools is not installed @@ -6280,7 +6399,7 @@ if ("development" !== 'production') { } module.exports = React; -},{"118":118,"126":126,"135":135,"142":142,"166":166,"38":38,"57":57,"73":73,"80":80,"85":85,"92":92,"93":93}],35:[function(_dereq_,module,exports){ +},{"120":120,"128":128,"137":137,"144":144,"168":168,"40":40,"59":59,"75":75,"82":82,"87":87,"94":94,"95":95}],37:[function(_dereq_,module,exports){ /** * Copyright 2013-present, Facebook, Inc. * All rights reserved. @@ -6294,44 +6413,18 @@ module.exports = React; 'use strict'; -var mouseListenerNames = { - onClick: true, - onDoubleClick: true, - onMouseDown: true, - onMouseMove: true, - onMouseUp: true, - - onClickCapture: true, - onDoubleClickCapture: true, - onMouseDownCapture: true, - onMouseMoveCapture: true, - onMouseUpCapture: true -}; +var DisabledInputUtils = _dereq_(14); /** * Implements a