mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Currently, core depends on DomRenderer, which depends on the browser. This means that if you depend on angular2/core, you will always pull in the browser dom adapter and the browser render, regardless if you need them or not. This PR moves the browser dom adapter and the browser renderer out of core. BREAKING CHANGE If you import browser adapter or dom renderer directly (not via angular2/core), you will have to change the import path.
80 lines
No EOL
3.3 KiB
TypeScript
80 lines
No EOL
3.3 KiB
TypeScript
import {CONST_EXPR} from 'angular2/src/facade/lang';
|
|
import {provide, Provider, Injector, OpaqueToken} from 'angular2/src/core/di';
|
|
|
|
import {
|
|
PLATFORM_DIRECTIVES,
|
|
PLATFORM_PIPES,
|
|
ComponentRef,
|
|
platform,
|
|
ExceptionHandler,
|
|
Reflector,
|
|
reflector,
|
|
APPLICATION_COMMON_PROVIDERS,
|
|
PLATFORM_COMMON_PROVIDERS,
|
|
EVENT_MANAGER_PLUGINS
|
|
} from "angular2/core";
|
|
import {COMMON_DIRECTIVES, COMMON_PIPES, FORM_PROVIDERS} from "angular2/common";
|
|
import {Renderer} from 'angular2/render';
|
|
import {Testability} from 'angular2/src/core/testability/testability';
|
|
|
|
// TODO change these imports once dom_adapter is moved out of core
|
|
import {DOM} from 'angular2/src/core/dom/dom_adapter';
|
|
import {DomEventsPlugin} from 'angular2/src/platform/dom/events/dom_events';
|
|
import {KeyEventsPlugin} from 'angular2/src/platform/dom/events/key_events';
|
|
import {HammerGesturesPlugin} from 'angular2/src/platform/dom/events/hammer_gestures';
|
|
import {DOCUMENT} from 'angular2/src/platform/dom/dom_tokens';
|
|
import {DomRenderer, DomRenderer_} from 'angular2/src/platform/dom/dom_renderer';
|
|
import {DomSharedStylesHost} from 'angular2/src/platform/dom/shared_styles_host';
|
|
import {SharedStylesHost} from "angular2/src/platform/dom/shared_styles_host";
|
|
import {BrowserDetails} from "angular2/src/animate/browser_details";
|
|
import {AnimationBuilder} from "angular2/src/animate/animation_builder";
|
|
import {BrowserDomAdapter} from './browser/browser_adapter';
|
|
import {BrowserGetTestability} from 'angular2/src/platform/browser/testability';
|
|
import {wtfInit} from 'angular2/src/core/profile/wtf_init';
|
|
export {DOCUMENT} from 'angular2/src/platform/dom/dom_tokens';
|
|
export {Title} from 'angular2/src/platform/browser/title';
|
|
export {
|
|
// DebugElementViewListener,
|
|
ELEMENT_PROBE_PROVIDERS,
|
|
ELEMENT_PROBE_BINDINGS,
|
|
inspectNativeElement
|
|
} from 'angular2/src/platform/browser/debug/debug_element_view_listener';
|
|
export {By} from 'angular2/src/platform/browser/debug/by';
|
|
export {BrowserDomAdapter} from './browser/browser_adapter';
|
|
|
|
export const BROWSER_PROVIDERS: Array<any /*Type | Provider | any[]*/> =
|
|
CONST_EXPR([PLATFORM_COMMON_PROVIDERS]);
|
|
|
|
function _exceptionHandler(): ExceptionHandler {
|
|
return new ExceptionHandler(DOM, false);
|
|
}
|
|
|
|
function _document(): any {
|
|
return DOM.defaultDoc();
|
|
}
|
|
|
|
export const BROWSER_APP_COMMON_PROVIDERS: Array<any /*Type | Provider | any[]*/> = CONST_EXPR([
|
|
APPLICATION_COMMON_PROVIDERS,
|
|
FORM_PROVIDERS,
|
|
new Provider(PLATFORM_PIPES, {useValue: COMMON_PIPES, multi: true}),
|
|
new Provider(PLATFORM_DIRECTIVES, {useValue: COMMON_DIRECTIVES, multi: true}),
|
|
new Provider(ExceptionHandler, {useFactory: _exceptionHandler, deps: []}),
|
|
new Provider(DOCUMENT, {useFactory: _document, deps: []}),
|
|
new Provider(EVENT_MANAGER_PLUGINS, {useClass: DomEventsPlugin, multi: true}),
|
|
new Provider(EVENT_MANAGER_PLUGINS, {useClass: KeyEventsPlugin, multi: true}),
|
|
new Provider(EVENT_MANAGER_PLUGINS, {useClass: HammerGesturesPlugin, multi: true}),
|
|
new Provider(DomRenderer, {useClass: DomRenderer_}),
|
|
new Provider(Renderer, {useExisting: DomRenderer}),
|
|
new Provider(SharedStylesHost, {useExisting: DomSharedStylesHost}),
|
|
DomSharedStylesHost,
|
|
Testability,
|
|
BrowserDetails,
|
|
AnimationBuilder
|
|
]);
|
|
|
|
export function initDomAdapter() {
|
|
// TODO: refactor into a generic init function
|
|
BrowserDomAdapter.makeCurrent();
|
|
wtfInit();
|
|
BrowserGetTestability.init();
|
|
} |