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.
Files changed (197) hide show
  1. package/README.md +1 -1
  2. package/addons.js +7 -0
  3. package/addons/CSSTransitionGroup.js +1 -0
  4. package/addons/LinkedStateMixin.js +1 -0
  5. package/addons/Perf.js +1 -0
  6. package/addons/PureRenderMixin.js +1 -0
  7. package/addons/TestUtils.js +1 -0
  8. package/addons/TransitionGroup.js +1 -0
  9. package/addons/batchedUpdates.js +1 -0
  10. package/addons/cloneWithProps.js +1 -0
  11. package/addons/createFragment.js +1 -0
  12. package/addons/renderSubtreeIntoContainer.js +1 -0
  13. package/addons/shallowCompare.js +1 -0
  14. package/addons/update.js +1 -0
  15. package/dist/JSXTransformer.js +3355 -1685
  16. package/dist/react-with-addons.js +3320 -5133
  17. package/dist/react-with-addons.min.js +6 -7
  18. package/dist/react.js +2962 -4548
  19. package/dist/react.min.js +5 -5
  20. package/lib/AutoFocusMixin.js +4 -3
  21. package/lib/BeforeInputEventPlugin.js +30 -118
  22. package/lib/CSSCore.js +12 -23
  23. package/lib/CSSProperty.js +4 -3
  24. package/lib/CSSPropertyOperations.js +14 -30
  25. package/lib/CallbackQueue.js +7 -10
  26. package/lib/ChangeEventPlugin.js +24 -88
  27. package/lib/ClientReactRootIndex.js +2 -2
  28. package/lib/DOMChildrenOperations.js +13 -33
  29. package/lib/DOMProperty.js +41 -67
  30. package/lib/DOMPropertyOperations.js +30 -51
  31. package/lib/Danger.js +19 -62
  32. package/lib/DefaultEventPluginOrder.js +2 -12
  33. package/lib/EnterLeaveEventPlugin.js +11 -33
  34. package/lib/EventConstants.js +2 -2
  35. package/lib/EventListener.js +11 -13
  36. package/lib/EventPluginHub.js +44 -47
  37. package/lib/EventPluginRegistry.js +18 -74
  38. package/lib/EventPluginUtils.js +27 -38
  39. package/lib/EventPropagators.js +23 -26
  40. package/lib/ExecutionEnvironment.js +4 -8
  41. package/lib/FallbackCompositionState.js +3 -3
  42. package/lib/HTMLDOMPropertyConfig.js +7 -19
  43. package/lib/LinkedStateMixin.js +3 -6
  44. package/lib/LinkedValueUtils.js +34 -64
  45. package/lib/LocalEventTrapMixin.js +9 -16
  46. package/lib/Object.assign.js +1 -1
  47. package/lib/PooledClass.js +8 -11
  48. package/lib/React.js +9 -129
  49. package/lib/ReactBrowserComponentMixin.js +9 -2
  50. package/lib/ReactBrowserEventEmitter.js +26 -82
  51. package/lib/ReactCSSTransitionGroup.js +13 -24
  52. package/lib/ReactCSSTransitionGroupChild.js +18 -28
  53. package/lib/ReactChildReconciler.js +11 -19
  54. package/lib/ReactChildren.js +21 -28
  55. package/lib/ReactClass.js +81 -234
  56. package/lib/ReactComponent.js +17 -33
  57. package/lib/ReactComponentBrowserEnvironment.js +4 -8
  58. package/lib/ReactComponentEnvironment.js +6 -12
  59. package/lib/ReactComponentWithPureRenderMixin.js +4 -5
  60. package/lib/ReactCompositeComponent.js +87 -311
  61. package/lib/ReactContext.js +2 -44
  62. package/lib/ReactCurrentOwner.js +1 -3
  63. package/lib/ReactDOM.js +4 -2
  64. package/lib/ReactDOMButton.js +3 -4
  65. package/lib/ReactDOMClient.js +85 -0
  66. package/lib/ReactDOMComponent.js +182 -146
  67. package/lib/ReactDOMForm.js +3 -3
  68. package/lib/ReactDOMIDOperations.js +11 -22
  69. package/lib/ReactDOMIframe.js +3 -3
  70. package/lib/ReactDOMImg.js +3 -3
  71. package/lib/ReactDOMInput.js +22 -35
  72. package/lib/ReactDOMOption.js +67 -10
  73. package/lib/ReactDOMSelect.js +50 -28
  74. package/lib/ReactDOMSelection.js +5 -20
  75. package/lib/ReactDOMServer.js +24 -0
  76. package/lib/ReactDOMTextComponent.js +17 -18
  77. package/lib/ReactDOMTextarea.js +15 -27
  78. package/lib/ReactDefaultBatchingStrategy.js +9 -13
  79. package/lib/ReactDefaultInjection.js +31 -40
  80. package/lib/ReactDefaultPerf.js +36 -69
  81. package/lib/ReactDefaultPerfAnalysis.js +8 -14
  82. package/lib/ReactElement.js +24 -57
  83. package/lib/ReactElementValidator.js +38 -105
  84. package/lib/ReactEmptyComponent.js +7 -11
  85. package/lib/ReactErrorUtils.js +2 -2
  86. package/lib/ReactEventEmitterMixin.js +3 -12
  87. package/lib/ReactEventListener.js +16 -38
  88. package/lib/ReactFragment.js +23 -54
  89. package/lib/ReactInjection.js +1 -1
  90. package/lib/ReactInputSelection.js +11 -21
  91. package/lib/ReactInstanceHandles.js +27 -57
  92. package/lib/ReactInstanceMap.js +5 -5
  93. package/lib/ReactIsomorphic.js +70 -0
  94. package/lib/ReactLifeCycle.js +1 -1
  95. package/lib/ReactLink.js +2 -4
  96. package/lib/ReactMarkupChecksum.js +5 -10
  97. package/lib/ReactMount.js +137 -260
  98. package/lib/ReactMultiChild.js +19 -45
  99. package/lib/ReactMultiChildUpdateTypes.js +1 -1
  100. package/lib/ReactNativeComponent.js +7 -11
  101. package/lib/ReactOwner.js +7 -24
  102. package/lib/ReactPerf.js +8 -12
  103. package/lib/ReactPropTransferer.js +4 -4
  104. package/lib/ReactPropTypeLocationNames.js +2 -2
  105. package/lib/ReactPropTypeLocations.js +1 -1
  106. package/lib/ReactPropTypes.js +41 -61
  107. package/lib/ReactReconcileTransaction.js +9 -34
  108. package/lib/ReactReconciler.js +9 -19
  109. package/lib/ReactRef.js +5 -8
  110. package/lib/ReactRootIndex.js +2 -2
  111. package/lib/ReactServerRendering.js +7 -15
  112. package/lib/ReactServerRenderingTransaction.js +7 -32
  113. package/lib/ReactStateSetters.js +6 -6
  114. package/lib/ReactTestUtils.js +93 -165
  115. package/lib/ReactTransitionChildMapping.js +5 -7
  116. package/lib/ReactTransitionEvents.js +5 -5
  117. package/lib/ReactTransitionGroup.js +30 -52
  118. package/lib/ReactUpdateQueue.js +27 -90
  119. package/lib/ReactUpdates.js +27 -79
  120. package/lib/ReactWithAddons.js +7 -6
  121. package/lib/SVGDOMPropertyConfig.js +41 -4
  122. package/lib/SelectEventPlugin.js +28 -29
  123. package/lib/ServerReactRootIndex.js +2 -2
  124. package/lib/SimpleEventPlugin.js +136 -128
  125. package/lib/SyntheticClipboardEvent.js +3 -7
  126. package/lib/SyntheticCompositionEvent.js +3 -9
  127. package/lib/SyntheticDragEvent.js +1 -1
  128. package/lib/SyntheticEvent.js +8 -10
  129. package/lib/SyntheticFocusEvent.js +1 -1
  130. package/lib/SyntheticInputEvent.js +3 -9
  131. package/lib/SyntheticKeyboardEvent.js +4 -4
  132. package/lib/SyntheticMouseEvent.js +8 -14
  133. package/lib/SyntheticTouchEvent.js +1 -1
  134. package/lib/SyntheticUIEvent.js +3 -3
  135. package/lib/SyntheticWheelEvent.js +11 -15
  136. package/lib/Transaction.js +12 -24
  137. package/lib/ViewportMetrics.js +2 -2
  138. package/lib/accumulateInto.js +2 -5
  139. package/lib/adler32.js +2 -4
  140. package/lib/camelize.js +4 -2
  141. package/lib/camelizeStyleName.js +2 -2
  142. package/lib/cloneWithProps.js +5 -11
  143. package/lib/containsNode.js +29 -16
  144. package/lib/createArrayFromMixed.js +17 -16
  145. package/lib/createFullPageComponent.js +4 -11
  146. package/lib/createNodesFromMarkup.js +6 -8
  147. package/lib/dangerousStyleValue.js +2 -3
  148. package/lib/emptyFunction.js +10 -4
  149. package/lib/emptyObject.js +1 -1
  150. package/lib/escapeTextContentForBrowser.js +1 -1
  151. package/lib/findDOMNode.js +5 -24
  152. package/lib/flattenChildren.js +4 -10
  153. package/lib/focusNode.js +2 -3
  154. package/lib/forEachAccumulated.js +2 -2
  155. package/lib/getActiveElement.js +4 -2
  156. package/lib/getEventCharCode.js +1 -1
  157. package/lib/getEventKey.js +1 -1
  158. package/lib/getEventModifierState.js +1 -1
  159. package/lib/getEventTarget.js +1 -1
  160. package/lib/getIteratorFn.js +2 -4
  161. package/lib/getMarkupWrap.js +7 -5
  162. package/lib/getNodeForCharacterOffset.js +1 -1
  163. package/lib/getTextContentAccessor.js +2 -4
  164. package/lib/getUnboundedScrollPosition.js +1 -1
  165. package/lib/hyphenate.js +3 -1
  166. package/lib/hyphenateStyleName.js +2 -2
  167. package/lib/instantiateReactComponent.js +14 -38
  168. package/lib/invariant.js +8 -12
  169. package/lib/isEventSupported.js +7 -10
  170. package/lib/isNode.js +4 -6
  171. package/lib/isTextInputElement.js +2 -4
  172. package/lib/isTextNode.js +3 -1
  173. package/lib/joinClasses.js +2 -2
  174. package/lib/keyMirror.js +3 -6
  175. package/lib/keyOf.js +4 -3
  176. package/lib/mapObject.js +1 -1
  177. package/lib/memoizeStringOnly.js +2 -2
  178. package/lib/onlyChild.js +2 -5
  179. package/lib/performance.js +2 -5
  180. package/lib/performanceNow.js +3 -1
  181. package/lib/quoteAttributeValueForBrowser.js +1 -1
  182. package/lib/renderSubtreeIntoContainer.js +16 -0
  183. package/lib/setInnerHTML.js +11 -8
  184. package/lib/setTextContent.js +3 -3
  185. package/lib/shallowCompare.js +24 -0
  186. package/lib/shallowEqual.js +17 -11
  187. package/lib/shouldUpdateReactComponent.js +3 -64
  188. package/lib/toArray.js +8 -19
  189. package/lib/traverseAllChildren.js +22 -89
  190. package/lib/update.js +25 -85
  191. package/lib/validateDOMNesting.js +363 -0
  192. package/lib/warning.js +17 -15
  193. package/package.json +3 -3
  194. package/lib/MobileSafariClickEventPlugin.js +0 -56
  195. package/lib/ReactPutListenerQueue.js +0 -54
  196. package/lib/cx.js +0 -52
  197. 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 EventPluginUtils = require("./EventPluginUtils");
17
- var ReactChildren = require("./ReactChildren");
18
- var ReactComponent = require("./ReactComponent");
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
- // shams
130
- Object.create,
131
- Object.freeze
132
- ];
20
+ var React = {};
133
21
 
134
- for (var i = 0; i < expectedFeatures.length; i++) {
135
- if (!expectedFeatures[i]) {
136
- console.error(
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.13.2';
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, l = dependencies.length; i < l; i++) {
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
- topLevelTypes.topFocus,
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
- topLevelTypes.topFocus,
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
- require("./ReactTransitionGroup")
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
- name: this.props.transitionName,
51
- appear: this.props.transitionAppear,
52
- enter: this.props.transitionEnter,
53
- leave: this.props.transitionLeave
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
- if ("production" !== process.env.NODE_ENV) {
34
- noEventListener = function() {
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 = this.getDOMNode();
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 ("production" !== process.env.NODE_ENV) {
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 ("production" !== process.env.NODE_ENV) {
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;