react / react-0.13.3 / examples / basic-commonjs / node_modules / reactify / node_modules / react-tools / src / browser / ui / ReactDefaultInjection.js
81155 views/**1* Copyright 2013-2014, Facebook, Inc.2* All rights reserved.3*4* This source code is licensed under the BSD-style license found in the5* LICENSE file in the root directory of this source tree. An additional grant6* of patent rights can be found in the PATENTS file in the same directory.7*8* @providesModule ReactDefaultInjection9*/1011"use strict";1213var BeforeInputEventPlugin = require('BeforeInputEventPlugin');14var ChangeEventPlugin = require('ChangeEventPlugin');15var ClientReactRootIndex = require('ClientReactRootIndex');16var CompositionEventPlugin = require('CompositionEventPlugin');17var DefaultEventPluginOrder = require('DefaultEventPluginOrder');18var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');19var ExecutionEnvironment = require('ExecutionEnvironment');20var HTMLDOMPropertyConfig = require('HTMLDOMPropertyConfig');21var MobileSafariClickEventPlugin = require('MobileSafariClickEventPlugin');22var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');23var ReactComponentBrowserEnvironment =24require('ReactComponentBrowserEnvironment');25var ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');26var ReactDOMComponent = require('ReactDOMComponent');27var ReactDOMButton = require('ReactDOMButton');28var ReactDOMForm = require('ReactDOMForm');29var ReactDOMImg = require('ReactDOMImg');30var ReactDOMInput = require('ReactDOMInput');31var ReactDOMOption = require('ReactDOMOption');32var ReactDOMSelect = require('ReactDOMSelect');33var ReactDOMTextarea = require('ReactDOMTextarea');34var ReactEventListener = require('ReactEventListener');35var ReactInjection = require('ReactInjection');36var ReactInstanceHandles = require('ReactInstanceHandles');37var ReactMount = require('ReactMount');38var SelectEventPlugin = require('SelectEventPlugin');39var ServerReactRootIndex = require('ServerReactRootIndex');40var SimpleEventPlugin = require('SimpleEventPlugin');41var SVGDOMPropertyConfig = require('SVGDOMPropertyConfig');4243var createFullPageComponent = require('createFullPageComponent');4445function inject() {46ReactInjection.EventEmitter.injectReactEventListener(47ReactEventListener48);4950/**51* Inject modules for resolving DOM hierarchy and plugin ordering.52*/53ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);54ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);55ReactInjection.EventPluginHub.injectMount(ReactMount);5657/**58* Some important event plugins included by default (without having to require59* them).60*/61ReactInjection.EventPluginHub.injectEventPluginsByName({62SimpleEventPlugin: SimpleEventPlugin,63EnterLeaveEventPlugin: EnterLeaveEventPlugin,64ChangeEventPlugin: ChangeEventPlugin,65CompositionEventPlugin: CompositionEventPlugin,66MobileSafariClickEventPlugin: MobileSafariClickEventPlugin,67SelectEventPlugin: SelectEventPlugin,68BeforeInputEventPlugin: BeforeInputEventPlugin69});7071ReactInjection.NativeComponent.injectGenericComponentClass(72ReactDOMComponent73);7475ReactInjection.NativeComponent.injectComponentClasses({76'button': ReactDOMButton,77'form': ReactDOMForm,78'img': ReactDOMImg,79'input': ReactDOMInput,80'option': ReactDOMOption,81'select': ReactDOMSelect,82'textarea': ReactDOMTextarea,8384'html': createFullPageComponent('html'),85'head': createFullPageComponent('head'),86'body': createFullPageComponent('body')87});8889// This needs to happen after createFullPageComponent() otherwise the mixin90// gets double injected.91ReactInjection.CompositeComponent.injectMixin(ReactBrowserComponentMixin);9293ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);94ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);9596ReactInjection.EmptyComponent.injectEmptyComponent('noscript');9798ReactInjection.Updates.injectReconcileTransaction(99ReactComponentBrowserEnvironment.ReactReconcileTransaction100);101ReactInjection.Updates.injectBatchingStrategy(102ReactDefaultBatchingStrategy103);104105ReactInjection.RootIndex.injectCreateReactRootIndex(106ExecutionEnvironment.canUseDOM ?107ClientReactRootIndex.createReactRootIndex :108ServerReactRootIndex.createReactRootIndex109);110111ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);112113if (__DEV__) {114var url = (ExecutionEnvironment.canUseDOM && window.location.href) || '';115if ((/[?&]react_perf\b/).test(url)) {116var ReactDefaultPerf = require('ReactDefaultPerf');117ReactDefaultPerf.start();118}119}120}121122module.exports = {123inject: inject124};125126127