From 50f07a0ba8847b7dc0599e0e3fdf4111fa96f119 Mon Sep 17 00:00:00 2001 From: Adam Putinski Date: Mon, 30 Mar 2015 12:25:32 -0400 Subject: [PATCH] Updated example --- examples/assets/example.js | 6016 ++++++++++++++++++------------------ 1 file changed, 3059 insertions(+), 2957 deletions(-) diff --git a/examples/assets/example.js b/examples/assets/example.js index cc917b4..7a26540 100644 --- a/examples/assets/example.js +++ b/examples/assets/example.js @@ -95,7 +95,7 @@ views: [React.createElement(View, null)], preserveState: true, transitionTension: 10, - transitionFriction: 5 }), + transitionFriction: 6 }), React.createElement( "h2", null, @@ -110,7 +110,7 @@ views: [React.createElement(View, null), React.createElement(View, { index: 2 }), React.createElement(View, { index: 3 })], preserveState: true, transitionTension: 10, - transitionFriction: 5 }) + transitionFriction: 6 }) ); } } @@ -139,7 +139,7 @@ var React = __webpack_require__(4); - var rebound = __webpack_require__(9); + var rebound = __webpack_require__(10); var mapValueInRange = rebound.MathUtil.mapValueInRange; var _require = __webpack_require__(5); @@ -156,20 +156,10 @@ var assign = _require3.assign; - var classNames = __webpack_require__(8); - var transformPrefix = getVendorPrefix("transform"); + var Transition = __webpack_require__(8); - var transitionType = { - NONE: 0, - PUSH_LEFT: 1, - PUSH_RIGHT: 2, - PUSH_UP: 3, - PUSH_DOWN: 4, - COVER_LEFT: 5, - COVER_RIGHT: 6, - COVER_UP: 7, - COVER_DOWN: 8 - }; + var classNames = __webpack_require__(9); + var transformPrefix = getVendorPrefix("transform"); var optionTypes = { pushView: { @@ -252,7 +242,7 @@ this.__transformViews(0, 0, -100, 0); // Push the last view this.pushView(last(this.props.views), { - transition: transitionType.NONE + transition: Transition.type.NONE }); } }, @@ -273,6 +263,8 @@ */ value: function __transformViews(prevX, prevY, nextX, nextY) { + var _this = this; + var _viewIndexes = _slicedToArray(this.__viewIndexes, 2); var prev = _viewIndexes[0]; @@ -281,8 +273,10 @@ var prevView = this["__view-wrapper-" + prev]; var nextView = this["__view-wrapper-" + next]; requestAnimationFrame(function () { - prevView.style[transformPrefix] = "translate3d(" + prevX + "%," + prevY + "%,0)"; - nextView.style[transformPrefix] = "translate3d(" + nextX + "%," + nextY + "%,0)"; + prevView.style[transformPrefix] = "translate3d(" + prevX + "%," + prevY + "%,0px)"; + prevView.style.zIndex = Transition.isReveal(_this.state.transition) ? 1 : 0; + nextView.style[transformPrefix] = "translate3d(" + nextX + "%," + nextY + "%,0px)"; + nextView.style.zIndex = Transition.isReveal(_this.state.transition) ? 0 : 1; }); } }, @@ -298,30 +292,54 @@ value: function __animateViews() { var value = arguments[0] === undefined ? 0 : arguments[0]; - var transition = arguments[1] === undefined ? transitionType.NONE : arguments[1]; + var transition = arguments[1] === undefined ? Transition.type.NONE : arguments[1]; var prevX = 0, prevY = 0; var nextX = 0, nextY = 0; switch (transition) { - case transitionType.NONE: - case transitionType.PUSH_LEFT: + case Transition.type.NONE: + case Transition.type.PUSH_LEFT: prevX = mapValueInRange(value, 0, 1, 0, -100); nextX = mapValueInRange(value, 0, 1, 100, 0); break; - case transitionType.PUSH_RIGHT: + case Transition.type.PUSH_RIGHT: prevX = mapValueInRange(value, 0, 1, 0, 100); nextX = mapValueInRange(value, 0, 1, -100, 0); break; - case transitionType.PUSH_UP: + case Transition.type.PUSH_UP: prevY = mapValueInRange(value, 0, 1, 0, -100); nextY = mapValueInRange(value, 0, 1, 100, 0); break; - case transitionType.PUSH_DOWN: + case Transition.type.PUSH_DOWN: prevY = mapValueInRange(value, 0, 1, 0, 100); nextY = mapValueInRange(value, 0, 1, -100, 0); break; + case Transition.type.COVER_LEFT: + nextX = mapValueInRange(value, 0, 1, 100, 0); + break; + case Transition.type.COVER_RIGHT: + nextX = mapValueInRange(value, 0, 1, -100, 0); + break; + case Transition.type.COVER_UP: + nextY = mapValueInRange(value, 0, 1, 100, 0); + break; + case Transition.type.COVER_DOWN: + nextY = mapValueInRange(value, 0, 1, -100, 0); + break; + case Transition.type.REVEAL_LEFT: + prevX = mapValueInRange(value, 0, 1, 0, -100); + break; + case Transition.type.REVEAL_RIGHT: + prevX = mapValueInRange(value, 0, 1, 0, 100); + break; + case Transition.type.REVEAL_UP: + prevY = mapValueInRange(value, 0, 1, 0, -100); + break; + case Transition.type.REVEAL_DOWN: + prevY = mapValueInRange(value, 0, 1, 0, 100); + break; } return [prevX, prevY, nextX, nextY]; } @@ -391,7 +409,7 @@ // Built-in transition if (typeof transition === "number") { // Manually transition the views - if (transition === transitionType.NONE) { + if (transition === Transition.type.NONE) { this.__transformViews.apply(this, this.__animateViews(1, transition)); requestAnimationFrame(function () { _this.__animateViewsComplete(); @@ -450,7 +468,7 @@ options = typeof options === "object" ? options : {}; var defaults = { - transition: transitionType.PUSH_LEFT + transition: Transition.type.PUSH_LEFT }; options = assign({}, defaults, options, { view: view }); checkOptions("pushView", options); @@ -506,7 +524,7 @@ options = typeof options === "object" ? options : {}; var defaults = { - transition: transitionType.PUSH_RIGHT + transition: Transition.type.PUSH_RIGHT }; options = assign({}, defaults, options); checkOptions("popView", options); @@ -670,7 +688,7 @@ transitionFriction: 6 }; - NavigationController.transitionType = transitionType; + NavigationController.Transition = Transition; module.exports = NavigationController; @@ -690,6 +708,9 @@ var React = __webpack_require__(4); + var NavigationController = __webpack_require__(2); + var Transition = NavigationController.Transition; + var colors = ["#0074D9", "#7FDBFF", "#39CCCC", "#2ECC40", "#FFDC00", "#FF851B", "#FF4136", "#F012BE", "#B10DC9"]; function getColor() { @@ -723,12 +744,23 @@ }, onNext: { value: function onNext() { - this.props.navigationController.pushView(React.createElement(View, { index: this.props.index + 1 })); + var view = React.createElement(View, { index: this.props.index + 1 }); + this.props.navigationController.pushView(view, {}); } }, onBack: { value: function onBack() { - this.props.navigationController.popView(); + this.props.navigationController.popView({ + transition: this.props.modal ? Transition.type.REVEAL_DOWN : Transition.type.PUSH_RIGHT + }); + } + }, + onModal: { + value: function onModal() { + var view = React.createElement(View, { index: this.props.index + 1, modal: true }); + this.props.navigationController.pushView(view, { + transition: Transition.type.COVER_UP + }); } }, render: { @@ -739,30 +771,31 @@ className: "ReactNavigationControllerViewContent", style: { background: this.state.color } }, React.createElement( - "div", + "header", + null, + this.renderBackButton(), + this.renderNextButton() + ), + React.createElement( + "section", null, React.createElement( - "div", + "h3", null, - React.createElement( - "h1", - null, - "View ", - this.props.index - ), - React.createElement( - "button", - { onClick: this.incrementCounter.bind(this) }, - "Increment Counter (", - this.state.counter, - ")" - ), - React.createElement( - "button", - { onClick: this.onNext.bind(this) }, - "Next" - ), - this.renderBackButton() + "View ", + this.props.index + ), + React.createElement( + "button", + { onClick: this.incrementCounter.bind(this) }, + "Increment Counter (", + this.state.counter, + ")" + ), + React.createElement( + "button", + { onClick: this.onModal.bind(this) }, + "Show Modal" ) ) ); @@ -770,10 +803,20 @@ }, renderBackButton: { value: function renderBackButton() { - return this.props.index === 1 ? null : React.createElement( + var text = this.props.modal ? "Close" : "Back"; + return this.props.index === 1 ? React.createElement("div", null) : React.createElement( "button", { onClick: this.onBack.bind(this) }, - "Back" + text + ); + } + }, + renderNextButton: { + value: function renderNextButton() { + return this.props.modal === true ? React.createElement("div", null) : React.createElement( + "button", + { onClick: this.onNext.bind(this) }, + "Next" ); } } @@ -794,7 +837,7 @@ "use strict"; - module.exports = __webpack_require__(10); + module.exports = __webpack_require__(11); /***/ }, /* 5 */ @@ -802,7 +845,7 @@ "use strict"; - var _require = __webpack_require__(11); + var _require = __webpack_require__(12); var capitalize = _require.capitalize; @@ -834,6 +877,24 @@ /* 6 */ /***/ function(module, exports, __webpack_require__) { + /*! + * Adapted from LoDash + * + * https://lodash.com/ + * + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, + * DocumentCloud and Investigative Reporters & Editors + + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + */ + /** * Creates a slice of `array` with `n` elements dropped from the end. * @@ -934,6 +995,47 @@ "use strict"; + var type = { + NONE: 0, + PUSH_LEFT: 1, + PUSH_RIGHT: 2, + PUSH_UP: 3, + PUSH_DOWN: 4, + COVER_LEFT: 5, + COVER_RIGHT: 6, + COVER_UP: 7, + COVER_DOWN: 8, + REVEAL_LEFT: 9, + REVEAL_RIGHT: 10, + REVEAL_UP: 11, + REVEAL_DOWN: 12 + }; + + function isPush(t) { + return t === type.PUSH_LEFT || t === type.PUSH_RIGHT || t === type.PUSH_UP || t === type.PUSH_DOWN; + } + + function isCover(t) { + return t === type.COVER_LEFT || t === type.COVER_RIGHT || t === type.COVER_UP || t === type.COVER_DOWN; + } + + function isReveal(t) { + return t === type.REVEAL_LEFT || t === type.REVEAL_RIGHT || t === type.REVEAL_UP || t === type.REVEAL_DOWN; + } + + module.exports = { + type: type, + isPush: isPush, + isCover: isCover, + isReveal: isReveal + }; + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + function classNames() { var classes = ""; var arg; @@ -966,7 +1068,7 @@ } /***/ }, -/* 9 */ +/* 10 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, setImmediate) {// Rebound @@ -2073,10 +2175,10 @@ * 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. */ - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33), __webpack_require__(34).setImmediate)) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34), __webpack_require__(35).setImmediate)) /***/ }, -/* 10 */ +/* 11 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2094,27 +2196,27 @@ "use strict"; - var EventPluginUtils = __webpack_require__(12); - var ReactChildren = __webpack_require__(13); - var ReactComponent = __webpack_require__(14); - var ReactClass = __webpack_require__(15); - var ReactContext = __webpack_require__(16); - var ReactCurrentOwner = __webpack_require__(17); - var ReactElement = __webpack_require__(18); - var ReactElementValidator = __webpack_require__(19); - var ReactDOM = __webpack_require__(20); - var ReactDOMTextComponent = __webpack_require__(21); - var ReactDefaultInjection = __webpack_require__(22); - var ReactInstanceHandles = __webpack_require__(23); - var ReactMount = __webpack_require__(24); - var ReactPerf = __webpack_require__(25); - var ReactPropTypes = __webpack_require__(26); - var ReactReconciler = __webpack_require__(27); - var ReactServerRendering = __webpack_require__(28); - - var assign = __webpack_require__(29); - var findDOMNode = __webpack_require__(30); - var onlyChild = __webpack_require__(31); + var EventPluginUtils = __webpack_require__(13); + var ReactChildren = __webpack_require__(14); + var ReactComponent = __webpack_require__(15); + var ReactClass = __webpack_require__(16); + var ReactContext = __webpack_require__(17); + var ReactCurrentOwner = __webpack_require__(18); + var ReactElement = __webpack_require__(19); + var ReactElementValidator = __webpack_require__(20); + var ReactDOM = __webpack_require__(21); + var ReactDOMTextComponent = __webpack_require__(22); + var ReactDefaultInjection = __webpack_require__(23); + var ReactInstanceHandles = __webpack_require__(24); + var ReactMount = __webpack_require__(25); + var ReactPerf = __webpack_require__(26); + var ReactPropTypes = __webpack_require__(27); + var ReactReconciler = __webpack_require__(28); + var ReactServerRendering = __webpack_require__(29); + + var assign = __webpack_require__(30); + var findDOMNode = __webpack_require__(31); + var onlyChild = __webpack_require__(32); ReactDefaultInjection.inject(); @@ -2178,7 +2280,7 @@ } if ("production" !== process.env.NODE_ENV) { - var ExecutionEnvironment = __webpack_require__(32); + var ExecutionEnvironment = __webpack_require__(33); if (ExecutionEnvironment.canUseDOM && window.top === window.self) { // If we're in Chrome, look for the devtools marker and provide a download @@ -2208,10 +2310,10 @@ React.version = "0.13.1"; module.exports = React; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 11 */ +/* 12 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2231,7 +2333,7 @@ }; /***/ }, -/* 12 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2247,9 +2349,9 @@ "use strict"; - var EventConstants = __webpack_require__(38); + var EventConstants = __webpack_require__(40); - var invariant = __webpack_require__(36); + var invariant = __webpack_require__(41); /** * Injected dependencies: @@ -2432,10 +2534,10 @@ }; module.exports = EventPluginUtils; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 13 */ +/* 14 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2451,11 +2553,11 @@ "use strict"; - var PooledClass = __webpack_require__(39); - var ReactFragment = __webpack_require__(40); + var PooledClass = __webpack_require__(36); + var ReactFragment = __webpack_require__(37); - var traverseAllChildren = __webpack_require__(41); - var warning = __webpack_require__(37); + var traverseAllChildren = __webpack_require__(38); + var warning = __webpack_require__(39); var twoArgumentPooler = PooledClass.twoArgumentPooler; var threeArgumentPooler = PooledClass.threeArgumentPooler; @@ -2578,10 +2680,10 @@ }; module.exports = ReactChildren; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2597,10 +2699,10 @@ "use strict"; - var ReactUpdateQueue = __webpack_require__(35); + var ReactUpdateQueue = __webpack_require__(42); - var invariant = __webpack_require__(36); - var warning = __webpack_require__(37); + var invariant = __webpack_require__(41); + var warning = __webpack_require__(39); /** * Base class helpers for the updating state of a component. @@ -2700,10 +2802,10 @@ module.exports = ReactComponent; // IE will fail on defineProperty (es5-shim/sham too) - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -2719,21 +2821,21 @@ "use strict"; - var ReactComponent = __webpack_require__(14); - var ReactCurrentOwner = __webpack_require__(17); - var ReactElement = __webpack_require__(18); - var ReactErrorUtils = __webpack_require__(42); - var ReactInstanceMap = __webpack_require__(43); - var ReactLifeCycle = __webpack_require__(44); - var ReactPropTypeLocations = __webpack_require__(45); - var ReactPropTypeLocationNames = __webpack_require__(46); - var ReactUpdateQueue = __webpack_require__(35); - - var assign = __webpack_require__(29); - var invariant = __webpack_require__(36); - var keyMirror = __webpack_require__(47); - var keyOf = __webpack_require__(48); - var warning = __webpack_require__(37); + var ReactComponent = __webpack_require__(15); + var ReactCurrentOwner = __webpack_require__(18); + var ReactElement = __webpack_require__(19); + var ReactErrorUtils = __webpack_require__(43); + var ReactInstanceMap = __webpack_require__(44); + var ReactLifeCycle = __webpack_require__(45); + var ReactPropTypeLocations = __webpack_require__(46); + var ReactPropTypeLocationNames = __webpack_require__(47); + var ReactUpdateQueue = __webpack_require__(42); + + var assign = __webpack_require__(30); + var invariant = __webpack_require__(41); + var keyMirror = __webpack_require__(48); + var keyOf = __webpack_require__(49); + var warning = __webpack_require__(39); var MIXINS_KEY = keyOf({ mixins: null }); @@ -3569,10 +3671,10 @@ module.exports = ReactClass; // IE will fail on defineProperty (es5-shim/sham too) - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3588,9 +3690,9 @@ "use strict"; - var assign = __webpack_require__(29); - var emptyObject = __webpack_require__(49); - var warning = __webpack_require__(37); + var assign = __webpack_require__(30); + var emptyObject = __webpack_require__(50); + var warning = __webpack_require__(39); var didWarn = false; @@ -3645,10 +3747,10 @@ }; module.exports = ReactContext; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3685,7 +3787,7 @@ module.exports = ReactCurrentOwner; /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3701,11 +3803,11 @@ "use strict"; - var ReactContext = __webpack_require__(16); - var ReactCurrentOwner = __webpack_require__(17); + var ReactContext = __webpack_require__(17); + var ReactCurrentOwner = __webpack_require__(18); - var assign = __webpack_require__(29); - var warning = __webpack_require__(37); + var assign = __webpack_require__(30); + var warning = __webpack_require__(39); var RESERVED_PROPS = { key: true, @@ -3963,10 +4065,10 @@ module.exports = ReactElement; // IE will fail on defineProperty - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3989,16 +4091,16 @@ "use strict"; - var ReactElement = __webpack_require__(18); - var ReactFragment = __webpack_require__(40); - var ReactPropTypeLocations = __webpack_require__(45); - var ReactPropTypeLocationNames = __webpack_require__(46); - var ReactCurrentOwner = __webpack_require__(17); - var ReactNativeComponent = __webpack_require__(50); + var ReactElement = __webpack_require__(19); + var ReactFragment = __webpack_require__(37); + var ReactPropTypeLocations = __webpack_require__(46); + var ReactPropTypeLocationNames = __webpack_require__(47); + var ReactCurrentOwner = __webpack_require__(18); + var ReactNativeComponent = __webpack_require__(51); - var getIteratorFn = __webpack_require__(51); - var invariant = __webpack_require__(36); - var warning = __webpack_require__(37); + var getIteratorFn = __webpack_require__(52); + var invariant = __webpack_require__(41); + var warning = __webpack_require__(39); function getDeclarationErrorAddendum() { if (ReactCurrentOwner.current) { @@ -4362,10 +4464,10 @@ module.exports = ReactElementValidator; // IE will fail on defineProperty (es5-shim/sham too) - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 20 */ +/* 21 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -4382,10 +4484,10 @@ "use strict"; - var ReactElement = __webpack_require__(18); - var ReactElementValidator = __webpack_require__(19); + var ReactElement = __webpack_require__(19); + var ReactElementValidator = __webpack_require__(20); - var mapObject = __webpack_require__(84); + var mapObject = __webpack_require__(85); /** * Create a factory that creates HTML tag elements. @@ -4542,10 +4644,10 @@ }, createDOMFactory); module.exports = ReactDOM; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4562,12 +4664,12 @@ "use strict"; - var DOMPropertyOperations = __webpack_require__(82); - var ReactComponentBrowserEnvironment = __webpack_require__(60); - var ReactDOMComponent = __webpack_require__(64); + var DOMPropertyOperations = __webpack_require__(83); + var ReactComponentBrowserEnvironment = __webpack_require__(61); + var ReactDOMComponent = __webpack_require__(63); - var assign = __webpack_require__(29); - var escapeTextContentForBrowser = __webpack_require__(83); + var assign = __webpack_require__(30); + var escapeTextContentForBrowser = __webpack_require__(84); /** * Text nodes violate a couple assumptions that React makes about components: @@ -4657,7 +4759,7 @@ // This constructor and its argument is currently used by mocks. /***/ }, -/* 22 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -4673,41 +4775,41 @@ "use strict"; - var BeforeInputEventPlugin = __webpack_require__(52); - var ChangeEventPlugin = __webpack_require__(53); - var ClientReactRootIndex = __webpack_require__(54); - var DefaultEventPluginOrder = __webpack_require__(55); - var EnterLeaveEventPlugin = __webpack_require__(56); - var ExecutionEnvironment = __webpack_require__(32); - var HTMLDOMPropertyConfig = __webpack_require__(57); - var MobileSafariClickEventPlugin = __webpack_require__(58); - var ReactBrowserComponentMixin = __webpack_require__(59); - var ReactClass = __webpack_require__(15); - var ReactComponentBrowserEnvironment = __webpack_require__(60); - var ReactDefaultBatchingStrategy = __webpack_require__(61); - var ReactDOMComponent = __webpack_require__(64); - var ReactDOMButton = __webpack_require__(62); - var ReactDOMForm = __webpack_require__(63); - var ReactDOMImg = __webpack_require__(65); - var ReactDOMIDOperations = __webpack_require__(66); - var ReactDOMIframe = __webpack_require__(67); - var ReactDOMInput = __webpack_require__(68); - var ReactDOMOption = __webpack_require__(69); - var ReactDOMSelect = __webpack_require__(70); - var ReactDOMTextarea = __webpack_require__(71); - var ReactDOMTextComponent = __webpack_require__(21); - var ReactElement = __webpack_require__(18); - var ReactEventListener = __webpack_require__(72); - var ReactInjection = __webpack_require__(73); - var ReactInstanceHandles = __webpack_require__(23); - var ReactMount = __webpack_require__(24); - var ReactReconcileTransaction = __webpack_require__(74); - var SelectEventPlugin = __webpack_require__(75); - var ServerReactRootIndex = __webpack_require__(76); - var SimpleEventPlugin = __webpack_require__(77); - var SVGDOMPropertyConfig = __webpack_require__(78); - - var createFullPageComponent = __webpack_require__(79); + var BeforeInputEventPlugin = __webpack_require__(53); + var ChangeEventPlugin = __webpack_require__(54); + var ClientReactRootIndex = __webpack_require__(55); + var DefaultEventPluginOrder = __webpack_require__(56); + var EnterLeaveEventPlugin = __webpack_require__(57); + var ExecutionEnvironment = __webpack_require__(33); + var HTMLDOMPropertyConfig = __webpack_require__(58); + var MobileSafariClickEventPlugin = __webpack_require__(59); + var ReactBrowserComponentMixin = __webpack_require__(60); + var ReactClass = __webpack_require__(16); + var ReactComponentBrowserEnvironment = __webpack_require__(61); + var ReactDefaultBatchingStrategy = __webpack_require__(62); + var ReactDOMComponent = __webpack_require__(63); + var ReactDOMButton = __webpack_require__(64); + var ReactDOMForm = __webpack_require__(65); + var ReactDOMImg = __webpack_require__(66); + var ReactDOMIDOperations = __webpack_require__(67); + var ReactDOMIframe = __webpack_require__(68); + var ReactDOMInput = __webpack_require__(69); + var ReactDOMOption = __webpack_require__(70); + var ReactDOMSelect = __webpack_require__(71); + var ReactDOMTextarea = __webpack_require__(72); + var ReactDOMTextComponent = __webpack_require__(22); + var ReactElement = __webpack_require__(19); + var ReactEventListener = __webpack_require__(73); + var ReactInjection = __webpack_require__(74); + var ReactInstanceHandles = __webpack_require__(24); + var ReactMount = __webpack_require__(25); + var ReactReconcileTransaction = __webpack_require__(75); + var SelectEventPlugin = __webpack_require__(76); + var ServerReactRootIndex = __webpack_require__(77); + var SimpleEventPlugin = __webpack_require__(78); + var SVGDOMPropertyConfig = __webpack_require__(79); + + var createFullPageComponent = __webpack_require__(80); function autoGenerateWrapperClass(type) { return ReactClass.createClass({ @@ -4782,7 +4884,7 @@ if ("production" !== process.env.NODE_ENV) { var url = ExecutionEnvironment.canUseDOM && window.location.href || ""; if (/[?&]react_perf\b/.test(url)) { - var ReactDefaultPerf = __webpack_require__(80); + var ReactDefaultPerf = __webpack_require__(81); ReactDefaultPerf.start(); } } @@ -4791,10 +4893,10 @@ module.exports = { inject: inject }; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 23 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -4811,9 +4913,9 @@ "use strict"; - var ReactRootIndex = __webpack_require__(81); + var ReactRootIndex = __webpack_require__(82); - var invariant = __webpack_require__(36); + var invariant = __webpack_require__(41); var SEPARATOR = "."; var SEPARATOR_LENGTH = SEPARATOR.length; @@ -5093,10 +5195,10 @@ module.exports = ReactInstanceHandles; /* until break */ - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 24 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -5112,28 +5214,28 @@ "use strict"; - var DOMProperty = __webpack_require__(87); - var ReactBrowserEventEmitter = __webpack_require__(88); - var ReactCurrentOwner = __webpack_require__(17); - var ReactElement = __webpack_require__(18); - var ReactElementValidator = __webpack_require__(19); - var ReactEmptyComponent = __webpack_require__(89); - var ReactInstanceHandles = __webpack_require__(23); - var ReactInstanceMap = __webpack_require__(43); - var ReactMarkupChecksum = __webpack_require__(90); - var ReactPerf = __webpack_require__(25); - var ReactReconciler = __webpack_require__(27); - var ReactUpdateQueue = __webpack_require__(35); - var ReactUpdates = __webpack_require__(91); - - var emptyObject = __webpack_require__(49); - var containsNode = __webpack_require__(92); - var getReactRootElementInContainer = __webpack_require__(93); - var instantiateReactComponent = __webpack_require__(94); - var invariant = __webpack_require__(36); - var setInnerHTML = __webpack_require__(95); - var shouldUpdateReactComponent = __webpack_require__(96); - var warning = __webpack_require__(37); + var DOMProperty = __webpack_require__(88); + var ReactBrowserEventEmitter = __webpack_require__(89); + var ReactCurrentOwner = __webpack_require__(18); + var ReactElement = __webpack_require__(19); + var ReactElementValidator = __webpack_require__(20); + var ReactEmptyComponent = __webpack_require__(90); + var ReactInstanceHandles = __webpack_require__(24); + var ReactInstanceMap = __webpack_require__(44); + var ReactMarkupChecksum = __webpack_require__(91); + var ReactPerf = __webpack_require__(26); + var ReactReconciler = __webpack_require__(28); + var ReactUpdateQueue = __webpack_require__(42); + var ReactUpdates = __webpack_require__(92); + + var emptyObject = __webpack_require__(50); + var containsNode = __webpack_require__(93); + var getReactRootElementInContainer = __webpack_require__(94); + var instantiateReactComponent = __webpack_require__(95); + var invariant = __webpack_require__(41); + var setInnerHTML = __webpack_require__(96); + var shouldUpdateReactComponent = __webpack_require__(97); + var warning = __webpack_require__(39); var SEPARATOR = ReactInstanceHandles.SEPARATOR; @@ -5818,10 +5920,10 @@ }); module.exports = ReactMount; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 25 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -5920,10 +6022,10 @@ } module.exports = ReactPerf; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 26 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { /** @@ -5939,9 +6041,9 @@ "use strict"; - var ReactElement = __webpack_require__(18); - var ReactFragment = __webpack_require__(40); - var ReactPropTypeLocationNames = __webpack_require__(46); + var ReactElement = __webpack_require__(19); + var ReactFragment = __webpack_require__(37); + var ReactPropTypeLocationNames = __webpack_require__(47); var emptyFunction = __webpack_require__(86); @@ -6245,7 +6347,7 @@ module.exports = ReactPropTypes; /***/ }, -/* 27 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6261,8 +6363,8 @@ "use strict"; - var ReactRef = __webpack_require__(85); - var ReactElementValidator = __webpack_require__(19); + var ReactRef = __webpack_require__(87); + var ReactElementValidator = __webpack_require__(20); /** * Helper to call ReactRef.attachRefs with this composite component, split out @@ -6358,10 +6460,10 @@ }; module.exports = ReactReconciler; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 28 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6377,14 +6479,14 @@ */ "use strict"; - var ReactElement = __webpack_require__(18); - var ReactInstanceHandles = __webpack_require__(23); - var ReactMarkupChecksum = __webpack_require__(90); - var ReactServerRenderingTransaction = __webpack_require__(97); + var ReactElement = __webpack_require__(19); + var ReactInstanceHandles = __webpack_require__(24); + var ReactMarkupChecksum = __webpack_require__(91); + var ReactServerRenderingTransaction = __webpack_require__(99); - var emptyObject = __webpack_require__(49); - var instantiateReactComponent = __webpack_require__(94); - var invariant = __webpack_require__(36); + var emptyObject = __webpack_require__(50); + var instantiateReactComponent = __webpack_require__(95); + var invariant = __webpack_require__(41); /** * @param {ReactElement} element @@ -6434,10 +6536,10 @@ renderToString: renderToString, renderToStaticMarkup: renderToStaticMarkup }; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 29 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6489,7 +6591,7 @@ module.exports = assign; /***/ }, -/* 30 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6506,13 +6608,13 @@ "use strict"; - var ReactCurrentOwner = __webpack_require__(17); - var ReactInstanceMap = __webpack_require__(43); - var ReactMount = __webpack_require__(24); + var ReactCurrentOwner = __webpack_require__(18); + var ReactInstanceMap = __webpack_require__(44); + var ReactMount = __webpack_require__(25); - var invariant = __webpack_require__(36); + var invariant = __webpack_require__(41); var isNode = __webpack_require__(98); - var warning = __webpack_require__(37); + var warning = __webpack_require__(39); /** * Returns the DOM node rendered by this element. @@ -6542,10 +6644,10 @@ } module.exports = findDOMNode; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 31 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -6560,9 +6662,9 @@ */ "use strict"; - var ReactElement = __webpack_require__(18); + var ReactElement = __webpack_require__(19); - var invariant = __webpack_require__(36); + var invariant = __webpack_require__(41); /** * Returns the first child in a collection of children and verifies that there @@ -6581,10 +6683,10 @@ } module.exports = onlyChild; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 32 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6627,7 +6729,7 @@ module.exports = ExecutionEnvironment; /***/ }, -/* 33 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { // shim for using process in browser @@ -6696,12 +6798,12 @@ }; /***/ }, -/* 34 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {"use strict"; - var nextTick = __webpack_require__(33).nextTick; + var nextTick = __webpack_require__(34).nextTick; var apply = Function.prototype.apply; var slice = Array.prototype.slice; var immediateIds = {}; @@ -6777,368 +6879,284 @@ exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function (id) { delete immediateIds[id]; }; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34).setImmediate, __webpack_require__(34).clearImmediate)) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(35).setImmediate, __webpack_require__(35).clearImmediate)) /***/ }, -/* 35 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2015, Facebook, Inc. + * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * - * @providesModule ReactUpdateQueue + * @providesModule PooledClass */ "use strict"; - var ReactLifeCycle = __webpack_require__(44); - var ReactCurrentOwner = __webpack_require__(17); - var ReactElement = __webpack_require__(18); - var ReactInstanceMap = __webpack_require__(43); - var ReactUpdates = __webpack_require__(91); + var invariant = __webpack_require__(41); - var assign = __webpack_require__(29); - var invariant = __webpack_require__(36); - var warning = __webpack_require__(37); + /** + * Static poolers. Several custom versions for each potential number of + * arguments. A completely generic pooler is easy to implement, but would + * require accessing the `arguments` object. In each of these, `this` refers to + * the Class itself, not an instance. If any others are needed, simply add them + * here, or in their own files. + */ + var oneArgumentPooler = function oneArgumentPooler(copyFieldsFrom) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, copyFieldsFrom); + return instance; + } else { + return new Klass(copyFieldsFrom); + } + }; - function enqueueUpdate(internalInstance) { - if (internalInstance !== ReactLifeCycle.currentlyMountingInstance) { - // If we're in a componentWillMount handler, don't enqueue a rerender - // because ReactUpdates assumes we're in a browser context (which is - // wrong for server rendering) and we're about to do a render anyway. - // See bug in #1740. - ReactUpdates.enqueueUpdate(internalInstance); + var twoArgumentPooler = function twoArgumentPooler(a1, a2) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2); + return instance; + } else { + return new Klass(a1, a2); } - } + }; - function getInternalInstanceReadyForUpdate(publicInstance, callerName) { - "production" !== process.env.NODE_ENV ? invariant(ReactCurrentOwner.current == null, "%s(...): Cannot update during an existing state transition " + "(such as within `render`). Render methods should be a pure function " + "of props and state.", callerName) : invariant(ReactCurrentOwner.current == null); + var threeArgumentPooler = function threeArgumentPooler(a1, a2, a3) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3); + return instance; + } else { + return new Klass(a1, a2, a3); + } + }; - var internalInstance = ReactInstanceMap.get(publicInstance); - if (!internalInstance) { - if ("production" !== process.env.NODE_ENV) { - // Only warn when we have a callerName. Otherwise we should be silent. - // We're probably calling from enqueueCallback. We don't want to warn - // there because we already warned for the corresponding lifecycle method. - "production" !== process.env.NODE_ENV ? warning(!callerName, "%s(...): Can only update a mounted or mounting component. " + "This usually means you called %s() on an unmounted " + "component. This is a no-op.", callerName, callerName) : null; - } - return null; + var fiveArgumentPooler = function fiveArgumentPooler(a1, a2, a3, a4, a5) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3, a4, a5); + return instance; + } else { + return new Klass(a1, a2, a3, a4, a5); } + }; - if (internalInstance === ReactLifeCycle.currentlyUnmountingInstance) { - return null; + var standardReleaser = function standardReleaser(instance) { + var Klass = this; + "production" !== process.env.NODE_ENV ? invariant(instance instanceof Klass, "Trying to release an instance into a pool of a different type.") : invariant(instance instanceof Klass); + if (instance.destructor) { + instance.destructor(); } + if (Klass.instancePool.length < Klass.poolSize) { + Klass.instancePool.push(instance); + } + }; - return internalInstance; - } + var DEFAULT_POOL_SIZE = 10; + var DEFAULT_POOLER = oneArgumentPooler; /** - * ReactUpdateQueue allows for state updates to be scheduled into a later - * reconciliation step. + * Augments `CopyConstructor` to be a poolable class, augmenting only the class + * itself (statically) not adding any prototypical fields. Any CopyConstructor + * you give this may have a `poolSize` property, and will look for a + * prototypical `destructor` on instances (optional). + * + * @param {Function} CopyConstructor Constructor that can be used to reset. + * @param {Function} pooler Customizable pooler. */ - var ReactUpdateQueue = { + var addPoolingTo = function addPoolingTo(CopyConstructor, pooler) { + var NewKlass = CopyConstructor; + NewKlass.instancePool = []; + NewKlass.getPooled = pooler || DEFAULT_POOLER; + if (!NewKlass.poolSize) { + NewKlass.poolSize = DEFAULT_POOL_SIZE; + } + NewKlass.release = standardReleaser; + return NewKlass; + }; - /** - * 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 enqueueCallback(publicInstance, callback) { - "production" !== process.env.NODE_ENV ? invariant(typeof callback === "function", "enqueueCallback(...): You called `setProps`, `replaceProps`, " + "`setState`, `replaceState`, or `forceUpdate` with a callback that " + "isn't callable.") : invariant(typeof callback === "function"); - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); + var PooledClass = { + addPoolingTo: addPoolingTo, + oneArgumentPooler: oneArgumentPooler, + twoArgumentPooler: twoArgumentPooler, + threeArgumentPooler: threeArgumentPooler, + fiveArgumentPooler: fiveArgumentPooler + }; - // Previously we would throw an error if we didn't have an internal - // instance. Since we want to make it a no-op instead, we mirror the same - // behavior we have in other enqueue* methods. - // We also need to ignore callbacks in componentWillMount. See - // enqueueUpdates. - if (!internalInstance || internalInstance === ReactLifeCycle.currentlyMountingInstance) { - return null; - } - - if (internalInstance._pendingCallbacks) { - internalInstance._pendingCallbacks.push(callback); - } else { - internalInstance._pendingCallbacks = [callback]; - } - // TODO: The callback here is ignored when setState is called from - // componentWillMount. Either fix it or disallow doing so completely in - // favor of getInitialState. Alternatively, we can disallow - // componentWillMount during server-side rendering. - enqueueUpdate(internalInstance); - }, - - enqueueCallbackInternal: function enqueueCallbackInternal(internalInstance, callback) { - "production" !== process.env.NODE_ENV ? invariant(typeof callback === "function", "enqueueCallback(...): You called `setProps`, `replaceProps`, " + "`setState`, `replaceState`, or `forceUpdate` with a callback that " + "isn't callable.") : invariant(typeof callback === "function"); - if (internalInstance._pendingCallbacks) { - internalInstance._pendingCallbacks.push(callback); - } else { - internalInstance._pendingCallbacks = [callback]; - } - enqueueUpdate(internalInstance); - }, - - /** - * 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 `shouldUpdateComponent`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - enqueueForceUpdate: function enqueueForceUpdate(publicInstance) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "forceUpdate"); - - if (!internalInstance) { - return; - } - - internalInstance._pendingForceUpdate = true; - - enqueueUpdate(internalInstance); - }, - - /** - * 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 enqueueReplaceState(publicInstance, completeState) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "replaceState"); - - if (!internalInstance) { - return; - } - - internalInstance._pendingStateQueue = [completeState]; - internalInstance._pendingReplaceState = true; - - enqueueUpdate(internalInstance); - }, - - /** - * 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 enqueueSetState(publicInstance, partialState) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "setState"); - - if (!internalInstance) { - return; - } - - var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); - queue.push(partialState); - - enqueueUpdate(internalInstance); - }, - - /** - * Sets a subset of the props. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialProps Subset of the next props. - * @internal - */ - enqueueSetProps: function enqueueSetProps(publicInstance, partialProps) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "setProps"); - - if (!internalInstance) { - return; - } - - "production" !== process.env.NODE_ENV ? invariant(internalInstance._isTopLevel, "setProps(...): You called `setProps` on a " + "component with a parent. This is an anti-pattern since props will " + "get reactively updated when rendered. Instead, change the owner's " + "`render` method to pass the correct value as props to the component " + "where it is created.") : invariant(internalInstance._isTopLevel); - - // Merge with the pending element if it exists, otherwise with existing - // element props. - var element = internalInstance._pendingElement || internalInstance._currentElement; - var props = assign({}, element.props, partialProps); - internalInstance._pendingElement = ReactElement.cloneAndReplaceProps(element, props); - - enqueueUpdate(internalInstance); - }, - - /** - * Replaces all of the props. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} props New props. - * @internal - */ - enqueueReplaceProps: function enqueueReplaceProps(publicInstance, props) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "replaceProps"); - - if (!internalInstance) { - return; - } - - "production" !== process.env.NODE_ENV ? invariant(internalInstance._isTopLevel, "replaceProps(...): You called `replaceProps` on a " + "component with a parent. This is an anti-pattern since props will " + "get reactively updated when rendered. Instead, change the owner's " + "`render` method to pass the correct value as props to the component " + "where it is created.") : invariant(internalInstance._isTopLevel); - - // Merge with the pending element if it exists, otherwise with existing - // element props. - var element = internalInstance._pendingElement || internalInstance._currentElement; - internalInstance._pendingElement = ReactElement.cloneAndReplaceProps(element, props); - - enqueueUpdate(internalInstance); - }, - - enqueueElementInternal: function enqueueElementInternal(internalInstance, newElement) { - internalInstance._pendingElement = newElement; - enqueueUpdate(internalInstance); - } - - }; - - module.exports = ReactUpdateQueue; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + module.exports = PooledClass; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 36 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-2015, Facebook, Inc. + * Copyright 2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * - * @providesModule invariant - */ + * @providesModule ReactFragment + */ "use strict"; - /** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ + var ReactElement = __webpack_require__(19); - var invariant = function invariant(condition, format, a, b, c, d, e, f) { - if ("production" !== process.env.NODE_ENV) { - if (format === undefined) { - throw new Error("invariant requires an error message argument"); - } - } + var warning = __webpack_require__(39); - if (!condition) { - var error; - if (format === undefined) { - error = new Error("Minified exception occurred; use the non-minified dev environment " + "for the full error message and additional helpful warnings."); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error("Invariant Violation: " + format.replace(/%s/g, function () { - return args[argIndex++]; - })); - } + /** + * We used to allow keyed objects to serve as a collection of ReactElements, + * or nested sets. This allowed us a way to explicitly key a set a fragment of + * components. This is now being replaced with an opaque data structure. + * The upgrade path is to call React.addons.createFragment({ key: value }) to + * create a keyed fragment. The resulting data structure is opaque, for now. + */ - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } - }; + if ("production" !== process.env.NODE_ENV) { + var fragmentKey = "_reactFragment"; + var didWarnKey = "_reactDidWarn"; + var canWarnForReactFragment = false; - module.exports = invariant; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + try { + // Feature test. Don't even try to issue this warning if we can't use + // enumerable: false. -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { + var dummy = function dummy() { + return 1; + }; - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule warning - */ + Object.defineProperty({}, fragmentKey, { enumerable: false, value: true }); - "use strict"; + Object.defineProperty({}, "key", { enumerable: true, get: dummy }); - var emptyFunction = __webpack_require__(86); + canWarnForReactFragment = true; + } catch (x) {} - /** - * 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. - */ + var proxyPropertyAccessWithWarning = function proxyPropertyAccessWithWarning(obj, key) { + Object.defineProperty(obj, key, { + enumerable: true, + get: function get() { + "production" !== process.env.NODE_ENV ? warning(this[didWarnKey], "A ReactFragment is an opaque type. Accessing any of its " + "properties is deprecated. Pass it to one of the React.Children " + "helpers.") : null; + this[didWarnKey] = true; + return this[fragmentKey][key]; + }, + set: function set(value) { + "production" !== process.env.NODE_ENV ? warning(this[didWarnKey], "A ReactFragment is an immutable opaque type. Mutating its " + "properties is deprecated.") : null; + this[didWarnKey] = true; + this[fragmentKey][key] = value; + } + }); + }; - var warning = emptyFunction; + var issuedWarnings = {}; - if ("production" !== process.env.NODE_ENV) { - warning = function (condition, format) { - for (var args = [], $__0 = 2, $__1 = arguments.length; $__0 < $__1; $__0++) args.push(arguments[$__0]); - if (format === undefined) { - throw new Error("`warning(condition, format, ...args)` requires a warning " + "message argument"); + var didWarnForFragment = function didWarnForFragment(fragment) { + // We use the keys and the type of the value as a heuristic to dedupe the + // warning to avoid spamming too much. + var fragmentCacheKey = ""; + for (var key in fragment) { + fragmentCacheKey += key + ":" + typeof fragment[key] + ","; } + var alreadyWarnedOnce = !!issuedWarnings[fragmentCacheKey]; + issuedWarnings[fragmentCacheKey] = true; + return alreadyWarnedOnce; + }; + } - if (format.length < 10 || /^[s\W]*$/.test(format)) { - throw new Error("The warning format should be able to uniquely identify this " + "warning. Please, use a more descriptive format than: " + format); + var ReactFragment = { + // Wrap a keyed object in an opaque proxy that warns you if you access any + // of its properties. + create: function create(object) { + if ("production" !== process.env.NODE_ENV) { + if (typeof object !== "object" || !object || Array.isArray(object)) { + "production" !== process.env.NODE_ENV ? warning(false, "React.addons.createFragment only accepts a single object.", object) : null; + return object; + } + if (ReactElement.isValidElement(object)) { + "production" !== process.env.NODE_ENV ? warning(false, "React.addons.createFragment does not accept a ReactElement " + "without a wrapper object.") : null; + return object; + } + if (canWarnForReactFragment) { + var proxy = {}; + Object.defineProperty(proxy, fragmentKey, { + enumerable: false, + value: object + }); + Object.defineProperty(proxy, didWarnKey, { + writable: true, + enumerable: false, + value: false + }); + for (var key in object) { + proxyPropertyAccessWithWarning(proxy, key); + } + Object.preventExtensions(proxy); + return proxy; + } } - - if (format.indexOf("Failed Composite propType: ") === 0) { - return; // Ignore CompositeComponent proptype check. + return object; + }, + // Extract the original keyed object from the fragment opaque type. Warn if + // a plain object is passed here. + extract: function extract(fragment) { + if ("production" !== process.env.NODE_ENV) { + if (canWarnForReactFragment) { + if (!fragment[fragmentKey]) { + "production" !== process.env.NODE_ENV ? warning(didWarnForFragment(fragment), "Any use of a keyed object should be wrapped in " + "React.addons.createFragment(object) before being passed as a " + "child.") : null; + return fragment; + } + return fragment[fragmentKey]; + } } - - if (!condition) { - var argIndex = 0; - var message = "Warning: " + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - 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) {} + return fragment; + }, + // Check if this is a fragment and if so, extract the keyed object. If it + // is a fragment-like object, warn that it should be wrapped. Ignore if we + // can't determine what kind of object this is. + extractIfFragment: function extractIfFragment(fragment) { + if ("production" !== process.env.NODE_ENV) { + if (canWarnForReactFragment) { + // If it is the opaque type, return the keyed object. + if (fragment[fragmentKey]) { + return fragment[fragmentKey]; + } + // Otherwise, check each property if it has an element, if it does + // it is probably meant as a fragment, so we can warn early. Defer, + // the warning to extract. + for (var key in fragment) { + if (fragment.hasOwnProperty(key) && ReactElement.isValidElement(fragment[key])) { + // This looks like a fragment object, we should provide an + // early warning. + return ReactFragment.extract(fragment); + } + } + } } - }; - } + return fragment; + } + }; - module.exports = warning; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + module.exports = ReactFragment; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, /* 38 */ /***/ function(module, exports, __webpack_require__) { - /** + /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * @@ -7146,339 +7164,322 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * - * @providesModule EventConstants + * @providesModule traverseAllChildren */ "use strict"; - var keyMirror = __webpack_require__(47); + var ReactElement = __webpack_require__(19); + var ReactFragment = __webpack_require__(37); + var ReactInstanceHandles = __webpack_require__(24); - var PropagationPhases = keyMirror({ bubbled: null, captured: null }); + var getIteratorFn = __webpack_require__(52); + var invariant = __webpack_require__(41); + var warning = __webpack_require__(39); + + var SEPARATOR = ReactInstanceHandles.SEPARATOR; + var SUBSEPARATOR = ":"; /** - * Types of raw signals from the browser caught at the top level. + * TODO: Test that a single child and an array with one item have the same key + * pattern. */ - var topLevelTypes = keyMirror({ - topBlur: null, - topChange: null, - topClick: null, - topCompositionEnd: null, - topCompositionStart: null, - topCompositionUpdate: null, - topContextMenu: null, - topCopy: null, - topCut: null, - topDoubleClick: null, - topDrag: null, - topDragEnd: null, - topDragEnter: null, - topDragExit: null, - topDragLeave: null, - topDragOver: null, - topDragStart: null, - topDrop: null, - topError: null, - topFocus: null, - topInput: null, - topKeyDown: null, - topKeyPress: null, - topKeyUp: null, - topLoad: null, - topMouseDown: null, - topMouseMove: null, - topMouseOut: null, - topMouseOver: null, - topMouseUp: null, - topPaste: null, - topReset: null, - topScroll: null, - topSelectionChange: null, - topSubmit: null, - topTextInput: null, - topTouchCancel: null, - topTouchEnd: null, - topTouchMove: null, - topTouchStart: null, - topWheel: null - }); - var EventConstants = { - topLevelTypes: topLevelTypes, - PropagationPhases: PropagationPhases + var userProvidedKeyEscaperLookup = { + "=": "=0", + ".": "=1", + ":": "=2" }; - module.exports = EventConstants; + var userProvidedKeyEscapeRegex = /[=.:]/g; -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { + var didWarnAboutMaps = false; - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-2015, 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. + function userProvidedKeyEscaper(match) { + return userProvidedKeyEscaperLookup[match]; + } + + /** + * Generate a key string that identifies a component within a set. * - * @providesModule PooledClass + * @param {*} component A component that could contain a manual key. + * @param {number} index Index that is used if a manual key is not provided. + * @return {string} */ + function getComponentKey(component, index) { + if (component && component.key != null) { + // Explicit key + return wrapUserProvidedKey(component.key); + } + // Implicit key determined by the index in the set + return index.toString(36); + } - "use strict"; + /** + * Escape a component key so that it is safe to use in a reactid. + * + * @param {*} key Component key to be escaped. + * @return {string} An escaped string. + */ + function escapeUserProvidedKey(text) { + return ("" + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper); + } - var invariant = __webpack_require__(36); + /** + * Wrap a `key` value explicitly provided by the user to distinguish it from + * implicitly-generated keys generated by a component's index in its parent. + * + * @param {string} key Value of a user-provided `key` attribute + * @return {string} + */ + function wrapUserProvidedKey(key) { + return "$" + escapeUserProvidedKey(key); + } /** - * Static poolers. Several custom versions for each potential number of - * arguments. A completely generic pooler is easy to implement, but would - * require accessing the `arguments` object. In each of these, `this` refers to - * the Class itself, not an instance. If any others are needed, simply add them - * here, or in their own files. + * @param {?*} children Children tree container. + * @param {!string} nameSoFar Name of the key path so far. + * @param {!number} indexSoFar Number of children encountered until this point. + * @param {!function} callback Callback to invoke with each child found. + * @param {?*} traverseContext Used to pass information throughout the traversal + * process. + * @return {!number} The number of children in this subtree. */ - var oneArgumentPooler = function oneArgumentPooler(copyFieldsFrom) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, copyFieldsFrom); - return instance; - } else { - return new Klass(copyFieldsFrom); - } - }; + function traverseAllChildrenImpl(children, nameSoFar, indexSoFar, callback, traverseContext) { + var type = typeof children; - var twoArgumentPooler = function twoArgumentPooler(a1, a2) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2); - return instance; - } else { - return new Klass(a1, a2); + if (type === "undefined" || type === "boolean") { + // All of the above are perceived as null. + children = null; } - }; - var threeArgumentPooler = function threeArgumentPooler(a1, a2, a3) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3); - return instance; - } else { - return new Klass(a1, a2, a3); + if (children === null || type === "string" || type === "number" || ReactElement.isValidElement(children)) { + callback(traverseContext, children, + // If it's the only child, treat the name as if it was wrapped in an array + // so that it's consistent if the number of children grows. + nameSoFar === "" ? SEPARATOR + getComponentKey(children, 0) : nameSoFar, indexSoFar); + return 1; } - }; - var fiveArgumentPooler = function fiveArgumentPooler(a1, a2, a3, a4, a5) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4, a5); - return instance; - } else { - return new Klass(a1, a2, a3, a4, a5); - } - }; + var child, nextName, nextIndex; + var subtreeCount = 0; // Count of children found in the current subtree. - var standardReleaser = function standardReleaser(instance) { - var Klass = this; - "production" !== process.env.NODE_ENV ? invariant(instance instanceof Klass, "Trying to release an instance into a pool of a different type.") : invariant(instance instanceof Klass); - if (instance.destructor) { - instance.destructor(); - } - if (Klass.instancePool.length < Klass.poolSize) { - Klass.instancePool.push(instance); + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + child = children[i]; + nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + getComponentKey(child, i); + nextIndex = indexSoFar + subtreeCount; + subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); + } + } else { + var iteratorFn = getIteratorFn(children); + if (iteratorFn) { + var iterator = iteratorFn.call(children); + var step; + if (iteratorFn !== children.entries) { + var ii = 0; + while (!(step = iterator.next()).done) { + child = step.value; + nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + getComponentKey(child, ii++); + nextIndex = indexSoFar + subtreeCount; + subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); + } + } else { + if ("production" !== process.env.NODE_ENV) { + "production" !== process.env.NODE_ENV ? warning(didWarnAboutMaps, "Using Maps as children is not yet fully supported. It is an " + "experimental feature that might be removed. Convert it to a " + "sequence / iterable of keyed ReactElements instead.") : null; + didWarnAboutMaps = true; + } + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + child = entry[1]; + nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); + nextIndex = indexSoFar + subtreeCount; + subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); + } + } + } + } else if (type === "object") { + "production" !== process.env.NODE_ENV ? invariant(children.nodeType !== 1, "traverseAllChildren(...): Encountered an invalid child; DOM " + "elements are not valid children of React components.") : invariant(children.nodeType !== 1); + var fragment = ReactFragment.extract(children); + for (var key in fragment) { + if (fragment.hasOwnProperty(key)) { + child = fragment[key]; + nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + wrapUserProvidedKey(key) + SUBSEPARATOR + getComponentKey(child, 0); + nextIndex = indexSoFar + subtreeCount; + subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); + } + } + } } - }; - var DEFAULT_POOL_SIZE = 10; - var DEFAULT_POOLER = oneArgumentPooler; + return subtreeCount; + } /** - * Augments `CopyConstructor` to be a poolable class, augmenting only the class - * itself (statically) not adding any prototypical fields. Any CopyConstructor - * you give this may have a `poolSize` property, and will look for a - * prototypical `destructor` on instances (optional). + * Traverses children that are typically specified as `props.children`, but + * might also be specified through attributes: * - * @param {Function} CopyConstructor Constructor that can be used to reset. - * @param {Function} pooler Customizable pooler. + * - `traverseAllChildren(this.props.children, ...)` + * - `traverseAllChildren(this.props.leftPanelChildren, ...)` + * + * The `traverseContext` is an optional argument that is passed through the + * entire traversal. It can be used to store accumulations or anything else that + * the callback might find relevant. + * + * @param {?*} children Children tree object. + * @param {!function} callback To invoke upon traversing each child. + * @param {?*} traverseContext Context for traversal. + * @return {!number} The number of children in this subtree. */ - var addPoolingTo = function addPoolingTo(CopyConstructor, pooler) { - var NewKlass = CopyConstructor; - NewKlass.instancePool = []; - NewKlass.getPooled = pooler || DEFAULT_POOLER; - if (!NewKlass.poolSize) { - NewKlass.poolSize = DEFAULT_POOL_SIZE; + function traverseAllChildren(children, callback, traverseContext) { + if (children == null) { + return 0; } - NewKlass.release = standardReleaser; - return NewKlass; - }; - var PooledClass = { - addPoolingTo: addPoolingTo, - oneArgumentPooler: oneArgumentPooler, - twoArgumentPooler: twoArgumentPooler, - threeArgumentPooler: threeArgumentPooler, - fiveArgumentPooler: fiveArgumentPooler - }; + return traverseAllChildrenImpl(children, "", 0, callback, traverseContext); + } - module.exports = PooledClass; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + module.exports = traverseAllChildren; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 40 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2015, Facebook, Inc. + * Copyright 2014-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * - * @providesModule ReactFragment - */ + * @providesModule warning + */ "use strict"; - var ReactElement = __webpack_require__(18); - - var warning = __webpack_require__(37); + var emptyFunction = __webpack_require__(86); /** - * We used to allow keyed objects to serve as a collection of ReactElements, - * or nested sets. This allowed us a way to explicitly key a set a fragment of - * components. This is now being replaced with an opaque data structure. - * The upgrade path is to call React.addons.createFragment({ key: value }) to - * create a keyed fragment. The resulting data structure is opaque, for now. + * 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. */ + var warning = emptyFunction; + if ("production" !== process.env.NODE_ENV) { - var fragmentKey = "_reactFragment"; - var didWarnKey = "_reactDidWarn"; - var canWarnForReactFragment = false; + warning = function (condition, format) { + for (var args = [], $__0 = 2, $__1 = arguments.length; $__0 < $__1; $__0++) args.push(arguments[$__0]); + if (format === undefined) { + throw new Error("`warning(condition, format, ...args)` requires a warning " + "message argument"); + } - try { - // Feature test. Don't even try to issue this warning if we can't use - // enumerable: false. + if (format.length < 10 || /^[s\W]*$/.test(format)) { + throw new Error("The warning format should be able to uniquely identify this " + "warning. Please, use a more descriptive format than: " + format); + } - var dummy = function dummy() { - return 1; - }; + if (format.indexOf("Failed Composite propType: ") === 0) { + return; // Ignore CompositeComponent proptype check. + } - Object.defineProperty({}, fragmentKey, { enumerable: false, value: true }); + if (!condition) { + var argIndex = 0; + var message = "Warning: " + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + 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) {} + } + }; + } - Object.defineProperty({}, "key", { enumerable: true, get: dummy }); + module.exports = warning; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) - canWarnForReactFragment = true; - } catch (x) {} +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { - var proxyPropertyAccessWithWarning = function proxyPropertyAccessWithWarning(obj, key) { - Object.defineProperty(obj, key, { - enumerable: true, - get: function get() { - "production" !== process.env.NODE_ENV ? warning(this[didWarnKey], "A ReactFragment is an opaque type. Accessing any of its " + "properties is deprecated. Pass it to one of the React.Children " + "helpers.") : null; - this[didWarnKey] = true; - return this[fragmentKey][key]; - }, - set: function set(value) { - "production" !== process.env.NODE_ENV ? warning(this[didWarnKey], "A ReactFragment is an immutable opaque type. Mutating its " + "properties is deprecated.") : null; - this[didWarnKey] = true; - this[fragmentKey][key] = value; - } - }); - }; + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventConstants + */ - var issuedWarnings = {}; + "use strict"; - var didWarnForFragment = function didWarnForFragment(fragment) { - // We use the keys and the type of the value as a heuristic to dedupe the - // warning to avoid spamming too much. - var fragmentCacheKey = ""; - for (var key in fragment) { - fragmentCacheKey += key + ":" + typeof fragment[key] + ","; - } - var alreadyWarnedOnce = !!issuedWarnings[fragmentCacheKey]; - issuedWarnings[fragmentCacheKey] = true; - return alreadyWarnedOnce; - }; - } + var keyMirror = __webpack_require__(48); - var ReactFragment = { - // Wrap a keyed object in an opaque proxy that warns you if you access any - // of its properties. - create: function create(object) { - if ("production" !== process.env.NODE_ENV) { - if (typeof object !== "object" || !object || Array.isArray(object)) { - "production" !== process.env.NODE_ENV ? warning(false, "React.addons.createFragment only accepts a single object.", object) : null; - return object; - } - if (ReactElement.isValidElement(object)) { - "production" !== process.env.NODE_ENV ? warning(false, "React.addons.createFragment does not accept a ReactElement " + "without a wrapper object.") : null; - return object; - } - if (canWarnForReactFragment) { - var proxy = {}; - Object.defineProperty(proxy, fragmentKey, { - enumerable: false, - value: object - }); - Object.defineProperty(proxy, didWarnKey, { - writable: true, - enumerable: false, - value: false - }); - for (var key in object) { - proxyPropertyAccessWithWarning(proxy, key); - } - Object.preventExtensions(proxy); - return proxy; - } - } - return object; - }, - // Extract the original keyed object from the fragment opaque type. Warn if - // a plain object is passed here. - extract: function extract(fragment) { - if ("production" !== process.env.NODE_ENV) { - if (canWarnForReactFragment) { - if (!fragment[fragmentKey]) { - "production" !== process.env.NODE_ENV ? warning(didWarnForFragment(fragment), "Any use of a keyed object should be wrapped in " + "React.addons.createFragment(object) before being passed as a " + "child.") : null; - return fragment; - } - return fragment[fragmentKey]; - } - } - return fragment; - }, - // Check if this is a fragment and if so, extract the keyed object. If it - // is a fragment-like object, warn that it should be wrapped. Ignore if we - // can't determine what kind of object this is. - extractIfFragment: function extractIfFragment(fragment) { - if ("production" !== process.env.NODE_ENV) { - if (canWarnForReactFragment) { - // If it is the opaque type, return the keyed object. - if (fragment[fragmentKey]) { - return fragment[fragmentKey]; - } - // Otherwise, check each property if it has an element, if it does - // it is probably meant as a fragment, so we can warn early. Defer, - // the warning to extract. - for (var key in fragment) { - if (fragment.hasOwnProperty(key) && ReactElement.isValidElement(fragment[key])) { - // This looks like a fragment object, we should provide an - // early warning. - return ReactFragment.extract(fragment); - } - } - } - } - return fragment; - } + var PropagationPhases = keyMirror({ bubbled: null, captured: null }); + + /** + * Types of raw signals from the browser caught at the top level. + */ + var topLevelTypes = keyMirror({ + topBlur: null, + topChange: null, + topClick: null, + topCompositionEnd: null, + topCompositionStart: null, + topCompositionUpdate: null, + topContextMenu: null, + topCopy: null, + topCut: null, + topDoubleClick: null, + topDrag: null, + topDragEnd: null, + topDragEnter: null, + topDragExit: null, + topDragLeave: null, + topDragOver: null, + topDragStart: null, + topDrop: null, + topError: null, + topFocus: null, + topInput: null, + topKeyDown: null, + topKeyPress: null, + topKeyUp: null, + topLoad: null, + topMouseDown: null, + topMouseMove: null, + topMouseOut: null, + topMouseOver: null, + topMouseUp: null, + topPaste: null, + topReset: null, + topScroll: null, + topSelectionChange: null, + topSubmit: null, + topTextInput: null, + topTouchCancel: null, + topTouchEnd: null, + topTouchMove: null, + topTouchStart: null, + topWheel: null + }); + + var EventConstants = { + topLevelTypes: topLevelTypes, + PropagationPhases: PropagationPhases }; - module.exports = ReactFragment; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + module.exports = EventConstants; /***/ }, /* 41 */ @@ -7492,188 +7493,289 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * - * @providesModule traverseAllChildren + * @providesModule invariant */ "use strict"; - var ReactElement = __webpack_require__(18); - var ReactFragment = __webpack_require__(40); - var ReactInstanceHandles = __webpack_require__(23); - - var getIteratorFn = __webpack_require__(51); - var invariant = __webpack_require__(36); - var warning = __webpack_require__(37); - - var SEPARATOR = ReactInstanceHandles.SEPARATOR; - var SUBSEPARATOR = ":"; - /** - * TODO: Test that a single child and an array with one item have the same key - * pattern. + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. */ - var userProvidedKeyEscaperLookup = { - "=": "=0", - ".": "=1", - ":": "=2" - }; + var invariant = function invariant(condition, format, a, b, c, d, e, f) { + if ("production" !== process.env.NODE_ENV) { + if (format === undefined) { + throw new Error("invariant requires an error message argument"); + } + } - var userProvidedKeyEscapeRegex = /[=.:]/g; + if (!condition) { + var error; + if (format === undefined) { + error = new Error("Minified exception occurred; use the non-minified dev environment " + "for the full error message and additional helpful warnings."); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error("Invariant Violation: " + format.replace(/%s/g, function () { + return args[argIndex++]; + })); + } - var didWarnAboutMaps = false; + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } + }; - function userProvidedKeyEscaper(match) { - return userProvidedKeyEscaperLookup[match]; - } + module.exports = invariant; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) - /** - * Generate a key string that identifies a component within a set. - * - * @param {*} component A component that could contain a manual key. - * @param {number} index Index that is used if a manual key is not provided. - * @return {string} - */ - function getComponentKey(component, index) { - if (component && component.key != null) { - // Explicit key - return wrapUserProvidedKey(component.key); - } - // Implicit key determined by the index in the set - return index.toString(36); - } +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { - /** - * Escape a component key so that it is safe to use in a reactid. + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2015, Facebook, Inc. + * All rights reserved. * - * @param {*} key Component key to be escaped. - * @return {string} An escaped string. - */ - function escapeUserProvidedKey(text) { - return ("" + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper); - } - - /** - * Wrap a `key` value explicitly provided by the user to distinguish it from - * implicitly-generated keys generated by a component's index in its parent. + * 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. * - * @param {string} key Value of a user-provided `key` attribute - * @return {string} + * @providesModule ReactUpdateQueue */ - function wrapUserProvidedKey(key) { - return "$" + escapeUserProvidedKey(key); + + "use strict"; + + var ReactLifeCycle = __webpack_require__(45); + var ReactCurrentOwner = __webpack_require__(18); + var ReactElement = __webpack_require__(19); + var ReactInstanceMap = __webpack_require__(44); + var ReactUpdates = __webpack_require__(92); + + var assign = __webpack_require__(30); + var invariant = __webpack_require__(41); + var warning = __webpack_require__(39); + + function enqueueUpdate(internalInstance) { + if (internalInstance !== ReactLifeCycle.currentlyMountingInstance) { + // If we're in a componentWillMount handler, don't enqueue a rerender + // because ReactUpdates assumes we're in a browser context (which is + // wrong for server rendering) and we're about to do a render anyway. + // See bug in #1740. + ReactUpdates.enqueueUpdate(internalInstance); + } } - /** - * @param {?*} children Children tree container. - * @param {!string} nameSoFar Name of the key path so far. - * @param {!number} indexSoFar Number of children encountered until this point. - * @param {!function} callback Callback to invoke with each child found. - * @param {?*} traverseContext Used to pass information throughout the traversal - * process. - * @return {!number} The number of children in this subtree. - */ - function traverseAllChildrenImpl(children, nameSoFar, indexSoFar, callback, traverseContext) { - var type = typeof children; + function getInternalInstanceReadyForUpdate(publicInstance, callerName) { + "production" !== process.env.NODE_ENV ? invariant(ReactCurrentOwner.current == null, "%s(...): Cannot update during an existing state transition " + "(such as within `render`). Render methods should be a pure function " + "of props and state.", callerName) : invariant(ReactCurrentOwner.current == null); - if (type === "undefined" || type === "boolean") { - // All of the above are perceived as null. - children = null; + var internalInstance = ReactInstanceMap.get(publicInstance); + if (!internalInstance) { + if ("production" !== process.env.NODE_ENV) { + // Only warn when we have a callerName. Otherwise we should be silent. + // We're probably calling from enqueueCallback. We don't want to warn + // there because we already warned for the corresponding lifecycle method. + "production" !== process.env.NODE_ENV ? warning(!callerName, "%s(...): Can only update a mounted or mounting component. " + "This usually means you called %s() on an unmounted " + "component. This is a no-op.", callerName, callerName) : null; + } + return null; } - if (children === null || type === "string" || type === "number" || ReactElement.isValidElement(children)) { - callback(traverseContext, children, - // If it's the only child, treat the name as if it was wrapped in an array - // so that it's consistent if the number of children grows. - nameSoFar === "" ? SEPARATOR + getComponentKey(children, 0) : nameSoFar, indexSoFar); - return 1; + if (internalInstance === ReactLifeCycle.currentlyUnmountingInstance) { + return null; } - var child, nextName, nextIndex; - var subtreeCount = 0; // Count of children found in the current subtree. + return internalInstance; + } - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - child = children[i]; - nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + getComponentKey(child, i); - nextIndex = indexSoFar + subtreeCount; - subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); - } - } else { - var iteratorFn = getIteratorFn(children); - if (iteratorFn) { - var iterator = iteratorFn.call(children); - var step; - if (iteratorFn !== children.entries) { - var ii = 0; - while (!(step = iterator.next()).done) { - child = step.value; - nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + getComponentKey(child, ii++); - nextIndex = indexSoFar + subtreeCount; - subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); - } - } else { - if ("production" !== process.env.NODE_ENV) { - "production" !== process.env.NODE_ENV ? warning(didWarnAboutMaps, "Using Maps as children is not yet fully supported. It is an " + "experimental feature that might be removed. Convert it to a " + "sequence / iterable of keyed ReactElements instead.") : null; - didWarnAboutMaps = true; - } - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - child = entry[1]; - nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); - nextIndex = indexSoFar + subtreeCount; - subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); - } - } - } - } else if (type === "object") { - "production" !== process.env.NODE_ENV ? invariant(children.nodeType !== 1, "traverseAllChildren(...): Encountered an invalid child; DOM " + "elements are not valid children of React components.") : invariant(children.nodeType !== 1); - var fragment = ReactFragment.extract(children); - for (var key in fragment) { - if (fragment.hasOwnProperty(key)) { - child = fragment[key]; - nextName = (nameSoFar !== "" ? nameSoFar + SUBSEPARATOR : SEPARATOR) + wrapUserProvidedKey(key) + SUBSEPARATOR + getComponentKey(child, 0); - nextIndex = indexSoFar + subtreeCount; - subtreeCount += traverseAllChildrenImpl(child, nextName, nextIndex, callback, traverseContext); - } - } + /** + * ReactUpdateQueue allows for state updates to be scheduled into a later + * reconciliation step. + */ + var ReactUpdateQueue = { + + /** + * 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 enqueueCallback(publicInstance, callback) { + "production" !== process.env.NODE_ENV ? invariant(typeof callback === "function", "enqueueCallback(...): You called `setProps`, `replaceProps`, " + "`setState`, `replaceState`, or `forceUpdate` with a callback that " + "isn't callable.") : invariant(typeof callback === "function"); + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); + + // Previously we would throw an error if we didn't have an internal + // instance. Since we want to make it a no-op instead, we mirror the same + // behavior we have in other enqueue* methods. + // We also need to ignore callbacks in componentWillMount. See + // enqueueUpdates. + if (!internalInstance || internalInstance === ReactLifeCycle.currentlyMountingInstance) { + return null; } - } - return subtreeCount; - } + if (internalInstance._pendingCallbacks) { + internalInstance._pendingCallbacks.push(callback); + } else { + internalInstance._pendingCallbacks = [callback]; + } + // TODO: The callback here is ignored when setState is called from + // componentWillMount. Either fix it or disallow doing so completely in + // favor of getInitialState. Alternatively, we can disallow + // componentWillMount during server-side rendering. + enqueueUpdate(internalInstance); + }, - /** - * Traverses children that are typically specified as `props.children`, but - * might also be specified through attributes: - * - * - `traverseAllChildren(this.props.children, ...)` - * - `traverseAllChildren(this.props.leftPanelChildren, ...)` - * - * The `traverseContext` is an optional argument that is passed through the - * entire traversal. It can be used to store accumulations or anything else that - * the callback might find relevant. - * - * @param {?*} children Children tree object. - * @param {!function} callback To invoke upon traversing each child. - * @param {?*} traverseContext Context for traversal. - * @return {!number} The number of children in this subtree. - */ - function traverseAllChildren(children, callback, traverseContext) { - if (children == null) { - return 0; + enqueueCallbackInternal: function enqueueCallbackInternal(internalInstance, callback) { + "production" !== process.env.NODE_ENV ? invariant(typeof callback === "function", "enqueueCallback(...): You called `setProps`, `replaceProps`, " + "`setState`, `replaceState`, or `forceUpdate` with a callback that " + "isn't callable.") : invariant(typeof callback === "function"); + if (internalInstance._pendingCallbacks) { + internalInstance._pendingCallbacks.push(callback); + } else { + internalInstance._pendingCallbacks = [callback]; + } + enqueueUpdate(internalInstance); + }, + + /** + * 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 `shouldUpdateComponent`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @internal + */ + enqueueForceUpdate: function enqueueForceUpdate(publicInstance) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "forceUpdate"); + + if (!internalInstance) { + return; + } + + internalInstance._pendingForceUpdate = true; + + enqueueUpdate(internalInstance); + }, + + /** + * 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 enqueueReplaceState(publicInstance, completeState) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "replaceState"); + + if (!internalInstance) { + return; + } + + internalInstance._pendingStateQueue = [completeState]; + internalInstance._pendingReplaceState = true; + + enqueueUpdate(internalInstance); + }, + + /** + * 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 enqueueSetState(publicInstance, partialState) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "setState"); + + if (!internalInstance) { + return; + } + + var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); + queue.push(partialState); + + enqueueUpdate(internalInstance); + }, + + /** + * Sets a subset of the props. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialProps Subset of the next props. + * @internal + */ + enqueueSetProps: function enqueueSetProps(publicInstance, partialProps) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "setProps"); + + if (!internalInstance) { + return; + } + + "production" !== process.env.NODE_ENV ? invariant(internalInstance._isTopLevel, "setProps(...): You called `setProps` on a " + "component with a parent. This is an anti-pattern since props will " + "get reactively updated when rendered. Instead, change the owner's " + "`render` method to pass the correct value as props to the component " + "where it is created.") : invariant(internalInstance._isTopLevel); + + // Merge with the pending element if it exists, otherwise with existing + // element props. + var element = internalInstance._pendingElement || internalInstance._currentElement; + var props = assign({}, element.props, partialProps); + internalInstance._pendingElement = ReactElement.cloneAndReplaceProps(element, props); + + enqueueUpdate(internalInstance); + }, + + /** + * Replaces all of the props. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} props New props. + * @internal + */ + enqueueReplaceProps: function enqueueReplaceProps(publicInstance, props) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, "replaceProps"); + + if (!internalInstance) { + return; + } + + "production" !== process.env.NODE_ENV ? invariant(internalInstance._isTopLevel, "replaceProps(...): You called `replaceProps` on a " + "component with a parent. This is an anti-pattern since props will " + "get reactively updated when rendered. Instead, change the owner's " + "`render` method to pass the correct value as props to the component " + "where it is created.") : invariant(internalInstance._isTopLevel); + + // Merge with the pending element if it exists, otherwise with existing + // element props. + var element = internalInstance._pendingElement || internalInstance._currentElement; + internalInstance._pendingElement = ReactElement.cloneAndReplaceProps(element, props); + + enqueueUpdate(internalInstance); + }, + + enqueueElementInternal: function enqueueElementInternal(internalInstance, newElement) { + internalInstance._pendingElement = newElement; + enqueueUpdate(internalInstance); } - return traverseAllChildrenImpl(children, "", 0, callback, traverseContext); - } + }; - module.exports = traverseAllChildren; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + module.exports = ReactUpdateQueue; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 42 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { /** @@ -7708,7 +7810,7 @@ module.exports = ReactErrorUtils; /***/ }, -/* 43 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { /** @@ -7760,7 +7862,7 @@ module.exports = ReactInstanceMap; /***/ }, -/* 44 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /** @@ -7800,7 +7902,7 @@ module.exports = ReactLifeCycle; /***/ }, -/* 45 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { /** @@ -7816,7 +7918,7 @@ "use strict"; - var keyMirror = __webpack_require__(47); + var keyMirror = __webpack_require__(48); var ReactPropTypeLocations = keyMirror({ prop: null, @@ -7827,7 +7929,7 @@ module.exports = ReactPropTypeLocations; /***/ }, -/* 46 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7854,10 +7956,10 @@ } module.exports = ReactPropTypeLocationNames; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 47 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7874,7 +7976,7 @@ "use strict"; - var invariant = __webpack_require__(36); + var invariant = __webpack_require__(41); /** * Constructs an enumeration with keys equal to their value. @@ -7908,10 +8010,10 @@ }; module.exports = keyMirror; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 48 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { /** @@ -7951,7 +8053,7 @@ module.exports = keyOf; /***/ }, -/* 49 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7974,10 +8076,10 @@ } module.exports = emptyObject; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 50 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7993,8 +8095,8 @@ "use strict"; - var assign = __webpack_require__(29); - var invariant = __webpack_require__(36); + var assign = __webpack_require__(30); + var invariant = __webpack_require__(41); var autoGenerateWrapperClass = null; var genericComponentClass = null; @@ -8079,10 +8181,10 @@ }; module.exports = ReactNativeComponent; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }, -/* 51 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8127,7 +8229,7 @@ module.exports = getIteratorFn; /***/ }, -/* 52 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8144,14 +8246,14 @@ "use strict"; - var EventConstants = __webpack_require__(38); + var EventConstants = __webpack_require__(40); var EventPropagators = __webpack_require__(100); - var ExecutionEnvironment = __webpack_require__(32); - var FallbackCompositionState = __webpack_require__(104); - var SyntheticCompositionEvent = __webpack_require__(105); - var SyntheticInputEvent = __webpack_require__(106); + var ExecutionEnvironment = __webpack_require__(33); + var FallbackCompositionState = __webpack_require__(101); + var SyntheticCompositionEvent = __webpack_require__(102); + var SyntheticInputEvent = __webpack_require__(103); - var keyOf = __webpack_require__(48); + var keyOf = __webpack_require__(49); var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -8537,7 +8639,7 @@ module.exports = BeforeInputEventPlugin; /***/ }, -/* 53 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8553,16 +8655,16 @@ "use strict"; - var EventConstants = __webpack_require__(38); - var EventPluginHub = __webpack_require__(99); + var EventConstants = __webpack_require__(40); + var EventPluginHub = __webpack_require__(104); var EventPropagators = __webpack_require__(100); - var ExecutionEnvironment = __webpack_require__(32); - var ReactUpdates = __webpack_require__(91); - var SyntheticEvent = __webpack_require__(101); + var ExecutionEnvironment = __webpack_require__(33); + var ReactUpdates = __webpack_require__(92); + var SyntheticEvent = __webpack_require__(105); - var isEventSupported = __webpack_require__(102); - var isTextInputElement = __webpack_require__(103); - var keyOf = __webpack_require__(48); + var isEventSupported = __webpack_require__(106); + var isTextInputElement = __webpack_require__(107); + var keyOf = __webpack_require__(49); var topLevelTypes = EventConstants.topLevelTypes; @@ -8858,7 +8960,7 @@ module.exports = ChangeEventPlugin; /***/ }, -/* 54 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8886,7 +8988,7 @@ module.exports = ClientReactRootIndex; /***/ }, -/* 55 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8902,7 +9004,7 @@ "use strict"; - var keyOf = __webpack_require__(48); + var keyOf = __webpack_require__(49); /** * Module that is injectable into `EventPluginHub`, that specifies a @@ -8918,7 +9020,7 @@ module.exports = DefaultEventPluginOrder; /***/ }, -/* 56 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8935,12 +9037,12 @@ "use strict"; - var EventConstants = __webpack_require__(38); + var EventConstants = __webpack_require__(40); var EventPropagators = __webpack_require__(100); - var SyntheticMouseEvent = __webpack_require__(107); + var SyntheticMouseEvent = __webpack_require__(108); - var ReactMount = __webpack_require__(24); - var keyOf = __webpack_require__(48); + var ReactMount = __webpack_require__(25); + var keyOf = __webpack_require__(49); var topLevelTypes = EventConstants.topLevelTypes; var getFirstReactDOM = ReactMount.getFirstReactDOM; @@ -9039,7 +9141,7 @@ module.exports = EnterLeaveEventPlugin; /***/ }, -/* 57 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9057,8 +9159,8 @@ "use strict"; - var DOMProperty = __webpack_require__(87); - var ExecutionEnvironment = __webpack_require__(32); + var DOMProperty = __webpack_require__(88); + var ExecutionEnvironment = __webpack_require__(33); var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE; var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; @@ -9235,7 +9337,7 @@ module.exports = HTMLDOMPropertyConfig; /***/ }, -/* 58 */ +/* 59 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9252,7 +9354,7 @@ "use strict"; - var EventConstants = __webpack_require__(38); + var EventConstants = __webpack_require__(40); var emptyFunction = __webpack_require__(86); @@ -9292,7 +9394,7 @@ module.exports = MobileSafariClickEventPlugin; /***/ }, -/* 59 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9308,7 +9410,7 @@ "use strict"; - var findDOMNode = __webpack_require__(30); + var findDOMNode = __webpack_require__(31); var ReactBrowserComponentMixin = { /** @@ -9326,7 +9428,7 @@ module.exports = ReactBrowserComponentMixin; /***/ }, -/* 60 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9344,8 +9446,8 @@ "use strict"; - var ReactDOMIDOperations = __webpack_require__(66); - var ReactMount = __webpack_require__(24); + var ReactDOMIDOperations = __webpack_require__(67); + var ReactMount = __webpack_require__(25); /** * Abstracts away all functionality of the reconciler that requires knowledge of @@ -9374,7 +9476,7 @@ module.exports = ReactComponentBrowserEnvironment; /***/ }, -/* 61 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9390,10 +9492,10 @@ "use strict"; - var ReactUpdates = __webpack_require__(91); - var Transaction = __webpack_require__(110); + var ReactUpdates = __webpack_require__(92); + var Transaction = __webpack_require__(111); - var assign = __webpack_require__(29); + var assign = __webpack_require__(30); var emptyFunction = __webpack_require__(86); var RESET_BATCHED_UPDATES = { @@ -9445,126 +9547,8 @@ module.exports = ReactDefaultBatchingStrategy; -/***/ }, -/* 62 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMButton - */ - - "use strict"; - - var AutoFocusMixin = __webpack_require__(108); - var ReactBrowserComponentMixin = __webpack_require__(59); - var ReactClass = __webpack_require__(15); - var ReactElement = __webpack_require__(18); - - var keyMirror = __webpack_require__(47); - - var button = ReactElement.createFactory("button"); - - var mouseListenerNames = keyMirror({ - onClick: true, - onDoubleClick: true, - onMouseDown: true, - onMouseMove: true, - onMouseUp: true, - onClickCapture: true, - onDoubleClickCapture: true, - onMouseDownCapture: true, - onMouseMoveCapture: true, - onMouseUpCapture: true - }); - - /** - * Implements a