diff --git a/docs/index.js b/docs/index.js
index 31b0fb2..7c4c555 100644
--- a/docs/index.js
+++ b/docs/index.js
@@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 184);
+/******/ return __webpack_require__(__webpack_require__.s = 186);
/******/ })
/************************************************************************/
/******/ ([
@@ -370,7 +370,7 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var _prodInvariant = __webpack_require__(2);
var DOMProperty = __webpack_require__(12);
-var ReactDOMComponentFlags = __webpack_require__(60);
+var ReactDOMComponentFlags = __webpack_require__(59);
var invariant = __webpack_require__(0);
@@ -609,7 +609,7 @@ module.exports = ExecutionEnvironment;
-var _prodInvariant = __webpack_require__(15);
+var _prodInvariant = __webpack_require__(18);
var ReactCurrentOwner = __webpack_require__(10);
@@ -622,11 +622,11 @@ function isNative(fn) {
var hasOwnProperty = Object.prototype.hasOwnProperty;
var reIsNative = RegExp('^' + funcToString
// Take an example native function source for comparison
- .call(hasOwnProperty)
+ .call(hasOwnProperty
// Strip regex characters so we can use it for regex
- .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&'
// Remove hasOwnProperty from the template to make it generic
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
+ ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
try {
var source = funcToString.call(fn);
return reIsNative.test(source);
@@ -925,7 +925,52 @@ var ReactComponentTreeHook = {
getRootIDs: getRootIDs,
- getRegisteredIDs: getItemIDs
+ getRegisteredIDs: getItemIDs,
+
+ pushNonStandardWarningStack: function (isCreatingElement, currentSource) {
+ if (typeof console.reactStack !== 'function') {
+ return;
+ }
+
+ var stack = [];
+ var currentOwner = ReactCurrentOwner.current;
+ var id = currentOwner && currentOwner._debugID;
+
+ try {
+ if (isCreatingElement) {
+ stack.push({
+ name: id ? ReactComponentTreeHook.getDisplayName(id) : null,
+ fileName: currentSource ? currentSource.fileName : null,
+ lineNumber: currentSource ? currentSource.lineNumber : null
+ });
+ }
+
+ while (id) {
+ var element = ReactComponentTreeHook.getElement(id);
+ var parentID = ReactComponentTreeHook.getParentID(id);
+ var ownerID = ReactComponentTreeHook.getOwnerID(id);
+ var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null;
+ var source = element && element._source;
+ stack.push({
+ name: ownerName,
+ fileName: source ? source.fileName : null,
+ lineNumber: source ? source.lineNumber : null
+ });
+ id = parentID;
+ }
+ } catch (err) {
+ // Internal state is messed up.
+ // Stop building the stack (it's just a nice to have).
+ }
+
+ console.reactStack(stack);
+ },
+ popNonStandardWarningStack: function () {
+ if (typeof console.reactStackEnd !== 'function') {
+ return;
+ }
+ console.reactStackEnd();
+ }
};
module.exports = ReactComponentTreeHook;
@@ -953,7 +998,7 @@ module.exports = ReactComponentTreeHook;
var debugTool = null;
if (true) {
- var ReactDebugTool = __webpack_require__(129);
+ var ReactDebugTool = __webpack_require__(131);
debugTool = ReactDebugTool;
}
@@ -1023,10 +1068,10 @@ module.exports = emptyFunction;
var _prodInvariant = __webpack_require__(2),
_assign = __webpack_require__(3);
-var CallbackQueue = __webpack_require__(58);
+var CallbackQueue = __webpack_require__(57);
var PooledClass = __webpack_require__(13);
-var ReactFeatureFlags = __webpack_require__(63);
-var ReactReconciler = __webpack_require__(17);
+var ReactFeatureFlags = __webpack_require__(62);
+var ReactReconciler = __webpack_require__(16);
var Transaction = __webpack_require__(28);
var invariant = __webpack_require__(0);
@@ -1284,13 +1329,11 @@ module.exports = ReactUpdates;
* currently being constructed.
*/
var ReactCurrentOwner = {
-
/**
* @internal
* @type {ReactComponent}
*/
current: null
-
};
module.exports = ReactCurrentOwner;
@@ -1404,7 +1447,6 @@ function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarg
}
_assign(SyntheticEvent.prototype, {
-
preventDefault: function () {
this.defaultPrevented = true;
var event = this.nativeEvent;
@@ -1414,8 +1456,8 @@ _assign(SyntheticEvent.prototype, {
if (event.preventDefault) {
event.preventDefault();
+ // eslint-disable-next-line valid-typeof
} else if (typeof event.returnValue !== 'unknown') {
- // eslint-disable-line valid-typeof
event.returnValue = false;
}
this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
@@ -1429,8 +1471,8 @@ _assign(SyntheticEvent.prototype, {
if (event.stopPropagation) {
event.stopPropagation();
+ // eslint-disable-next-line valid-typeof
} else if (typeof event.cancelBubble !== 'unknown') {
- // eslint-disable-line valid-typeof
// The ChangeEventPlugin registers a "propertychange" event for
// IE. This event does not support bubbling or cancelling, and
// any references to cancelBubble throw "Member not found". A
@@ -1479,7 +1521,6 @@ _assign(SyntheticEvent.prototype, {
Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));
}
}
-
});
SyntheticEvent.Interface = EventInterface;
@@ -1495,7 +1536,7 @@ if (true) {
return new Proxy(constructor.apply(that, args), {
set: function (target, prop, value) {
if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {
- true ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;
+ true ? warning(didWarnForAddedNewProperty || target.isPersistent(), "This synthetic event is reused for performance reasons. If you're " + "seeing this, you're adding a new property in the synthetic event object. " + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;
didWarnForAddedNewProperty = true;
}
target[prop] = value;
@@ -1564,7 +1605,7 @@ function getPooledWarningPropertyDefinition(propName, getVal) {
function warn(action, result) {
var warningCondition = false;
- true ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
+ true ? warning(warningCondition, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
}
}
@@ -1711,7 +1752,6 @@ var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\
* @see http://jsperf.com/key-missing
*/
var DOMProperty = {
-
ID_ATTRIBUTE_NAME: 'data-reactid',
ROOT_ATTRIBUTE_NAME: 'data-reactroot',
@@ -1925,7 +1965,7 @@ var warning = __webpack_require__(1);
var canDefineProperty = __webpack_require__(31);
var hasOwnProperty = Object.prototype.hasOwnProperty;
-var REACT_ELEMENT_TYPE = __webpack_require__(78);
+var REACT_ELEMENT_TYPE = __webpack_require__(79);
var RESERVED_PROPS = {
key: true,
@@ -2250,50 +2290,6 @@ module.exports = ReactElement;
/* 15 */
/***/ (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.
- *
- *
- */
-
-
-/**
- * WARNING: DO NOT manually require this module.
- * This is a replacement for `invariant(...)` used by the error code system
- * and will _only_ be required by the corresponding babel pass.
- * It always throws.
- */
-
-function reactProdInvariant(code) {
- var argCount = arguments.length - 1;
-
- var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
-
- for (var argIdx = 0; argIdx < argCount; argIdx++) {
- message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
- }
-
- message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
-
- var error = new Error(message);
- error.name = 'Invariant Violation';
- error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
-
- throw error;
-}
-
-module.exports = reactProdInvariant;
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports, __webpack_require__) {
-
"use strict";
/**
* Copyright 2015-present, Facebook, Inc.
@@ -2414,7 +2410,7 @@ DOMLazyTree.queueText = queueText;
module.exports = DOMLazyTree;
/***/ }),
-/* 17 */
+/* 16 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2430,7 +2426,7 @@ module.exports = DOMLazyTree;
-var ReactRef = __webpack_require__(143);
+var ReactRef = __webpack_require__(145);
var ReactInstrumentation = __webpack_require__(7);
var warning = __webpack_require__(1);
@@ -2444,7 +2440,6 @@ function attachRefs() {
}
var ReactReconciler = {
-
/**
* Initializes the component, renders markup, and registers event listeners.
*
@@ -2456,8 +2451,8 @@ var ReactReconciler = {
* @final
* @internal
*/
- mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots
- ) {
+ mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots
+ {
if (true) {
if (internalInstance._debugID !== 0) {
ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);
@@ -2581,13 +2576,12 @@ var ReactReconciler = {
}
}
}
-
};
module.exports = ReactReconciler;
/***/ }),
-/* 18 */
+/* 17 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2605,25 +2599,24 @@ module.exports = ReactReconciler;
var _assign = __webpack_require__(3);
-var ReactChildren = __webpack_require__(173);
-var ReactComponent = __webpack_require__(48);
-var ReactPureComponent = __webpack_require__(178);
-var ReactClass = __webpack_require__(174);
-var ReactDOMFactories = __webpack_require__(175);
+var ReactBaseClasses = __webpack_require__(78);
+var ReactChildren = __webpack_require__(175);
+var ReactDOMFactories = __webpack_require__(176);
var ReactElement = __webpack_require__(14);
-var ReactPropTypes = __webpack_require__(176);
-var ReactVersion = __webpack_require__(179);
+var ReactPropTypes = __webpack_require__(178);
+var ReactVersion = __webpack_require__(180);
-var onlyChild = __webpack_require__(182);
-var warning = __webpack_require__(1);
+var createReactClass = __webpack_require__(182);
+var onlyChild = __webpack_require__(184);
var createElement = ReactElement.createElement;
var createFactory = ReactElement.createFactory;
var cloneElement = ReactElement.cloneElement;
if (true) {
+ var lowPriorityWarning = __webpack_require__(48);
var canDefineProperty = __webpack_require__(31);
- var ReactElementValidator = __webpack_require__(79);
+ var ReactElementValidator = __webpack_require__(80);
var didWarnPropTypesDeprecated = false;
createElement = ReactElementValidator.createElement;
createFactory = ReactElementValidator.createFactory;
@@ -2631,18 +2624,27 @@ if (true) {
}
var __spread = _assign;
+var createMixin = function (mixin) {
+ return mixin;
+};
if (true) {
- var warned = false;
+ var warnedForSpread = false;
+ var warnedForCreateMixin = false;
__spread = function () {
- true ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;
- warned = true;
+ lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');
+ warnedForSpread = true;
return _assign.apply(null, arguments);
};
+
+ createMixin = function (mixin) {
+ lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');
+ warnedForCreateMixin = true;
+ return mixin;
+ };
}
var React = {
-
// Modern
Children: {
@@ -2653,8 +2655,8 @@ var React = {
only: onlyChild
},
- Component: ReactComponent,
- PureComponent: ReactPureComponent,
+ Component: ReactBaseClasses.Component,
+ PureComponent: ReactBaseClasses.PureComponent,
createElement: createElement,
cloneElement: cloneElement,
@@ -2663,12 +2665,9 @@ var React = {
// Classic
PropTypes: ReactPropTypes,
- createClass: ReactClass.createClass,
+ createClass: createReactClass,
createFactory: createFactory,
- createMixin: function (mixin) {
- // Currently a noop. Will be used to validate and trace mixins.
- return mixin;
- },
+ createMixin: createMixin,
// This looks DOM specific but these are actually isomorphic helpers
// since they are just generating DOM strings.
@@ -2680,23 +2679,46 @@ var React = {
__spread: __spread
};
-// TODO: Fix tests so that this deprecation warning doesn't cause failures.
if (true) {
+ var warnedForCreateClass = false;
if (canDefineProperty) {
Object.defineProperty(React, 'PropTypes', {
get: function () {
- true ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;
+ lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');
didWarnPropTypesDeprecated = true;
return ReactPropTypes;
}
});
+
+ Object.defineProperty(React, 'createClass', {
+ get: function () {
+ lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');
+ warnedForCreateClass = true;
+ return createReactClass;
+ }
+ });
}
+
+ // React.DOM factories are deprecated. Wrap these methods so that
+ // invocations of the React.DOM namespace and alert users to switch
+ // to the `react-dom-factories` package.
+ React.DOM = {};
+ var warnedForFactories = false;
+ Object.keys(ReactDOMFactories).forEach(function (factory) {
+ React.DOM[factory] = function () {
+ if (!warnedForFactories) {
+ lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);
+ warnedForFactories = true;
+ }
+ return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);
+ };
+ });
}
module.exports = React;
/***/ }),
-/* 19 */
+/* 18 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2708,20 +2730,39 @@ module.exports = React;
* 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.
*
+ *
*/
+/**
+ * WARNING: DO NOT manually require this module.
+ * This is a replacement for `invariant(...)` used by the error code system
+ * and will _only_ be required by the corresponding babel pass.
+ * It always throws.
+ */
-var emptyObject = {};
+function reactProdInvariant(code) {
+ var argCount = arguments.length - 1;
-if (true) {
- Object.freeze(emptyObject);
+ var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
+
+ for (var argIdx = 0; argIdx < argCount; argIdx++) {
+ message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
+ }
+
+ message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
+
+ var error = new Error(message);
+ error.name = 'Invariant Violation';
+ error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
+
+ throw error;
}
-module.exports = emptyObject;
+module.exports = reactProdInvariant;
/***/ }),
-/* 20 */
+/* 19 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2743,8 +2784,8 @@ var EventPluginRegistry = __webpack_require__(25);
var EventPluginUtils = __webpack_require__(35);
var ReactErrorUtils = __webpack_require__(39);
-var accumulateInto = __webpack_require__(70);
-var forEachAccumulated = __webpack_require__(71);
+var accumulateInto = __webpack_require__(69);
+var forEachAccumulated = __webpack_require__(70);
var invariant = __webpack_require__(0);
/**
@@ -2832,12 +2873,10 @@ function shouldPreventMouseEvent(name, type, props) {
* @public
*/
var EventPluginHub = {
-
/**
* Methods for injecting dependencies.
*/
injection: {
-
/**
* @param {array} InjectedEventPluginOrder
* @public
@@ -2848,7 +2887,6 @@ var EventPluginHub = {
* @param {object} injectedNamesToPlugins Map from names to plugin modules.
*/
injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName
-
},
/**
@@ -2998,13 +3036,12 @@ var EventPluginHub = {
__getListenerBank: function () {
return listenerBank;
}
-
};
module.exports = EventPluginHub;
/***/ }),
-/* 21 */
+/* 20 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3020,11 +3057,11 @@ module.exports = EventPluginHub;
-var EventPluginHub = __webpack_require__(20);
+var EventPluginHub = __webpack_require__(19);
var EventPluginUtils = __webpack_require__(35);
-var accumulateInto = __webpack_require__(70);
-var forEachAccumulated = __webpack_require__(71);
+var accumulateInto = __webpack_require__(69);
+var forEachAccumulated = __webpack_require__(70);
var warning = __webpack_require__(1);
var getListener = EventPluginHub.getListener;
@@ -3143,7 +3180,7 @@ var EventPropagators = {
module.exports = EventPropagators;
/***/ }),
-/* 22 */
+/* 21 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3169,7 +3206,6 @@ module.exports = EventPropagators;
// TODO: Replace this with ES6: var ReactInstanceMap = new Map();
var ReactInstanceMap = {
-
/**
* This API should be called `delete` but we'd have to make sure to always
* transform these to strings for IE support. When this transform is fully
@@ -3190,13 +3226,12 @@ var ReactInstanceMap = {
set: function (key, value) {
key._reactInternalInstance = value;
}
-
};
module.exports = ReactInstanceMap;
/***/ }),
-/* 23 */
+/* 22 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3259,6 +3294,31 @@ SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);
module.exports = SyntheticUIEvent;
+/***/ }),
+/* 23 */
+/***/ (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.
+ *
+ */
+
+
+
+var emptyObject = {};
+
+if (true) {
+ Object.freeze(emptyObject);
+}
+
+module.exports = emptyObject;
+
/***/ }),
/* 24 */
/***/ (function(module, exports) {
@@ -3564,7 +3624,6 @@ function publishRegistrationName(registrationName, pluginModule, eventName) {
* @see {EventPluginHub}
*/
var EventPluginRegistry = {
-
/**
* Ordered list of injected plugins.
*/
@@ -3704,7 +3763,6 @@ var EventPluginRegistry = {
}
}
}
-
};
module.exports = EventPluginRegistry;
@@ -3729,10 +3787,10 @@ module.exports = EventPluginRegistry;
var _assign = __webpack_require__(3);
var EventPluginRegistry = __webpack_require__(25);
-var ReactEventEmitterMixin = __webpack_require__(133);
-var ViewportMetrics = __webpack_require__(69);
+var ReactEventEmitterMixin = __webpack_require__(135);
+var ViewportMetrics = __webpack_require__(68);
-var getVendorPrefixedEventName = __webpack_require__(168);
+var getVendorPrefixedEventName = __webpack_require__(170);
var isEventSupported = __webpack_require__(45);
/**
@@ -3891,7 +3949,6 @@ function getListeningForDocument(mountAt) {
* @internal
*/
var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
-
/**
* Injectable event backend
*/
@@ -3965,14 +4022,12 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);
}
} else if (dependency === 'topScroll') {
-
if (isEventSupported('scroll', true)) {
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);
} else {
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);
}
} else if (dependency === 'topFocus' || dependency === 'topBlur') {
-
if (isEventSupported('focus', true)) {
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);
@@ -4037,7 +4092,6 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
isMonitoringScrollValue = true;
}
}
-
});
module.exports = ReactBrowserEventEmitter;
@@ -4059,8 +4113,8 @@ module.exports = ReactBrowserEventEmitter;
-var SyntheticUIEvent = __webpack_require__(23);
-var ViewportMetrics = __webpack_require__(69);
+var SyntheticUIEvent = __webpack_require__(22);
+var ViewportMetrics = __webpack_require__(68);
var getEventModifierState = __webpack_require__(43);
@@ -4234,6 +4288,8 @@ var TransactionImpl = {
return !!this._isInTransaction;
},
+ /* eslint-disable space-before-function-paren */
+
/**
* Executes the function within a safety window. Use this for the top level
* methods that result in large amounts of computation/mutations that would
@@ -4252,6 +4308,7 @@ var TransactionImpl = {
* @return {*} Return value from `method`.
*/
perform: function (method, scope, a, b, c, d, e, f) {
+ /* eslint-enable space-before-function-paren */
!!this.isInTransaction() ? true ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;
var errorThrown;
var ret;
@@ -4458,7 +4515,6 @@ function escapeHtml(string) {
}
// end code copied and modified from escape-html
-
/**
* Escapes text to prevent scripting attacks.
*
@@ -4560,7 +4616,7 @@ if (ExecutionEnvironment.canUseDOM) {
// in hopes that this is preserved even if "\uFEFF" is transformed to
// the actual Unicode character (by Babel, for example).
// https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216
- node.innerHTML = String.fromCharCode(0xFEFF) + html;
+ node.innerHTML = String.fromCharCode(0xfeff) + html;
// deleteData leaves an empty `TextNode` which offsets the index of all
// children. Definitely want to avoid this.
@@ -4701,8 +4757,8 @@ module.exports = shallowEqual;
-var DOMLazyTree = __webpack_require__(16);
-var Danger = __webpack_require__(106);
+var DOMLazyTree = __webpack_require__(15);
+var Danger = __webpack_require__(108);
var ReactDOMComponentTree = __webpack_require__(4);
var ReactInstrumentation = __webpack_require__(7);
@@ -4836,7 +4892,6 @@ if (true) {
* Operations for updating with DOM children.
*/
var DOMChildrenOperations = {
-
dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,
replaceDelimitedText: replaceDelimitedText,
@@ -4862,7 +4917,10 @@ var DOMChildrenOperations = {
ReactInstrumentation.debugTool.onHostOperation({
instanceID: parentNodeDebugID,
type: 'insert child',
- payload: { toIndex: update.toIndex, content: update.content.toString() }
+ payload: {
+ toIndex: update.toIndex,
+ content: update.content.toString()
+ }
});
}
break;
@@ -4909,7 +4967,6 @@ var DOMChildrenOperations = {
}
}
}
-
};
module.exports = DOMChildrenOperations;
@@ -5253,23 +5310,23 @@ module.exports = KeyEscapeUtils;
var _prodInvariant = __webpack_require__(2);
-var ReactPropTypesSecret = __webpack_require__(68);
-var propTypesFactory = __webpack_require__(54);
+var ReactPropTypesSecret = __webpack_require__(67);
+var propTypesFactory = __webpack_require__(53);
-var React = __webpack_require__(18);
+var React = __webpack_require__(17);
var PropTypes = propTypesFactory(React.isValidElement);
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
var hasReadOnlyValue = {
- 'button': true,
- 'checkbox': true,
- 'image': true,
- 'hidden': true,
- 'radio': true,
- 'reset': true,
- 'submit': true
+ button: true,
+ checkbox: true,
+ image: true,
+ hidden: true,
+ radio: true,
+ reset: true,
+ submit: true
};
function _assertSingleLink(inputProps) {
@@ -5402,7 +5459,6 @@ var invariant = __webpack_require__(0);
var injected = false;
var ReactComponentEnvironment = {
-
/**
* Optionally injectable hook for swapping out mount images in the middle of
* the tree.
@@ -5423,7 +5479,6 @@ var ReactComponentEnvironment = {
injected = true;
}
}
-
};
module.exports = ReactComponentEnvironment;
@@ -5529,7 +5584,7 @@ module.exports = ReactErrorUtils;
var _prodInvariant = __webpack_require__(2);
var ReactCurrentOwner = __webpack_require__(10);
-var ReactInstanceMap = __webpack_require__(22);
+var ReactInstanceMap = __webpack_require__(21);
var ReactInstrumentation = __webpack_require__(7);
var ReactUpdates = __webpack_require__(9);
@@ -5567,7 +5622,7 @@ function getInternalInstanceReadyForUpdate(publicInstance, callerName) {
}
if (true) {
- true ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;
+ true ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + "within `render` or another component's constructor). Render methods " + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;
}
return internalInstance;
@@ -5578,7 +5633,6 @@ function getInternalInstanceReadyForUpdate(publicInstance, callerName) {
* reconciliation step.
*/
var ReactUpdateQueue = {
-
/**
* Checks whether or not this composite component is mounted.
* @param {ReactClass} publicInstance The instance we want to test.
@@ -5745,7 +5799,6 @@ var ReactUpdateQueue = {
validateCallback: function (callback, callerName) {
!(!callback || typeof callback === 'function') ? true ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;
}
-
};
module.exports = ReactUpdateQueue;
@@ -5865,10 +5918,10 @@ module.exports = getEventCharCode;
*/
var modifierKeyToProp = {
- 'Alt': 'altKey',
- 'Control': 'ctrlKey',
- 'Meta': 'metaKey',
- 'Shift': 'shiftKey'
+ Alt: 'altKey',
+ Control: 'ctrlKey',
+ Meta: 'metaKey',
+ Shift: 'shiftKey'
};
// IE8 does not implement getModifierState so we simply map it to the only
@@ -6170,7 +6223,6 @@ if (true) {
// but
case 'option':
return tag === '#text';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption
// No special behavior since these rules fall back to "in body" mode for
@@ -6179,25 +6231,20 @@ if (true) {
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr
case 'tr':
return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody
case 'tbody':
case 'thead':
case 'tfoot':
return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup
case 'colgroup':
return tag === 'col' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable
case 'table':
return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead
case 'head':
return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/semantics.html#the-html-element
case 'html':
return tag === 'head' || tag === 'body';
@@ -6393,7 +6440,7 @@ if (true) {
tagDisplayName = 'Text nodes';
} else {
tagDisplayName = 'Whitespace text nodes';
- whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.';
+ whitespaceInfo = " Make sure you don't have any extra whitespace between tags on " + 'each line of your source code.';
}
} else {
tagDisplayName = '<' + childTag + '>';
@@ -6430,7 +6477,7 @@ module.exports = validateDOMNesting;
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
+ * Copyright 2014-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
@@ -6441,217 +6488,63 @@ module.exports = validateDOMNesting;
-var _prodInvariant = __webpack_require__(15);
-
-var ReactNoopUpdateQueue = __webpack_require__(49);
-
-var canDefineProperty = __webpack_require__(31);
-var emptyObject = __webpack_require__(19);
-var invariant = __webpack_require__(0);
-var warning = __webpack_require__(1);
-
/**
- * Base class helpers for the updating state of a component.
+ * Forked from fbjs/warning:
+ * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
+ *
+ * Only change is we use console.warn instead of console.error,
+ * and do nothing when 'console' is not supported.
+ * This really simplifies the code.
+ * ---
+ * Similar to invariant but only logs a warning if the condition is not met.
+ * This can be used to log issues in development environments in critical
+ * paths. Removing the logging code for production environments will keep the
+ * same logic and follow the same code paths.
*/
-function ReactComponent(props, context, updater) {
- 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;
-}
-ReactComponent.prototype.isReactComponent = {};
+var lowPriorityWarning = function () {};
-/**
- * Sets a subset of the state. Always use this to mutate
- * state. You should treat `this.state` as immutable.
- *
- * There is no guarantee that `this.state` will be immediately updated, so
- * accessing `this.state` after calling this method may return the old value.
- *
- * There is no guarantee that calls to `setState` will run synchronously,
- * as they may eventually be batched together. You can provide an optional
- * callback that will be executed when the call to setState is actually
- * completed.
- *
- * When a function is provided to setState, it will be called at some point in
- * the future (not synchronously). It will be called with the up to date
- * component arguments (state, props, context). These values can be different
- * from this.* because your function may be called after receiveProps but before
- * shouldComponentUpdate, and this new state, props, and context will not yet be
- * assigned to this.
- *
- * @param {object|function} partialState Next partial state or function to
- * produce next partial state to be merged with current state.
- * @param {?function} callback Called after state is updated.
- * @final
- * @protected
- */
-ReactComponent.prototype.setState = function (partialState, callback) {
- !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? true ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
- this.updater.enqueueSetState(this, partialState);
- if (callback) {
- this.updater.enqueueCallback(this, callback, 'setState');
- }
-};
-
-/**
- * Forces an update. This should only be invoked when it is known with
- * certainty that we are **not** in a DOM transaction.
- *
- * You may want to call this when you know that some deeper aspect of the
- * component's state has changed but `setState` was not called.
- *
- * This will not invoke `shouldComponentUpdate`, but it will invoke
- * `componentWillUpdate` and `componentDidUpdate`.
- *
- * @param {?function} callback Called after update is complete.
- * @final
- * @protected
- */
-ReactComponent.prototype.forceUpdate = function (callback) {
- this.updater.enqueueForceUpdate(this);
- if (callback) {
- this.updater.enqueueCallback(this, callback, 'forceUpdate');
- }
-};
-
-/**
- * Deprecated APIs. These APIs used to exist on classic React classes but since
- * we would like to deprecate them, we're not going to move them over to this
- * modern base class. Instead, we define a getter that warns if it's accessed.
- */
if (true) {
- var deprecatedAPIs = {
- isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
- replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
+ var printWarning = function (format) {
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ var argIndex = 0;
+ var message = 'Warning: ' + format.replace(/%s/g, function () {
+ return args[argIndex++];
+ });
+ if (typeof console !== 'undefined') {
+ console.warn(message);
+ }
+ try {
+ // --- Welcome to debugging React ---
+ // This error was thrown as a convenience so that you can use this stack
+ // to find the callsite that caused this warning to fire.
+ throw new Error(message);
+ } catch (x) {}
};
- var defineDeprecationWarning = function (methodName, info) {
- if (canDefineProperty) {
- Object.defineProperty(ReactComponent.prototype, methodName, {
- get: function () {
- true ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;
- return undefined;
- }
- });
+
+ lowPriorityWarning = function (condition, format) {
+ if (format === undefined) {
+ throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
+ }
+ if (!condition) {
+ for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
+ args[_key2 - 2] = arguments[_key2];
+ }
+
+ printWarning.apply(undefined, [format].concat(args));
}
};
- for (var fnName in deprecatedAPIs) {
- if (deprecatedAPIs.hasOwnProperty(fnName)) {
- defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
- }
- }
}
-module.exports = ReactComponent;
+module.exports = lowPriorityWarning;
/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {
-"use strict";
-/**
- * Copyright 2015-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.
- *
- */
-
-
-
-var warning = __webpack_require__(1);
-
-function warnNoop(publicInstance, callerName) {
- if (true) {
- var constructor = publicInstance.constructor;
- true ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;
- }
-}
-
-/**
- * This is the abstract API for an update queue.
- */
-var ReactNoopUpdateQueue = {
-
- /**
- * Checks whether or not this composite component is mounted.
- * @param {ReactClass} publicInstance The instance we want to test.
- * @return {boolean} True if mounted, false otherwise.
- * @protected
- * @final
- */
- isMounted: function (publicInstance) {
- return false;
- },
-
- /**
- * Enqueue a callback that will be executed after all the pending updates
- * have processed.
- *
- * @param {ReactClass} publicInstance The instance to use as `this` context.
- * @param {?function} callback Called after state is updated.
- * @internal
- */
- enqueueCallback: function (publicInstance, callback) {},
-
- /**
- * Forces an update. This should only be invoked when it is known with
- * certainty that we are **not** in a DOM transaction.
- *
- * You may want to call this when you know that some deeper aspect of the
- * component's state has changed but `setState` was not called.
- *
- * This will not invoke `shouldComponentUpdate`, but it will invoke
- * `componentWillUpdate` and `componentDidUpdate`.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @internal
- */
- enqueueForceUpdate: function (publicInstance) {
- warnNoop(publicInstance, 'forceUpdate');
- },
-
- /**
- * Replaces all of the state. Always use this or `setState` to mutate state.
- * You should treat `this.state` as immutable.
- *
- * There is no guarantee that `this.state` will be immediately updated, so
- * accessing `this.state` after calling this method may return the old value.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {object} completeState Next state.
- * @internal
- */
- enqueueReplaceState: function (publicInstance, completeState) {
- warnNoop(publicInstance, 'replaceState');
- },
-
- /**
- * Sets a subset of the state. This only exists because _pendingState is
- * internal. This provides a merging strategy that is not available to deep
- * properties which is confusing. TODO: Expose pendingState or don't use it
- * during the merge.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {object} partialState Next partial state to be merged with state.
- * @internal
- */
- enqueueSetState: function (publicInstance, partialState) {
- warnNoop(publicInstance, 'setState');
- }
-};
-
-module.exports = ReactNoopUpdateQueue;
-
-/***/ }),
-/* 50 */
-/***/ (function(module, exports, __webpack_require__) {
-
"use strict";
@@ -6661,11 +6554,11 @@ Object.defineProperty(exports, "__esModule", {
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-var _react = __webpack_require__(82);
+var _react = __webpack_require__(83);
var _react2 = _interopRequireDefault(_react);
-var _propTypes = __webpack_require__(99);
+var _propTypes = __webpack_require__(101);
var _propTypes2 = _interopRequireDefault(_propTypes);
@@ -6785,7 +6678,7 @@ CircularProgressbar.defaultProps = {
exports.default = CircularProgressbar;
/***/ }),
-/* 51 */
+/* 50 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6874,7 +6767,7 @@ var EventListener = {
module.exports = EventListener;
/***/ }),
-/* 52 */
+/* 51 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6906,7 +6799,7 @@ function focusNode(node) {
module.exports = focusNode;
/***/ }),
-/* 53 */
+/* 52 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6950,7 +6843,7 @@ function getActiveElement(doc) /*?DOMElement*/{
module.exports = getActiveElement;
/***/ }),
-/* 54 */
+/* 53 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6969,7 +6862,7 @@ module.exports = getActiveElement;
// Therefore we re-export development-only version with all the PropTypes checks here.
// However if one is migrating to the `prop-types` npm library, they will go through the
// `index.js` entry point, and it will branch depending on the environment.
-var factory = __webpack_require__(55);
+var factory = __webpack_require__(54);
module.exports = function(isValidElement) {
// It is still allowed in 15.5.
var throwOnDirectAccess = false;
@@ -6978,7 +6871,7 @@ module.exports = function(isValidElement) {
/***/ }),
-/* 55 */
+/* 54 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6997,8 +6890,8 @@ var emptyFunction = __webpack_require__(8);
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
-var ReactPropTypesSecret = __webpack_require__(56);
-var checkPropTypes = __webpack_require__(98);
+var ReactPropTypesSecret = __webpack_require__(55);
+var checkPropTypes = __webpack_require__(100);
module.exports = function(isValidElement, throwOnDirectAccess) {
/* global Symbol */
@@ -7304,6 +7197,20 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
return emptyFunction.thatReturnsNull;
}
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
+ var checker = arrayOfTypeCheckers[i];
+ if (typeof checker !== 'function') {
+ warning(
+ false,
+ 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +
+ 'received %s at index %s.',
+ getPostfixForTypeWarning(checker),
+ i
+ );
+ return emptyFunction.thatReturnsNull;
+ }
+ }
+
function validate(props, propName, componentName, location, propFullName) {
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
var checker = arrayOfTypeCheckers[i];
@@ -7436,6 +7343,9 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
// This handles more types than `getPropType`. Only used for error messages.
// See `createPrimitiveTypeChecker`.
function getPreciseType(propValue) {
+ if (typeof propValue === 'undefined' || propValue === null) {
+ return '' + propValue;
+ }
var propType = getPropType(propValue);
if (propType === 'object') {
if (propValue instanceof Date) {
@@ -7447,6 +7357,23 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
return propType;
}
+ // Returns a string that is postfixed to a warning about an invalid type.
+ // For example, "undefined" or "of type array"
+ function getPostfixForTypeWarning(value) {
+ var type = getPreciseType(value);
+ switch (type) {
+ case 'array':
+ case 'object':
+ return 'an ' + type;
+ case 'boolean':
+ case 'date':
+ case 'regexp':
+ return 'a ' + type;
+ default:
+ return type;
+ }
+ }
+
// Returns class name of the object, if any.
function getClassName(propValue) {
if (!propValue.constructor || !propValue.constructor.name) {
@@ -7463,7 +7390,7 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
/***/ }),
-/* 56 */
+/* 55 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -7484,7 +7411,7 @@ module.exports = ReactPropTypesSecret;
/***/ }),
-/* 57 */
+/* 56 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -7520,7 +7447,13 @@ var isUnitlessNumber = {
flexNegative: true,
flexOrder: true,
gridRow: true,
+ gridRowEnd: true,
+ gridRowSpan: true,
+ gridRowStart: true,
gridColumn: true,
+ gridColumnEnd: true,
+ gridColumnSpan: true,
+ gridColumnStart: true,
fontWeight: true,
lineClamp: true,
lineHeight: true,
@@ -7637,7 +7570,7 @@ var CSSProperty = {
module.exports = CSSProperty;
/***/ }),
-/* 58 */
+/* 57 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -7761,7 +7694,7 @@ var CallbackQueue = function () {
module.exports = PooledClass.addPoolingTo(CallbackQueue);
/***/ }),
-/* 59 */
+/* 58 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -7781,7 +7714,7 @@ var DOMProperty = __webpack_require__(12);
var ReactDOMComponentTree = __webpack_require__(4);
var ReactInstrumentation = __webpack_require__(7);
-var quoteAttributeValueForBrowser = __webpack_require__(169);
+var quoteAttributeValueForBrowser = __webpack_require__(171);
var warning = __webpack_require__(1);
var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
@@ -7812,7 +7745,6 @@ function shouldIgnoreValue(propertyInfo, value) {
* Operations for dealing with DOM properties.
*/
var DOMPropertyOperations = {
-
/**
* Creates markup for the ID property.
*
@@ -7997,13 +7929,12 @@ var DOMPropertyOperations = {
});
}
}
-
};
module.exports = DOMPropertyOperations;
/***/ }),
-/* 60 */
+/* 59 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8026,7 +7957,7 @@ var ReactDOMComponentFlags = {
module.exports = ReactDOMComponentFlags;
/***/ }),
-/* 61 */
+/* 60 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8231,7 +8162,7 @@ function _handleChange(event) {
module.exports = ReactDOMSelect;
/***/ }),
-/* 62 */
+/* 61 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8266,7 +8197,7 @@ ReactEmptyComponent.injection = ReactEmptyComponentInjection;
module.exports = ReactEmptyComponent;
/***/ }),
-/* 63 */
+/* 62 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8293,7 +8224,7 @@ var ReactFeatureFlags = {
module.exports = ReactFeatureFlags;
/***/ }),
-/* 64 */
+/* 63 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8366,7 +8297,7 @@ var ReactHostComponent = {
module.exports = ReactHostComponent;
/***/ }),
-/* 65 */
+/* 64 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8382,11 +8313,11 @@ module.exports = ReactHostComponent;
-var ReactDOMSelection = __webpack_require__(124);
+var ReactDOMSelection = __webpack_require__(126);
-var containsNode = __webpack_require__(86);
-var focusNode = __webpack_require__(52);
-var getActiveElement = __webpack_require__(53);
+var containsNode = __webpack_require__(88);
+var focusNode = __webpack_require__(51);
+var getActiveElement = __webpack_require__(52);
function isInDocument(node) {
return containsNode(document.documentElement, node);
@@ -8399,7 +8330,6 @@ function isInDocument(node) {
* Input selection module for React.
*/
var ReactInputSelection = {
-
hasSelectionCapabilities: function (elem) {
var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');
@@ -8495,7 +8425,7 @@ var ReactInputSelection = {
module.exports = ReactInputSelection;
/***/ }),
-/* 66 */
+/* 65 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -8513,23 +8443,23 @@ module.exports = ReactInputSelection;
var _prodInvariant = __webpack_require__(2);
-var DOMLazyTree = __webpack_require__(16);
+var DOMLazyTree = __webpack_require__(15);
var DOMProperty = __webpack_require__(12);
-var React = __webpack_require__(18);
+var React = __webpack_require__(17);
var ReactBrowserEventEmitter = __webpack_require__(26);
var ReactCurrentOwner = __webpack_require__(10);
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactDOMContainerInfo = __webpack_require__(116);
-var ReactDOMFeatureFlags = __webpack_require__(118);
-var ReactFeatureFlags = __webpack_require__(63);
-var ReactInstanceMap = __webpack_require__(22);
+var ReactDOMContainerInfo = __webpack_require__(118);
+var ReactDOMFeatureFlags = __webpack_require__(120);
+var ReactFeatureFlags = __webpack_require__(62);
+var ReactInstanceMap = __webpack_require__(21);
var ReactInstrumentation = __webpack_require__(7);
-var ReactMarkupChecksum = __webpack_require__(138);
-var ReactReconciler = __webpack_require__(17);
+var ReactMarkupChecksum = __webpack_require__(140);
+var ReactReconciler = __webpack_require__(16);
var ReactUpdateQueue = __webpack_require__(40);
var ReactUpdates = __webpack_require__(9);
-var emptyObject = __webpack_require__(19);
+var emptyObject = __webpack_require__(23);
var instantiateReactComponent = __webpack_require__(74);
var invariant = __webpack_require__(0);
var setInnerHTML = __webpack_require__(30);
@@ -8757,7 +8687,6 @@ TopLevelWrapper.isReactTopLevelWrapper = true;
* Inside of `container`, the first element rendered is the "reactRoot".
*/
var ReactMount = {
-
TopLevelWrapper: TopLevelWrapper,
/**
@@ -8846,13 +8775,14 @@ var ReactMount = {
_renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {
ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');
- !React.isValidElement(nextElement) ? true ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \'div\', pass ' + 'React.createElement(\'div\') or
.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or .' :
- // Check if it quacks like an element
- nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \'div\', pass ' + 'React.createElement(\'div\') or .' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or .' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;
+ !React.isValidElement(nextElement) ? true ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? " Instead of passing a string like 'div', pass " + "React.createElement('div') or ." : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or .' : // Check if it quacks like an element
+ nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? " Instead of passing a string like 'div', pass " + "React.createElement('div') or ." : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or .' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;
true ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;
- var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement });
+ var nextWrappedElement = React.createElement(TopLevelWrapper, {
+ child: nextElement
+ });
var nextContext;
if (parentComponent) {
@@ -8941,7 +8871,7 @@ var ReactMount = {
!isValidContainer(container) ? true ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;
if (true) {
- true ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;
+ true ? warning(!nodeIsRenderedByOtherInstance(container), "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by another copy of React.') : void 0;
}
var prevComponent = getTopLevelWrapperInContainer(container);
@@ -8954,7 +8884,7 @@ var ReactMount = {
var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);
if (true) {
- true ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;
+ true ? warning(!containerHasNonRootReactChild, "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;
}
return false;
@@ -9038,7 +8968,7 @@ var ReactMount = {
module.exports = ReactMount;
/***/ }),
-/* 67 */
+/* 66 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9057,7 +8987,7 @@ module.exports = ReactMount;
var _prodInvariant = __webpack_require__(2);
-var React = __webpack_require__(18);
+var React = __webpack_require__(17);
var invariant = __webpack_require__(0);
@@ -9083,7 +9013,7 @@ var ReactNodeTypes = {
module.exports = ReactNodeTypes;
/***/ }),
-/* 68 */
+/* 67 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9105,7 +9035,7 @@ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
module.exports = ReactPropTypesSecret;
/***/ }),
-/* 69 */
+/* 68 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9122,7 +9052,6 @@ module.exports = ReactPropTypesSecret;
var ViewportMetrics = {
-
currentScrollLeft: 0,
currentScrollTop: 0,
@@ -9131,13 +9060,12 @@ var ViewportMetrics = {
ViewportMetrics.currentScrollLeft = scrollPosition.x;
ViewportMetrics.currentScrollTop = scrollPosition.y;
}
-
};
module.exports = ViewportMetrics;
/***/ }),
-/* 70 */
+/* 69 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9200,7 +9128,7 @@ function accumulateInto(current, next) {
module.exports = accumulateInto;
/***/ }),
-/* 71 */
+/* 70 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9236,7 +9164,7 @@ function forEachAccumulated(arr, cb, scope) {
module.exports = forEachAccumulated;
/***/ }),
-/* 72 */
+/* 71 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9252,7 +9180,7 @@ module.exports = forEachAccumulated;
-var ReactNodeTypes = __webpack_require__(67);
+var ReactNodeTypes = __webpack_require__(66);
function getHostComponentFromComposite(inst) {
var type;
@@ -9271,7 +9199,7 @@ function getHostComponentFromComposite(inst) {
module.exports = getHostComponentFromComposite;
/***/ }),
-/* 73 */
+/* 72 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9308,6 +9236,134 @@ function getTextContentAccessor() {
module.exports = getTextContentAccessor;
+/***/ }),
+/* 73 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/**
+ * 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.
+ *
+ */
+
+
+
+var ReactDOMComponentTree = __webpack_require__(4);
+
+function isCheckable(elem) {
+ var type = elem.type;
+ var nodeName = elem.nodeName;
+ return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
+}
+
+function getTracker(inst) {
+ return inst._wrapperState.valueTracker;
+}
+
+function attachTracker(inst, tracker) {
+ inst._wrapperState.valueTracker = tracker;
+}
+
+function detachTracker(inst) {
+ delete inst._wrapperState.valueTracker;
+}
+
+function getValueFromNode(node) {
+ var value;
+ if (node) {
+ value = isCheckable(node) ? '' + node.checked : node.value;
+ }
+ return value;
+}
+
+var inputValueTracking = {
+ // exposed for testing
+ _getTrackerFromNode: function (node) {
+ return getTracker(ReactDOMComponentTree.getInstanceFromNode(node));
+ },
+
+
+ track: function (inst) {
+ if (getTracker(inst)) {
+ return;
+ }
+
+ var node = ReactDOMComponentTree.getNodeFromInstance(inst);
+ var valueField = isCheckable(node) ? 'checked' : 'value';
+ var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);
+
+ var currentValue = '' + node[valueField];
+
+ // if someone has already defined a value or Safari, then bail
+ // and don't track value will cause over reporting of changes,
+ // but it's better then a hard failure
+ // (needed for certain tests that spyOn input values and Safari)
+ if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {
+ return;
+ }
+
+ Object.defineProperty(node, valueField, {
+ enumerable: descriptor.enumerable,
+ configurable: true,
+ get: function () {
+ return descriptor.get.call(this);
+ },
+ set: function (value) {
+ currentValue = '' + value;
+ descriptor.set.call(this, value);
+ }
+ });
+
+ attachTracker(inst, {
+ getValue: function () {
+ return currentValue;
+ },
+ setValue: function (value) {
+ currentValue = '' + value;
+ },
+ stopTracking: function () {
+ detachTracker(inst);
+ delete node[valueField];
+ }
+ });
+ },
+
+ updateValueIfChanged: function (inst) {
+ if (!inst) {
+ return false;
+ }
+ var tracker = getTracker(inst);
+
+ if (!tracker) {
+ inputValueTracking.track(inst);
+ return true;
+ }
+
+ var lastValue = tracker.getValue();
+ var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst));
+
+ if (nextValue !== lastValue) {
+ tracker.setValue(nextValue);
+ return true;
+ }
+
+ return false;
+ },
+ stopTracking: function (inst) {
+ var tracker = getTracker(inst);
+ if (tracker) {
+ tracker.stopTracking();
+ }
+ }
+};
+
+module.exports = inputValueTracking;
+
/***/ }),
/* 74 */
/***/ (function(module, exports, __webpack_require__) {
@@ -9328,11 +9384,11 @@ module.exports = getTextContentAccessor;
var _prodInvariant = __webpack_require__(2),
_assign = __webpack_require__(3);
-var ReactCompositeComponent = __webpack_require__(113);
-var ReactEmptyComponent = __webpack_require__(62);
-var ReactHostComponent = __webpack_require__(64);
+var ReactCompositeComponent = __webpack_require__(115);
+var ReactEmptyComponent = __webpack_require__(61);
+var ReactHostComponent = __webpack_require__(63);
-var getNextDebugID = __webpack_require__(181);
+var getNextDebugID = __webpack_require__(183);
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
@@ -9382,7 +9438,7 @@ function instantiateReactComponent(node, shouldHaveDebugID) {
var info = '';
if (true) {
if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
- info += ' You likely forgot to export your component from the file ' + 'it\'s defined in.';
+ info += ' You likely forgot to export your component from the file ' + "it's defined in.";
}
}
info += getDeclarationErrorAddendum(element._owner);
@@ -9465,21 +9521,21 @@ module.exports = instantiateReactComponent;
*/
var supportedInputTypes = {
- 'color': true,
- 'date': true,
- 'datetime': true,
+ color: true,
+ date: true,
+ datetime: true,
'datetime-local': true,
- 'email': true,
- 'month': true,
- 'number': true,
- 'password': true,
- 'range': true,
- 'search': true,
- 'tel': true,
- 'text': true,
- 'time': true,
- 'url': true,
- 'week': true
+ email: true,
+ month: true,
+ number: true,
+ password: true,
+ range: true,
+ search: true,
+ tel: true,
+ text: true,
+ time: true,
+ url: true,
+ week: true
};
function isTextInputElement(elem) {
@@ -9575,9 +9631,9 @@ module.exports = setTextContent;
var _prodInvariant = __webpack_require__(2);
var ReactCurrentOwner = __webpack_require__(10);
-var REACT_ELEMENT_TYPE = __webpack_require__(132);
+var REACT_ELEMENT_TYPE = __webpack_require__(134);
-var getIteratorFn = __webpack_require__(166);
+var getIteratorFn = __webpack_require__(168);
var invariant = __webpack_require__(0);
var KeyEscapeUtils = __webpack_require__(36);
var warning = __webpack_require__(1);
@@ -9693,7 +9749,7 @@ function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext)
if (true) {
addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
if (children._isReactElement) {
- addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';
+ addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.';
}
if (ReactCurrentOwner.current) {
var name = ReactCurrentOwner.current.getName();
@@ -9740,6 +9796,154 @@ module.exports = traverseAllChildren;
/* 78 */
/***/ (function(module, exports, __webpack_require__) {
+"use strict";
+/**
+ * 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.
+ *
+ */
+
+
+
+var _prodInvariant = __webpack_require__(18),
+ _assign = __webpack_require__(3);
+
+var ReactNoopUpdateQueue = __webpack_require__(81);
+
+var canDefineProperty = __webpack_require__(31);
+var emptyObject = __webpack_require__(23);
+var invariant = __webpack_require__(0);
+var lowPriorityWarning = __webpack_require__(48);
+
+/**
+ * Base class helpers for the updating state of a component.
+ */
+function ReactComponent(props, context, updater) {
+ 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;
+}
+
+ReactComponent.prototype.isReactComponent = {};
+
+/**
+ * Sets a subset of the state. Always use this to mutate
+ * state. You should treat `this.state` as immutable.
+ *
+ * There is no guarantee that `this.state` will be immediately updated, so
+ * accessing `this.state` after calling this method may return the old value.
+ *
+ * There is no guarantee that calls to `setState` will run synchronously,
+ * as they may eventually be batched together. You can provide an optional
+ * callback that will be executed when the call to setState is actually
+ * completed.
+ *
+ * When a function is provided to setState, it will be called at some point in
+ * the future (not synchronously). It will be called with the up to date
+ * component arguments (state, props, context). These values can be different
+ * from this.* because your function may be called after receiveProps but before
+ * shouldComponentUpdate, and this new state, props, and context will not yet be
+ * assigned to this.
+ *
+ * @param {object|function} partialState Next partial state or function to
+ * produce next partial state to be merged with current state.
+ * @param {?function} callback Called after state is updated.
+ * @final
+ * @protected
+ */
+ReactComponent.prototype.setState = function (partialState, callback) {
+ !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? true ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
+ this.updater.enqueueSetState(this, partialState);
+ if (callback) {
+ this.updater.enqueueCallback(this, callback, 'setState');
+ }
+};
+
+/**
+ * Forces an update. This should only be invoked when it is known with
+ * certainty that we are **not** in a DOM transaction.
+ *
+ * You may want to call this when you know that some deeper aspect of the
+ * component's state has changed but `setState` was not called.
+ *
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
+ * `componentWillUpdate` and `componentDidUpdate`.
+ *
+ * @param {?function} callback Called after update is complete.
+ * @final
+ * @protected
+ */
+ReactComponent.prototype.forceUpdate = function (callback) {
+ this.updater.enqueueForceUpdate(this);
+ if (callback) {
+ this.updater.enqueueCallback(this, callback, 'forceUpdate');
+ }
+};
+
+/**
+ * Deprecated APIs. These APIs used to exist on classic React classes but since
+ * we would like to deprecate them, we're not going to move them over to this
+ * modern base class. Instead, we define a getter that warns if it's accessed.
+ */
+if (true) {
+ var deprecatedAPIs = {
+ isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
+ replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
+ };
+ var defineDeprecationWarning = function (methodName, info) {
+ if (canDefineProperty) {
+ Object.defineProperty(ReactComponent.prototype, methodName, {
+ get: function () {
+ lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
+ return undefined;
+ }
+ });
+ }
+ };
+ for (var fnName in deprecatedAPIs) {
+ if (deprecatedAPIs.hasOwnProperty(fnName)) {
+ defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
+ }
+ }
+}
+
+/**
+ * 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 = {
+ Component: ReactComponent,
+ PureComponent: ReactPureComponent
+};
+
+/***/ }),
+/* 79 */
+/***/ (function(module, exports, __webpack_require__) {
+
"use strict";
/**
* Copyright 2014-present, Facebook, Inc.
@@ -9762,7 +9966,7 @@ var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol
module.exports = REACT_ELEMENT_TYPE;
/***/ }),
-/* 79 */
+/* 80 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -9789,11 +9993,12 @@ var ReactCurrentOwner = __webpack_require__(10);
var ReactComponentTreeHook = __webpack_require__(6);
var ReactElement = __webpack_require__(14);
-var checkReactTypeSpec = __webpack_require__(180);
+var checkReactTypeSpec = __webpack_require__(181);
var canDefineProperty = __webpack_require__(31);
-var getIteratorFn = __webpack_require__(81);
+var getIteratorFn = __webpack_require__(82);
var warning = __webpack_require__(1);
+var lowPriorityWarning = __webpack_require__(48);
function getDeclarationErrorAddendum() {
if (ReactCurrentOwner.current) {
@@ -9934,7 +10139,6 @@ function validatePropTypes(element) {
}
var ReactElementValidator = {
-
createElement: function (type, props, children) {
var validType = typeof type === 'string' || typeof type === 'function';
// We warn in this case but don't throw. We expect the element creation to
@@ -9943,7 +10147,7 @@ var ReactElementValidator = {
if (typeof type !== 'function' && typeof type !== 'string') {
var info = '';
if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
- info += ' You likely forgot to export your component from the file ' + 'it\'s defined in.';
+ info += ' You likely forgot to export your component from the file ' + "it's defined in.";
}
var sourceInfo = getSourceInfoErrorAddendum(props);
@@ -9955,7 +10159,10 @@ var ReactElementValidator = {
info += ReactComponentTreeHook.getCurrentStackAddendum();
+ var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null;
+ ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource);
true ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0;
+ ReactComponentTreeHook.popNonStandardWarningStack();
}
}
@@ -9993,7 +10200,7 @@ var ReactElementValidator = {
Object.defineProperty(validatedFactory, 'type', {
enumerable: false,
get: function () {
- true ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0;
+ lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
Object.defineProperty(this, 'type', {
value: type
});
@@ -10014,43 +10221,112 @@ var ReactElementValidator = {
validatePropTypes(newElement);
return newElement;
}
-
};
module.exports = ReactElementValidator;
/***/ }),
-/* 80 */
+/* 81 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
+ * Copyright 2015-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.
*
- *
*/
-var ReactPropTypeLocationNames = {};
+var warning = __webpack_require__(1);
-if (true) {
- ReactPropTypeLocationNames = {
- prop: 'prop',
- context: 'context',
- childContext: 'child context'
- };
+function warnNoop(publicInstance, callerName) {
+ if (true) {
+ var constructor = publicInstance.constructor;
+ true ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;
+ }
}
-module.exports = ReactPropTypeLocationNames;
+/**
+ * This is the abstract API for an update queue.
+ */
+var ReactNoopUpdateQueue = {
+ /**
+ * Checks whether or not this composite component is mounted.
+ * @param {ReactClass} publicInstance The instance we want to test.
+ * @return {boolean} True if mounted, false otherwise.
+ * @protected
+ * @final
+ */
+ isMounted: function (publicInstance) {
+ return false;
+ },
+
+ /**
+ * Enqueue a callback that will be executed after all the pending updates
+ * have processed.
+ *
+ * @param {ReactClass} publicInstance The instance to use as `this` context.
+ * @param {?function} callback Called after state is updated.
+ * @internal
+ */
+ enqueueCallback: function (publicInstance, callback) {},
+
+ /**
+ * Forces an update. This should only be invoked when it is known with
+ * certainty that we are **not** in a DOM transaction.
+ *
+ * You may want to call this when you know that some deeper aspect of the
+ * component's state has changed but `setState` was not called.
+ *
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
+ * `componentWillUpdate` and `componentDidUpdate`.
+ *
+ * @param {ReactClass} publicInstance The instance that should rerender.
+ * @internal
+ */
+ enqueueForceUpdate: function (publicInstance) {
+ warnNoop(publicInstance, 'forceUpdate');
+ },
+
+ /**
+ * Replaces all of the state. Always use this or `setState` to mutate state.
+ * You should treat `this.state` as immutable.
+ *
+ * There is no guarantee that `this.state` will be immediately updated, so
+ * accessing `this.state` after calling this method may return the old value.
+ *
+ * @param {ReactClass} publicInstance The instance that should rerender.
+ * @param {object} completeState Next state.
+ * @internal
+ */
+ enqueueReplaceState: function (publicInstance, completeState) {
+ warnNoop(publicInstance, 'replaceState');
+ },
+
+ /**
+ * Sets a subset of the state. This only exists because _pendingState is
+ * internal. This provides a merging strategy that is not available to deep
+ * properties which is confusing. TODO: Expose pendingState or don't use it
+ * during the merge.
+ *
+ * @param {ReactClass} publicInstance The instance that should rerender.
+ * @param {object} partialState Next partial state to be merged with state.
+ * @internal
+ */
+ enqueueSetState: function (publicInstance, partialState) {
+ warnNoop(publicInstance, 'setState');
+ }
+};
+
+module.exports = ReactNoopUpdateQueue;
/***/ }),
-/* 81 */
+/* 82 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10096,17 +10372,17 @@ function getIteratorFn(maybeIterable) {
module.exports = getIteratorFn;
/***/ }),
-/* 82 */
+/* 83 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-module.exports = __webpack_require__(18);
+module.exports = __webpack_require__(17);
/***/ }),
-/* 83 */
+/* 84 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10116,15 +10392,15 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-var _react = __webpack_require__(82);
+var _react = __webpack_require__(83);
var _react2 = _interopRequireDefault(_react);
-var _reactDom = __webpack_require__(100);
+var _reactDom = __webpack_require__(102);
var _reactDom2 = _interopRequireDefault(_reactDom);
-var _src = __webpack_require__(50);
+var _src = __webpack_require__(49);
var _src2 = _interopRequireDefault(_src);
@@ -10405,7 +10681,886 @@ var Demo = function (_React$Component2) {
_reactDom2.default.render(_react2.default.createElement(Demo), document.getElementById('demo'));
/***/ }),
-/* 84 */
+/* 85 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/**
+ * 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.
+ *
+ */
+
+
+
+var _assign = __webpack_require__(3);
+
+var emptyObject = __webpack_require__(23);
+var _invariant = __webpack_require__(0);
+
+if (true) {
+ var warning = __webpack_require__(1);
+}
+
+var MIXINS_KEY = 'mixins';
+
+// Helper function to allow the creation of anonymous functions which do not
+// have .name set to the name of the variable being assigned to.
+function identity(fn) {
+ return fn;
+}
+
+var ReactPropTypeLocationNames;
+if (true) {
+ ReactPropTypeLocationNames = {
+ prop: 'prop',
+ context: 'context',
+ childContext: 'child context'
+ };
+} else {
+ ReactPropTypeLocationNames = {};
+}
+
+function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
+ /**
+ * Policies that describe methods in `ReactClassInterface`.
+ */
+
+ var injectedMixins = [];
+
+ /**
+ * Composite components are higher-level components that compose other composite
+ * or host components.
+ *
+ * To create a new type of `ReactClass`, pass a specification of
+ * your new class to `React.createClass`. The only requirement of your class
+ * specification is that you implement a `render` method.
+ *
+ * var MyComponent = React.createClass({
+ * render: function() {
+ * return Hello World
;
+ * }
+ * });
+ *
+ * The class specification supports a specific protocol of methods that have
+ * special meaning (e.g. `render`). See `ReactClassInterface` for
+ * more the comprehensive protocol. Any other properties and methods in the
+ * class specification will be available on the prototype.
+ *
+ * @interface ReactClassInterface
+ * @internal
+ */
+ var ReactClassInterface = {
+ /**
+ * An array of Mixin objects to include when defining your component.
+ *
+ * @type {array}
+ * @optional
+ */
+ mixins: 'DEFINE_MANY',
+
+ /**
+ * An object containing properties and methods that should be defined on
+ * the component's constructor instead of its prototype (static methods).
+ *
+ * @type {object}
+ * @optional
+ */
+ statics: 'DEFINE_MANY',
+
+ /**
+ * Definition of prop types for this component.
+ *
+ * @type {object}
+ * @optional
+ */
+ propTypes: 'DEFINE_MANY',
+
+ /**
+ * Definition of context types for this component.
+ *
+ * @type {object}
+ * @optional
+ */
+ contextTypes: 'DEFINE_MANY',
+
+ /**
+ * Definition of context types this component sets for its children.
+ *
+ * @type {object}
+ * @optional
+ */
+ childContextTypes: 'DEFINE_MANY',
+
+ // ==== Definition methods ====
+
+ /**
+ * Invoked when the component is mounted. Values in the mapping will be set on
+ * `this.props` if that prop is not specified (i.e. using an `in` check).
+ *
+ * This method is invoked before `getInitialState` and therefore cannot rely
+ * on `this.state` or use `this.setState`.
+ *
+ * @return {object}
+ * @optional
+ */
+ getDefaultProps: 'DEFINE_MANY_MERGED',
+
+ /**
+ * Invoked once before the component is mounted. The return value will be used
+ * as the initial value of `this.state`.
+ *
+ * getInitialState: function() {
+ * return {
+ * isOn: false,
+ * fooBaz: new BazFoo()
+ * }
+ * }
+ *
+ * @return {object}
+ * @optional
+ */
+ getInitialState: 'DEFINE_MANY_MERGED',
+
+ /**
+ * @return {object}
+ * @optional
+ */
+ getChildContext: 'DEFINE_MANY_MERGED',
+
+ /**
+ * Uses props from `this.props` and state from `this.state` to render the
+ * structure of the component.
+ *
+ * No guarantees are made about when or how often this method is invoked, so
+ * it must not have side effects.
+ *
+ * render: function() {
+ * var name = this.props.name;
+ * return Hello, {name}!
;
+ * }
+ *
+ * @return {ReactComponent}
+ * @required
+ */
+ render: 'DEFINE_ONCE',
+
+ // ==== Delegate methods ====
+
+ /**
+ * Invoked when the component is initially created and about to be mounted.
+ * This may have side effects, but any external subscriptions or data created
+ * by this method must be cleaned up in `componentWillUnmount`.
+ *
+ * @optional
+ */
+ componentWillMount: 'DEFINE_MANY',
+
+ /**
+ * Invoked when the component has been mounted and has a DOM representation.
+ * However, there is no guarantee that the DOM node is in the document.
+ *
+ * Use this as an opportunity to operate on the DOM when the component has
+ * been mounted (initialized and rendered) for the first time.
+ *
+ * @param {DOMElement} rootNode DOM element representing the component.
+ * @optional
+ */
+ componentDidMount: 'DEFINE_MANY',
+
+ /**
+ * Invoked before the component receives new props.
+ *
+ * Use this as an opportunity to react to a prop transition by updating the
+ * state using `this.setState`. Current props are accessed via `this.props`.
+ *
+ * componentWillReceiveProps: function(nextProps, nextContext) {
+ * this.setState({
+ * likesIncreasing: nextProps.likeCount > this.props.likeCount
+ * });
+ * }
+ *
+ * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
+ * transition may cause a state change, but the opposite is not true. If you
+ * need it, you are probably looking for `componentWillUpdate`.
+ *
+ * @param {object} nextProps
+ * @optional
+ */
+ componentWillReceiveProps: 'DEFINE_MANY',
+
+ /**
+ * Invoked while deciding if the component should be updated as a result of
+ * receiving new props, state and/or context.
+ *
+ * Use this as an opportunity to `return false` when you're certain that the
+ * transition to the new props/state/context will not require a component
+ * update.
+ *
+ * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
+ * return !equal(nextProps, this.props) ||
+ * !equal(nextState, this.state) ||
+ * !equal(nextContext, this.context);
+ * }
+ *
+ * @param {object} nextProps
+ * @param {?object} nextState
+ * @param {?object} nextContext
+ * @return {boolean} True if the component should update.
+ * @optional
+ */
+ shouldComponentUpdate: 'DEFINE_ONCE',
+
+ /**
+ * Invoked when the component is about to update due to a transition from
+ * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
+ * and `nextContext`.
+ *
+ * Use this as an opportunity to perform preparation before an update occurs.
+ *
+ * NOTE: You **cannot** use `this.setState()` in this method.
+ *
+ * @param {object} nextProps
+ * @param {?object} nextState
+ * @param {?object} nextContext
+ * @param {ReactReconcileTransaction} transaction
+ * @optional
+ */
+ componentWillUpdate: 'DEFINE_MANY',
+
+ /**
+ * Invoked when the component's DOM representation has been updated.
+ *
+ * Use this as an opportunity to operate on the DOM when the component has
+ * been updated.
+ *
+ * @param {object} prevProps
+ * @param {?object} prevState
+ * @param {?object} prevContext
+ * @param {DOMElement} rootNode DOM element representing the component.
+ * @optional
+ */
+ componentDidUpdate: 'DEFINE_MANY',
+
+ /**
+ * Invoked when the component is about to be removed from its parent and have
+ * its DOM representation destroyed.
+ *
+ * Use this as an opportunity to deallocate any external resources.
+ *
+ * NOTE: There is no `componentDidUnmount` since your component will have been
+ * destroyed by that point.
+ *
+ * @optional
+ */
+ componentWillUnmount: 'DEFINE_MANY',
+
+ // ==== Advanced methods ====
+
+ /**
+ * Updates the component's currently mounted DOM representation.
+ *
+ * By default, this implements React's rendering and reconciliation algorithm.
+ * Sophisticated clients may wish to override this.
+ *
+ * @param {ReactReconcileTransaction} transaction
+ * @internal
+ * @overridable
+ */
+ updateComponent: 'OVERRIDE_BASE'
+ };
+
+ /**
+ * Mapping from class specification keys to special processing functions.
+ *
+ * Although these are declared like instance properties in the specification
+ * when defining classes using `React.createClass`, they are actually static
+ * and are accessible on the constructor instead of the prototype. Despite
+ * being static, they must be defined outside of the "statics" key under
+ * which all other static methods are defined.
+ */
+ var RESERVED_SPEC_KEYS = {
+ displayName: function(Constructor, displayName) {
+ Constructor.displayName = displayName;
+ },
+ mixins: function(Constructor, mixins) {
+ if (mixins) {
+ for (var i = 0; i < mixins.length; i++) {
+ mixSpecIntoComponent(Constructor, mixins[i]);
+ }
+ }
+ },
+ childContextTypes: function(Constructor, childContextTypes) {
+ if (true) {
+ validateTypeDef(Constructor, childContextTypes, 'childContext');
+ }
+ Constructor.childContextTypes = _assign(
+ {},
+ Constructor.childContextTypes,
+ childContextTypes
+ );
+ },
+ contextTypes: function(Constructor, contextTypes) {
+ if (true) {
+ validateTypeDef(Constructor, contextTypes, 'context');
+ }
+ Constructor.contextTypes = _assign(
+ {},
+ Constructor.contextTypes,
+ contextTypes
+ );
+ },
+ /**
+ * Special case getDefaultProps which should move into statics but requires
+ * automatic merging.
+ */
+ getDefaultProps: function(Constructor, getDefaultProps) {
+ if (Constructor.getDefaultProps) {
+ Constructor.getDefaultProps = createMergedResultFunction(
+ Constructor.getDefaultProps,
+ getDefaultProps
+ );
+ } else {
+ Constructor.getDefaultProps = getDefaultProps;
+ }
+ },
+ propTypes: function(Constructor, propTypes) {
+ if (true) {
+ validateTypeDef(Constructor, propTypes, 'prop');
+ }
+ Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
+ },
+ statics: function(Constructor, statics) {
+ mixStaticSpecIntoComponent(Constructor, statics);
+ },
+ autobind: function() {}
+ };
+
+ function validateTypeDef(Constructor, typeDef, location) {
+ for (var propName in typeDef) {
+ if (typeDef.hasOwnProperty(propName)) {
+ // use a warning instead of an _invariant so components
+ // don't show up in prod but only in __DEV__
+ if (true) {
+ warning(
+ typeof typeDef[propName] === 'function',
+ '%s: %s type `%s` is invalid; it must be a function, usually from ' +
+ 'React.PropTypes.',
+ Constructor.displayName || 'ReactClass',
+ ReactPropTypeLocationNames[location],
+ propName
+ );
+ }
+ }
+ }
+ }
+
+ function validateMethodOverride(isAlreadyDefined, name) {
+ var specPolicy = ReactClassInterface.hasOwnProperty(name)
+ ? ReactClassInterface[name]
+ : null;
+
+ // Disallow overriding of base class methods unless explicitly allowed.
+ if (ReactClassMixin.hasOwnProperty(name)) {
+ _invariant(
+ specPolicy === 'OVERRIDE_BASE',
+ 'ReactClassInterface: You are attempting to override ' +
+ '`%s` from your class specification. Ensure that your method names ' +
+ 'do not overlap with React methods.',
+ name
+ );
+ }
+
+ // Disallow defining methods more than once unless explicitly allowed.
+ if (isAlreadyDefined) {
+ _invariant(
+ specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
+ 'ReactClassInterface: You are attempting to define ' +
+ '`%s` on your component more than once. This conflict may be due ' +
+ 'to a mixin.',
+ name
+ );
+ }
+ }
+
+ /**
+ * Mixin helper which handles policy validation and reserved
+ * specification keys when building React classes.
+ */
+ function mixSpecIntoComponent(Constructor, spec) {
+ if (!spec) {
+ if (true) {
+ var typeofSpec = typeof spec;
+ var isMixinValid = typeofSpec === 'object' && spec !== null;
+
+ if (true) {
+ 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
+ );
+ }
+ }
+
+ return;
+ }
+
+ _invariant(
+ typeof spec !== 'function',
+ "ReactClass: You're attempting to " +
+ 'use a component class or function as a mixin. Instead, just use a ' +
+ 'regular object.'
+ );
+ _invariant(
+ !isValidElement(spec),
+ "ReactClass: You're attempting to " +
+ 'use a component as a mixin. Instead, just use a regular object.'
+ );
+
+ var proto = Constructor.prototype;
+ var autoBindPairs = proto.__reactAutoBindPairs;
+
+ // By handling mixins before any other properties, we ensure the same
+ // chaining order is applied to methods with DEFINE_MANY policy, whether
+ // mixins are listed before or after these methods in the spec.
+ if (spec.hasOwnProperty(MIXINS_KEY)) {
+ RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
+ }
+
+ for (var name in spec) {
+ if (!spec.hasOwnProperty(name)) {
+ continue;
+ }
+
+ if (name === MIXINS_KEY) {
+ // We have already handled mixins in a special case above.
+ continue;
+ }
+
+ var property = spec[name];
+ var isAlreadyDefined = proto.hasOwnProperty(name);
+ validateMethodOverride(isAlreadyDefined, name);
+
+ if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
+ RESERVED_SPEC_KEYS[name](Constructor, property);
+ } else {
+ // Setup methods on prototype:
+ // The following member methods should not be automatically bound:
+ // 1. Expected ReactClass methods (in the "interface").
+ // 2. Overridden methods (that were mixed in).
+ var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
+ var isFunction = typeof property === 'function';
+ var shouldAutoBind =
+ isFunction &&
+ !isReactClassMethod &&
+ !isAlreadyDefined &&
+ spec.autobind !== false;
+
+ if (shouldAutoBind) {
+ autoBindPairs.push(name, property);
+ proto[name] = property;
+ } else {
+ if (isAlreadyDefined) {
+ var specPolicy = ReactClassInterface[name];
+
+ // These cases should already be caught by validateMethodOverride.
+ _invariant(
+ isReactClassMethod &&
+ (specPolicy === 'DEFINE_MANY_MERGED' ||
+ specPolicy === 'DEFINE_MANY'),
+ 'ReactClass: Unexpected spec policy %s for key %s ' +
+ 'when mixing in component specs.',
+ specPolicy,
+ name
+ );
+
+ // For methods which are defined more than once, call the existing
+ // methods before calling the new property, merging if appropriate.
+ if (specPolicy === 'DEFINE_MANY_MERGED') {
+ proto[name] = createMergedResultFunction(proto[name], property);
+ } else if (specPolicy === 'DEFINE_MANY') {
+ proto[name] = createChainedFunction(proto[name], property);
+ }
+ } else {
+ proto[name] = property;
+ if (true) {
+ // Add verbose displayName to the function, which helps when looking
+ // at profiling tools.
+ if (typeof property === 'function' && spec.displayName) {
+ proto[name].displayName = spec.displayName + '_' + name;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ function mixStaticSpecIntoComponent(Constructor, statics) {
+ if (!statics) {
+ return;
+ }
+ for (var name in statics) {
+ var property = statics[name];
+ if (!statics.hasOwnProperty(name)) {
+ continue;
+ }
+
+ var isReserved = name in RESERVED_SPEC_KEYS;
+ _invariant(
+ !isReserved,
+ 'ReactClass: You are attempting to define a reserved ' +
+ 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
+ 'as an instance property instead; it will still be accessible on the ' +
+ 'constructor.',
+ name
+ );
+
+ var isInherited = name in Constructor;
+ _invariant(
+ !isInherited,
+ 'ReactClass: You are attempting to define ' +
+ '`%s` on your component more than once. This conflict may be ' +
+ 'due to a mixin.',
+ name
+ );
+ Constructor[name] = property;
+ }
+ }
+
+ /**
+ * Merge two objects, but throw if both contain the same key.
+ *
+ * @param {object} one The first object, which is mutated.
+ * @param {object} two The second object
+ * @return {object} one after it has been mutated to contain everything in two.
+ */
+ function mergeIntoWithNoDuplicateKeys(one, two) {
+ _invariant(
+ one && two && typeof one === 'object' && typeof two === 'object',
+ 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
+ );
+
+ for (var key in two) {
+ if (two.hasOwnProperty(key)) {
+ _invariant(
+ one[key] === undefined,
+ 'mergeIntoWithNoDuplicateKeys(): ' +
+ 'Tried to merge two objects with the same key: `%s`. This conflict ' +
+ 'may be due to a mixin; in particular, this may be caused by two ' +
+ 'getInitialState() or getDefaultProps() methods returning objects ' +
+ 'with clashing keys.',
+ key
+ );
+ one[key] = two[key];
+ }
+ }
+ return one;
+ }
+
+ /**
+ * Creates a function that invokes two functions and merges their return values.
+ *
+ * @param {function} one Function to invoke first.
+ * @param {function} two Function to invoke second.
+ * @return {function} Function that invokes the two argument functions.
+ * @private
+ */
+ function createMergedResultFunction(one, two) {
+ return function mergedResult() {
+ var a = one.apply(this, arguments);
+ var b = two.apply(this, arguments);
+ if (a == null) {
+ return b;
+ } else if (b == null) {
+ return a;
+ }
+ var c = {};
+ mergeIntoWithNoDuplicateKeys(c, a);
+ mergeIntoWithNoDuplicateKeys(c, b);
+ return c;
+ };
+ }
+
+ /**
+ * Creates a function that invokes two functions and ignores their return vales.
+ *
+ * @param {function} one Function to invoke first.
+ * @param {function} two Function to invoke second.
+ * @return {function} Function that invokes the two argument functions.
+ * @private
+ */
+ function createChainedFunction(one, two) {
+ return function chainedFunction() {
+ one.apply(this, arguments);
+ two.apply(this, arguments);
+ };
+ }
+
+ /**
+ * Binds a method to the component.
+ *
+ * @param {object} component Component whose method is going to be bound.
+ * @param {function} method Method to be bound.
+ * @return {function} The bound method.
+ */
+ function bindAutoBindMethod(component, method) {
+ var boundMethod = method.bind(component);
+ if (true) {
+ boundMethod.__reactBoundContext = component;
+ boundMethod.__reactBoundMethod = method;
+ boundMethod.__reactBoundArguments = null;
+ var componentName = component.constructor.displayName;
+ var _bind = boundMethod.bind;
+ boundMethod.bind = function(newThis) {
+ for (
+ var _len = arguments.length,
+ args = Array(_len > 1 ? _len - 1 : 0),
+ _key = 1;
+ _key < _len;
+ _key++
+ ) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ // User is trying to bind() an autobound method; we effectively will
+ // ignore the value of "this" that the user is trying to use, so
+ // let's warn.
+ if (newThis !== component && newThis !== null) {
+ if (true) {
+ warning(
+ false,
+ 'bind(): React component methods may only be bound to the ' +
+ 'component instance. See %s',
+ componentName
+ );
+ }
+ } else if (!args.length) {
+ if (true) {
+ warning(
+ false,
+ 'bind(): You are binding a component method to the component. ' +
+ 'React does this for you automatically in a high-performance ' +
+ 'way, so you can safely remove this call. See %s',
+ componentName
+ );
+ }
+ return boundMethod;
+ }
+ var reboundMethod = _bind.apply(boundMethod, arguments);
+ reboundMethod.__reactBoundContext = component;
+ reboundMethod.__reactBoundMethod = method;
+ reboundMethod.__reactBoundArguments = args;
+ return reboundMethod;
+ };
+ }
+ return boundMethod;
+ }
+
+ /**
+ * Binds all auto-bound methods in a component.
+ *
+ * @param {object} component Component whose method is going to be bound.
+ */
+ function bindAutoBindMethods(component) {
+ var pairs = component.__reactAutoBindPairs;
+ for (var i = 0; i < pairs.length; i += 2) {
+ var autoBindKey = pairs[i];
+ var method = pairs[i + 1];
+ component[autoBindKey] = bindAutoBindMethod(component, method);
+ }
+ }
+
+ var IsMountedPreMixin = {
+ componentDidMount: function() {
+ this.__isMounted = true;
+ }
+ };
+
+ var IsMountedPostMixin = {
+ componentWillUnmount: function() {
+ this.__isMounted = false;
+ }
+ };
+
+ /**
+ * Add more to the ReactClass base class. These are all legacy features and
+ * therefore not already part of the modern ReactComponent.
+ */
+ var ReactClassMixin = {
+ /**
+ * TODO: This will be deprecated because state should always keep a consistent
+ * type signature and the only use case for this, is to avoid that.
+ */
+ replaceState: function(newState, callback) {
+ this.updater.enqueueReplaceState(this, newState, callback);
+ },
+
+ /**
+ * Checks whether or not this composite component is mounted.
+ * @return {boolean} True if mounted, false otherwise.
+ * @protected
+ * @final
+ */
+ isMounted: function() {
+ if (true) {
+ warning(
+ this.__didWarnIsMounted,
+ '%s: isMounted is deprecated. Instead, make sure to clean up ' +
+ 'subscriptions and pending requests in componentWillUnmount to ' +
+ 'prevent memory leaks.',
+ (this.constructor && this.constructor.displayName) ||
+ this.name ||
+ 'Component'
+ );
+ this.__didWarnIsMounted = true;
+ }
+ return !!this.__isMounted;
+ }
+ };
+
+ var ReactClassComponent = function() {};
+ _assign(
+ ReactClassComponent.prototype,
+ ReactComponent.prototype,
+ ReactClassMixin
+ );
+
+ /**
+ * Creates a composite component class given a class specification.
+ * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
+ *
+ * @param {object} spec Class specification (which must define `render`).
+ * @return {function} Component constructor function.
+ * @public
+ */
+ function createClass(spec) {
+ // To keep our warnings more understandable, we'll use a little hack here to
+ // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
+ // unnecessarily identify a class without displayName as 'Constructor'.
+ var Constructor = identity(function(props, context, updater) {
+ // This constructor gets overridden by mocks. The argument is used
+ // by mocks to assert on what gets mounted.
+
+ if (true) {
+ warning(
+ this instanceof Constructor,
+ 'Something is calling a React component directly. Use a factory or ' +
+ 'JSX instead. See: https://fb.me/react-legacyfactory'
+ );
+ }
+
+ // Wire up auto-binding
+ if (this.__reactAutoBindPairs.length) {
+ bindAutoBindMethods(this);
+ }
+
+ this.props = props;
+ this.context = context;
+ this.refs = emptyObject;
+ this.updater = updater || ReactNoopUpdateQueue;
+
+ this.state = null;
+
+ // ReactClasses doesn't have constructors. Instead, they use the
+ // getInitialState and componentWillMount methods for initialization.
+
+ var initialState = this.getInitialState ? this.getInitialState() : null;
+ if (true) {
+ // We allow auto-mocks to proceed as if they're returning null.
+ if (
+ initialState === undefined &&
+ this.getInitialState._isMockFunction
+ ) {
+ // This is probably bad practice. Consider warning here and
+ // deprecating this convenience.
+ initialState = null;
+ }
+ }
+ _invariant(
+ typeof initialState === 'object' && !Array.isArray(initialState),
+ '%s.getInitialState(): must return an object or null',
+ Constructor.displayName || 'ReactCompositeComponent'
+ );
+
+ this.state = initialState;
+ });
+ Constructor.prototype = new ReactClassComponent();
+ Constructor.prototype.constructor = Constructor;
+ Constructor.prototype.__reactAutoBindPairs = [];
+
+ injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
+
+ mixSpecIntoComponent(Constructor, IsMountedPreMixin);
+ mixSpecIntoComponent(Constructor, spec);
+ mixSpecIntoComponent(Constructor, IsMountedPostMixin);
+
+ // Initialize the defaultProps property after all mixins have been merged.
+ if (Constructor.getDefaultProps) {
+ Constructor.defaultProps = Constructor.getDefaultProps();
+ }
+
+ if (true) {
+ // This is a tag to indicate that the use of these method names is ok,
+ // since it's used with createClass. If it's not, then it's likely a
+ // mistake so we'll warn you to use the static property, property
+ // initializer or constructor respectively.
+ if (Constructor.getDefaultProps) {
+ Constructor.getDefaultProps.isReactClassApproved = {};
+ }
+ if (Constructor.prototype.getInitialState) {
+ Constructor.prototype.getInitialState.isReactClassApproved = {};
+ }
+ }
+
+ _invariant(
+ Constructor.prototype.render,
+ 'createClass(...): Class specification must implement a `render` method.'
+ );
+
+ if (true) {
+ warning(
+ !Constructor.prototype.componentShouldUpdate,
+ '%s has a method called ' +
+ 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
+ 'The name is phrased as a question because the function is ' +
+ 'expected to return a value.',
+ spec.displayName || 'A component'
+ );
+ warning(
+ !Constructor.prototype.componentWillRecieveProps,
+ '%s has a method called ' +
+ 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
+ spec.displayName || 'A component'
+ );
+ }
+
+ // Reduce time spent doing lookups by setting these on the prototype.
+ for (var methodName in ReactClassInterface) {
+ if (!Constructor.prototype[methodName]) {
+ Constructor.prototype[methodName] = null;
+ }
+ }
+
+ return Constructor;
+ }
+
+ return createClass;
+}
+
+module.exports = factory;
+
+
+/***/ }),
+/* 86 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10442,7 +11597,7 @@ function camelize(string) {
module.exports = camelize;
/***/ }),
-/* 85 */
+/* 87 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10459,7 +11614,7 @@ module.exports = camelize;
-var camelize = __webpack_require__(84);
+var camelize = __webpack_require__(86);
var msPattern = /^-ms-/;
@@ -10487,7 +11642,7 @@ function camelizeStyleName(string) {
module.exports = camelizeStyleName;
/***/ }),
-/* 86 */
+/* 88 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10504,7 +11659,7 @@ module.exports = camelizeStyleName;
*
*/
-var isTextNode = __webpack_require__(94);
+var isTextNode = __webpack_require__(96);
/*eslint-disable no-bitwise */
@@ -10532,7 +11687,7 @@ function containsNode(outerNode, innerNode) {
module.exports = containsNode;
/***/ }),
-/* 87 */
+/* 89 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10664,7 +11819,7 @@ function createArrayFromMixed(obj) {
module.exports = createArrayFromMixed;
/***/ }),
-/* 88 */
+/* 90 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10685,8 +11840,8 @@ module.exports = createArrayFromMixed;
var ExecutionEnvironment = __webpack_require__(5);
-var createArrayFromMixed = __webpack_require__(87);
-var getMarkupWrap = __webpack_require__(89);
+var createArrayFromMixed = __webpack_require__(89);
+var getMarkupWrap = __webpack_require__(91);
var invariant = __webpack_require__(0);
/**
@@ -10753,7 +11908,7 @@ function createNodesFromMarkup(markup, handleScript) {
module.exports = createNodesFromMarkup;
/***/ }),
-/* 89 */
+/* 91 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10853,7 +12008,7 @@ function getMarkupWrap(nodeName) {
module.exports = getMarkupWrap;
/***/ }),
-/* 90 */
+/* 92 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10897,7 +12052,7 @@ function getUnboundedScrollPosition(scrollable) {
module.exports = getUnboundedScrollPosition;
/***/ }),
-/* 91 */
+/* 93 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10935,7 +12090,7 @@ function hyphenate(string) {
module.exports = hyphenate;
/***/ }),
-/* 92 */
+/* 94 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10952,7 +12107,7 @@ module.exports = hyphenate;
-var hyphenate = __webpack_require__(91);
+var hyphenate = __webpack_require__(93);
var msPattern = /^ms-/;
@@ -10979,7 +12134,7 @@ function hyphenateStyleName(string) {
module.exports = hyphenateStyleName;
/***/ }),
-/* 93 */
+/* 95 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11009,7 +12164,7 @@ function isNode(object) {
module.exports = isNode;
/***/ }),
-/* 94 */
+/* 96 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11026,7 +12181,7 @@ module.exports = isNode;
* @typechecks
*/
-var isNode = __webpack_require__(93);
+var isNode = __webpack_require__(95);
/**
* @param {*} object The object to check.
@@ -11039,7 +12194,7 @@ function isTextNode(object) {
module.exports = isTextNode;
/***/ }),
-/* 95 */
+/* 97 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11074,7 +12229,7 @@ function memoizeStringOnly(callback) {
module.exports = memoizeStringOnly;
/***/ }),
-/* 96 */
+/* 98 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11102,7 +12257,7 @@ if (ExecutionEnvironment.canUseDOM) {
module.exports = performance || {};
/***/ }),
-/* 97 */
+/* 99 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11119,7 +12274,7 @@ module.exports = performance || {};
* @typechecks
*/
-var performance = __webpack_require__(96);
+var performance = __webpack_require__(98);
var performanceNow;
@@ -11141,7 +12296,7 @@ if (performance.now) {
module.exports = performanceNow;
/***/ }),
-/* 98 */
+/* 100 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11159,7 +12314,7 @@ module.exports = performanceNow;
if (true) {
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
- var ReactPropTypesSecret = __webpack_require__(56);
+ var ReactPropTypesSecret = __webpack_require__(55);
var loggedTypeFailures = {};
}
@@ -11209,7 +12364,7 @@ module.exports = checkPropTypes;
/***/ }),
-/* 99 */
+/* 101 */
/***/ (function(module, exports, __webpack_require__) {
/**
@@ -11236,7 +12391,7 @@ if (true) {
// By explicitly using `prop-types` you are opting into new development behavior.
// http://fb.me/prop-types-in-prod
var throwOnDirectAccess = true;
- module.exports = __webpack_require__(55)(isValidElement, throwOnDirectAccess);
+ module.exports = __webpack_require__(54)(isValidElement, throwOnDirectAccess);
} else {
// By explicitly using `prop-types` you are opting into new production behavior.
// http://fb.me/prop-types-in-prod
@@ -11245,17 +12400,17 @@ if (true) {
/***/ }),
-/* 100 */
+/* 102 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-module.exports = __webpack_require__(114);
+module.exports = __webpack_require__(116);
/***/ }),
-/* 101 */
+/* 103 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11334,7 +12489,7 @@ var ARIADOMPropertyConfig = {
module.exports = ARIADOMPropertyConfig;
/***/ }),
-/* 102 */
+/* 104 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11352,7 +12507,7 @@ module.exports = ARIADOMPropertyConfig;
var ReactDOMComponentTree = __webpack_require__(4);
-var focusNode = __webpack_require__(52);
+var focusNode = __webpack_require__(51);
var AutoFocusUtils = {
focusDOMComponent: function () {
@@ -11363,7 +12518,7 @@ var AutoFocusUtils = {
module.exports = AutoFocusUtils;
/***/ }),
-/* 103 */
+/* 105 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11379,11 +12534,11 @@ module.exports = AutoFocusUtils;
-var EventPropagators = __webpack_require__(21);
+var EventPropagators = __webpack_require__(20);
var ExecutionEnvironment = __webpack_require__(5);
-var FallbackCompositionState = __webpack_require__(109);
-var SyntheticCompositionEvent = __webpack_require__(152);
-var SyntheticInputEvent = __webpack_require__(155);
+var FallbackCompositionState = __webpack_require__(111);
+var SyntheticCompositionEvent = __webpack_require__(154);
+var SyntheticInputEvent = __webpack_require__(157);
var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
var START_KEYCODE = 229;
@@ -11742,7 +12897,6 @@ function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEv
* `composition` event types.
*/
var BeforeInputEventPlugin = {
-
eventTypes: eventTypes,
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
@@ -11753,7 +12907,7 @@ var BeforeInputEventPlugin = {
module.exports = BeforeInputEventPlugin;
/***/ }),
-/* 104 */
+/* 106 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11769,14 +12923,14 @@ module.exports = BeforeInputEventPlugin;
-var CSSProperty = __webpack_require__(57);
+var CSSProperty = __webpack_require__(56);
var ExecutionEnvironment = __webpack_require__(5);
var ReactInstrumentation = __webpack_require__(7);
-var camelizeStyleName = __webpack_require__(85);
-var dangerousStyleValue = __webpack_require__(162);
-var hyphenateStyleName = __webpack_require__(92);
-var memoizeStringOnly = __webpack_require__(95);
+var camelizeStyleName = __webpack_require__(87);
+var dangerousStyleValue = __webpack_require__(164);
+var hyphenateStyleName = __webpack_require__(94);
+var memoizeStringOnly = __webpack_require__(97);
var warning = __webpack_require__(1);
var processStyleName = memoizeStringOnly(function (styleName) {
@@ -11834,7 +12988,7 @@ if (true) {
}
warnedStyleValues[value] = true;
- true ? warning(false, 'Style property values shouldn\'t contain a semicolon.%s ' + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;
+ true ? warning(false, "Style property values shouldn't contain a semicolon.%s " + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;
};
var warnStyleValueIsNaN = function (name, value, owner) {
@@ -11884,7 +13038,6 @@ if (true) {
* Operations for dealing with CSS properties.
*/
var CSSPropertyOperations = {
-
/**
* Serializes a mapping of style properties for use as inline styles:
*
@@ -11904,13 +13057,16 @@ var CSSPropertyOperations = {
if (!styles.hasOwnProperty(styleName)) {
continue;
}
+ var isCustomProperty = styleName.indexOf('--') === 0;
var styleValue = styles[styleName];
if (true) {
- warnValidStyle(styleName, styleValue, component);
+ if (!isCustomProperty) {
+ warnValidStyle(styleName, styleValue, component);
+ }
}
if (styleValue != null) {
serialized += processStyleName(styleName) + ':';
- serialized += dangerousStyleValue(styleName, styleValue, component) + ';';
+ serialized += dangerousStyleValue(styleName, styleValue, component, isCustomProperty) + ';';
}
}
return serialized || null;
@@ -11938,14 +13094,19 @@ var CSSPropertyOperations = {
if (!styles.hasOwnProperty(styleName)) {
continue;
}
+ var isCustomProperty = styleName.indexOf('--') === 0;
if (true) {
- warnValidStyle(styleName, styles[styleName], component);
+ if (!isCustomProperty) {
+ warnValidStyle(styleName, styles[styleName], component);
+ }
}
- var styleValue = dangerousStyleValue(styleName, styles[styleName], component);
+ var styleValue = dangerousStyleValue(styleName, styles[styleName], component, isCustomProperty);
if (styleName === 'float' || styleName === 'cssFloat') {
styleName = styleFloatAccessor;
}
- if (styleValue) {
+ if (isCustomProperty) {
+ style.setProperty(styleName, styleValue);
+ } else if (styleValue) {
style[styleName] = styleValue;
} else {
var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];
@@ -11961,13 +13122,12 @@ var CSSPropertyOperations = {
}
}
}
-
};
module.exports = CSSPropertyOperations;
/***/ }),
-/* 105 */
+/* 107 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11983,13 +13143,14 @@ module.exports = CSSPropertyOperations;
-var EventPluginHub = __webpack_require__(20);
-var EventPropagators = __webpack_require__(21);
+var EventPluginHub = __webpack_require__(19);
+var EventPropagators = __webpack_require__(20);
var ExecutionEnvironment = __webpack_require__(5);
var ReactDOMComponentTree = __webpack_require__(4);
var ReactUpdates = __webpack_require__(9);
var SyntheticEvent = __webpack_require__(11);
+var inputValueTracking = __webpack_require__(73);
var getEventTarget = __webpack_require__(44);
var isEventSupported = __webpack_require__(45);
var isTextInputElement = __webpack_require__(75);
@@ -12004,13 +13165,17 @@ var eventTypes = {
}
};
+function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
+ var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target);
+ event.type = 'change';
+ EventPropagators.accumulateTwoPhaseDispatches(event);
+ return event;
+}
/**
* For IE shims
*/
var activeElement = null;
var activeElementInst = null;
-var activeElementValue = null;
-var activeElementValueProp = null;
/**
* SECTION: handle `change` event
@@ -12027,8 +13192,7 @@ if (ExecutionEnvironment.canUseDOM) {
}
function manualDispatchChangeEvent(nativeEvent) {
- var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent));
- EventPropagators.accumulateTwoPhaseDispatches(event);
+ var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));
// If change and propertychange bubbled, we'd just bind to it like all the
// other events and have it go through ReactBrowserEventEmitter. Since it
@@ -12064,11 +13228,21 @@ function stopWatchingForChangeEventIE8() {
activeElementInst = null;
}
+function getInstIfValueChanged(targetInst, nativeEvent) {
+ var updated = inputValueTracking.updateValueIfChanged(targetInst);
+ var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough;
+
+ if (updated || simulated) {
+ return targetInst;
+ }
+}
+
function getTargetInstForChangeEvent(topLevelType, targetInst) {
if (topLevelType === 'topChange') {
return targetInst;
}
}
+
function handleEventsForChangeEventIE8(topLevelType, target, targetInst) {
if (topLevelType === 'topFocus') {
// stopWatching() should be a noop here but we call it just in case we
@@ -12087,105 +13261,54 @@ var isInputEventSupported = false;
if (ExecutionEnvironment.canUseDOM) {
// IE9 claims to support the input event but fails to trigger it when
// deleting text, so we ignore its input events.
- // IE10+ fire input events to often, such when a placeholder
- // changes or when an input with a placeholder is focused.
- isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);
+
+ isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);
}
/**
- * (For IE <=11) Replacement getter/setter for the `value` property that gets
- * set on the active element.
- */
-var newValueProp = {
- get: function () {
- return activeElementValueProp.get.call(this);
- },
- set: function (val) {
- // Cast to a string so we can do equality checks.
- activeElementValue = '' + val;
- activeElementValueProp.set.call(this, val);
- }
-};
-
-/**
- * (For IE <=11) Starts tracking propertychange events on the passed-in element
+ * (For IE <=9) Starts tracking propertychange events on the passed-in element
* and override the value property so that we can distinguish user events from
* value changes in JS.
*/
function startWatchingForValueChange(target, targetInst) {
activeElement = target;
activeElementInst = targetInst;
- activeElementValue = target.value;
- activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');
-
- // Not guarded in a canDefineProperty check: IE8 supports defineProperty only
- // on DOM elements
- Object.defineProperty(activeElement, 'value', newValueProp);
- if (activeElement.attachEvent) {
- activeElement.attachEvent('onpropertychange', handlePropertyChange);
- } else {
- activeElement.addEventListener('propertychange', handlePropertyChange, false);
- }
+ activeElement.attachEvent('onpropertychange', handlePropertyChange);
}
/**
- * (For IE <=11) Removes the event listeners from the currently-tracked element,
+ * (For IE <=9) Removes the event listeners from the currently-tracked element,
* if any exists.
*/
function stopWatchingForValueChange() {
if (!activeElement) {
return;
}
-
- // delete restores the original property definition
- delete activeElement.value;
-
- if (activeElement.detachEvent) {
- activeElement.detachEvent('onpropertychange', handlePropertyChange);
- } else {
- activeElement.removeEventListener('propertychange', handlePropertyChange, false);
- }
+ activeElement.detachEvent('onpropertychange', handlePropertyChange);
activeElement = null;
activeElementInst = null;
- activeElementValue = null;
- activeElementValueProp = null;
}
/**
- * (For IE <=11) Handles a propertychange event, sending a `change` event if
+ * (For IE <=9) Handles a propertychange event, sending a `change` event if
* the value of the active element has changed.
*/
function handlePropertyChange(nativeEvent) {
if (nativeEvent.propertyName !== 'value') {
return;
}
- var value = nativeEvent.srcElement.value;
- if (value === activeElementValue) {
- return;
- }
- activeElementValue = value;
-
- manualDispatchChangeEvent(nativeEvent);
-}
-
-/**
- * If a `change` event should be fired, returns the target's ID.
- */
-function getTargetInstForInputEvent(topLevelType, targetInst) {
- if (topLevelType === 'topInput') {
- // In modern browsers (i.e., not IE8 or IE9), the input event is exactly
- // what we want so fall through here and trigger an abstract event
- return targetInst;
+ if (getInstIfValueChanged(activeElementInst, nativeEvent)) {
+ manualDispatchChangeEvent(nativeEvent);
}
}
-function handleEventsForInputEventIE(topLevelType, target, targetInst) {
+function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
if (topLevelType === 'topFocus') {
// In IE8, we can capture almost all .value changes by adding a
// propertychange handler and looking for events with propertyName
// equal to 'value'
- // In IE9-11, propertychange fires for most input events but is buggy and
+ // In IE9, propertychange fires for most input events but is buggy and
// doesn't fire when text is deleted, but conveniently, selectionchange
// appears to fire in all of the remaining cases so we catch those and
// forward the event if the value has changed
@@ -12203,7 +13326,7 @@ function handleEventsForInputEventIE(topLevelType, target, targetInst) {
}
// For IE8 and IE9.
-function getTargetInstForInputEventIE(topLevelType, targetInst) {
+function getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) {
if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {
// On the selectionchange event, the target is just document which isn't
// helpful for us so just check activeElement instead.
@@ -12215,10 +13338,7 @@ function getTargetInstForInputEventIE(topLevelType, targetInst) {
// keystroke if user does a key repeat (it'll be a little delayed: right
// before the second keystroke). Other input methods (e.g., paste) seem to
// fire selectionchange normally.
- if (activeElement && activeElement.value !== activeElementValue) {
- activeElementValue = activeElement.value;
- return activeElementInst;
- }
+ return getInstIfValueChanged(activeElementInst, nativeEvent);
}
}
@@ -12229,12 +13349,19 @@ function shouldUseClickEvent(elem) {
// Use the `click` event to detect changes to checkbox and radio inputs.
// This approach works across all browsers, whereas `change` does not fire
// until `blur` in IE8.
- return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
+ var nodeName = elem.nodeName;
+ return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
}
-function getTargetInstForClickEvent(topLevelType, targetInst) {
+function getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) {
if (topLevelType === 'topClick') {
- return targetInst;
+ return getInstIfValueChanged(targetInst, nativeEvent);
+ }
+}
+
+function getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) {
+ if (topLevelType === 'topInput' || topLevelType === 'topChange') {
+ return getInstIfValueChanged(targetInst, nativeEvent);
}
}
@@ -12269,9 +13396,11 @@ function handleControlledInputBlur(inst, node) {
* - select
*/
var ChangeEventPlugin = {
-
eventTypes: eventTypes,
+ _allowSimulatedPassThrough: true,
+ _isInputEventSupported: isInputEventSupported,
+
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;
@@ -12284,21 +13413,19 @@ var ChangeEventPlugin = {
}
} else if (isTextInputElement(targetNode)) {
if (isInputEventSupported) {
- getTargetInstFunc = getTargetInstForInputEvent;
+ getTargetInstFunc = getTargetInstForInputOrChangeEvent;
} else {
- getTargetInstFunc = getTargetInstForInputEventIE;
- handleEventFunc = handleEventsForInputEventIE;
+ getTargetInstFunc = getTargetInstForInputEventPolyfill;
+ handleEventFunc = handleEventsForInputEventPolyfill;
}
} else if (shouldUseClickEvent(targetNode)) {
getTargetInstFunc = getTargetInstForClickEvent;
}
if (getTargetInstFunc) {
- var inst = getTargetInstFunc(topLevelType, targetInst);
+ var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent);
if (inst) {
- var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);
- event.type = 'change';
- EventPropagators.accumulateTwoPhaseDispatches(event);
+ var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);
return event;
}
}
@@ -12312,13 +13439,12 @@ var ChangeEventPlugin = {
handleControlledInputBlur(targetInst, targetNode);
}
}
-
};
module.exports = ChangeEventPlugin;
/***/ }),
-/* 106 */
+/* 108 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12336,15 +13462,14 @@ module.exports = ChangeEventPlugin;
var _prodInvariant = __webpack_require__(2);
-var DOMLazyTree = __webpack_require__(16);
+var DOMLazyTree = __webpack_require__(15);
var ExecutionEnvironment = __webpack_require__(5);
-var createNodesFromMarkup = __webpack_require__(88);
+var createNodesFromMarkup = __webpack_require__(90);
var emptyFunction = __webpack_require__(8);
var invariant = __webpack_require__(0);
var Danger = {
-
/**
* Replaces a node with a string of markup at its current position within its
* parent. The markup must render into a single root node.
@@ -12365,13 +13490,12 @@ var Danger = {
DOMLazyTree.replaceChildWithTree(oldChild, markup);
}
}
-
};
module.exports = Danger;
/***/ }),
-/* 107 */
+/* 109 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12402,7 +13526,7 @@ var DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'Tap
module.exports = DefaultEventPluginOrder;
/***/ }),
-/* 108 */
+/* 110 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12418,7 +13542,7 @@ module.exports = DefaultEventPluginOrder;
-var EventPropagators = __webpack_require__(21);
+var EventPropagators = __webpack_require__(20);
var ReactDOMComponentTree = __webpack_require__(4);
var SyntheticMouseEvent = __webpack_require__(27);
@@ -12434,7 +13558,6 @@ var eventTypes = {
};
var EnterLeaveEventPlugin = {
-
eventTypes: eventTypes,
/**
@@ -12501,13 +13624,12 @@ var EnterLeaveEventPlugin = {
return [leave, enter];
}
-
};
module.exports = EnterLeaveEventPlugin;
/***/ }),
-/* 109 */
+/* 111 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12527,7 +13649,7 @@ var _assign = __webpack_require__(3);
var PooledClass = __webpack_require__(13);
-var getTextContentAccessor = __webpack_require__(73);
+var getTextContentAccessor = __webpack_require__(72);
/**
* This helper class stores information about text content of a target node,
@@ -12607,7 +13729,7 @@ PooledClass.addPoolingTo(FallbackCompositionState);
module.exports = FallbackCompositionState;
/***/ }),
-/* 110 */
+/* 112 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12848,7 +13970,7 @@ var HTMLDOMPropertyConfig = {
module.exports = HTMLDOMPropertyConfig;
/***/ }),
-/* 111 */
+/* 113 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12864,7 +13986,7 @@ module.exports = HTMLDOMPropertyConfig;
-var ReactReconciler = __webpack_require__(17);
+var ReactReconciler = __webpack_require__(16);
var instantiateReactComponent = __webpack_require__(74);
var KeyEscapeUtils = __webpack_require__(36);
@@ -12913,8 +14035,8 @@ var ReactChildReconciler = {
* @return {?object} A set of child instances.
* @internal
*/
- instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots
- ) {
+ instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots
+ {
if (nestedChildNodes == null) {
return null;
}
@@ -12940,8 +14062,8 @@ var ReactChildReconciler = {
* @return {?object} A new set of child instances.
* @internal
*/
- updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots
- ) {
+ updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots
+ {
// We currently don't have a way to track moves here but if we use iterators
// instead of for..in we can zip the iterators and check if an item has
// moved.
@@ -13001,14 +14123,13 @@ var ReactChildReconciler = {
}
}
}
-
};
module.exports = ReactChildReconciler;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24)))
/***/ }),
-/* 112 */
+/* 114 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13025,7 +14146,7 @@ module.exports = ReactChildReconciler;
var DOMChildrenOperations = __webpack_require__(33);
-var ReactDOMIDOperations = __webpack_require__(119);
+var ReactDOMIDOperations = __webpack_require__(121);
/**
* Abstracts away all functionality of the reconciler that requires knowledge of
@@ -13033,17 +14154,15 @@ var ReactDOMIDOperations = __webpack_require__(119);
* need for this injection.
*/
var ReactComponentBrowserEnvironment = {
-
processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,
replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup
-
};
module.exports = ReactComponentBrowserEnvironment;
/***/ }),
-/* 113 */
+/* 115 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13062,20 +14181,20 @@ module.exports = ReactComponentBrowserEnvironment;
var _prodInvariant = __webpack_require__(2),
_assign = __webpack_require__(3);
-var React = __webpack_require__(18);
+var React = __webpack_require__(17);
var ReactComponentEnvironment = __webpack_require__(38);
var ReactCurrentOwner = __webpack_require__(10);
var ReactErrorUtils = __webpack_require__(39);
-var ReactInstanceMap = __webpack_require__(22);
+var ReactInstanceMap = __webpack_require__(21);
var ReactInstrumentation = __webpack_require__(7);
-var ReactNodeTypes = __webpack_require__(67);
-var ReactReconciler = __webpack_require__(17);
+var ReactNodeTypes = __webpack_require__(66);
+var ReactReconciler = __webpack_require__(16);
if (true) {
- var checkReactTypeSpec = __webpack_require__(161);
+ var checkReactTypeSpec = __webpack_require__(163);
}
-var emptyObject = __webpack_require__(19);
+var emptyObject = __webpack_require__(23);
var invariant = __webpack_require__(0);
var shallowEqual = __webpack_require__(32);
var shouldUpdateReactComponent = __webpack_require__(46);
@@ -13166,7 +14285,6 @@ var nextMountID = 1;
* @lends {ReactCompositeComponent.prototype}
*/
var ReactCompositeComponent = {
-
/**
* Base constructor for all composite component.
*
@@ -13262,7 +14380,7 @@ var ReactCompositeComponent = {
var propsMutated = inst.props !== publicProps;
var componentName = Component.displayName || Component.name || 'Component';
- true ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\'s constructor was passed.', componentName, componentName) : void 0;
+ true ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", componentName, componentName) : void 0;
}
// These should be set up in the constructor, but as a convenience for
@@ -13944,13 +15062,12 @@ var ReactCompositeComponent = {
// Stub
_instantiateReactComponent: null
-
};
module.exports = ReactCompositeComponent;
/***/ }),
-/* 114 */
+/* 116 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13969,15 +15086,15 @@ module.exports = ReactCompositeComponent;
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactDefaultInjection = __webpack_require__(131);
-var ReactMount = __webpack_require__(66);
-var ReactReconciler = __webpack_require__(17);
+var ReactDefaultInjection = __webpack_require__(133);
+var ReactMount = __webpack_require__(65);
+var ReactReconciler = __webpack_require__(16);
var ReactUpdates = __webpack_require__(9);
-var ReactVersion = __webpack_require__(146);
+var ReactVersion = __webpack_require__(148);
-var findDOMNode = __webpack_require__(163);
-var getHostComponentFromComposite = __webpack_require__(72);
-var renderSubtreeIntoContainer = __webpack_require__(170);
+var findDOMNode = __webpack_require__(165);
+var getHostComponentFromComposite = __webpack_require__(71);
+var renderSubtreeIntoContainer = __webpack_require__(172);
var warning = __webpack_require__(1);
ReactDefaultInjection.inject();
@@ -13991,6 +15108,7 @@ var ReactDOM = {
/* eslint-disable camelcase */
unstable_batchedUpdates: ReactUpdates.batchedUpdates,
unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer
+ /* eslint-enable camelcase */
};
// Inject the runtime into a devtools global hook regardless of browser.
@@ -14019,7 +15137,6 @@ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVT
if (true) {
var ExecutionEnvironment = __webpack_require__(5);
if (ExecutionEnvironment.canUseDOM && window.top === window.self) {
-
// First check if devtools is not installed
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {
// If we're in Chrome or Firefox, provide a download link if not installed.
@@ -14031,7 +15148,7 @@ if (true) {
}
var testFunc = function testFn() {};
- true ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;
+ true ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, "It looks like you're using a minified copy of the development build " + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;
// If we're in IE8, check to see if we are in compatibility mode and provide
// information on preventing compatibility mode
@@ -14054,9 +15171,9 @@ if (true) {
if (true) {
var ReactInstrumentation = __webpack_require__(7);
- var ReactDOMUnknownPropertyHook = __webpack_require__(128);
- var ReactDOMNullInputValuePropHook = __webpack_require__(122);
- var ReactDOMInvalidARIAHook = __webpack_require__(121);
+ var ReactDOMUnknownPropertyHook = __webpack_require__(130);
+ var ReactDOMNullInputValuePropHook = __webpack_require__(124);
+ var ReactDOMInvalidARIAHook = __webpack_require__(123);
ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);
ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);
@@ -14066,7 +15183,7 @@ if (true) {
module.exports = ReactDOM;
/***/ }),
-/* 115 */
+/* 117 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -14087,30 +15204,31 @@ module.exports = ReactDOM;
var _prodInvariant = __webpack_require__(2),
_assign = __webpack_require__(3);
-var AutoFocusUtils = __webpack_require__(102);
-var CSSPropertyOperations = __webpack_require__(104);
-var DOMLazyTree = __webpack_require__(16);
+var AutoFocusUtils = __webpack_require__(104);
+var CSSPropertyOperations = __webpack_require__(106);
+var DOMLazyTree = __webpack_require__(15);
var DOMNamespaces = __webpack_require__(34);
var DOMProperty = __webpack_require__(12);
-var DOMPropertyOperations = __webpack_require__(59);
-var EventPluginHub = __webpack_require__(20);
+var DOMPropertyOperations = __webpack_require__(58);
+var EventPluginHub = __webpack_require__(19);
var EventPluginRegistry = __webpack_require__(25);
var ReactBrowserEventEmitter = __webpack_require__(26);
-var ReactDOMComponentFlags = __webpack_require__(60);
+var ReactDOMComponentFlags = __webpack_require__(59);
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactDOMInput = __webpack_require__(120);
-var ReactDOMOption = __webpack_require__(123);
-var ReactDOMSelect = __webpack_require__(61);
-var ReactDOMTextarea = __webpack_require__(126);
+var ReactDOMInput = __webpack_require__(122);
+var ReactDOMOption = __webpack_require__(125);
+var ReactDOMSelect = __webpack_require__(60);
+var ReactDOMTextarea = __webpack_require__(128);
var ReactInstrumentation = __webpack_require__(7);
-var ReactMultiChild = __webpack_require__(139);
-var ReactServerRenderingTransaction = __webpack_require__(144);
+var ReactMultiChild = __webpack_require__(141);
+var ReactServerRenderingTransaction = __webpack_require__(146);
var emptyFunction = __webpack_require__(8);
var escapeTextContentForBrowser = __webpack_require__(29);
var invariant = __webpack_require__(0);
var isEventSupported = __webpack_require__(45);
var shallowEqual = __webpack_require__(32);
+var inputValueTracking = __webpack_require__(73);
var validateDOMNesting = __webpack_require__(47);
var warning = __webpack_require__(1);
@@ -14121,7 +15239,7 @@ var listenTo = ReactBrowserEventEmitter.listenTo;
var registrationNameModules = EventPluginRegistry.registrationNameModules;
// For quickly matching children type, to test if can be treated as content.
-var CONTENT_TYPES = { 'string': true, 'number': true };
+var CONTENT_TYPES = { string: true, number: true };
var STYLE = 'style';
var HTML = '__html';
@@ -14230,7 +15348,7 @@ function enqueuePutListener(inst, registrationName, listener, transaction) {
if (true) {
// IE8 has no API for event capturing and the `onScroll` event doesn't
// bubble.
- true ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\'t support the `onScroll` event') : void 0;
+ true ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), "This browser doesn't support the `onScroll` event") : void 0;
}
var containerInfo = inst._hostContainerInfo;
var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;
@@ -14320,6 +15438,10 @@ var mediaEvents = {
topWaiting: 'waiting'
};
+function trackInputValue() {
+ inputValueTracking.track(this);
+}
+
function trapBubbledEventsLocal() {
var inst = this;
// If a component renders to null or if another component fatals and causes
@@ -14335,7 +15457,6 @@ function trapBubbledEventsLocal() {
break;
case 'video':
case 'audio':
-
inst._wrapperState.listeners = [];
// Create listener for each media event
for (var event in mediaEvents) {
@@ -14369,34 +15490,35 @@ function postUpdateSelectWrapper() {
// those special-case tags.
var omittedCloseTags = {
- 'area': true,
- 'base': true,
- 'br': true,
- 'col': true,
- 'embed': true,
- 'hr': true,
- 'img': true,
- 'input': true,
- 'keygen': true,
- 'link': true,
- 'meta': true,
- 'param': true,
- 'source': true,
- 'track': true,
- 'wbr': true
+ area: true,
+ base: true,
+ br: true,
+ col: true,
+ embed: true,
+ hr: true,
+ img: true,
+ input: true,
+ keygen: true,
+ link: true,
+ meta: true,
+ param: true,
+ source: true,
+ track: true,
+ wbr: true
+ // NOTE: menuitem's close tag should be omitted, but that causes problems.
};
var newlineEatingTags = {
- 'listing': true,
- 'pre': true,
- 'textarea': true
+ listing: true,
+ pre: true,
+ textarea: true
};
// For HTML, certain tags cannot have children. This has the same purpose as
// `omittedCloseTags` except that `menuitem` should still have its closing tag.
var voidElementTags = _assign({
- 'menuitem': true
+ menuitem: true
}, omittedCloseTags);
// We accept any tag to be rendered but since this gets injected into arbitrary
@@ -14460,7 +15582,6 @@ function ReactDOMComponent(element) {
ReactDOMComponent.displayName = 'ReactDOMComponent';
ReactDOMComponent.Mixin = {
-
/**
* Generates root tag markup then recurses. This method has side effects and
* is not idempotent.
@@ -14497,6 +15618,7 @@ ReactDOMComponent.Mixin = {
case 'input':
ReactDOMInput.mountWrapper(this, props, hostParent);
props = ReactDOMInput.getHostProps(this, props);
+ transaction.getReactMountReady().enqueue(trackInputValue, this);
transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);
break;
case 'option':
@@ -14511,6 +15633,7 @@ ReactDOMComponent.Mixin = {
case 'textarea':
ReactDOMTextarea.mountWrapper(this, props, hostParent);
props = ReactDOMTextarea.getHostProps(this, props);
+ transaction.getReactMountReady().enqueue(trackInputValue, this);
transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);
break;
}
@@ -15036,6 +16159,10 @@ ReactDOMComponent.Mixin = {
}
}
break;
+ case 'input':
+ case 'textarea':
+ inputValueTracking.stopTracking(this);
+ break;
case 'html':
case 'head':
case 'body':
@@ -15064,7 +16191,6 @@ ReactDOMComponent.Mixin = {
getPublicInstance: function () {
return getNode(this);
}
-
};
_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);
@@ -15072,7 +16198,7 @@ _assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mi
module.exports = ReactDOMComponent;
/***/ }),
-/* 116 */
+/* 118 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15110,7 +16236,7 @@ function ReactDOMContainerInfo(topLevelWrapper, node) {
module.exports = ReactDOMContainerInfo;
/***/ }),
-/* 117 */
+/* 119 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15128,7 +16254,7 @@ module.exports = ReactDOMContainerInfo;
var _assign = __webpack_require__(3);
-var DOMLazyTree = __webpack_require__(16);
+var DOMLazyTree = __webpack_require__(15);
var ReactDOMComponentTree = __webpack_require__(4);
var ReactDOMEmptyComponent = function (instantiate) {
@@ -15175,7 +16301,7 @@ _assign(ReactDOMEmptyComponent.prototype, {
module.exports = ReactDOMEmptyComponent;
/***/ }),
-/* 118 */
+/* 120 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15199,7 +16325,7 @@ var ReactDOMFeatureFlags = {
module.exports = ReactDOMFeatureFlags;
/***/ }),
-/* 119 */
+/* 121 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15222,7 +16348,6 @@ var ReactDOMComponentTree = __webpack_require__(4);
* Operations used to process updates to DOM nodes.
*/
var ReactDOMIDOperations = {
-
/**
* Updates a component's children by processing a series of updates.
*
@@ -15238,7 +16363,7 @@ var ReactDOMIDOperations = {
module.exports = ReactDOMIDOperations;
/***/ }),
-/* 120 */
+/* 122 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15257,7 +16382,7 @@ module.exports = ReactDOMIDOperations;
var _prodInvariant = __webpack_require__(2),
_assign = __webpack_require__(3);
-var DOMPropertyOperations = __webpack_require__(59);
+var DOMPropertyOperations = __webpack_require__(58);
var LinkedValueUtils = __webpack_require__(37);
var ReactDOMComponentTree = __webpack_require__(4);
var ReactUpdates = __webpack_require__(9);
@@ -15394,14 +16519,16 @@ var ReactDOMInput = {
// Simulate `input.valueAsNumber`. IE9 does not support it
var valueAsNumber = parseFloat(node.value, 10) || 0;
+ if (
// eslint-disable-next-line
- if (value != valueAsNumber) {
+ value != valueAsNumber ||
+ // eslint-disable-next-line
+ value == valueAsNumber && node.value != value) {
// Cast `value` to a string to ensure the value is set correctly. While
// browsers typically do this as necessary, jsdom doesn't.
node.value = '' + value;
}
- // eslint-disable-next-line
- } else if (value != node.value) {
+ } else if (node.value !== '' + value) {
// Cast `value` to a string to ensure the value is set correctly. While
// browsers typically do this as necessary, jsdom doesn't.
node.value = '' + value;
@@ -15528,7 +16655,7 @@ function _handleChange(event) {
module.exports = ReactDOMInput;
/***/ }),
-/* 121 */
+/* 123 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15626,7 +16753,7 @@ var ReactDOMInvalidARIAHook = {
module.exports = ReactDOMInvalidARIAHook;
/***/ }),
-/* 122 */
+/* 124 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15674,7 +16801,7 @@ var ReactDOMNullInputValuePropHook = {
module.exports = ReactDOMNullInputValuePropHook;
/***/ }),
-/* 123 */
+/* 125 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15692,9 +16819,9 @@ module.exports = ReactDOMNullInputValuePropHook;
var _assign = __webpack_require__(3);
-var React = __webpack_require__(18);
+var React = __webpack_require__(17);
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactDOMSelect = __webpack_require__(61);
+var ReactDOMSelect = __webpack_require__(60);
var warning = __webpack_require__(1);
var didWarnInvalidOptionChildren = false;
@@ -15796,13 +16923,12 @@ var ReactDOMOption = {
return hostProps;
}
-
};
module.exports = ReactDOMOption;
/***/ }),
-/* 124 */
+/* 126 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15820,8 +16946,8 @@ module.exports = ReactDOMOption;
var ExecutionEnvironment = __webpack_require__(5);
-var getNodeForCharacterOffset = __webpack_require__(167);
-var getTextContentAccessor = __webpack_require__(73);
+var getNodeForCharacterOffset = __webpack_require__(169);
+var getTextContentAccessor = __webpack_require__(72);
/**
* While `isCollapsed` is available on the Selection object and `collapsed`
@@ -16019,7 +17145,7 @@ var ReactDOMSelection = {
module.exports = ReactDOMSelection;
/***/ }),
-/* 125 */
+/* 127 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16039,7 +17165,7 @@ var _prodInvariant = __webpack_require__(2),
_assign = __webpack_require__(3);
var DOMChildrenOperations = __webpack_require__(33);
-var DOMLazyTree = __webpack_require__(16);
+var DOMLazyTree = __webpack_require__(15);
var ReactDOMComponentTree = __webpack_require__(4);
var escapeTextContentForBrowser = __webpack_require__(29);
@@ -16077,7 +17203,6 @@ var ReactDOMTextComponent = function (text) {
};
_assign(ReactDOMTextComponent.prototype, {
-
/**
* Creates the markup for this text node. This node is not intended to have
* any features besides containing text content.
@@ -16182,13 +17307,12 @@ _assign(ReactDOMTextComponent.prototype, {
this._commentNodes = null;
ReactDOMComponentTree.uncacheNode(this);
}
-
});
module.exports = ReactDOMTextComponent;
/***/ }),
-/* 126 */
+/* 128 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16353,7 +17477,7 @@ function _handleChange(event) {
module.exports = ReactDOMTextarea;
/***/ }),
-/* 127 */
+/* 129 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16494,7 +17618,7 @@ module.exports = {
};
/***/ }),
-/* 128 */
+/* 130 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16611,7 +17735,7 @@ var ReactDOMUnknownPropertyHook = {
module.exports = ReactDOMUnknownPropertyHook;
/***/ }),
-/* 129 */
+/* 131 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16628,12 +17752,12 @@ module.exports = ReactDOMUnknownPropertyHook;
-var ReactInvalidSetStateWarningHook = __webpack_require__(137);
-var ReactHostOperationHistoryHook = __webpack_require__(135);
+var ReactInvalidSetStateWarningHook = __webpack_require__(139);
+var ReactHostOperationHistoryHook = __webpack_require__(137);
var ReactComponentTreeHook = __webpack_require__(6);
var ExecutionEnvironment = __webpack_require__(5);
-var performanceNow = __webpack_require__(97);
+var performanceNow = __webpack_require__(99);
var warning = __webpack_require__(1);
var hooks = [];
@@ -16843,7 +17967,9 @@ function markEnd(debugID, markType) {
}
performance.clearMarks(markName);
- performance.clearMeasures(measurementName);
+ if (measurementName) {
+ performance.clearMeasures(measurementName);
+ }
}
var ReactDebugTool = {
@@ -16975,7 +18101,7 @@ if (/[?&]react_perf\b/.test(url)) {
module.exports = ReactDebugTool;
/***/ }),
-/* 130 */
+/* 132 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17048,7 +18174,7 @@ var ReactDefaultBatchingStrategy = {
module.exports = ReactDefaultBatchingStrategy;
/***/ }),
-/* 131 */
+/* 133 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17064,25 +18190,25 @@ module.exports = ReactDefaultBatchingStrategy;
-var ARIADOMPropertyConfig = __webpack_require__(101);
-var BeforeInputEventPlugin = __webpack_require__(103);
-var ChangeEventPlugin = __webpack_require__(105);
-var DefaultEventPluginOrder = __webpack_require__(107);
-var EnterLeaveEventPlugin = __webpack_require__(108);
-var HTMLDOMPropertyConfig = __webpack_require__(110);
-var ReactComponentBrowserEnvironment = __webpack_require__(112);
-var ReactDOMComponent = __webpack_require__(115);
+var ARIADOMPropertyConfig = __webpack_require__(103);
+var BeforeInputEventPlugin = __webpack_require__(105);
+var ChangeEventPlugin = __webpack_require__(107);
+var DefaultEventPluginOrder = __webpack_require__(109);
+var EnterLeaveEventPlugin = __webpack_require__(110);
+var HTMLDOMPropertyConfig = __webpack_require__(112);
+var ReactComponentBrowserEnvironment = __webpack_require__(114);
+var ReactDOMComponent = __webpack_require__(117);
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactDOMEmptyComponent = __webpack_require__(117);
-var ReactDOMTreeTraversal = __webpack_require__(127);
-var ReactDOMTextComponent = __webpack_require__(125);
-var ReactDefaultBatchingStrategy = __webpack_require__(130);
-var ReactEventListener = __webpack_require__(134);
-var ReactInjection = __webpack_require__(136);
-var ReactReconcileTransaction = __webpack_require__(142);
-var SVGDOMPropertyConfig = __webpack_require__(147);
-var SelectEventPlugin = __webpack_require__(148);
-var SimpleEventPlugin = __webpack_require__(149);
+var ReactDOMEmptyComponent = __webpack_require__(119);
+var ReactDOMTreeTraversal = __webpack_require__(129);
+var ReactDOMTextComponent = __webpack_require__(127);
+var ReactDefaultBatchingStrategy = __webpack_require__(132);
+var ReactEventListener = __webpack_require__(136);
+var ReactInjection = __webpack_require__(138);
+var ReactReconcileTransaction = __webpack_require__(144);
+var SVGDOMPropertyConfig = __webpack_require__(149);
+var SelectEventPlugin = __webpack_require__(150);
+var SimpleEventPlugin = __webpack_require__(151);
var alreadyInjected = false;
@@ -17139,7 +18265,7 @@ module.exports = {
};
/***/ }),
-/* 132 */
+/* 134 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17164,7 +18290,7 @@ var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol
module.exports = REACT_ELEMENT_TYPE;
/***/ }),
-/* 133 */
+/* 135 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17180,7 +18306,7 @@ module.exports = REACT_ELEMENT_TYPE;
-var EventPluginHub = __webpack_require__(20);
+var EventPluginHub = __webpack_require__(19);
function runEventQueueInBatch(events) {
EventPluginHub.enqueueEvents(events);
@@ -17188,7 +18314,6 @@ function runEventQueueInBatch(events) {
}
var ReactEventEmitterMixin = {
-
/**
* Streams a fired top-level event to `EventPluginHub` where plugins have the
* opportunity to create `ReactEvent`s to be dispatched.
@@ -17202,7 +18327,7 @@ var ReactEventEmitterMixin = {
module.exports = ReactEventEmitterMixin;
/***/ }),
-/* 134 */
+/* 136 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17220,14 +18345,14 @@ module.exports = ReactEventEmitterMixin;
var _assign = __webpack_require__(3);
-var EventListener = __webpack_require__(51);
+var EventListener = __webpack_require__(50);
var ExecutionEnvironment = __webpack_require__(5);
var PooledClass = __webpack_require__(13);
var ReactDOMComponentTree = __webpack_require__(4);
var ReactUpdates = __webpack_require__(9);
var getEventTarget = __webpack_require__(44);
-var getUnboundedScrollPosition = __webpack_require__(90);
+var getUnboundedScrollPosition = __webpack_require__(92);
/**
* Find the deepest React component completely containing the root of the
@@ -17362,7 +18487,7 @@ var ReactEventListener = {
module.exports = ReactEventListener;
/***/ }),
-/* 135 */
+/* 137 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17401,7 +18526,7 @@ var ReactHostOperationHistoryHook = {
module.exports = ReactHostOperationHistoryHook;
/***/ }),
-/* 136 */
+/* 138 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17418,12 +18543,12 @@ module.exports = ReactHostOperationHistoryHook;
var DOMProperty = __webpack_require__(12);
-var EventPluginHub = __webpack_require__(20);
+var EventPluginHub = __webpack_require__(19);
var EventPluginUtils = __webpack_require__(35);
var ReactComponentEnvironment = __webpack_require__(38);
-var ReactEmptyComponent = __webpack_require__(62);
+var ReactEmptyComponent = __webpack_require__(61);
var ReactBrowserEventEmitter = __webpack_require__(26);
-var ReactHostComponent = __webpack_require__(64);
+var ReactHostComponent = __webpack_require__(63);
var ReactUpdates = __webpack_require__(9);
var ReactInjection = {
@@ -17440,7 +18565,7 @@ var ReactInjection = {
module.exports = ReactInjection;
/***/ }),
-/* 137 */
+/* 139 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17482,7 +18607,7 @@ var ReactInvalidSetStateWarningHook = {
module.exports = ReactInvalidSetStateWarningHook;
/***/ }),
-/* 138 */
+/* 140 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17498,7 +18623,7 @@ module.exports = ReactInvalidSetStateWarningHook;
-var adler32 = __webpack_require__(160);
+var adler32 = __webpack_require__(162);
var TAG_END = /\/?>/;
var COMMENT_START = /^<\!\-\-/;
@@ -17537,7 +18662,7 @@ var ReactMarkupChecksum = {
module.exports = ReactMarkupChecksum;
/***/ }),
-/* 139 */
+/* 141 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17556,15 +18681,15 @@ module.exports = ReactMarkupChecksum;
var _prodInvariant = __webpack_require__(2);
var ReactComponentEnvironment = __webpack_require__(38);
-var ReactInstanceMap = __webpack_require__(22);
+var ReactInstanceMap = __webpack_require__(21);
var ReactInstrumentation = __webpack_require__(7);
var ReactCurrentOwner = __webpack_require__(10);
-var ReactReconciler = __webpack_require__(17);
-var ReactChildReconciler = __webpack_require__(111);
+var ReactReconciler = __webpack_require__(16);
+var ReactChildReconciler = __webpack_require__(113);
var emptyFunction = __webpack_require__(8);
-var flattenChildren = __webpack_require__(164);
+var flattenChildren = __webpack_require__(166);
var invariant = __webpack_require__(0);
/**
@@ -17711,7 +18836,6 @@ if (true) {
* @internal
*/
var ReactMultiChild = {
-
/**
* Provides common functionality for components that must reconcile multiple
* children. This is used by `ReactDOMComponent` to mount, update, and
@@ -17720,7 +18844,6 @@ var ReactMultiChild = {
* @lends {ReactMultiChild.prototype}
*/
Mixin: {
-
_reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {
if (true) {
var selfDebugID = getDebugID(this);
@@ -17984,15 +19107,13 @@ var ReactMultiChild = {
child._mountIndex = null;
return update;
}
-
}
-
};
module.exports = ReactMultiChild;
/***/ }),
-/* 140 */
+/* 142 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18085,13 +19206,12 @@ var ReactOwner = {
owner.detachRef(ref);
}
}
-
};
module.exports = ReactOwner;
/***/ }),
-/* 141 */
+/* 143 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18121,7 +19241,7 @@ if (true) {
module.exports = ReactPropTypeLocationNames;
/***/ }),
-/* 142 */
+/* 144 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18139,10 +19259,10 @@ module.exports = ReactPropTypeLocationNames;
var _assign = __webpack_require__(3);
-var CallbackQueue = __webpack_require__(58);
+var CallbackQueue = __webpack_require__(57);
var PooledClass = __webpack_require__(13);
var ReactBrowserEventEmitter = __webpack_require__(26);
-var ReactInputSelection = __webpack_require__(65);
+var ReactInputSelection = __webpack_require__(64);
var ReactInstrumentation = __webpack_require__(7);
var Transaction = __webpack_require__(28);
var ReactUpdateQueue = __webpack_require__(40);
@@ -18304,7 +19424,7 @@ PooledClass.addPoolingTo(ReactReconcileTransaction);
module.exports = ReactReconcileTransaction;
/***/ }),
-/* 143 */
+/* 145 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18321,7 +19441,7 @@ module.exports = ReactReconcileTransaction;
-var ReactOwner = __webpack_require__(140);
+var ReactOwner = __webpack_require__(142);
var ReactRef = {};
@@ -18398,7 +19518,7 @@ ReactRef.detachRefs = function (instance, element) {
module.exports = ReactRef;
/***/ }),
-/* 144 */
+/* 146 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18419,7 +19539,7 @@ var _assign = __webpack_require__(3);
var PooledClass = __webpack_require__(13);
var Transaction = __webpack_require__(28);
var ReactInstrumentation = __webpack_require__(7);
-var ReactServerUpdateQueue = __webpack_require__(145);
+var ReactServerUpdateQueue = __webpack_require__(147);
/**
* Executed within the scope of the `Transaction` instance. Consider these as
@@ -18493,7 +19613,7 @@ PooledClass.addPoolingTo(ReactServerRenderingTransaction);
module.exports = ReactServerRenderingTransaction;
/***/ }),
-/* 145 */
+/* 147 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18637,7 +19757,7 @@ var ReactServerUpdateQueue = function () {
module.exports = ReactServerUpdateQueue;
/***/ }),
-/* 146 */
+/* 148 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18653,10 +19773,10 @@ module.exports = ReactServerUpdateQueue;
-module.exports = '15.5.4';
+module.exports = '15.6.1';
/***/ }),
-/* 147 */
+/* 149 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18963,7 +20083,7 @@ Object.keys(ATTRS).forEach(function (key) {
module.exports = SVGDOMPropertyConfig;
/***/ }),
-/* 148 */
+/* 150 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18979,13 +20099,13 @@ module.exports = SVGDOMPropertyConfig;
-var EventPropagators = __webpack_require__(21);
+var EventPropagators = __webpack_require__(20);
var ExecutionEnvironment = __webpack_require__(5);
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactInputSelection = __webpack_require__(65);
+var ReactInputSelection = __webpack_require__(64);
var SyntheticEvent = __webpack_require__(11);
-var getActiveElement = __webpack_require__(53);
+var getActiveElement = __webpack_require__(52);
var isTextInputElement = __webpack_require__(75);
var shallowEqual = __webpack_require__(32);
@@ -19092,7 +20212,6 @@ function constructSelectEvent(nativeEvent, nativeEventTarget) {
* - Fires after user input.
*/
var SelectEventPlugin = {
-
eventTypes: eventTypes,
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
@@ -19116,7 +20235,6 @@ var SelectEventPlugin = {
activeElementInst = null;
lastSelection = null;
break;
-
// Don't fire the event while the user is dragging. This matches the
// semantics of the native select event.
case 'topMouseDown':
@@ -19126,7 +20244,6 @@ var SelectEventPlugin = {
case 'topMouseUp':
mouseDown = false;
return constructSelectEvent(nativeEvent, nativeEventTarget);
-
// Chrome and IE fire non-standard event when selection is changed (and
// sometimes when it hasn't). IE's event fires out of order with respect
// to key and input events on deletion, so we discard it.
@@ -19159,7 +20276,7 @@ var SelectEventPlugin = {
module.exports = SelectEventPlugin;
/***/ }),
-/* 149 */
+/* 151 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19178,20 +20295,20 @@ module.exports = SelectEventPlugin;
var _prodInvariant = __webpack_require__(2);
-var EventListener = __webpack_require__(51);
-var EventPropagators = __webpack_require__(21);
+var EventListener = __webpack_require__(50);
+var EventPropagators = __webpack_require__(20);
var ReactDOMComponentTree = __webpack_require__(4);
-var SyntheticAnimationEvent = __webpack_require__(150);
-var SyntheticClipboardEvent = __webpack_require__(151);
+var SyntheticAnimationEvent = __webpack_require__(152);
+var SyntheticClipboardEvent = __webpack_require__(153);
var SyntheticEvent = __webpack_require__(11);
-var SyntheticFocusEvent = __webpack_require__(154);
-var SyntheticKeyboardEvent = __webpack_require__(156);
+var SyntheticFocusEvent = __webpack_require__(156);
+var SyntheticKeyboardEvent = __webpack_require__(158);
var SyntheticMouseEvent = __webpack_require__(27);
-var SyntheticDragEvent = __webpack_require__(153);
-var SyntheticTouchEvent = __webpack_require__(157);
-var SyntheticTransitionEvent = __webpack_require__(158);
-var SyntheticUIEvent = __webpack_require__(23);
-var SyntheticWheelEvent = __webpack_require__(159);
+var SyntheticDragEvent = __webpack_require__(155);
+var SyntheticTouchEvent = __webpack_require__(159);
+var SyntheticTransitionEvent = __webpack_require__(160);
+var SyntheticUIEvent = __webpack_require__(22);
+var SyntheticWheelEvent = __webpack_require__(161);
var emptyFunction = __webpack_require__(8);
var getEventCharCode = __webpack_require__(42);
@@ -19246,7 +20363,6 @@ function isInteractive(tag) {
}
var SimpleEventPlugin = {
-
eventTypes: eventTypes,
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
@@ -19386,13 +20502,12 @@ var SimpleEventPlugin = {
delete onClickListeners[key];
}
}
-
};
module.exports = SimpleEventPlugin;
/***/ }),
-/* 150 */
+/* 152 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19436,7 +20551,7 @@ SyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);
module.exports = SyntheticAnimationEvent;
/***/ }),
-/* 151 */
+/* 153 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19479,7 +20594,7 @@ SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);
module.exports = SyntheticClipboardEvent;
/***/ }),
-/* 152 */
+/* 154 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19520,7 +20635,7 @@ SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface
module.exports = SyntheticCompositionEvent;
/***/ }),
-/* 153 */
+/* 155 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19561,7 +20676,7 @@ SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);
module.exports = SyntheticDragEvent;
/***/ }),
-/* 154 */
+/* 156 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19577,7 +20692,7 @@ module.exports = SyntheticDragEvent;
-var SyntheticUIEvent = __webpack_require__(23);
+var SyntheticUIEvent = __webpack_require__(22);
/**
* @interface FocusEvent
@@ -19602,7 +20717,7 @@ SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);
module.exports = SyntheticFocusEvent;
/***/ }),
-/* 155 */
+/* 157 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19644,7 +20759,7 @@ SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);
module.exports = SyntheticInputEvent;
/***/ }),
-/* 156 */
+/* 158 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19660,10 +20775,10 @@ module.exports = SyntheticInputEvent;
-var SyntheticUIEvent = __webpack_require__(23);
+var SyntheticUIEvent = __webpack_require__(22);
var getEventCharCode = __webpack_require__(42);
-var getEventKey = __webpack_require__(165);
+var getEventKey = __webpack_require__(167);
var getEventModifierState = __webpack_require__(43);
/**
@@ -19733,7 +20848,7 @@ SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);
module.exports = SyntheticKeyboardEvent;
/***/ }),
-/* 157 */
+/* 159 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19749,7 +20864,7 @@ module.exports = SyntheticKeyboardEvent;
-var SyntheticUIEvent = __webpack_require__(23);
+var SyntheticUIEvent = __webpack_require__(22);
var getEventModifierState = __webpack_require__(43);
@@ -19783,7 +20898,7 @@ SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);
module.exports = SyntheticTouchEvent;
/***/ }),
-/* 158 */
+/* 160 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19827,7 +20942,7 @@ SyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);
module.exports = SyntheticTransitionEvent;
/***/ }),
-/* 159 */
+/* 161 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19851,15 +20966,12 @@ var SyntheticMouseEvent = __webpack_require__(27);
*/
var WheelEventInterface = {
deltaX: function (event) {
- return 'deltaX' in event ? event.deltaX :
- // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
+ return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
'wheelDeltaX' in event ? -event.wheelDeltaX : 0;
},
deltaY: function (event) {
- return 'deltaY' in event ? event.deltaY :
- // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
- 'wheelDeltaY' in event ? -event.wheelDeltaY :
- // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
+ return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
+ 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
'wheelDelta' in event ? -event.wheelDelta : 0;
},
deltaZ: null,
@@ -19886,7 +20998,7 @@ SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);
module.exports = SyntheticWheelEvent;
/***/ }),
-/* 160 */
+/* 162 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19935,7 +21047,7 @@ function adler32(data) {
module.exports = adler32;
/***/ }),
-/* 161 */
+/* 163 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19953,8 +21065,8 @@ module.exports = adler32;
var _prodInvariant = __webpack_require__(2);
-var ReactPropTypeLocationNames = __webpack_require__(141);
-var ReactPropTypesSecret = __webpack_require__(68);
+var ReactPropTypeLocationNames = __webpack_require__(143);
+var ReactPropTypesSecret = __webpack_require__(67);
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
@@ -20028,7 +21140,7 @@ module.exports = checkReactTypeSpec;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24)))
/***/ }),
-/* 162 */
+/* 164 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20044,7 +21156,7 @@ module.exports = checkReactTypeSpec;
-var CSSProperty = __webpack_require__(57);
+var CSSProperty = __webpack_require__(56);
var warning = __webpack_require__(1);
var isUnitlessNumber = CSSProperty.isUnitlessNumber;
@@ -20060,7 +21172,7 @@ var styleWarnings = {};
* @param {ReactDOMComponent} component
* @return {string} Normalized style value with dimensions applied.
*/
-function dangerousStyleValue(name, value, component) {
+function dangerousStyleValue(name, value, component, isCustomProperty) {
// Note that we've removed escapeTextForBrowser() calls here since the
// whole string will be escaped when the attribute is injected into
// the markup. If you provide unsafe user data here they can inject
@@ -20077,7 +21189,7 @@ function dangerousStyleValue(name, value, component) {
}
var isNonNumeric = isNaN(value);
- if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {
+ if (isCustomProperty || isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {
return '' + value; // cast to string
}
@@ -20112,7 +21224,7 @@ function dangerousStyleValue(name, value, component) {
module.exports = dangerousStyleValue;
/***/ }),
-/* 163 */
+/* 165 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20132,9 +21244,9 @@ var _prodInvariant = __webpack_require__(2);
var ReactCurrentOwner = __webpack_require__(10);
var ReactDOMComponentTree = __webpack_require__(4);
-var ReactInstanceMap = __webpack_require__(22);
+var ReactInstanceMap = __webpack_require__(21);
-var getHostComponentFromComposite = __webpack_require__(72);
+var getHostComponentFromComposite = __webpack_require__(71);
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
@@ -20177,7 +21289,7 @@ function findDOMNode(componentOrElement) {
module.exports = findDOMNode;
/***/ }),
-/* 164 */
+/* 166 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20259,7 +21371,7 @@ module.exports = flattenChildren;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24)))
/***/ }),
-/* 165 */
+/* 167 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20282,18 +21394,18 @@ var getEventCharCode = __webpack_require__(42);
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
*/
var normalizeKey = {
- 'Esc': 'Escape',
- 'Spacebar': ' ',
- 'Left': 'ArrowLeft',
- 'Up': 'ArrowUp',
- 'Right': 'ArrowRight',
- 'Down': 'ArrowDown',
- 'Del': 'Delete',
- 'Win': 'OS',
- 'Menu': 'ContextMenu',
- 'Apps': 'ContextMenu',
- 'Scroll': 'ScrollLock',
- 'MozPrintableKey': 'Unidentified'
+ Esc: 'Escape',
+ Spacebar: ' ',
+ Left: 'ArrowLeft',
+ Up: 'ArrowUp',
+ Right: 'ArrowRight',
+ Down: 'ArrowDown',
+ Del: 'Delete',
+ Win: 'OS',
+ Menu: 'ContextMenu',
+ Apps: 'ContextMenu',
+ Scroll: 'ScrollLock',
+ MozPrintableKey: 'Unidentified'
};
/**
@@ -20323,8 +21435,18 @@ var translateToKey = {
40: 'ArrowDown',
45: 'Insert',
46: 'Delete',
- 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',
- 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',
+ 112: 'F1',
+ 113: 'F2',
+ 114: 'F3',
+ 115: 'F4',
+ 116: 'F5',
+ 117: 'F6',
+ 118: 'F7',
+ 119: 'F8',
+ 120: 'F9',
+ 121: 'F10',
+ 122: 'F11',
+ 123: 'F12',
144: 'NumLock',
145: 'ScrollLock',
224: 'Meta'
@@ -20366,7 +21488,7 @@ function getEventKey(nativeEvent) {
module.exports = getEventKey;
/***/ }),
-/* 166 */
+/* 168 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20412,7 +21534,7 @@ function getIteratorFn(maybeIterable) {
module.exports = getIteratorFn;
/***/ }),
-/* 167 */
+/* 169 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20491,7 +21613,7 @@ function getNodeForCharacterOffset(root, offset) {
module.exports = getNodeForCharacterOffset;
/***/ }),
-/* 168 */
+/* 170 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20597,7 +21719,7 @@ function getVendorPrefixedEventName(eventName) {
module.exports = getVendorPrefixedEventName;
/***/ }),
-/* 169 */
+/* 171 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20628,7 +21750,7 @@ function quoteAttributeValueForBrowser(value) {
module.exports = quoteAttributeValueForBrowser;
/***/ }),
-/* 170 */
+/* 172 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20644,12 +21766,12 @@ module.exports = quoteAttributeValueForBrowser;
-var ReactMount = __webpack_require__(66);
+var ReactMount = __webpack_require__(65);
module.exports = ReactMount.renderSubtreeIntoContainer;
/***/ }),
-/* 171 */
+/* 173 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20713,7 +21835,7 @@ var KeyEscapeUtils = {
module.exports = KeyEscapeUtils;
/***/ }),
-/* 172 */
+/* 174 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20730,7 +21852,7 @@ module.exports = KeyEscapeUtils;
-var _prodInvariant = __webpack_require__(15);
+var _prodInvariant = __webpack_require__(18);
var invariant = __webpack_require__(0);
@@ -20830,7 +21952,7 @@ var PooledClass = {
module.exports = PooledClass;
/***/ }),
-/* 173 */
+/* 175 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20846,11 +21968,11 @@ module.exports = PooledClass;
-var PooledClass = __webpack_require__(172);
+var PooledClass = __webpack_require__(174);
var ReactElement = __webpack_require__(14);
var emptyFunction = __webpack_require__(8);
-var traverseAllChildren = __webpack_require__(183);
+var traverseAllChildren = __webpack_require__(185);
var twoArgumentPooler = PooledClass.twoArgumentPooler;
var fourArgumentPooler = PooledClass.fourArgumentPooler;
@@ -21026,735 +22148,7 @@ var ReactChildren = {
module.exports = ReactChildren;
/***/ }),
-/* 174 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * 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.
- *
- */
-
-
-
-var _prodInvariant = __webpack_require__(15),
- _assign = __webpack_require__(3);
-
-var ReactComponent = __webpack_require__(48);
-var ReactElement = __webpack_require__(14);
-var ReactPropTypeLocationNames = __webpack_require__(80);
-var ReactNoopUpdateQueue = __webpack_require__(49);
-
-var emptyObject = __webpack_require__(19);
-var invariant = __webpack_require__(0);
-var warning = __webpack_require__(1);
-
-var MIXINS_KEY = 'mixins';
-
-// Helper function to allow the creation of anonymous functions which do not
-// have .name set to the name of the variable being assigned to.
-function identity(fn) {
- return fn;
-}
-
-/**
- * Policies that describe methods in `ReactClassInterface`.
- */
-
-
-var injectedMixins = [];
-
-/**
- * Composite components are higher-level components that compose other composite
- * or host components.
- *
- * To create a new type of `ReactClass`, pass a specification of
- * your new class to `React.createClass`. The only requirement of your class
- * specification is that you implement a `render` method.
- *
- * var MyComponent = React.createClass({
- * render: function() {
- * return Hello World
;
- * }
- * });
- *
- * The class specification supports a specific protocol of methods that have
- * special meaning (e.g. `render`). See `ReactClassInterface` for
- * more the comprehensive protocol. Any other properties and methods in the
- * class specification will be available on the prototype.
- *
- * @interface ReactClassInterface
- * @internal
- */
-var ReactClassInterface = {
-
- /**
- * An array of Mixin objects to include when defining your component.
- *
- * @type {array}
- * @optional
- */
- mixins: 'DEFINE_MANY',
-
- /**
- * An object containing properties and methods that should be defined on
- * the component's constructor instead of its prototype (static methods).
- *
- * @type {object}
- * @optional
- */
- statics: 'DEFINE_MANY',
-
- /**
- * Definition of prop types for this component.
- *
- * @type {object}
- * @optional
- */
- propTypes: 'DEFINE_MANY',
-
- /**
- * Definition of context types for this component.
- *
- * @type {object}
- * @optional
- */
- contextTypes: 'DEFINE_MANY',
-
- /**
- * Definition of context types this component sets for its children.
- *
- * @type {object}
- * @optional
- */
- childContextTypes: 'DEFINE_MANY',
-
- // ==== Definition methods ====
-
- /**
- * Invoked when the component is mounted. Values in the mapping will be set on
- * `this.props` if that prop is not specified (i.e. using an `in` check).
- *
- * This method is invoked before `getInitialState` and therefore cannot rely
- * on `this.state` or use `this.setState`.
- *
- * @return {object}
- * @optional
- */
- getDefaultProps: 'DEFINE_MANY_MERGED',
-
- /**
- * Invoked once before the component is mounted. The return value will be used
- * as the initial value of `this.state`.
- *
- * getInitialState: function() {
- * return {
- * isOn: false,
- * fooBaz: new BazFoo()
- * }
- * }
- *
- * @return {object}
- * @optional
- */
- getInitialState: 'DEFINE_MANY_MERGED',
-
- /**
- * @return {object}
- * @optional
- */
- getChildContext: 'DEFINE_MANY_MERGED',
-
- /**
- * Uses props from `this.props` and state from `this.state` to render the
- * structure of the component.
- *
- * No guarantees are made about when or how often this method is invoked, so
- * it must not have side effects.
- *
- * render: function() {
- * var name = this.props.name;
- * return Hello, {name}!
;
- * }
- *
- * @return {ReactComponent}
- * @required
- */
- render: 'DEFINE_ONCE',
-
- // ==== Delegate methods ====
-
- /**
- * Invoked when the component is initially created and about to be mounted.
- * This may have side effects, but any external subscriptions or data created
- * by this method must be cleaned up in `componentWillUnmount`.
- *
- * @optional
- */
- componentWillMount: 'DEFINE_MANY',
-
- /**
- * Invoked when the component has been mounted and has a DOM representation.
- * However, there is no guarantee that the DOM node is in the document.
- *
- * Use this as an opportunity to operate on the DOM when the component has
- * been mounted (initialized and rendered) for the first time.
- *
- * @param {DOMElement} rootNode DOM element representing the component.
- * @optional
- */
- componentDidMount: 'DEFINE_MANY',
-
- /**
- * Invoked before the component receives new props.
- *
- * Use this as an opportunity to react to a prop transition by updating the
- * state using `this.setState`. Current props are accessed via `this.props`.
- *
- * componentWillReceiveProps: function(nextProps, nextContext) {
- * this.setState({
- * likesIncreasing: nextProps.likeCount > this.props.likeCount
- * });
- * }
- *
- * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
- * transition may cause a state change, but the opposite is not true. If you
- * need it, you are probably looking for `componentWillUpdate`.
- *
- * @param {object} nextProps
- * @optional
- */
- componentWillReceiveProps: 'DEFINE_MANY',
-
- /**
- * Invoked while deciding if the component should be updated as a result of
- * receiving new props, state and/or context.
- *
- * Use this as an opportunity to `return false` when you're certain that the
- * transition to the new props/state/context will not require a component
- * update.
- *
- * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
- * return !equal(nextProps, this.props) ||
- * !equal(nextState, this.state) ||
- * !equal(nextContext, this.context);
- * }
- *
- * @param {object} nextProps
- * @param {?object} nextState
- * @param {?object} nextContext
- * @return {boolean} True if the component should update.
- * @optional
- */
- shouldComponentUpdate: 'DEFINE_ONCE',
-
- /**
- * Invoked when the component is about to update due to a transition from
- * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
- * and `nextContext`.
- *
- * Use this as an opportunity to perform preparation before an update occurs.
- *
- * NOTE: You **cannot** use `this.setState()` in this method.
- *
- * @param {object} nextProps
- * @param {?object} nextState
- * @param {?object} nextContext
- * @param {ReactReconcileTransaction} transaction
- * @optional
- */
- componentWillUpdate: 'DEFINE_MANY',
-
- /**
- * Invoked when the component's DOM representation has been updated.
- *
- * Use this as an opportunity to operate on the DOM when the component has
- * been updated.
- *
- * @param {object} prevProps
- * @param {?object} prevState
- * @param {?object} prevContext
- * @param {DOMElement} rootNode DOM element representing the component.
- * @optional
- */
- componentDidUpdate: 'DEFINE_MANY',
-
- /**
- * Invoked when the component is about to be removed from its parent and have
- * its DOM representation destroyed.
- *
- * Use this as an opportunity to deallocate any external resources.
- *
- * NOTE: There is no `componentDidUnmount` since your component will have been
- * destroyed by that point.
- *
- * @optional
- */
- componentWillUnmount: 'DEFINE_MANY',
-
- // ==== Advanced methods ====
-
- /**
- * Updates the component's currently mounted DOM representation.
- *
- * By default, this implements React's rendering and reconciliation algorithm.
- * Sophisticated clients may wish to override this.
- *
- * @param {ReactReconcileTransaction} transaction
- * @internal
- * @overridable
- */
- updateComponent: 'OVERRIDE_BASE'
-
-};
-
-/**
- * Mapping from class specification keys to special processing functions.
- *
- * Although these are declared like instance properties in the specification
- * when defining classes using `React.createClass`, they are actually static
- * and are accessible on the constructor instead of the prototype. Despite
- * being static, they must be defined outside of the "statics" key under
- * which all other static methods are defined.
- */
-var RESERVED_SPEC_KEYS = {
- displayName: function (Constructor, displayName) {
- Constructor.displayName = displayName;
- },
- mixins: function (Constructor, mixins) {
- if (mixins) {
- for (var i = 0; i < mixins.length; i++) {
- mixSpecIntoComponent(Constructor, mixins[i]);
- }
- }
- },
- childContextTypes: function (Constructor, childContextTypes) {
- if (true) {
- validateTypeDef(Constructor, childContextTypes, 'childContext');
- }
- Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);
- },
- contextTypes: function (Constructor, contextTypes) {
- if (true) {
- validateTypeDef(Constructor, contextTypes, 'context');
- }
- Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);
- },
- /**
- * Special case getDefaultProps which should move into statics but requires
- * automatic merging.
- */
- getDefaultProps: function (Constructor, getDefaultProps) {
- if (Constructor.getDefaultProps) {
- Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);
- } else {
- Constructor.getDefaultProps = getDefaultProps;
- }
- },
- propTypes: function (Constructor, propTypes) {
- if (true) {
- validateTypeDef(Constructor, propTypes, 'prop');
- }
- Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
- },
- statics: function (Constructor, statics) {
- mixStaticSpecIntoComponent(Constructor, statics);
- },
- autobind: function () {} };
-
-function validateTypeDef(Constructor, typeDef, location) {
- for (var propName in typeDef) {
- if (typeDef.hasOwnProperty(propName)) {
- // use a warning instead of an invariant so components
- // don't show up in prod but only in __DEV__
- true ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;
- }
- }
-}
-
-function validateMethodOverride(isAlreadyDefined, name) {
- var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;
-
- // Disallow overriding of base class methods unless explicitly allowed.
- if (ReactClassMixin.hasOwnProperty(name)) {
- !(specPolicy === 'OVERRIDE_BASE') ? true ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0;
- }
-
- // Disallow defining methods more than once unless explicitly allowed.
- if (isAlreadyDefined) {
- !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? true ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;
- }
-}
-
-/**
- * Mixin helper which handles policy validation and reserved
- * specification keys when building React classes.
- */
-function mixSpecIntoComponent(Constructor, spec) {
- if (!spec) {
- if (true) {
- var typeofSpec = typeof spec;
- var isMixinValid = typeofSpec === 'object' && spec !== null;
-
- true ? 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;
- }
-
- !(typeof spec !== 'function') ? true ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;
- !!ReactElement.isValidElement(spec) ? true ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;
-
- var proto = Constructor.prototype;
- var autoBindPairs = proto.__reactAutoBindPairs;
-
- // By handling mixins before any other properties, we ensure the same
- // chaining order is applied to methods with DEFINE_MANY policy, whether
- // mixins are listed before or after these methods in the spec.
- if (spec.hasOwnProperty(MIXINS_KEY)) {
- RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
- }
-
- for (var name in spec) {
- if (!spec.hasOwnProperty(name)) {
- continue;
- }
-
- if (name === MIXINS_KEY) {
- // We have already handled mixins in a special case above.
- continue;
- }
-
- var property = spec[name];
- var isAlreadyDefined = proto.hasOwnProperty(name);
- validateMethodOverride(isAlreadyDefined, name);
-
- if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
- RESERVED_SPEC_KEYS[name](Constructor, property);
- } else {
- // Setup methods on prototype:
- // The following member methods should not be automatically bound:
- // 1. Expected ReactClass methods (in the "interface").
- // 2. Overridden methods (that were mixed in).
- var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
- var isFunction = typeof property === 'function';
- var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;
-
- if (shouldAutoBind) {
- autoBindPairs.push(name, property);
- proto[name] = property;
- } else {
- if (isAlreadyDefined) {
- var specPolicy = ReactClassInterface[name];
-
- // These cases should already be caught by validateMethodOverride.
- !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? true ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;
-
- // For methods which are defined more than once, call the existing
- // methods before calling the new property, merging if appropriate.
- if (specPolicy === 'DEFINE_MANY_MERGED') {
- proto[name] = createMergedResultFunction(proto[name], property);
- } else if (specPolicy === 'DEFINE_MANY') {
- proto[name] = createChainedFunction(proto[name], property);
- }
- } else {
- proto[name] = property;
- if (true) {
- // Add verbose displayName to the function, which helps when looking
- // at profiling tools.
- if (typeof property === 'function' && spec.displayName) {
- proto[name].displayName = spec.displayName + '_' + name;
- }
- }
- }
- }
- }
- }
-}
-
-function mixStaticSpecIntoComponent(Constructor, statics) {
- if (!statics) {
- return;
- }
- for (var name in statics) {
- var property = statics[name];
- if (!statics.hasOwnProperty(name)) {
- continue;
- }
-
- var isReserved = name in RESERVED_SPEC_KEYS;
- !!isReserved ? true ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0;
-
- var isInherited = name in Constructor;
- !!isInherited ? true ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;
- Constructor[name] = property;
- }
-}
-
-/**
- * Merge two objects, but throw if both contain the same key.
- *
- * @param {object} one The first object, which is mutated.
- * @param {object} two The second object
- * @return {object} one after it has been mutated to contain everything in two.
- */
-function mergeIntoWithNoDuplicateKeys(one, two) {
- !(one && two && typeof one === 'object' && typeof two === 'object') ? true ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;
-
- for (var key in two) {
- if (two.hasOwnProperty(key)) {
- !(one[key] === undefined) ? true ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0;
- one[key] = two[key];
- }
- }
- return one;
-}
-
-/**
- * Creates a function that invokes two functions and merges their return values.
- *
- * @param {function} one Function to invoke first.
- * @param {function} two Function to invoke second.
- * @return {function} Function that invokes the two argument functions.
- * @private
- */
-function createMergedResultFunction(one, two) {
- return function mergedResult() {
- var a = one.apply(this, arguments);
- var b = two.apply(this, arguments);
- if (a == null) {
- return b;
- } else if (b == null) {
- return a;
- }
- var c = {};
- mergeIntoWithNoDuplicateKeys(c, a);
- mergeIntoWithNoDuplicateKeys(c, b);
- return c;
- };
-}
-
-/**
- * Creates a function that invokes two functions and ignores their return vales.
- *
- * @param {function} one Function to invoke first.
- * @param {function} two Function to invoke second.
- * @return {function} Function that invokes the two argument functions.
- * @private
- */
-function createChainedFunction(one, two) {
- return function chainedFunction() {
- one.apply(this, arguments);
- two.apply(this, arguments);
- };
-}
-
-/**
- * Binds a method to the component.
- *
- * @param {object} component Component whose method is going to be bound.
- * @param {function} method Method to be bound.
- * @return {function} The bound method.
- */
-function bindAutoBindMethod(component, method) {
- var boundMethod = method.bind(component);
- if (true) {
- boundMethod.__reactBoundContext = component;
- boundMethod.__reactBoundMethod = method;
- boundMethod.__reactBoundArguments = null;
- var componentName = component.constructor.displayName;
- var _bind = boundMethod.bind;
- boundMethod.bind = function (newThis) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- // User is trying to bind() an autobound method; we effectively will
- // ignore the value of "this" that the user is trying to use, so
- // let's warn.
- if (newThis !== component && newThis !== null) {
- true ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;
- } else if (!args.length) {
- true ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0;
- return boundMethod;
- }
- var reboundMethod = _bind.apply(boundMethod, arguments);
- reboundMethod.__reactBoundContext = component;
- reboundMethod.__reactBoundMethod = method;
- reboundMethod.__reactBoundArguments = args;
- return reboundMethod;
- };
- }
- return boundMethod;
-}
-
-/**
- * Binds all auto-bound methods in a component.
- *
- * @param {object} component Component whose method is going to be bound.
- */
-function bindAutoBindMethods(component) {
- var pairs = component.__reactAutoBindPairs;
- for (var i = 0; i < pairs.length; i += 2) {
- var autoBindKey = pairs[i];
- var method = pairs[i + 1];
- component[autoBindKey] = bindAutoBindMethod(component, method);
- }
-}
-
-/**
- * Add more to the ReactClass base class. These are all legacy features and
- * therefore not already part of the modern ReactComponent.
- */
-var ReactClassMixin = {
-
- /**
- * TODO: This will be deprecated because state should always keep a consistent
- * type signature and the only use case for this, is to avoid that.
- */
- replaceState: function (newState, callback) {
- this.updater.enqueueReplaceState(this, newState);
- if (callback) {
- this.updater.enqueueCallback(this, callback, 'replaceState');
- }
- },
-
- /**
- * Checks whether or not this composite component is mounted.
- * @return {boolean} True if mounted, false otherwise.
- * @protected
- * @final
- */
- isMounted: function () {
- return this.updater.isMounted(this);
- }
-};
-
-var ReactClassComponent = function () {};
-_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);
-
-var didWarnDeprecated = false;
-
-/**
- * Module for creating composite components.
- *
- * @class ReactClass
- */
-var ReactClass = {
-
- /**
- * Creates a composite component class given a class specification.
- * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
- *
- * @param {object} spec Class specification (which must define `render`).
- * @return {function} Component constructor function.
- * @public
- */
- createClass: function (spec) {
- if (true) {
- true ? warning(didWarnDeprecated, '%s: React.createClass is deprecated and will be removed in version 16. ' + 'Use plain JavaScript classes instead. If you\'re not yet ready to ' + 'migrate, create-react-class is available on npm as a ' + 'drop-in replacement.', spec && spec.displayName || 'A Component') : void 0;
- didWarnDeprecated = true;
- }
-
- // To keep our warnings more understandable, we'll use a little hack here to
- // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
- // unnecessarily identify a class without displayName as 'Constructor'.
- var Constructor = identity(function (props, context, updater) {
- // This constructor gets overridden by mocks. The argument is used
- // by mocks to assert on what gets mounted.
-
- if (true) {
- true ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0;
- }
-
- // Wire up auto-binding
- if (this.__reactAutoBindPairs.length) {
- bindAutoBindMethods(this);
- }
-
- this.props = props;
- this.context = context;
- this.refs = emptyObject;
- this.updater = updater || ReactNoopUpdateQueue;
-
- this.state = null;
-
- // ReactClasses doesn't have constructors. Instead, they use the
- // getInitialState and componentWillMount methods for initialization.
-
- var initialState = this.getInitialState ? this.getInitialState() : null;
- if (true) {
- // We allow auto-mocks to proceed as if they're returning null.
- if (initialState === undefined && this.getInitialState._isMockFunction) {
- // This is probably bad practice. Consider warning here and
- // deprecating this convenience.
- initialState = null;
- }
- }
- !(typeof initialState === 'object' && !Array.isArray(initialState)) ? true ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;
-
- this.state = initialState;
- });
- Constructor.prototype = new ReactClassComponent();
- Constructor.prototype.constructor = Constructor;
- Constructor.prototype.__reactAutoBindPairs = [];
-
- injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
-
- mixSpecIntoComponent(Constructor, spec);
-
- // Initialize the defaultProps property after all mixins have been merged.
- if (Constructor.getDefaultProps) {
- Constructor.defaultProps = Constructor.getDefaultProps();
- }
-
- if (true) {
- // This is a tag to indicate that the use of these method names is ok,
- // since it's used with createClass. If it's not, then it's likely a
- // mistake so we'll warn you to use the static property, property
- // initializer or constructor respectively.
- if (Constructor.getDefaultProps) {
- Constructor.getDefaultProps.isReactClassApproved = {};
- }
- if (Constructor.prototype.getInitialState) {
- Constructor.prototype.getInitialState.isReactClassApproved = {};
- }
- }
-
- !Constructor.prototype.render ? true ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;
-
- if (true) {
- true ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0;
- true ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;
- }
-
- // Reduce time spent doing lookups by setting these on the prototype.
- for (var methodName in ReactClassInterface) {
- if (!Constructor.prototype[methodName]) {
- Constructor.prototype[methodName] = null;
- }
- }
-
- return Constructor;
- },
-
- injection: {
- injectMixin: function (mixin) {
- injectedMixins.push(mixin);
- }
- }
-
-};
-
-module.exports = ReactClass;
-
-/***/ }),
-/* 175 */
+/* 176 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -21779,13 +22173,12 @@ var ReactElement = __webpack_require__(14);
*/
var createDOMFactory = ReactElement.createFactory;
if (true) {
- var ReactElementValidator = __webpack_require__(79);
+ var ReactElementValidator = __webpack_require__(80);
createDOMFactory = ReactElementValidator.createFactory;
}
/**
* Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.
- * This is also accessible via `React.DOM`.
*
* @public
*/
@@ -21929,7 +22322,37 @@ var ReactDOMFactories = {
module.exports = ReactDOMFactories;
/***/ }),
-/* 176 */
+/* 177 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/**
+ * 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.
+ *
+ *
+ */
+
+
+
+var ReactPropTypeLocationNames = {};
+
+if (true) {
+ ReactPropTypeLocationNames = {
+ prop: 'prop',
+ context: 'context',
+ childContext: 'child context'
+ };
+}
+
+module.exports = ReactPropTypeLocationNames;
+
+/***/ }),
+/* 178 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -21948,12 +22371,12 @@ module.exports = ReactDOMFactories;
var _require = __webpack_require__(14),
isValidElement = _require.isValidElement;
-var factory = __webpack_require__(54);
+var factory = __webpack_require__(53);
module.exports = factory(isValidElement);
/***/ }),
-/* 177 */
+/* 179 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -21974,76 +22397,29 @@ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
module.exports = ReactPropTypesSecret;
-/***/ }),
-/* 178 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * 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.
- *
- */
-
-
-
-var _assign = __webpack_require__(3);
-
-var ReactComponent = __webpack_require__(48);
-var ReactNoopUpdateQueue = __webpack_require__(49);
-
-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;
-
-/***/ }),
-/* 179 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * 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.
- *
- */
-
-
-
-module.exports = '15.5.4';
-
/***/ }),
/* 180 */
/***/ (function(module, exports, __webpack_require__) {
+"use strict";
+/**
+ * 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.
+ *
+ */
+
+
+
+module.exports = '15.6.1';
+
+/***/ }),
+/* 181 */
+/***/ (function(module, exports, __webpack_require__) {
+
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
* Copyright 2013-present, Facebook, Inc.
@@ -22057,10 +22433,10 @@ module.exports = '15.5.4';
-var _prodInvariant = __webpack_require__(15);
+var _prodInvariant = __webpack_require__(18);
-var ReactPropTypeLocationNames = __webpack_require__(80);
-var ReactPropTypesSecret = __webpack_require__(177);
+var ReactPropTypeLocationNames = __webpack_require__(177);
+var ReactPropTypesSecret = __webpack_require__(179);
var invariant = __webpack_require__(0);
var warning = __webpack_require__(1);
@@ -22134,7 +22510,35 @@ module.exports = checkReactTypeSpec;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24)))
/***/ }),
-/* 181 */
+/* 182 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/**
+ * 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.
+ *
+ */
+
+
+
+var _require = __webpack_require__(78),
+ Component = _require.Component;
+
+var _require2 = __webpack_require__(14),
+ isValidElement = _require2.isValidElement;
+
+var ReactNoopUpdateQueue = __webpack_require__(81);
+var factory = __webpack_require__(85);
+
+module.exports = factory(Component, isValidElement, ReactNoopUpdateQueue);
+
+/***/ }),
+/* 183 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22160,7 +22564,7 @@ function getNextDebugID() {
module.exports = getNextDebugID;
/***/ }),
-/* 182 */
+/* 184 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22175,7 +22579,7 @@ module.exports = getNextDebugID;
*/
-var _prodInvariant = __webpack_require__(15);
+var _prodInvariant = __webpack_require__(18);
var ReactElement = __webpack_require__(14);
@@ -22203,7 +22607,7 @@ function onlyChild(children) {
module.exports = onlyChild;
/***/ }),
-/* 183 */
+/* 185 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22219,14 +22623,14 @@ module.exports = onlyChild;
-var _prodInvariant = __webpack_require__(15);
+var _prodInvariant = __webpack_require__(18);
var ReactCurrentOwner = __webpack_require__(10);
-var REACT_ELEMENT_TYPE = __webpack_require__(78);
+var REACT_ELEMENT_TYPE = __webpack_require__(79);
-var getIteratorFn = __webpack_require__(81);
+var getIteratorFn = __webpack_require__(82);
var invariant = __webpack_require__(0);
-var KeyEscapeUtils = __webpack_require__(171);
+var KeyEscapeUtils = __webpack_require__(173);
var warning = __webpack_require__(1);
var SEPARATOR = '.';
@@ -22340,7 +22744,7 @@ function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext)
if (true) {
addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
if (children._isReactElement) {
- addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';
+ addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.';
}
if (ReactCurrentOwner.current) {
var name = ReactCurrentOwner.current.getName();
@@ -22384,11 +22788,11 @@ function traverseAllChildren(children, callback, traverseContext) {
module.exports = traverseAllChildren;
/***/ }),
-/* 184 */
+/* 186 */
/***/ (function(module, exports, __webpack_require__) {
-__webpack_require__(50);
-module.exports = __webpack_require__(83);
+__webpack_require__(49);
+module.exports = __webpack_require__(84);
/***/ })
diff --git a/package.json b/package.json
index be48638..5b8982c 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"webpack-dev-server": "^2.4.5"
},
"dependencies": {
- "prop-types": "^15.0.0"
+ "prop-types": "^15.5.10"
},
"peerDependencies": {
"react": "^0.14.0 || ^15.0.0"