Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81155 views
1
/**
2
* Copyright 2013-2014, 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 ReactDefaultInjection
10
*/
11
12
"use strict";
13
14
var BeforeInputEventPlugin = require('BeforeInputEventPlugin');
15
var ChangeEventPlugin = require('ChangeEventPlugin');
16
var ClientReactRootIndex = require('ClientReactRootIndex');
17
var CompositionEventPlugin = require('CompositionEventPlugin');
18
var DefaultEventPluginOrder = require('DefaultEventPluginOrder');
19
var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');
20
var ExecutionEnvironment = require('ExecutionEnvironment');
21
var HTMLDOMPropertyConfig = require('HTMLDOMPropertyConfig');
22
var MobileSafariClickEventPlugin = require('MobileSafariClickEventPlugin');
23
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
24
var ReactComponentBrowserEnvironment =
25
require('ReactComponentBrowserEnvironment');
26
var ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');
27
var ReactDOMComponent = require('ReactDOMComponent');
28
var ReactDOMButton = require('ReactDOMButton');
29
var ReactDOMForm = require('ReactDOMForm');
30
var ReactDOMImg = require('ReactDOMImg');
31
var ReactDOMInput = require('ReactDOMInput');
32
var ReactDOMOption = require('ReactDOMOption');
33
var ReactDOMSelect = require('ReactDOMSelect');
34
var ReactDOMTextarea = require('ReactDOMTextarea');
35
var ReactEventListener = require('ReactEventListener');
36
var ReactInjection = require('ReactInjection');
37
var ReactInstanceHandles = require('ReactInstanceHandles');
38
var ReactMount = require('ReactMount');
39
var SelectEventPlugin = require('SelectEventPlugin');
40
var ServerReactRootIndex = require('ServerReactRootIndex');
41
var SimpleEventPlugin = require('SimpleEventPlugin');
42
var SVGDOMPropertyConfig = require('SVGDOMPropertyConfig');
43
44
var createFullPageComponent = require('createFullPageComponent');
45
46
function inject() {
47
ReactInjection.EventEmitter.injectReactEventListener(
48
ReactEventListener
49
);
50
51
/**
52
* Inject modules for resolving DOM hierarchy and plugin ordering.
53
*/
54
ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);
55
ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);
56
ReactInjection.EventPluginHub.injectMount(ReactMount);
57
58
/**
59
* Some important event plugins included by default (without having to require
60
* them).
61
*/
62
ReactInjection.EventPluginHub.injectEventPluginsByName({
63
SimpleEventPlugin: SimpleEventPlugin,
64
EnterLeaveEventPlugin: EnterLeaveEventPlugin,
65
ChangeEventPlugin: ChangeEventPlugin,
66
CompositionEventPlugin: CompositionEventPlugin,
67
MobileSafariClickEventPlugin: MobileSafariClickEventPlugin,
68
SelectEventPlugin: SelectEventPlugin,
69
BeforeInputEventPlugin: BeforeInputEventPlugin
70
});
71
72
ReactInjection.NativeComponent.injectGenericComponentClass(
73
ReactDOMComponent
74
);
75
76
ReactInjection.NativeComponent.injectComponentClasses({
77
'button': ReactDOMButton,
78
'form': ReactDOMForm,
79
'img': ReactDOMImg,
80
'input': ReactDOMInput,
81
'option': ReactDOMOption,
82
'select': ReactDOMSelect,
83
'textarea': ReactDOMTextarea,
84
85
'html': createFullPageComponent('html'),
86
'head': createFullPageComponent('head'),
87
'body': createFullPageComponent('body')
88
});
89
90
// This needs to happen after createFullPageComponent() otherwise the mixin
91
// gets double injected.
92
ReactInjection.CompositeComponent.injectMixin(ReactBrowserComponentMixin);
93
94
ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);
95
ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);
96
97
ReactInjection.EmptyComponent.injectEmptyComponent('noscript');
98
99
ReactInjection.Updates.injectReconcileTransaction(
100
ReactComponentBrowserEnvironment.ReactReconcileTransaction
101
);
102
ReactInjection.Updates.injectBatchingStrategy(
103
ReactDefaultBatchingStrategy
104
);
105
106
ReactInjection.RootIndex.injectCreateReactRootIndex(
107
ExecutionEnvironment.canUseDOM ?
108
ClientReactRootIndex.createReactRootIndex :
109
ServerReactRootIndex.createReactRootIndex
110
);
111
112
ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);
113
114
if (__DEV__) {
115
var url = (ExecutionEnvironment.canUseDOM && window.location.href) || '';
116
if ((/[?&]react_perf\b/).test(url)) {
117
var ReactDefaultPerf = require('ReactDefaultPerf');
118
ReactDefaultPerf.start();
119
}
120
}
121
}
122
123
module.exports = {
124
inject: inject
125
};
126
127