react 0.13.2 → 0.14.0-alpha3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/addons.js +7 -0
- package/addons/CSSTransitionGroup.js +1 -0
- package/addons/LinkedStateMixin.js +1 -0
- package/addons/Perf.js +1 -0
- package/addons/PureRenderMixin.js +1 -0
- package/addons/TestUtils.js +1 -0
- package/addons/TransitionGroup.js +1 -0
- package/addons/batchedUpdates.js +1 -0
- package/addons/cloneWithProps.js +1 -0
- package/addons/createFragment.js +1 -0
- package/addons/renderSubtreeIntoContainer.js +1 -0
- package/addons/shallowCompare.js +1 -0
- package/addons/update.js +1 -0
- package/dist/JSXTransformer.js +3355 -1685
- package/dist/react-with-addons.js +3320 -5133
- package/dist/react-with-addons.min.js +6 -7
- package/dist/react.js +2962 -4548
- package/dist/react.min.js +5 -5
- package/lib/AutoFocusMixin.js +4 -3
- package/lib/BeforeInputEventPlugin.js +30 -118
- package/lib/CSSCore.js +12 -23
- package/lib/CSSProperty.js +4 -3
- package/lib/CSSPropertyOperations.js +14 -30
- package/lib/CallbackQueue.js +7 -10
- package/lib/ChangeEventPlugin.js +24 -88
- package/lib/ClientReactRootIndex.js +2 -2
- package/lib/DOMChildrenOperations.js +13 -33
- package/lib/DOMProperty.js +41 -67
- package/lib/DOMPropertyOperations.js +30 -51
- package/lib/Danger.js +19 -62
- package/lib/DefaultEventPluginOrder.js +2 -12
- package/lib/EnterLeaveEventPlugin.js +11 -33
- package/lib/EventConstants.js +2 -2
- package/lib/EventListener.js +11 -13
- package/lib/EventPluginHub.js +44 -47
- package/lib/EventPluginRegistry.js +18 -74
- package/lib/EventPluginUtils.js +27 -38
- package/lib/EventPropagators.js +23 -26
- package/lib/ExecutionEnvironment.js +4 -8
- package/lib/FallbackCompositionState.js +3 -3
- package/lib/HTMLDOMPropertyConfig.js +7 -19
- package/lib/LinkedStateMixin.js +3 -6
- package/lib/LinkedValueUtils.js +34 -64
- package/lib/LocalEventTrapMixin.js +9 -16
- package/lib/Object.assign.js +1 -1
- package/lib/PooledClass.js +8 -11
- package/lib/React.js +9 -129
- package/lib/ReactBrowserComponentMixin.js +9 -2
- package/lib/ReactBrowserEventEmitter.js +26 -82
- package/lib/ReactCSSTransitionGroup.js +13 -24
- package/lib/ReactCSSTransitionGroupChild.js +18 -28
- package/lib/ReactChildReconciler.js +11 -19
- package/lib/ReactChildren.js +21 -28
- package/lib/ReactClass.js +81 -234
- package/lib/ReactComponent.js +17 -33
- package/lib/ReactComponentBrowserEnvironment.js +4 -8
- package/lib/ReactComponentEnvironment.js +6 -12
- package/lib/ReactComponentWithPureRenderMixin.js +4 -5
- package/lib/ReactCompositeComponent.js +87 -311
- package/lib/ReactContext.js +2 -44
- package/lib/ReactCurrentOwner.js +1 -3
- package/lib/ReactDOM.js +4 -2
- package/lib/ReactDOMButton.js +3 -4
- package/lib/ReactDOMClient.js +85 -0
- package/lib/ReactDOMComponent.js +182 -146
- package/lib/ReactDOMForm.js +3 -3
- package/lib/ReactDOMIDOperations.js +11 -22
- package/lib/ReactDOMIframe.js +3 -3
- package/lib/ReactDOMImg.js +3 -3
- package/lib/ReactDOMInput.js +22 -35
- package/lib/ReactDOMOption.js +67 -10
- package/lib/ReactDOMSelect.js +50 -28
- package/lib/ReactDOMSelection.js +5 -20
- package/lib/ReactDOMServer.js +24 -0
- package/lib/ReactDOMTextComponent.js +17 -18
- package/lib/ReactDOMTextarea.js +15 -27
- package/lib/ReactDefaultBatchingStrategy.js +9 -13
- package/lib/ReactDefaultInjection.js +31 -40
- package/lib/ReactDefaultPerf.js +36 -69
- package/lib/ReactDefaultPerfAnalysis.js +8 -14
- package/lib/ReactElement.js +24 -57
- package/lib/ReactElementValidator.js +38 -105
- package/lib/ReactEmptyComponent.js +7 -11
- package/lib/ReactErrorUtils.js +2 -2
- package/lib/ReactEventEmitterMixin.js +3 -12
- package/lib/ReactEventListener.js +16 -38
- package/lib/ReactFragment.js +23 -54
- package/lib/ReactInjection.js +1 -1
- package/lib/ReactInputSelection.js +11 -21
- package/lib/ReactInstanceHandles.js +27 -57
- package/lib/ReactInstanceMap.js +5 -5
- package/lib/ReactIsomorphic.js +70 -0
- package/lib/ReactLifeCycle.js +1 -1
- package/lib/ReactLink.js +2 -4
- package/lib/ReactMarkupChecksum.js +5 -10
- package/lib/ReactMount.js +137 -260
- package/lib/ReactMultiChild.js +19 -45
- package/lib/ReactMultiChildUpdateTypes.js +1 -1
- package/lib/ReactNativeComponent.js +7 -11
- package/lib/ReactOwner.js +7 -24
- package/lib/ReactPerf.js +8 -12
- package/lib/ReactPropTransferer.js +4 -4
- package/lib/ReactPropTypeLocationNames.js +2 -2
- package/lib/ReactPropTypeLocations.js +1 -1
- package/lib/ReactPropTypes.js +41 -61
- package/lib/ReactReconcileTransaction.js +9 -34
- package/lib/ReactReconciler.js +9 -19
- package/lib/ReactRef.js +5 -8
- package/lib/ReactRootIndex.js +2 -2
- package/lib/ReactServerRendering.js +7 -15
- package/lib/ReactServerRenderingTransaction.js +7 -32
- package/lib/ReactStateSetters.js +6 -6
- package/lib/ReactTestUtils.js +93 -165
- package/lib/ReactTransitionChildMapping.js +5 -7
- package/lib/ReactTransitionEvents.js +5 -5
- package/lib/ReactTransitionGroup.js +30 -52
- package/lib/ReactUpdateQueue.js +27 -90
- package/lib/ReactUpdates.js +27 -79
- package/lib/ReactWithAddons.js +7 -6
- package/lib/SVGDOMPropertyConfig.js +41 -4
- package/lib/SelectEventPlugin.js +28 -29
- package/lib/ServerReactRootIndex.js +2 -2
- package/lib/SimpleEventPlugin.js +136 -128
- package/lib/SyntheticClipboardEvent.js +3 -7
- package/lib/SyntheticCompositionEvent.js +3 -9
- package/lib/SyntheticDragEvent.js +1 -1
- package/lib/SyntheticEvent.js +8 -10
- package/lib/SyntheticFocusEvent.js +1 -1
- package/lib/SyntheticInputEvent.js +3 -9
- package/lib/SyntheticKeyboardEvent.js +4 -4
- package/lib/SyntheticMouseEvent.js +8 -14
- package/lib/SyntheticTouchEvent.js +1 -1
- package/lib/SyntheticUIEvent.js +3 -3
- package/lib/SyntheticWheelEvent.js +11 -15
- package/lib/Transaction.js +12 -24
- package/lib/ViewportMetrics.js +2 -2
- package/lib/accumulateInto.js +2 -5
- package/lib/adler32.js +2 -4
- package/lib/camelize.js +4 -2
- package/lib/camelizeStyleName.js +2 -2
- package/lib/cloneWithProps.js +5 -11
- package/lib/containsNode.js +29 -16
- package/lib/createArrayFromMixed.js +17 -16
- package/lib/createFullPageComponent.js +4 -11
- package/lib/createNodesFromMarkup.js +6 -8
- package/lib/dangerousStyleValue.js +2 -3
- package/lib/emptyFunction.js +10 -4
- package/lib/emptyObject.js +1 -1
- package/lib/escapeTextContentForBrowser.js +1 -1
- package/lib/findDOMNode.js +5 -24
- package/lib/flattenChildren.js +4 -10
- package/lib/focusNode.js +2 -3
- package/lib/forEachAccumulated.js +2 -2
- package/lib/getActiveElement.js +4 -2
- package/lib/getEventCharCode.js +1 -1
- package/lib/getEventKey.js +1 -1
- package/lib/getEventModifierState.js +1 -1
- package/lib/getEventTarget.js +1 -1
- package/lib/getIteratorFn.js +2 -4
- package/lib/getMarkupWrap.js +7 -5
- package/lib/getNodeForCharacterOffset.js +1 -1
- package/lib/getTextContentAccessor.js +2 -4
- package/lib/getUnboundedScrollPosition.js +1 -1
- package/lib/hyphenate.js +3 -1
- package/lib/hyphenateStyleName.js +2 -2
- package/lib/instantiateReactComponent.js +14 -38
- package/lib/invariant.js +8 -12
- package/lib/isEventSupported.js +7 -10
- package/lib/isNode.js +4 -6
- package/lib/isTextInputElement.js +2 -4
- package/lib/isTextNode.js +3 -1
- package/lib/joinClasses.js +2 -2
- package/lib/keyMirror.js +3 -6
- package/lib/keyOf.js +4 -3
- package/lib/mapObject.js +1 -1
- package/lib/memoizeStringOnly.js +2 -2
- package/lib/onlyChild.js +2 -5
- package/lib/performance.js +2 -5
- package/lib/performanceNow.js +3 -1
- package/lib/quoteAttributeValueForBrowser.js +1 -1
- package/lib/renderSubtreeIntoContainer.js +16 -0
- package/lib/setInnerHTML.js +11 -8
- package/lib/setTextContent.js +3 -3
- package/lib/shallowCompare.js +24 -0
- package/lib/shallowEqual.js +17 -11
- package/lib/shouldUpdateReactComponent.js +3 -64
- package/lib/toArray.js +8 -19
- package/lib/traverseAllChildren.js +22 -89
- package/lib/update.js +25 -85
- package/lib/validateDOMNesting.js +363 -0
- package/lib/warning.js +17 -15
- package/package.json +3 -3
- package/lib/MobileSafariClickEventPlugin.js +0 -56
- package/lib/ReactPutListenerQueue.js +0 -54
- package/lib/cx.js +0 -52
- package/lib/getReactRootElementInContainer.js +0 -33
package/lib/React.js
CHANGED
|
@@ -9,140 +9,20 @@
|
|
|
9
9
|
* @providesModule React
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/
|
|
13
|
-
|
|
14
12
|
'use strict';
|
|
15
13
|
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var ReactClass = require("./ReactClass");
|
|
20
|
-
var ReactContext = require("./ReactContext");
|
|
21
|
-
var ReactCurrentOwner = require("./ReactCurrentOwner");
|
|
22
|
-
var ReactElement = require("./ReactElement");
|
|
23
|
-
var ReactElementValidator = require("./ReactElementValidator");
|
|
24
|
-
var ReactDOM = require("./ReactDOM");
|
|
25
|
-
var ReactDOMTextComponent = require("./ReactDOMTextComponent");
|
|
26
|
-
var ReactDefaultInjection = require("./ReactDefaultInjection");
|
|
27
|
-
var ReactInstanceHandles = require("./ReactInstanceHandles");
|
|
28
|
-
var ReactMount = require("./ReactMount");
|
|
29
|
-
var ReactPerf = require("./ReactPerf");
|
|
30
|
-
var ReactPropTypes = require("./ReactPropTypes");
|
|
31
|
-
var ReactReconciler = require("./ReactReconciler");
|
|
32
|
-
var ReactServerRendering = require("./ReactServerRendering");
|
|
14
|
+
var ReactDOMClient = require("./ReactDOMClient");
|
|
15
|
+
var ReactDOMServer = require("./ReactDOMServer");
|
|
16
|
+
var ReactIsomorphic = require("./ReactIsomorphic");
|
|
33
17
|
|
|
34
18
|
var assign = require("./Object.assign");
|
|
35
|
-
var findDOMNode = require("./findDOMNode");
|
|
36
|
-
var onlyChild = require("./onlyChild");
|
|
37
|
-
|
|
38
|
-
ReactDefaultInjection.inject();
|
|
39
|
-
|
|
40
|
-
var createElement = ReactElement.createElement;
|
|
41
|
-
var createFactory = ReactElement.createFactory;
|
|
42
|
-
var cloneElement = ReactElement.cloneElement;
|
|
43
|
-
|
|
44
|
-
if ("production" !== process.env.NODE_ENV) {
|
|
45
|
-
createElement = ReactElementValidator.createElement;
|
|
46
|
-
createFactory = ReactElementValidator.createFactory;
|
|
47
|
-
cloneElement = ReactElementValidator.cloneElement;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
var render = ReactPerf.measure('React', 'render', ReactMount.render);
|
|
51
|
-
|
|
52
|
-
var React = {
|
|
53
|
-
Children: {
|
|
54
|
-
map: ReactChildren.map,
|
|
55
|
-
forEach: ReactChildren.forEach,
|
|
56
|
-
count: ReactChildren.count,
|
|
57
|
-
only: onlyChild
|
|
58
|
-
},
|
|
59
|
-
Component: ReactComponent,
|
|
60
|
-
DOM: ReactDOM,
|
|
61
|
-
PropTypes: ReactPropTypes,
|
|
62
|
-
initializeTouchEvents: function(shouldUseTouch) {
|
|
63
|
-
EventPluginUtils.useTouchEvents = shouldUseTouch;
|
|
64
|
-
},
|
|
65
|
-
createClass: ReactClass.createClass,
|
|
66
|
-
createElement: createElement,
|
|
67
|
-
cloneElement: cloneElement,
|
|
68
|
-
createFactory: createFactory,
|
|
69
|
-
createMixin: function(mixin) {
|
|
70
|
-
// Currently a noop. Will be used to validate and trace mixins.
|
|
71
|
-
return mixin;
|
|
72
|
-
},
|
|
73
|
-
constructAndRenderComponent: ReactMount.constructAndRenderComponent,
|
|
74
|
-
constructAndRenderComponentByID: ReactMount.constructAndRenderComponentByID,
|
|
75
|
-
findDOMNode: findDOMNode,
|
|
76
|
-
render: render,
|
|
77
|
-
renderToString: ReactServerRendering.renderToString,
|
|
78
|
-
renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,
|
|
79
|
-
unmountComponentAtNode: ReactMount.unmountComponentAtNode,
|
|
80
|
-
isValidElement: ReactElement.isValidElement,
|
|
81
|
-
withContext: ReactContext.withContext,
|
|
82
|
-
|
|
83
|
-
// Hook for JSX spread, don't use this for anything else.
|
|
84
|
-
__spread: assign
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
// Inject the runtime into a devtools global hook regardless of browser.
|
|
88
|
-
// Allows for debugging when the hook is injected on the page.
|
|
89
|
-
if (
|
|
90
|
-
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
|
|
91
|
-
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {
|
|
92
|
-
__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({
|
|
93
|
-
CurrentOwner: ReactCurrentOwner,
|
|
94
|
-
InstanceHandles: ReactInstanceHandles,
|
|
95
|
-
Mount: ReactMount,
|
|
96
|
-
Reconciler: ReactReconciler,
|
|
97
|
-
TextComponent: ReactDOMTextComponent
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if ("production" !== process.env.NODE_ENV) {
|
|
102
|
-
var ExecutionEnvironment = require("./ExecutionEnvironment");
|
|
103
|
-
if (ExecutionEnvironment.canUseDOM && window.top === window.self) {
|
|
104
|
-
|
|
105
|
-
// If we're in Chrome, look for the devtools marker and provide a download
|
|
106
|
-
// link if not installed.
|
|
107
|
-
if (navigator.userAgent.indexOf('Chrome') > -1) {
|
|
108
|
-
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {
|
|
109
|
-
console.debug(
|
|
110
|
-
'Download the React DevTools for a better development experience: ' +
|
|
111
|
-
'http://fb.me/react-devtools'
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
var expectedFeatures = [
|
|
117
|
-
// shims
|
|
118
|
-
Array.isArray,
|
|
119
|
-
Array.prototype.every,
|
|
120
|
-
Array.prototype.forEach,
|
|
121
|
-
Array.prototype.indexOf,
|
|
122
|
-
Array.prototype.map,
|
|
123
|
-
Date.now,
|
|
124
|
-
Function.prototype.bind,
|
|
125
|
-
Object.keys,
|
|
126
|
-
String.prototype.split,
|
|
127
|
-
String.prototype.trim,
|
|
128
19
|
|
|
129
|
-
|
|
130
|
-
Object.create,
|
|
131
|
-
Object.freeze
|
|
132
|
-
];
|
|
20
|
+
var React = {};
|
|
133
21
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
'One or more ES5 shim/shams expected by React are not available: ' +
|
|
138
|
-
'http://fb.me/react-warning-polyfills'
|
|
139
|
-
);
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
22
|
+
assign(React, ReactIsomorphic);
|
|
23
|
+
assign(React, ReactDOMClient);
|
|
24
|
+
assign(React, ReactDOMServer);
|
|
145
25
|
|
|
146
|
-
React.version = '0.
|
|
26
|
+
React.version = '0.14.0-alpha3';
|
|
147
27
|
|
|
148
|
-
module.exports = React;
|
|
28
|
+
module.exports = React;
|
|
@@ -11,7 +11,12 @@
|
|
|
11
11
|
|
|
12
12
|
'use strict';
|
|
13
13
|
|
|
14
|
+
var ReactInstanceMap = require("./ReactInstanceMap");
|
|
15
|
+
|
|
14
16
|
var findDOMNode = require("./findDOMNode");
|
|
17
|
+
var warning = require("./warning");
|
|
18
|
+
|
|
19
|
+
var didWarnKey = '_getDOMNodeDidWarn';
|
|
15
20
|
|
|
16
21
|
var ReactBrowserComponentMixin = {
|
|
17
22
|
/**
|
|
@@ -21,9 +26,11 @@ var ReactBrowserComponentMixin = {
|
|
|
21
26
|
* @final
|
|
22
27
|
* @protected
|
|
23
28
|
*/
|
|
24
|
-
getDOMNode: function() {
|
|
29
|
+
getDOMNode: function () {
|
|
30
|
+
'production' !== process.env.NODE_ENV ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'React.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined;
|
|
31
|
+
this.constructor[didWarnKey] = true;
|
|
25
32
|
return findDOMNode(this);
|
|
26
33
|
}
|
|
27
34
|
};
|
|
28
35
|
|
|
29
|
-
module.exports = ReactBrowserComponentMixin;
|
|
36
|
+
module.exports = ReactBrowserComponentMixin;
|
|
@@ -159,10 +159,8 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
159
159
|
/**
|
|
160
160
|
* @param {object} ReactEventListener
|
|
161
161
|
*/
|
|
162
|
-
injectReactEventListener: function(ReactEventListener) {
|
|
163
|
-
ReactEventListener.setHandleTopLevel(
|
|
164
|
-
ReactBrowserEventEmitter.handleTopLevel
|
|
165
|
-
);
|
|
162
|
+
injectReactEventListener: function (ReactEventListener) {
|
|
163
|
+
ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);
|
|
166
164
|
ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;
|
|
167
165
|
}
|
|
168
166
|
},
|
|
@@ -172,7 +170,7 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
172
170
|
*
|
|
173
171
|
* @param {boolean} enabled True if callbacks should be enabled.
|
|
174
172
|
*/
|
|
175
|
-
setEnabled: function(enabled) {
|
|
173
|
+
setEnabled: function (enabled) {
|
|
176
174
|
if (ReactBrowserEventEmitter.ReactEventListener) {
|
|
177
175
|
ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);
|
|
178
176
|
}
|
|
@@ -181,10 +179,8 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
181
179
|
/**
|
|
182
180
|
* @return {boolean} True if callbacks are enabled.
|
|
183
181
|
*/
|
|
184
|
-
isEnabled: function() {
|
|
185
|
-
return !!(
|
|
186
|
-
(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled())
|
|
187
|
-
);
|
|
182
|
+
isEnabled: function () {
|
|
183
|
+
return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());
|
|
188
184
|
},
|
|
189
185
|
|
|
190
186
|
/**
|
|
@@ -208,93 +204,49 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
208
204
|
* @param {string} registrationName Name of listener (e.g. `onClick`).
|
|
209
205
|
* @param {object} contentDocumentHandle Document which owns the container
|
|
210
206
|
*/
|
|
211
|
-
listenTo: function(registrationName, contentDocumentHandle) {
|
|
207
|
+
listenTo: function (registrationName, contentDocumentHandle) {
|
|
212
208
|
var mountAt = contentDocumentHandle;
|
|
213
209
|
var isListening = getListeningForDocument(mountAt);
|
|
214
|
-
var dependencies = EventPluginRegistry.
|
|
215
|
-
registrationNameDependencies[registrationName];
|
|
210
|
+
var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];
|
|
216
211
|
|
|
217
212
|
var topLevelTypes = EventConstants.topLevelTypes;
|
|
218
|
-
for (var i = 0
|
|
213
|
+
for (var i = 0; i < dependencies.length; i++) {
|
|
219
214
|
var dependency = dependencies[i];
|
|
220
|
-
if (!(
|
|
221
|
-
(isListening.hasOwnProperty(dependency) && isListening[dependency])
|
|
222
|
-
)) {
|
|
215
|
+
if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
|
|
223
216
|
if (dependency === topLevelTypes.topWheel) {
|
|
224
217
|
if (isEventSupported('wheel')) {
|
|
225
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
226
|
-
topLevelTypes.topWheel,
|
|
227
|
-
'wheel',
|
|
228
|
-
mountAt
|
|
229
|
-
);
|
|
218
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);
|
|
230
219
|
} else if (isEventSupported('mousewheel')) {
|
|
231
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
232
|
-
topLevelTypes.topWheel,
|
|
233
|
-
'mousewheel',
|
|
234
|
-
mountAt
|
|
235
|
-
);
|
|
220
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);
|
|
236
221
|
} else {
|
|
237
222
|
// Firefox needs to capture a different mouse scroll event.
|
|
238
223
|
// @see http://www.quirksmode.org/dom/events/tests/scroll.html
|
|
239
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
240
|
-
topLevelTypes.topWheel,
|
|
241
|
-
'DOMMouseScroll',
|
|
242
|
-
mountAt
|
|
243
|
-
);
|
|
224
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);
|
|
244
225
|
}
|
|
245
226
|
} else if (dependency === topLevelTypes.topScroll) {
|
|
246
227
|
|
|
247
228
|
if (isEventSupported('scroll', true)) {
|
|
248
|
-
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
|
|
249
|
-
topLevelTypes.topScroll,
|
|
250
|
-
'scroll',
|
|
251
|
-
mountAt
|
|
252
|
-
);
|
|
229
|
+
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);
|
|
253
230
|
} else {
|
|
254
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
255
|
-
topLevelTypes.topScroll,
|
|
256
|
-
'scroll',
|
|
257
|
-
ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE
|
|
258
|
-
);
|
|
231
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);
|
|
259
232
|
}
|
|
260
|
-
} else if (dependency === topLevelTypes.topFocus ||
|
|
261
|
-
dependency === topLevelTypes.topBlur) {
|
|
233
|
+
} else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {
|
|
262
234
|
|
|
263
235
|
if (isEventSupported('focus', true)) {
|
|
264
|
-
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
|
|
265
|
-
|
|
266
|
-
'focus',
|
|
267
|
-
mountAt
|
|
268
|
-
);
|
|
269
|
-
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
|
|
270
|
-
topLevelTypes.topBlur,
|
|
271
|
-
'blur',
|
|
272
|
-
mountAt
|
|
273
|
-
);
|
|
236
|
+
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);
|
|
237
|
+
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);
|
|
274
238
|
} else if (isEventSupported('focusin')) {
|
|
275
239
|
// IE has `focusin` and `focusout` events which bubble.
|
|
276
240
|
// @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html
|
|
277
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
278
|
-
|
|
279
|
-
'focusin',
|
|
280
|
-
mountAt
|
|
281
|
-
);
|
|
282
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
283
|
-
topLevelTypes.topBlur,
|
|
284
|
-
'focusout',
|
|
285
|
-
mountAt
|
|
286
|
-
);
|
|
241
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);
|
|
242
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);
|
|
287
243
|
}
|
|
288
244
|
|
|
289
245
|
// to make sure blur and focus event listeners are only attached once
|
|
290
246
|
isListening[topLevelTypes.topBlur] = true;
|
|
291
247
|
isListening[topLevelTypes.topFocus] = true;
|
|
292
248
|
} else if (topEventMapping.hasOwnProperty(dependency)) {
|
|
293
|
-
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
294
|
-
dependency,
|
|
295
|
-
topEventMapping[dependency],
|
|
296
|
-
mountAt
|
|
297
|
-
);
|
|
249
|
+
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);
|
|
298
250
|
}
|
|
299
251
|
|
|
300
252
|
isListening[dependency] = true;
|
|
@@ -302,20 +254,12 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
302
254
|
}
|
|
303
255
|
},
|
|
304
256
|
|
|
305
|
-
trapBubbledEvent: function(topLevelType, handlerBaseName, handle) {
|
|
306
|
-
return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
|
|
307
|
-
topLevelType,
|
|
308
|
-
handlerBaseName,
|
|
309
|
-
handle
|
|
310
|
-
);
|
|
257
|
+
trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {
|
|
258
|
+
return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);
|
|
311
259
|
},
|
|
312
260
|
|
|
313
|
-
trapCapturedEvent: function(topLevelType, handlerBaseName, handle) {
|
|
314
|
-
return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
|
|
315
|
-
topLevelType,
|
|
316
|
-
handlerBaseName,
|
|
317
|
-
handle
|
|
318
|
-
);
|
|
261
|
+
trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {
|
|
262
|
+
return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);
|
|
319
263
|
},
|
|
320
264
|
|
|
321
265
|
/**
|
|
@@ -326,7 +270,7 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
326
270
|
*
|
|
327
271
|
* @see http://www.quirksmode.org/dom/events/scroll.html
|
|
328
272
|
*/
|
|
329
|
-
ensureScrollValueMonitoring: function() {
|
|
273
|
+
ensureScrollValueMonitoring: function () {
|
|
330
274
|
if (!isMonitoringScrollValue) {
|
|
331
275
|
var refresh = ViewportMetrics.refreshScrollValues;
|
|
332
276
|
ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);
|
|
@@ -348,4 +292,4 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
|
|
|
348
292
|
|
|
349
293
|
});
|
|
350
294
|
|
|
351
|
-
module.exports = ReactBrowserEventEmitter;
|
|
295
|
+
module.exports = ReactBrowserEventEmitter;
|
|
@@ -16,12 +16,8 @@ var React = require("./React");
|
|
|
16
16
|
|
|
17
17
|
var assign = require("./Object.assign");
|
|
18
18
|
|
|
19
|
-
var ReactTransitionGroup = React.createFactory(
|
|
20
|
-
|
|
21
|
-
);
|
|
22
|
-
var ReactCSSTransitionGroupChild = React.createFactory(
|
|
23
|
-
require("./ReactCSSTransitionGroupChild")
|
|
24
|
-
);
|
|
19
|
+
var ReactTransitionGroup = React.createFactory(require("./ReactTransitionGroup"));
|
|
20
|
+
var ReactCSSTransitionGroupChild = React.createFactory(require("./ReactCSSTransitionGroupChild"));
|
|
25
21
|
|
|
26
22
|
var ReactCSSTransitionGroup = React.createClass({
|
|
27
23
|
displayName: 'ReactCSSTransitionGroup',
|
|
@@ -33,7 +29,7 @@ var ReactCSSTransitionGroup = React.createClass({
|
|
|
33
29
|
transitionLeave: React.PropTypes.bool
|
|
34
30
|
},
|
|
35
31
|
|
|
36
|
-
getDefaultProps: function() {
|
|
32
|
+
getDefaultProps: function () {
|
|
37
33
|
return {
|
|
38
34
|
transitionAppear: false,
|
|
39
35
|
transitionEnter: true,
|
|
@@ -41,28 +37,21 @@ var ReactCSSTransitionGroup = React.createClass({
|
|
|
41
37
|
};
|
|
42
38
|
},
|
|
43
39
|
|
|
44
|
-
_wrapChild: function(child) {
|
|
40
|
+
_wrapChild: function (child) {
|
|
45
41
|
// We need to provide this childFactory so that
|
|
46
42
|
// ReactCSSTransitionGroupChild can receive updates to name, enter, and
|
|
47
43
|
// leave while it is leaving.
|
|
48
|
-
return ReactCSSTransitionGroupChild(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
},
|
|
55
|
-
child
|
|
56
|
-
);
|
|
44
|
+
return ReactCSSTransitionGroupChild({
|
|
45
|
+
name: this.props.transitionName,
|
|
46
|
+
appear: this.props.transitionAppear,
|
|
47
|
+
enter: this.props.transitionEnter,
|
|
48
|
+
leave: this.props.transitionLeave
|
|
49
|
+
}, child);
|
|
57
50
|
},
|
|
58
51
|
|
|
59
|
-
render: function() {
|
|
60
|
-
return (
|
|
61
|
-
ReactTransitionGroup(
|
|
62
|
-
assign({}, this.props, {childFactory: this._wrapChild})
|
|
63
|
-
)
|
|
64
|
-
);
|
|
52
|
+
render: function () {
|
|
53
|
+
return ReactTransitionGroup(assign({}, this.props, { childFactory: this._wrapChild }));
|
|
65
54
|
}
|
|
66
55
|
});
|
|
67
56
|
|
|
68
|
-
module.exports = ReactCSSTransitionGroup;
|
|
57
|
+
module.exports = ReactCSSTransitionGroup;
|
|
@@ -29,34 +29,26 @@ var NO_EVENT_TIMEOUT = 5000;
|
|
|
29
29
|
|
|
30
30
|
var noEventListener = null;
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
("production" !== process.env.NODE_ENV ? warning(
|
|
36
|
-
false,
|
|
37
|
-
'transition(): tried to perform an animation without ' +
|
|
38
|
-
'an animationend or transitionend event after timeout (' +
|
|
39
|
-
'%sms). You should either disable this ' +
|
|
40
|
-
'transition in JS or add a CSS animation/transition.',
|
|
41
|
-
NO_EVENT_TIMEOUT
|
|
42
|
-
) : null);
|
|
32
|
+
if ('production' !== process.env.NODE_ENV) {
|
|
33
|
+
noEventListener = function () {
|
|
34
|
+
'production' !== process.env.NODE_ENV ? warning(false, 'transition(): tried to perform an animation without ' + 'an animationend or transitionend event after timeout (' + '%sms). You should either disable this ' + 'transition in JS or add a CSS animation/transition.', NO_EVENT_TIMEOUT) : undefined;
|
|
43
35
|
};
|
|
44
36
|
}
|
|
45
37
|
|
|
46
38
|
var ReactCSSTransitionGroupChild = React.createClass({
|
|
47
39
|
displayName: 'ReactCSSTransitionGroupChild',
|
|
48
40
|
|
|
49
|
-
transition: function(animationType, finishCallback) {
|
|
50
|
-
var node =
|
|
41
|
+
transition: function (animationType, finishCallback) {
|
|
42
|
+
var node = React.findDOMNode(this);
|
|
51
43
|
var className = this.props.name + '-' + animationType;
|
|
52
44
|
var activeClassName = className + '-active';
|
|
53
45
|
var noEventTimeout = null;
|
|
54
46
|
|
|
55
|
-
var endListener = function(e) {
|
|
47
|
+
var endListener = function (e) {
|
|
56
48
|
if (e && e.target !== node) {
|
|
57
49
|
return;
|
|
58
50
|
}
|
|
59
|
-
if (
|
|
51
|
+
if ('production' !== process.env.NODE_ENV) {
|
|
60
52
|
clearTimeout(noEventTimeout);
|
|
61
53
|
}
|
|
62
54
|
|
|
@@ -79,12 +71,12 @@ var ReactCSSTransitionGroupChild = React.createClass({
|
|
|
79
71
|
// Need to do this to actually trigger a transition.
|
|
80
72
|
this.queueClass(activeClassName);
|
|
81
73
|
|
|
82
|
-
if (
|
|
74
|
+
if ('production' !== process.env.NODE_ENV) {
|
|
83
75
|
noEventTimeout = setTimeout(noEventListener, NO_EVENT_TIMEOUT);
|
|
84
76
|
}
|
|
85
77
|
},
|
|
86
78
|
|
|
87
|
-
queueClass: function(className) {
|
|
79
|
+
queueClass: function (className) {
|
|
88
80
|
this.classNameQueue.push(className);
|
|
89
81
|
|
|
90
82
|
if (!this.timeout) {
|
|
@@ -92,27 +84,25 @@ var ReactCSSTransitionGroupChild = React.createClass({
|
|
|
92
84
|
}
|
|
93
85
|
},
|
|
94
86
|
|
|
95
|
-
flushClassNameQueue: function() {
|
|
87
|
+
flushClassNameQueue: function () {
|
|
96
88
|
if (this.isMounted()) {
|
|
97
|
-
this.classNameQueue.forEach(
|
|
98
|
-
CSSCore.addClass.bind(CSSCore, this.getDOMNode())
|
|
99
|
-
);
|
|
89
|
+
this.classNameQueue.forEach(CSSCore.addClass.bind(CSSCore, React.findDOMNode(this)));
|
|
100
90
|
}
|
|
101
91
|
this.classNameQueue.length = 0;
|
|
102
92
|
this.timeout = null;
|
|
103
93
|
},
|
|
104
94
|
|
|
105
|
-
componentWillMount: function() {
|
|
95
|
+
componentWillMount: function () {
|
|
106
96
|
this.classNameQueue = [];
|
|
107
97
|
},
|
|
108
98
|
|
|
109
|
-
componentWillUnmount: function() {
|
|
99
|
+
componentWillUnmount: function () {
|
|
110
100
|
if (this.timeout) {
|
|
111
101
|
clearTimeout(this.timeout);
|
|
112
102
|
}
|
|
113
103
|
},
|
|
114
104
|
|
|
115
|
-
componentWillAppear: function(done) {
|
|
105
|
+
componentWillAppear: function (done) {
|
|
116
106
|
if (this.props.appear) {
|
|
117
107
|
this.transition('appear', done);
|
|
118
108
|
} else {
|
|
@@ -120,7 +110,7 @@ var ReactCSSTransitionGroupChild = React.createClass({
|
|
|
120
110
|
}
|
|
121
111
|
},
|
|
122
112
|
|
|
123
|
-
componentWillEnter: function(done) {
|
|
113
|
+
componentWillEnter: function (done) {
|
|
124
114
|
if (this.props.enter) {
|
|
125
115
|
this.transition('enter', done);
|
|
126
116
|
} else {
|
|
@@ -128,7 +118,7 @@ var ReactCSSTransitionGroupChild = React.createClass({
|
|
|
128
118
|
}
|
|
129
119
|
},
|
|
130
120
|
|
|
131
|
-
componentWillLeave: function(done) {
|
|
121
|
+
componentWillLeave: function (done) {
|
|
132
122
|
if (this.props.leave) {
|
|
133
123
|
this.transition('leave', done);
|
|
134
124
|
} else {
|
|
@@ -136,9 +126,9 @@ var ReactCSSTransitionGroupChild = React.createClass({
|
|
|
136
126
|
}
|
|
137
127
|
},
|
|
138
128
|
|
|
139
|
-
render: function() {
|
|
129
|
+
render: function () {
|
|
140
130
|
return onlyChild(this.props.children);
|
|
141
131
|
}
|
|
142
132
|
});
|
|
143
133
|
|
|
144
|
-
module.exports = ReactCSSTransitionGroupChild;
|
|
134
|
+
module.exports = ReactCSSTransitionGroupChild;
|