Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80522 views
1
/**
2
* Copyright 2013-2015, Facebook, Inc.
3
* All rights reserved.
4
*
5
* This source code is licensed under the BSD-style license found in the
6
* LICENSE file in the root directory of this source tree. An additional grant
7
* of patent rights can be found in the PATENTS file in the same directory.
8
*
9
* @providesModule React
10
*/
11
12
/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/
13
14
'use strict';
15
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");
33
34
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
'https://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
129
// shams
130
Object.create,
131
Object.freeze
132
];
133
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
'https://fb.me/react-warning-polyfills'
139
);
140
break;
141
}
142
}
143
}
144
}
145
146
React.version = '0.13.3';
147
148
module.exports = React;
149
150