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"