diff --git a/README.md b/README.md index 39816f93f..1e365dd64 100644 --- a/README.md +++ b/README.md @@ -384,3 +384,8 @@ Any subclass of `ExecJSRenderer` may use those hooks (for example, `SprocketsRen - [React.rb](http://reactrb.org/): Use Ruby to build reactive user interfaces with React under the covers.[github source code here](https://github.com/zetachang/react.rb). - [react-rails-hot-loader](https://github.com/rmosolgo/react-rails-hot-loader) is a simple live-reloader for `react-rails`. - [react-rails-benchmark_renderer](https://github.com/pboling/react-rails-benchmark_renderer) adds performance instrumentation to server rendering. + +## Development + +- Run tests with `rake test` or `appraisal rake test` +- Update React assets with `rake react:update` diff --git a/Rakefile b/Rakefile index 8d62d92ab..dc536cbd5 100644 --- a/Rakefile +++ b/Rakefile @@ -14,7 +14,7 @@ end namespace :react do desc "Run the JS build process to put files in the gem source" - task update: [:build, :copy] + task update: [:install, :build, :copy] desc "Build the JS bundles with Webpack" task :build do diff --git a/VERSIONS.md b/VERSIONS.md index dacccee53..d6077f88a 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -9,7 +9,7 @@ You can control what version of React.js (and JSXTransformer) is used by `react- | Gem | React.js | |----------|----------| -| master | 15.2.1 | +| master | 15.3.0 | | 1.8.1 | 15.2.1 | | 1.8.0 | 15.0.2 | | 1.7.2 | 15.0.2 | diff --git a/lib/assets/react-source/development-with-addons/react-server.js b/lib/assets/react-source/development-with-addons/react-server.js index a11457389..9d671d409 100644 --- a/lib/assets/react-source/development-with-addons/react-server.js +++ b/lib/assets/react-source/development-with-addons/react-server.js @@ -45,10 +45,10 @@ /***/ function(module, exports, __webpack_require__) { var React = __webpack_require__(1); - var ReactDOM = __webpack_require__(33); - var ReactDOMServer = __webpack_require__(196); + var ReactDOM = __webpack_require__(35); + var ReactDOMServer = __webpack_require__(199); - React.addons = __webpack_require__(172); + React.addons = __webpack_require__(175); window.React = React; window.ReactDOM = ReactDOM; @@ -85,13 +85,14 @@ var ReactChildren = __webpack_require__(5); var ReactComponent = __webpack_require__(17); - var ReactClass = __webpack_require__(20); - var ReactDOMFactories = __webpack_require__(25); + var ReactPureComponent = __webpack_require__(20); + var ReactClass = __webpack_require__(21); + var ReactDOMFactories = __webpack_require__(26); var ReactElement = __webpack_require__(9); - var ReactPropTypes = __webpack_require__(30); - var ReactVersion = __webpack_require__(31); + var ReactPropTypes = __webpack_require__(32); + var ReactVersion = __webpack_require__(33); - var onlyChild = __webpack_require__(32); + var onlyChild = __webpack_require__(34); var warning = __webpack_require__(11); var createElement = ReactElement.createElement; @@ -99,7 +100,7 @@ var cloneElement = ReactElement.cloneElement; if (process.env.NODE_ENV !== 'production') { - var ReactElementValidator = __webpack_require__(27); + var ReactElementValidator = __webpack_require__(28); createElement = ReactElementValidator.createElement; createFactory = ReactElementValidator.createFactory; cloneElement = ReactElementValidator.cloneElement; @@ -129,6 +130,7 @@ }, Component: ReactComponent, + PureComponent: ReactPureComponent, createElement: createElement, cloneElement: cloneElement, @@ -162,7 +164,6 @@ /***/ function(module, exports) { // shim for using process in browser - var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it @@ -174,21 +175,63 @@ var cachedClearTimeout; (function () { - try { - cachedSetTimeout = setTimeout; - } catch (e) { - cachedSetTimeout = function () { - throw new Error('setTimeout is not defined'); + try { + cachedSetTimeout = setTimeout; + } catch (e) { + cachedSetTimeout = function () { + throw new Error('setTimeout is not defined'); + } } - } - try { - cachedClearTimeout = clearTimeout; - } catch (e) { - cachedClearTimeout = function () { - throw new Error('clearTimeout is not defined'); + try { + cachedClearTimeout = clearTimeout; + } catch (e) { + cachedClearTimeout = function () { + throw new Error('clearTimeout is not defined'); + } } - } } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } var queue = []; var draining = false; var currentQueue; @@ -213,7 +256,7 @@ if (draining) { return; } - var timeout = cachedSetTimeout.call(null, cleanUpNextTick); + var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; @@ -230,7 +273,7 @@ } currentQueue = null; draining = false; - cachedClearTimeout.call(null, timeout); + runClearTimeout(timeout); } process.nextTick = function (fun) { @@ -242,7 +285,7 @@ } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { - cachedSetTimeout.call(null, drainQueue, 0); + runTimeout(drainQueue); } }; @@ -896,6 +939,7 @@ // This can be replaced with a WeakMap once they are implemented in // commonly used development environments. element._store = {}; + var shadowChildren = Array.isArray(props.children) ? props.children.slice(0) : props.children; // To make comparing ReactElements easier for testing purposes, we make // the validation flag non-enumerable (where possible, which should @@ -915,6 +959,12 @@ writable: false, value: self }); + Object.defineProperty(element, '_shadowChildren', { + configurable: false, + enumerable: false, + writable: false, + value: shadowChildren + }); // Two elements created in two different places should be considered // equal for testing purposes and therefore we hide it from enumeration. Object.defineProperty(element, '_source', { @@ -926,6 +976,7 @@ } else { element._store.validated = false; element._self = self; + element._shadowChildren = shadowChildren; element._source = source; } if (Object.freeze) { @@ -1426,7 +1477,14 @@ } } else { if (process.env.NODE_ENV !== 'production') { - process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : void 0; + var mapsAsChildrenAddendum = ''; + if (ReactCurrentOwner.current) { + var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); + if (mapsAsChildrenOwnerName) { + mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; + } + } + process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; didWarnAboutMaps = true; } // Iterator will provide entry [k,v] tuples rather than values. @@ -1851,6 +1909,53 @@ /***/ }, /* 20 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * 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 ReactPureComponent + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var ReactComponent = __webpack_require__(17); + var ReactNoopUpdateQueue = __webpack_require__(18); + + var emptyObject = __webpack_require__(19); + + /** + * Base class helpers for the updating state of a component. + */ + function ReactPureComponent(props, context, updater) { + // Duplicated from ReactComponent. + this.props = props; + this.context = context; + this.refs = emptyObject; + // We initialize the default updater but the real one gets injected by the + // renderer. + this.updater = updater || ReactNoopUpdateQueue; + } + + function ComponentDummy() {} + ComponentDummy.prototype = ReactComponent.prototype; + ReactPureComponent.prototype = new ComponentDummy(); + ReactPureComponent.prototype.constructor = ReactPureComponent; + // Avoid an extra prototype jump for these methods. + _assign(ReactPureComponent.prototype, ReactComponent.prototype); + ReactPureComponent.prototype.isPureReactComponent = true; + + module.exports = ReactPureComponent; + +/***/ }, +/* 21 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -1871,14 +1976,14 @@ var ReactComponent = __webpack_require__(17); var ReactElement = __webpack_require__(9); - var ReactPropTypeLocations = __webpack_require__(21); - var ReactPropTypeLocationNames = __webpack_require__(23); + var ReactPropTypeLocations = __webpack_require__(22); + var ReactPropTypeLocationNames = __webpack_require__(24); var ReactNoopUpdateQueue = __webpack_require__(18); var emptyObject = __webpack_require__(19); var invariant = __webpack_require__(8); - var keyMirror = __webpack_require__(22); - var keyOf = __webpack_require__(24); + var keyMirror = __webpack_require__(23); + var keyOf = __webpack_require__(25); var warning = __webpack_require__(11); var MIXINS_KEY = keyOf({ mixins: null }); @@ -2240,6 +2345,13 @@ */ function mixSpecIntoComponent(Constructor, spec) { if (!spec) { + if (process.env.NODE_ENV !== 'production') { + var typeofSpec = typeof spec; + var isMixinValid = typeofSpec === 'object' && spec !== null; + + process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; + } + return; } @@ -2581,7 +2693,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2597,7 +2709,7 @@ 'use strict'; - var keyMirror = __webpack_require__(22); + var keyMirror = __webpack_require__(23); var ReactPropTypeLocations = keyMirror({ prop: null, @@ -2608,7 +2720,7 @@ module.exports = ReactPropTypeLocations; /***/ }, -/* 22 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2661,7 +2773,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 23 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2691,7 +2803,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 24 */ +/* 25 */ /***/ function(module, exports) { "use strict"; @@ -2730,7 +2842,7 @@ module.exports = keyOf; /***/ }, -/* 25 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2748,7 +2860,7 @@ var ReactElement = __webpack_require__(9); - var mapObject = __webpack_require__(26); + var mapObject = __webpack_require__(27); /** * Create a factory that creates HTML tag elements. @@ -2758,7 +2870,7 @@ */ function createDOMFactory(tag) { if (process.env.NODE_ENV !== 'production') { - var ReactElementValidator = __webpack_require__(27); + var ReactElementValidator = __webpack_require__(28); return ReactElementValidator.createFactory(tag); } return ReactElement.createFactory(tag); @@ -2912,7 +3024,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 26 */ +/* 27 */ /***/ function(module, exports) { /** @@ -2967,7 +3079,7 @@ module.exports = mapObject; /***/ }, -/* 27 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2991,11 +3103,11 @@ 'use strict'; var ReactCurrentOwner = __webpack_require__(10); - var ReactComponentTreeDevtool = __webpack_require__(28); + var ReactComponentTreeDevtool = __webpack_require__(29); var ReactElement = __webpack_require__(9); - var ReactPropTypeLocations = __webpack_require__(21); + var ReactPropTypeLocations = __webpack_require__(22); - var checkReactTypeSpec = __webpack_require__(29); + var checkReactTypeSpec = __webpack_require__(30); var canDefineProperty = __webpack_require__(13); var getIteratorFn = __webpack_require__(15); @@ -3199,7 +3311,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 28 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3423,7 +3535,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 29 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3441,11 +3553,23 @@ var _prodInvariant = __webpack_require__(7); - var ReactPropTypeLocationNames = __webpack_require__(23); + var ReactPropTypeLocationNames = __webpack_require__(24); + var ReactPropTypesSecret = __webpack_require__(31); var invariant = __webpack_require__(8); var warning = __webpack_require__(11); + var ReactComponentTreeDevtool; + + if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { + // Temporary hack. + // Inline requires don't work well with Jest: + // https://github.com/facebook/react/issues/7240 + // Remove the inline requires when we don't need them anymore: + // https://github.com/facebook/react/pull/7178 + ReactComponentTreeDevtool = __webpack_require__(29); + } + var loggedTypeFailures = {}; /** @@ -3471,7 +3595,7 @@ // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } @@ -3484,7 +3608,9 @@ var componentStackInfo = ''; if (process.env.NODE_ENV !== 'production') { - var ReactComponentTreeDevtool = __webpack_require__(28); + if (!ReactComponentTreeDevtool) { + ReactComponentTreeDevtool = __webpack_require__(29); + } if (debugID !== null) { componentStackInfo = ReactComponentTreeDevtool.getStackAddendumByID(debugID); } else if (element !== null) { @@ -3502,10 +3628,31 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { +/* 31 */ +/***/ function(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 ReactPropTypesSecret + */ + + 'use strict'; + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + module.exports = ReactPropTypesSecret; + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2013-present, Facebook, Inc. * All rights reserved. * @@ -3519,10 +3666,12 @@ 'use strict'; var ReactElement = __webpack_require__(9); - var ReactPropTypeLocationNames = __webpack_require__(23); + var ReactPropTypeLocationNames = __webpack_require__(24); + var ReactPropTypesSecret = __webpack_require__(31); var emptyFunction = __webpack_require__(12); var getIteratorFn = __webpack_require__(15); + var warning = __webpack_require__(11); /** * Collection of methods that allow declaration and validation of props that are @@ -3612,9 +3761,21 @@ /*eslint-enable no-self-compare*/ function createChainableTypeChecker(validate) { - function checkType(isRequired, props, propName, componentName, location, propFullName) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { componentName = componentName || ANONYMOUS; propFullName = propFullName || propName; + if (process.env.NODE_ENV !== 'production') { + if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') { + var cacheKey = componentName + ':' + propName; + if (!manualPropTypeCallCache[cacheKey]) { + process.env.NODE_ENV !== 'production' ? warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will not work in the next major version. You may be ' + 'seeing this warning due to a third-party PropTypes library. ' + 'See https://fb.me/react-warning-dont-call-proptypes for details.', propFullName, componentName) : void 0; + manualPropTypeCallCache[cacheKey] = true; + } + } + } if (props[propName] == null) { var locationName = ReactPropTypeLocationNames[location]; if (isRequired) { @@ -3633,7 +3794,7 @@ } function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName) { + function validate(props, propName, componentName, location, propFullName, secret) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== expectedType) { @@ -3666,7 +3827,7 @@ return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); } for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']'); + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); if (error instanceof Error) { return error; } @@ -3678,9 +3839,11 @@ function createElementTypeChecker() { function validate(props, propName, componentName, location, propFullName) { - if (!ReactElement.isValidElement(props[propName])) { + var propValue = props[propName]; + if (!ReactElement.isValidElement(propValue)) { var locationName = ReactPropTypeLocationNames[location]; - return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.')); + var propType = getPropType(propValue); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); } return null; } @@ -3702,9 +3865,8 @@ function createEnumTypeChecker(expectedValues) { if (!Array.isArray(expectedValues)) { - return createChainableTypeChecker(function () { - return new Error('Invalid argument supplied to oneOf, expected an instance of array.'); - }); + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; } function validate(props, propName, componentName, location, propFullName) { @@ -3735,7 +3897,7 @@ } for (var key in propValue) { if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key); + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error instanceof Error) { return error; } @@ -3748,15 +3910,14 @@ function createUnionTypeChecker(arrayOfTypeCheckers) { if (!Array.isArray(arrayOfTypeCheckers)) { - return createChainableTypeChecker(function () { - return new Error('Invalid argument supplied to oneOfType, expected an instance of array.'); - }); + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; } function validate(props, propName, componentName, location, propFullName) { for (var i = 0; i < arrayOfTypeCheckers.length; i++) { var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName) == null) { + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { return null; } } @@ -3791,7 +3952,7 @@ if (!checker) { continue; } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key); + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error) { return error; } @@ -3908,9 +4069,10 @@ } module.exports = ReactPropTypes; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 31 */ +/* 33 */ /***/ function(module, exports) { /** @@ -3926,10 +4088,10 @@ 'use strict'; - module.exports = '15.2.1'; + module.exports = '15.3.0'; /***/ }, -/* 32 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3973,16 +4135,16 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 33 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - module.exports = __webpack_require__(34); + module.exports = __webpack_require__(36); /***/ }, -/* 34 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -4000,21 +4162,21 @@ 'use strict'; - var ReactDOMComponentTree = __webpack_require__(35); - var ReactDefaultInjection = __webpack_require__(38); - var ReactMount = __webpack_require__(164); - var ReactReconciler = __webpack_require__(58); - var ReactUpdates = __webpack_require__(55); - var ReactVersion = __webpack_require__(31); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactDefaultInjection = __webpack_require__(40); + var ReactMount = __webpack_require__(167); + var ReactReconciler = __webpack_require__(60); + var ReactUpdates = __webpack_require__(57); + var ReactVersion = __webpack_require__(33); - var findDOMNode = __webpack_require__(169); - var getHostComponentFromComposite = __webpack_require__(170); - var renderSubtreeIntoContainer = __webpack_require__(171); + var findDOMNode = __webpack_require__(172); + var getHostComponentFromComposite = __webpack_require__(173); + var renderSubtreeIntoContainer = __webpack_require__(174); var warning = __webpack_require__(11); ReactDefaultInjection.inject(); - var React = { + var ReactDOM = { findDOMNode: findDOMNode, render: ReactMount.render, unmountComponentAtNode: ReactMount.unmountComponentAtNode, @@ -4050,7 +4212,7 @@ } if (process.env.NODE_ENV !== 'production') { - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); if (ExecutionEnvironment.canUseDOM && window.top === window.self) { // First check if devtools is not installed @@ -4085,11 +4247,11 @@ } } - module.exports = React; + module.exports = ReactDOM; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 35 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -4107,8 +4269,8 @@ var _prodInvariant = __webpack_require__(7); - var DOMProperty = __webpack_require__(36); - var ReactDOMComponentFlags = __webpack_require__(37); + var DOMProperty = __webpack_require__(38); + var ReactDOMComponentFlags = __webpack_require__(39); var invariant = __webpack_require__(8); @@ -4283,7 +4445,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 36 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -4495,7 +4657,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 37 */ +/* 39 */ /***/ function(module, exports) { /** @@ -4518,7 +4680,7 @@ module.exports = ReactDOMComponentFlags; /***/ }, -/* 38 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4534,24 +4696,24 @@ 'use strict'; - var BeforeInputEventPlugin = __webpack_require__(39); - var ChangeEventPlugin = __webpack_require__(54); - var DefaultEventPluginOrder = __webpack_require__(71); - var EnterLeaveEventPlugin = __webpack_require__(72); - var HTMLDOMPropertyConfig = __webpack_require__(77); - var ReactComponentBrowserEnvironment = __webpack_require__(78); - var ReactDOMComponent = __webpack_require__(92); - var ReactDOMComponentTree = __webpack_require__(35); - var ReactDOMEmptyComponent = __webpack_require__(135); - var ReactDOMTreeTraversal = __webpack_require__(136); - var ReactDOMTextComponent = __webpack_require__(137); - var ReactDefaultBatchingStrategy = __webpack_require__(138); - var ReactEventListener = __webpack_require__(139); - var ReactInjection = __webpack_require__(142); - var ReactReconcileTransaction = __webpack_require__(143); - var SVGDOMPropertyConfig = __webpack_require__(151); - var SelectEventPlugin = __webpack_require__(152); - var SimpleEventPlugin = __webpack_require__(153); + var BeforeInputEventPlugin = __webpack_require__(41); + var ChangeEventPlugin = __webpack_require__(56); + var DefaultEventPluginOrder = __webpack_require__(74); + var EnterLeaveEventPlugin = __webpack_require__(75); + var HTMLDOMPropertyConfig = __webpack_require__(80); + var ReactComponentBrowserEnvironment = __webpack_require__(81); + var ReactDOMComponent = __webpack_require__(95); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactDOMEmptyComponent = __webpack_require__(138); + var ReactDOMTreeTraversal = __webpack_require__(139); + var ReactDOMTextComponent = __webpack_require__(140); + var ReactDefaultBatchingStrategy = __webpack_require__(141); + var ReactEventListener = __webpack_require__(142); + var ReactInjection = __webpack_require__(145); + var ReactReconcileTransaction = __webpack_require__(146); + var SVGDOMPropertyConfig = __webpack_require__(154); + var SelectEventPlugin = __webpack_require__(155); + var SimpleEventPlugin = __webpack_require__(156); var alreadyInjected = false; @@ -4607,7 +4769,7 @@ }; /***/ }, -/* 39 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4623,14 +4785,14 @@ 'use strict'; - var EventConstants = __webpack_require__(40); - var EventPropagators = __webpack_require__(41); - var ExecutionEnvironment = __webpack_require__(48); - var FallbackCompositionState = __webpack_require__(49); - var SyntheticCompositionEvent = __webpack_require__(51); - var SyntheticInputEvent = __webpack_require__(53); + var EventConstants = __webpack_require__(42); + var EventPropagators = __webpack_require__(43); + var ExecutionEnvironment = __webpack_require__(50); + var FallbackCompositionState = __webpack_require__(51); + var SyntheticCompositionEvent = __webpack_require__(53); + var SyntheticInputEvent = __webpack_require__(55); - var keyOf = __webpack_require__(24); + var keyOf = __webpack_require__(25); var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -5000,7 +5162,7 @@ module.exports = BeforeInputEventPlugin; /***/ }, -/* 40 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { /** @@ -5016,7 +5178,7 @@ 'use strict'; - var keyMirror = __webpack_require__(22); + var keyMirror = __webpack_require__(23); var PropagationPhases = keyMirror({ bubbled: null, captured: null }); @@ -5102,7 +5264,7 @@ module.exports = EventConstants; /***/ }, -/* 41 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -5118,12 +5280,12 @@ 'use strict'; - var EventConstants = __webpack_require__(40); - var EventPluginHub = __webpack_require__(42); - var EventPluginUtils = __webpack_require__(44); + var EventConstants = __webpack_require__(42); + var EventPluginHub = __webpack_require__(44); + var EventPluginUtils = __webpack_require__(46); - var accumulateInto = __webpack_require__(46); - var forEachAccumulated = __webpack_require__(47); + var accumulateInto = __webpack_require__(48); + var forEachAccumulated = __webpack_require__(49); var warning = __webpack_require__(11); var PropagationPhases = EventConstants.PropagationPhases; @@ -5245,7 +5407,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 42 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -5263,12 +5425,12 @@ var _prodInvariant = __webpack_require__(7); - var EventPluginRegistry = __webpack_require__(43); - var EventPluginUtils = __webpack_require__(44); - var ReactErrorUtils = __webpack_require__(45); + var EventPluginRegistry = __webpack_require__(45); + var EventPluginUtils = __webpack_require__(46); + var ReactErrorUtils = __webpack_require__(47); - var accumulateInto = __webpack_require__(46); - var forEachAccumulated = __webpack_require__(47); + var accumulateInto = __webpack_require__(48); + var forEachAccumulated = __webpack_require__(49); var invariant = __webpack_require__(8); /** @@ -5305,6 +5467,10 @@ return executeDispatchesAndRelease(e, false); }; + var getDictionaryKey = function (inst) { + return '.' + inst._rootNodeID; + }; + /** * This is a unified interface for event plugins to be installed and configured. * @@ -5348,7 +5514,7 @@ }, /** - * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent. + * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent. * * @param {object} inst The instance, which is the source of events. * @param {string} registrationName Name of listener (e.g. `onClick`). @@ -5357,8 +5523,9 @@ putListener: function (inst, registrationName, listener) { !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0; + var key = getDictionaryKey(inst); var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); - bankForRegistrationName[inst._rootNodeID] = listener; + bankForRegistrationName[key] = listener; var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; if (PluginModule && PluginModule.didPutListener) { @@ -5373,7 +5540,8 @@ */ getListener: function (inst, registrationName) { var bankForRegistrationName = listenerBank[registrationName]; - return bankForRegistrationName && bankForRegistrationName[inst._rootNodeID]; + var key = getDictionaryKey(inst); + return bankForRegistrationName && bankForRegistrationName[key]; }, /** @@ -5391,7 +5559,8 @@ var bankForRegistrationName = listenerBank[registrationName]; // TODO: This should never be null -- when is it? if (bankForRegistrationName) { - delete bankForRegistrationName[inst._rootNodeID]; + var key = getDictionaryKey(inst); + delete bankForRegistrationName[key]; } }, @@ -5401,12 +5570,13 @@ * @param {object} inst The instance, which is the source of events. */ deleteAllListeners: function (inst) { + var key = getDictionaryKey(inst); for (var registrationName in listenerBank) { if (!listenerBank.hasOwnProperty(registrationName)) { continue; } - if (!listenerBank[registrationName][inst._rootNodeID]) { + if (!listenerBank[registrationName][key]) { continue; } @@ -5415,7 +5585,7 @@ PluginModule.willDeleteListener(inst, registrationName); } - delete listenerBank[registrationName][inst._rootNodeID]; + delete listenerBank[registrationName][key]; } }, @@ -5492,7 +5662,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 43 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -5745,7 +5915,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 44 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -5763,8 +5933,8 @@ var _prodInvariant = __webpack_require__(7); - var EventConstants = __webpack_require__(40); - var ReactErrorUtils = __webpack_require__(45); + var EventConstants = __webpack_require__(42); + var ReactErrorUtils = __webpack_require__(47); var invariant = __webpack_require__(8); var warning = __webpack_require__(11); @@ -5980,7 +6150,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 45 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6062,7 +6232,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 46 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6126,7 +6296,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 47 */ +/* 49 */ /***/ function(module, exports) { /** @@ -6162,7 +6332,7 @@ module.exports = forEachAccumulated; /***/ }, -/* 48 */ +/* 50 */ /***/ function(module, exports) { /** @@ -6202,7 +6372,7 @@ module.exports = ExecutionEnvironment; /***/ }, -/* 49 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6222,7 +6392,7 @@ var PooledClass = __webpack_require__(6); - var getTextContentAccessor = __webpack_require__(50); + var getTextContentAccessor = __webpack_require__(52); /** * This helper class stores information about text content of a target node, @@ -6302,7 +6472,7 @@ module.exports = FallbackCompositionState; /***/ }, -/* 50 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6318,7 +6488,7 @@ 'use strict'; - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); var contentKey = null; @@ -6340,7 +6510,7 @@ module.exports = getTextContentAccessor; /***/ }, -/* 51 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6356,7 +6526,7 @@ 'use strict'; - var SyntheticEvent = __webpack_require__(52); + var SyntheticEvent = __webpack_require__(54); /** * @interface Event @@ -6381,7 +6551,7 @@ module.exports = SyntheticCompositionEvent; /***/ }, -/* 52 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6647,7 +6817,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 53 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6663,7 +6833,7 @@ 'use strict'; - var SyntheticEvent = __webpack_require__(52); + var SyntheticEvent = __webpack_require__(54); /** * @interface Event @@ -6689,7 +6859,7 @@ module.exports = SyntheticInputEvent; /***/ }, -/* 54 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6705,18 +6875,18 @@ 'use strict'; - var EventConstants = __webpack_require__(40); - var EventPluginHub = __webpack_require__(42); - var EventPropagators = __webpack_require__(41); - var ExecutionEnvironment = __webpack_require__(48); - var ReactDOMComponentTree = __webpack_require__(35); - var ReactUpdates = __webpack_require__(55); - var SyntheticEvent = __webpack_require__(52); + var EventConstants = __webpack_require__(42); + var EventPluginHub = __webpack_require__(44); + var EventPropagators = __webpack_require__(43); + var ExecutionEnvironment = __webpack_require__(50); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactUpdates = __webpack_require__(57); + var SyntheticEvent = __webpack_require__(54); - var getEventTarget = __webpack_require__(68); - var isEventSupported = __webpack_require__(69); - var isTextInputElement = __webpack_require__(70); - var keyOf = __webpack_require__(24); + var getEventTarget = __webpack_require__(71); + var isEventSupported = __webpack_require__(72); + var isTextInputElement = __webpack_require__(73); + var keyOf = __webpack_require__(25); var topLevelTypes = EventConstants.topLevelTypes; @@ -7019,7 +7189,7 @@ module.exports = ChangeEventPlugin; /***/ }, -/* 55 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7038,11 +7208,11 @@ var _prodInvariant = __webpack_require__(7), _assign = __webpack_require__(4); - var CallbackQueue = __webpack_require__(56); + var CallbackQueue = __webpack_require__(58); var PooledClass = __webpack_require__(6); - var ReactFeatureFlags = __webpack_require__(57); - var ReactReconciler = __webpack_require__(58); - var Transaction = __webpack_require__(67); + var ReactFeatureFlags = __webpack_require__(59); + var ReactReconciler = __webpack_require__(60); + var Transaction = __webpack_require__(70); var invariant = __webpack_require__(8); @@ -7276,7 +7446,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 56 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7388,7 +7558,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 57 */ +/* 59 */ /***/ function(module, exports) { /** @@ -7415,7 +7585,7 @@ module.exports = ReactFeatureFlags; /***/ }, -/* 58 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7431,12 +7601,10 @@ 'use strict'; - var _prodInvariant = __webpack_require__(7); - - var ReactRef = __webpack_require__(59); - var ReactInstrumentation = __webpack_require__(61); + var ReactRef = __webpack_require__(61); + var ReactInstrumentation = __webpack_require__(63); - var invariant = __webpack_require__(8); + var warning = __webpack_require__(11); /** * Helper to call ReactRef.attachRefs with this composite component, split out @@ -7573,7 +7741,7 @@ if (internalInstance._updateBatchNumber !== updateBatchNumber) { // The component's enqueued batch number should always be the current // batch or the following one. - !(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'performUpdateIfNecessary: Unexpected batch number (current %s, pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : _prodInvariant('121', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; + process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; return; } if (process.env.NODE_ENV !== 'production') { @@ -7597,7 +7765,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 59 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { /** @@ -7613,7 +7781,7 @@ 'use strict'; - var ReactOwner = __webpack_require__(60); + var ReactOwner = __webpack_require__(62); var ReactRef = {}; @@ -7663,7 +7831,9 @@ return( // This has a few false positives w/r/t empty components. - prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref + prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref || + // If owner changes but we have an unchanged function ref, don't update refs + typeof nextElement.ref === 'string' && nextElement._owner !== prevElement._owner ); }; @@ -7680,7 +7850,7 @@ module.exports = ReactRef; /***/ }, -/* 60 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7780,7 +7950,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 61 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7799,7 +7969,7 @@ var debugTool = null; if (process.env.NODE_ENV !== 'production') { - var ReactDebugTool = __webpack_require__(62); + var ReactDebugTool = __webpack_require__(64); debugTool = ReactDebugTool; } @@ -7807,7 +7977,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 62 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7823,12 +7993,13 @@ 'use strict'; - var ReactInvalidSetStateWarningDevTool = __webpack_require__(63); - var ReactHostOperationHistoryDevtool = __webpack_require__(64); - var ReactComponentTreeDevtool = __webpack_require__(28); - var ExecutionEnvironment = __webpack_require__(48); + var ReactInvalidSetStateWarningDevTool = __webpack_require__(65); + var ReactHostOperationHistoryDevtool = __webpack_require__(66); + var ReactComponentTreeDevtool = __webpack_require__(29); + var ReactChildrenMutationWarningDevtool = __webpack_require__(67); + var ExecutionEnvironment = __webpack_require__(50); - var performanceNow = __webpack_require__(65); + var performanceNow = __webpack_require__(68); var warning = __webpack_require__(11); var eventHandlers = []; @@ -7858,6 +8029,8 @@ var currentTimerNestedFlushDuration = null; var currentTimerType = null; + var lifeCycleTimerHasWarned = false; + function clearHistory() { ReactComponentTreeDevtool.purgeUnmountedComponents(); ReactHostOperationHistoryDevtool.clearHistory(); @@ -7915,7 +8088,10 @@ if (currentFlushNesting === 0) { return; } - process.env.NODE_ENV !== 'production' ? warning(!currentTimerType, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + if (currentTimerType && !lifeCycleTimerHasWarned) { + process.env.NODE_ENV !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + lifeCycleTimerHasWarned = true; + } currentTimerStartTime = performanceNow(); currentTimerNestedFlushDuration = 0; currentTimerDebugID = debugID; @@ -7926,7 +8102,10 @@ if (currentFlushNesting === 0) { return; } - process.env.NODE_ENV !== 'production' ? warning(currentTimerType === timerType, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) { + process.env.NODE_ENV !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + lifeCycleTimerHasWarned = true; + } if (isProfiling) { currentFlushMeasurements.push({ timerType: timerType, @@ -8052,6 +8231,14 @@ checkDebugID(debugID); emitEvent('onHostOperation', debugID, type, payload); }, + onComponentHasMounted: function (debugID) { + checkDebugID(debugID); + emitEvent('onComponentHasMounted', debugID); + }, + onComponentHasUpdated: function (debugID) { + checkDebugID(debugID); + emitEvent('onComponentHasUpdated', debugID); + }, onSetState: function () { emitEvent('onSetState'); }, @@ -8107,6 +8294,7 @@ ReactDebugTool.addDevtool(ReactInvalidSetStateWarningDevTool); ReactDebugTool.addDevtool(ReactComponentTreeDevtool); + ReactDebugTool.addDevtool(ReactChildrenMutationWarningDevtool); var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; if (/[?&]react_perf\b/.test(url)) { ReactDebugTool.beginProfiling(); @@ -8116,7 +8304,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 63 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -8158,7 +8346,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 64 */ +/* 66 */ /***/ function(module, exports) { /** @@ -8200,61 +8388,129 @@ module.exports = ReactHostOperationHistoryDevtool; /***/ }, -/* 65 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; - - /** - * Copyright (c) 2013-present, Facebook, Inc. + /* WEBPACK VAR INJECTION */(function(process) {/** + * 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. * - * @typechecks + * @providesModule ReactChildrenMutationWarningDevtool */ - var performance = __webpack_require__(66); - - var performanceNow; - - /** - * Detect if we can use `window.performance.now()` and gracefully fallback to - * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now - * because of Facebook's testing infrastructure. - */ - if (performance.now) { - performanceNow = function performanceNow() { - return performance.now(); - }; - } else { - performanceNow = function performanceNow() { - return Date.now(); - }; - } + 'use strict'; - module.exports = performanceNow; + var ReactComponentTreeDevtool = __webpack_require__(29); -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { + var warning = __webpack_require__(11); - /** - * Copyright (c) 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. - * - * @typechecks - */ + var elements = {}; + + function handleElement(debugID, element) { + if (element == null) { + return; + } + if (element._shadowChildren === undefined) { + return; + } + if (element._shadowChildren === element.props.children) { + return; + } + var isMutated = false; + if (Array.isArray(element._shadowChildren)) { + if (element._shadowChildren.length === element.props.children.length) { + for (var i = 0; i < element._shadowChildren.length; i++) { + if (element._shadowChildren[i] !== element.props.children[i]) { + isMutated = true; + } + } + } else { + isMutated = true; + } + } + process.env.NODE_ENV !== 'production' ? warning(Array.isArray(element._shadowChildren) && !isMutated, 'Component\'s children should not be mutated.%s', ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; + } + + var ReactDOMUnknownPropertyDevtool = { + onBeforeMountComponent: function (debugID, element) { + elements[debugID] = element; + }, + onBeforeUpdateComponent: function (debugID, element) { + elements[debugID] = element; + }, + onComponentHasMounted: function (debugID) { + handleElement(debugID, elements[debugID]); + delete elements[debugID]; + }, + onComponentHasUpdated: function (debugID) { + handleElement(debugID, elements[debugID]); + delete elements[debugID]; + } + }; + + module.exports = ReactDOMUnknownPropertyDevtool; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + +/***/ }, +/* 68 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Copyright (c) 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. + * + * @typechecks + */ + + var performance = __webpack_require__(69); + + var performanceNow; + + /** + * Detect if we can use `window.performance.now()` and gracefully fallback to + * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now + * because of Facebook's testing infrastructure. + */ + if (performance.now) { + performanceNow = function performanceNow() { + return performance.now(); + }; + } else { + performanceNow = function performanceNow() { + return Date.now(); + }; + } + + module.exports = performanceNow; + +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 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. + * + * @typechecks + */ 'use strict'; - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); var performance; @@ -8265,7 +8521,7 @@ module.exports = performance || {}; /***/ }, -/* 67 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -8504,7 +8760,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 68 */ +/* 71 */ /***/ function(module, exports) { /** @@ -8544,7 +8800,7 @@ module.exports = getEventTarget; /***/ }, -/* 69 */ +/* 72 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8560,7 +8816,7 @@ 'use strict'; - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); var useHasFeature; if (ExecutionEnvironment.canUseDOM) { @@ -8609,7 +8865,7 @@ module.exports = isEventSupported; /***/ }, -/* 70 */ +/* 73 */ /***/ function(module, exports) { /** @@ -8665,7 +8921,7 @@ module.exports = isTextInputElement; /***/ }, -/* 71 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8681,7 +8937,7 @@ 'use strict'; - var keyOf = __webpack_require__(24); + var keyOf = __webpack_require__(25); /** * Module that is injectable into `EventPluginHub`, that specifies a @@ -8697,7 +8953,7 @@ module.exports = DefaultEventPluginOrder; /***/ }, -/* 72 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8713,12 +8969,12 @@ 'use strict'; - var EventConstants = __webpack_require__(40); - var EventPropagators = __webpack_require__(41); - var ReactDOMComponentTree = __webpack_require__(35); - var SyntheticMouseEvent = __webpack_require__(73); + var EventConstants = __webpack_require__(42); + var EventPropagators = __webpack_require__(43); + var ReactDOMComponentTree = __webpack_require__(37); + var SyntheticMouseEvent = __webpack_require__(76); - var keyOf = __webpack_require__(24); + var keyOf = __webpack_require__(25); var topLevelTypes = EventConstants.topLevelTypes; @@ -8807,7 +9063,7 @@ module.exports = EnterLeaveEventPlugin; /***/ }, -/* 73 */ +/* 76 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8823,10 +9079,10 @@ 'use strict'; - var SyntheticUIEvent = __webpack_require__(74); - var ViewportMetrics = __webpack_require__(75); + var SyntheticUIEvent = __webpack_require__(77); + var ViewportMetrics = __webpack_require__(78); - var getEventModifierState = __webpack_require__(76); + var getEventModifierState = __webpack_require__(79); /** * @interface MouseEvent @@ -8884,7 +9140,7 @@ module.exports = SyntheticMouseEvent; /***/ }, -/* 74 */ +/* 77 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8900,9 +9156,9 @@ 'use strict'; - var SyntheticEvent = __webpack_require__(52); + var SyntheticEvent = __webpack_require__(54); - var getEventTarget = __webpack_require__(68); + var getEventTarget = __webpack_require__(71); /** * @interface UIEvent @@ -8948,7 +9204,7 @@ module.exports = SyntheticUIEvent; /***/ }, -/* 75 */ +/* 78 */ /***/ function(module, exports) { /** @@ -8980,7 +9236,7 @@ module.exports = ViewportMetrics; /***/ }, -/* 76 */ +/* 79 */ /***/ function(module, exports) { /** @@ -9028,7 +9284,7 @@ module.exports = getEventModifierState; /***/ }, -/* 77 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9044,7 +9300,7 @@ 'use strict'; - var DOMProperty = __webpack_require__(36); + var DOMProperty = __webpack_require__(38); var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; @@ -9150,6 +9406,7 @@ profile: 0, radioGroup: 0, readOnly: HAS_BOOLEAN_VALUE, + referrerPolicy: 0, rel: 0, required: HAS_BOOLEAN_VALUE, reversed: HAS_BOOLEAN_VALUE, @@ -9241,7 +9498,7 @@ module.exports = HTMLDOMPropertyConfig; /***/ }, -/* 78 */ +/* 81 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9257,8 +9514,8 @@ 'use strict'; - var DOMChildrenOperations = __webpack_require__(79); - var ReactDOMIDOperations = __webpack_require__(91); + var DOMChildrenOperations = __webpack_require__(82); + var ReactDOMIDOperations = __webpack_require__(94); /** * Abstracts away all functionality of the reconciler that requires knowledge of @@ -9285,7 +9542,7 @@ module.exports = ReactComponentBrowserEnvironment; /***/ }, -/* 79 */ +/* 82 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -9301,15 +9558,15 @@ 'use strict'; - var DOMLazyTree = __webpack_require__(80); - var Danger = __webpack_require__(86); - var ReactMultiChildUpdateTypes = __webpack_require__(90); - var ReactDOMComponentTree = __webpack_require__(35); - var ReactInstrumentation = __webpack_require__(61); + var DOMLazyTree = __webpack_require__(83); + var Danger = __webpack_require__(89); + var ReactMultiChildUpdateTypes = __webpack_require__(93); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactInstrumentation = __webpack_require__(63); - var createMicrosoftUnsafeLocalFunction = __webpack_require__(83); - var setInnerHTML = __webpack_require__(82); - var setTextContent = __webpack_require__(84); + var createMicrosoftUnsafeLocalFunction = __webpack_require__(86); + var setInnerHTML = __webpack_require__(85); + var setTextContent = __webpack_require__(87); function getNodeAfter(parentNode, node) { // Special case for text components, which return [open, close] comments @@ -9485,7 +9742,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 80 */ +/* 83 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9501,11 +9758,11 @@ 'use strict'; - var DOMNamespaces = __webpack_require__(81); - var setInnerHTML = __webpack_require__(82); + var DOMNamespaces = __webpack_require__(84); + var setInnerHTML = __webpack_require__(85); - var createMicrosoftUnsafeLocalFunction = __webpack_require__(83); - var setTextContent = __webpack_require__(84); + var createMicrosoftUnsafeLocalFunction = __webpack_require__(86); + var setTextContent = __webpack_require__(87); var ELEMENT_NODE_TYPE = 1; var DOCUMENT_FRAGMENT_NODE_TYPE = 11; @@ -9608,7 +9865,7 @@ module.exports = DOMLazyTree; /***/ }, -/* 81 */ +/* 84 */ /***/ function(module, exports) { /** @@ -9633,7 +9890,7 @@ module.exports = DOMNamespaces; /***/ }, -/* 82 */ +/* 85 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9649,13 +9906,13 @@ 'use strict'; - var ExecutionEnvironment = __webpack_require__(48); - var DOMNamespaces = __webpack_require__(81); + var ExecutionEnvironment = __webpack_require__(50); + var DOMNamespaces = __webpack_require__(84); var WHITESPACE_TEST = /^[ \r\n\t\f]/; var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; - var createMicrosoftUnsafeLocalFunction = __webpack_require__(83); + var createMicrosoftUnsafeLocalFunction = __webpack_require__(86); // SVG temp container for IE lacking innerHTML var reusableSVGContainer; @@ -9736,7 +9993,7 @@ module.exports = setInnerHTML; /***/ }, -/* 83 */ +/* 86 */ /***/ function(module, exports) { /** @@ -9773,7 +10030,7 @@ module.exports = createMicrosoftUnsafeLocalFunction; /***/ }, -/* 84 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9789,9 +10046,9 @@ 'use strict'; - var ExecutionEnvironment = __webpack_require__(48); - var escapeTextContentForBrowser = __webpack_require__(85); - var setInnerHTML = __webpack_require__(82); + var ExecutionEnvironment = __webpack_require__(50); + var escapeTextContentForBrowser = __webpack_require__(88); + var setInnerHTML = __webpack_require__(85); /** * Set the textContent property of a node, ensuring that whitespace is preserved @@ -9826,7 +10083,7 @@ module.exports = setTextContent; /***/ }, -/* 85 */ +/* 88 */ /***/ function(module, exports) { /** @@ -9953,7 +10210,7 @@ module.exports = escapeTextContentForBrowser; /***/ }, -/* 86 */ +/* 89 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -9971,10 +10228,10 @@ var _prodInvariant = __webpack_require__(7); - var DOMLazyTree = __webpack_require__(80); - var ExecutionEnvironment = __webpack_require__(48); + var DOMLazyTree = __webpack_require__(83); + var ExecutionEnvironment = __webpack_require__(50); - var createNodesFromMarkup = __webpack_require__(87); + var createNodesFromMarkup = __webpack_require__(90); var emptyFunction = __webpack_require__(12); var invariant = __webpack_require__(8); @@ -10007,7 +10264,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 87 */ +/* 90 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -10025,10 +10282,10 @@ /*eslint-disable fb-www/unsafe-html*/ - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); - var createArrayFromMixed = __webpack_require__(88); - var getMarkupWrap = __webpack_require__(89); + var createArrayFromMixed = __webpack_require__(91); + var getMarkupWrap = __webpack_require__(92); var invariant = __webpack_require__(8); /** @@ -10096,7 +10353,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 88 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -10228,7 +10485,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 89 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -10245,7 +10502,7 @@ /*eslint-disable fb-www/unsafe-html */ - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); var invariant = __webpack_require__(8); @@ -10328,7 +10585,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 90 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10344,7 +10601,7 @@ 'use strict'; - var keyMirror = __webpack_require__(22); + var keyMirror = __webpack_require__(23); /** * When a component's children are updated, a series of update configuration @@ -10365,7 +10622,7 @@ module.exports = ReactMultiChildUpdateTypes; /***/ }, -/* 91 */ +/* 94 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10381,8 +10638,8 @@ 'use strict'; - var DOMChildrenOperations = __webpack_require__(79); - var ReactDOMComponentTree = __webpack_require__(35); + var DOMChildrenOperations = __webpack_require__(82); + var ReactDOMComponentTree = __webpack_require__(37); /** * Operations used to process updates to DOM nodes. @@ -10404,7 +10661,7 @@ module.exports = ReactDOMIDOperations; /***/ }, -/* 92 */ +/* 95 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -10425,35 +10682,35 @@ var _prodInvariant = __webpack_require__(7), _assign = __webpack_require__(4); - var AutoFocusUtils = __webpack_require__(93); - var CSSPropertyOperations = __webpack_require__(95); - var DOMLazyTree = __webpack_require__(80); - var DOMNamespaces = __webpack_require__(81); - var DOMProperty = __webpack_require__(36); - var DOMPropertyOperations = __webpack_require__(103); - var EventConstants = __webpack_require__(40); - var EventPluginHub = __webpack_require__(42); - var EventPluginRegistry = __webpack_require__(43); - var ReactBrowserEventEmitter = __webpack_require__(109); - var ReactComponentBrowserEnvironment = __webpack_require__(78); - var ReactDOMButton = __webpack_require__(112); - var ReactDOMComponentFlags = __webpack_require__(37); - var ReactDOMComponentTree = __webpack_require__(35); - var ReactDOMInput = __webpack_require__(114); - var ReactDOMOption = __webpack_require__(116); - var ReactDOMSelect = __webpack_require__(117); - var ReactDOMTextarea = __webpack_require__(118); - var ReactInstrumentation = __webpack_require__(61); - var ReactMultiChild = __webpack_require__(119); - var ReactServerRenderingTransaction = __webpack_require__(130); + var AutoFocusUtils = __webpack_require__(96); + var CSSPropertyOperations = __webpack_require__(98); + var DOMLazyTree = __webpack_require__(83); + var DOMNamespaces = __webpack_require__(84); + var DOMProperty = __webpack_require__(38); + var DOMPropertyOperations = __webpack_require__(106); + var EventConstants = __webpack_require__(42); + var EventPluginHub = __webpack_require__(44); + var EventPluginRegistry = __webpack_require__(45); + var ReactBrowserEventEmitter = __webpack_require__(112); + var ReactComponentBrowserEnvironment = __webpack_require__(81); + var ReactDOMButton = __webpack_require__(115); + var ReactDOMComponentFlags = __webpack_require__(39); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactDOMInput = __webpack_require__(117); + var ReactDOMOption = __webpack_require__(119); + var ReactDOMSelect = __webpack_require__(120); + var ReactDOMTextarea = __webpack_require__(121); + var ReactInstrumentation = __webpack_require__(63); + var ReactMultiChild = __webpack_require__(122); + var ReactServerRenderingTransaction = __webpack_require__(134); var emptyFunction = __webpack_require__(12); - var escapeTextContentForBrowser = __webpack_require__(85); + var escapeTextContentForBrowser = __webpack_require__(88); var invariant = __webpack_require__(8); - var isEventSupported = __webpack_require__(69); - var keyOf = __webpack_require__(24); - var shallowEqual = __webpack_require__(133); - var validateDOMNesting = __webpack_require__(134); + var isEventSupported = __webpack_require__(72); + var keyOf = __webpack_require__(25); + var shallowEqual = __webpack_require__(129); + var validateDOMNesting = __webpack_require__(137); var warning = __webpack_require__(11); var Flags = ReactDOMComponentFlags; @@ -10820,6 +11077,8 @@ * @return {string} The computed markup. */ mountComponent: function (transaction, hostParent, hostContainerInfo, context) { + var _this = this; + this._rootNodeID = globalIdCounter++; this._domID = hostContainerInfo._idCounter++; this._hostParent = hostParent; @@ -10975,6 +11234,15 @@ break; } + if (process.env.NODE_ENV !== 'production') { + if (this._debugID) { + var callback = function () { + return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID); + }; + transaction.getReactMountReady().enqueue(callback, this); + } + } + return mountImage; }, @@ -11143,6 +11411,8 @@ * @overridable */ updateComponent: function (transaction, prevElement, nextElement, context) { + var _this2 = this; + var lastProps = prevElement.props; var nextProps = this._currentElement.props; @@ -11180,6 +11450,15 @@ // reconciliation transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); } + + if (process.env.NODE_ENV !== 'production') { + if (this._debugID) { + var callback = function () { + return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID); + }; + transaction.getReactMountReady().enqueue(callback, this); + } + } }, /** @@ -11413,7 +11692,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 93 */ +/* 96 */ /***/ function(module, exports, __webpack_require__) { /** @@ -11429,9 +11708,9 @@ 'use strict'; - var ReactDOMComponentTree = __webpack_require__(35); + var ReactDOMComponentTree = __webpack_require__(37); - var focusNode = __webpack_require__(94); + var focusNode = __webpack_require__(97); var AutoFocusUtils = { focusDOMComponent: function () { @@ -11442,7 +11721,7 @@ module.exports = AutoFocusUtils; /***/ }, -/* 94 */ +/* 97 */ /***/ function(module, exports) { /** @@ -11473,7 +11752,7 @@ module.exports = focusNode; /***/ }, -/* 95 */ +/* 98 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -11489,14 +11768,14 @@ 'use strict'; - var CSSProperty = __webpack_require__(96); - var ExecutionEnvironment = __webpack_require__(48); - var ReactInstrumentation = __webpack_require__(61); + var CSSProperty = __webpack_require__(99); + var ExecutionEnvironment = __webpack_require__(50); + var ReactInstrumentation = __webpack_require__(63); - var camelizeStyleName = __webpack_require__(97); - var dangerousStyleValue = __webpack_require__(99); - var hyphenateStyleName = __webpack_require__(100); - var memoizeStringOnly = __webpack_require__(102); + var camelizeStyleName = __webpack_require__(100); + var dangerousStyleValue = __webpack_require__(102); + var hyphenateStyleName = __webpack_require__(103); + var memoizeStringOnly = __webpack_require__(105); var warning = __webpack_require__(11); var processStyleName = memoizeStringOnly(function (styleName) { @@ -11684,7 +11963,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 96 */ +/* 99 */ /***/ function(module, exports) { /** @@ -11837,7 +12116,7 @@ module.exports = CSSProperty; /***/ }, -/* 97 */ +/* 100 */ /***/ function(module, exports, __webpack_require__) { /** @@ -11853,7 +12132,7 @@ 'use strict'; - var camelize = __webpack_require__(98); + var camelize = __webpack_require__(101); var msPattern = /^-ms-/; @@ -11881,7 +12160,7 @@ module.exports = camelizeStyleName; /***/ }, -/* 98 */ +/* 101 */ /***/ function(module, exports) { "use strict"; @@ -11917,7 +12196,7 @@ module.exports = camelize; /***/ }, -/* 99 */ +/* 102 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -11933,7 +12212,7 @@ 'use strict'; - var CSSProperty = __webpack_require__(96); + var CSSProperty = __webpack_require__(99); var warning = __webpack_require__(11); var isUnitlessNumber = CSSProperty.isUnitlessNumber; @@ -12002,7 +12281,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 100 */ +/* 103 */ /***/ function(module, exports, __webpack_require__) { /** @@ -12018,7 +12297,7 @@ 'use strict'; - var hyphenate = __webpack_require__(101); + var hyphenate = __webpack_require__(104); var msPattern = /^ms-/; @@ -12045,7 +12324,7 @@ module.exports = hyphenateStyleName; /***/ }, -/* 101 */ +/* 104 */ /***/ function(module, exports) { 'use strict'; @@ -12082,7 +12361,7 @@ module.exports = hyphenate; /***/ }, -/* 102 */ +/* 105 */ /***/ function(module, exports) { /** @@ -12116,7 +12395,7 @@ module.exports = memoizeStringOnly; /***/ }, -/* 103 */ +/* 106 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -12132,12 +12411,12 @@ 'use strict'; - var DOMProperty = __webpack_require__(36); - var ReactDOMComponentTree = __webpack_require__(35); - var ReactDOMInstrumentation = __webpack_require__(104); - var ReactInstrumentation = __webpack_require__(61); + var DOMProperty = __webpack_require__(38); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactDOMInstrumentation = __webpack_require__(107); + var ReactInstrumentation = __webpack_require__(63); - var quoteAttributeValueForBrowser = __webpack_require__(108); + var quoteAttributeValueForBrowser = __webpack_require__(111); var warning = __webpack_require__(11); var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); @@ -12350,7 +12629,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 104 */ +/* 107 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -12369,7 +12648,7 @@ var debugTool = null; if (process.env.NODE_ENV !== 'production') { - var ReactDOMDebugTool = __webpack_require__(105); + var ReactDOMDebugTool = __webpack_require__(108); debugTool = ReactDOMDebugTool; } @@ -12377,7 +12656,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 105 */ +/* 108 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -12393,9 +12672,9 @@ 'use strict'; - var ReactDOMNullInputValuePropDevtool = __webpack_require__(106); - var ReactDOMUnknownPropertyDevtool = __webpack_require__(107); - var ReactDebugTool = __webpack_require__(62); + var ReactDOMNullInputValuePropDevtool = __webpack_require__(109); + var ReactDOMUnknownPropertyDevtool = __webpack_require__(110); + var ReactDebugTool = __webpack_require__(64); var warning = __webpack_require__(11); @@ -12450,7 +12729,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 106 */ +/* 109 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -12466,7 +12745,7 @@ 'use strict'; - var ReactComponentTreeDevtool = __webpack_require__(28); + var ReactComponentTreeDevtool = __webpack_require__(29); var warning = __webpack_require__(11); @@ -12499,7 +12778,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 107 */ +/* 110 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -12515,9 +12794,9 @@ 'use strict'; - var DOMProperty = __webpack_require__(36); - var EventPluginRegistry = __webpack_require__(43); - var ReactComponentTreeDevtool = __webpack_require__(28); + var DOMProperty = __webpack_require__(38); + var EventPluginRegistry = __webpack_require__(45); + var ReactComponentTreeDevtool = __webpack_require__(29); var warning = __webpack_require__(11); @@ -12617,7 +12896,7 @@ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 108 */ +/* 111 */ /***/ function(module, exports, __webpack_require__) { /** @@ -12633,7 +12912,7 @@ 'use strict'; - var escapeTextContentForBrowser = __webpack_require__(85); + var escapeTextContentForBrowser = __webpack_require__(88); /** * Escapes attribute value to prevent scripting attacks. @@ -12648,7 +12927,7 @@ module.exports = quoteAttributeValueForBrowser; /***/ }, -/* 109 */ +/* 112 */ /***/ function(module, exports, __webpack_require__) { /** @@ -12666,13 +12945,13 @@ var _assign = __webpack_require__(4); - var EventConstants = __webpack_require__(40); - var EventPluginRegistry = __webpack_require__(43); - var ReactEventEmitterMixin = __webpack_require__(110); - var ViewportMetrics = __webpack_require__(75); + var EventConstants = __webpack_require__(42); + var EventPluginRegistry = __webpack_require__(45); + var ReactEventEmitterMixin = __webpack_require__(113); + var ViewportMetrics = __webpack_require__(78); - var getVendorPrefixedEventName = __webpack_require__(111); - var isEventSupported = __webpack_require__(69); + var getVendorPrefixedEventName = __webpack_require__(114); + var isEventSupported = __webpack_require__(72); /** * Summary of `ReactBrowserEventEmitter` event handling: @@ -12970,7 +13249,7 @@ module.exports = ReactBrowserEventEmitter; /***/ }, -/* 110 */ +/* 113 */ /***/ function(module, exports, __webpack_require__) { /** @@ -12986,7 +13265,7 @@ 'use strict'; - var EventPluginHub = __webpack_require__(42); + var EventPluginHub = __webpack_require__(44); function runEventQueueInBatch(events) { EventPluginHub.enqueueEvents(events); @@ -13008,7 +13287,7 @@ module.exports = ReactEventEmitterMixin; /***/ }, -/* 111 */ +/* 114 */ /***/ function(module, exports, __webpack_require__) { /** @@ -13024,7 +13303,7 @@ 'use strict'; - var ExecutionEnvironment = __webpack_require__(48); + var ExecutionEnvironment = __webpack_require__(50); /** * Generate a mapping of standard vendor prefixes using the defined style property and event name. @@ -13114,7 +13393,7 @@ module.exports = getVendorPrefixedEventName; /***/ }, -/* 112 */ +/* 115 */ /***/ function(module, exports, __webpack_require__) { /** @@ -13130,7 +13409,7 @@ 'use strict'; - var DisabledInputUtils = __webpack_require__(113); + var DisabledInputUtils = __webpack_require__(116); /** * Implements a