forked from angular/angular
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrouter.ts
More file actions
67 lines (62 loc) · 3 KB
/
Copy pathrouter.ts
File metadata and controls
67 lines (62 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
* @module
* @description
* Maps application URLs into application states, to support deep-linking and navigation.
*/
export {HashLocationStrategy} from './src/router/hash_location_strategy';
export * from './src/router/route_config_decorator';
export * from './src/router/route_definition';
export {OnActivate, OnDeactivate, OnReuse, CanDeactivate, CanReuse} from './src/router/interfaces';
export {CanActivate} from './src/router/lifecycle_annotations';
export {Instruction, ComponentInstruction, RouteParams} from './src/router/instruction';
export {Url} from './src/router/url_parser';
export {OpaqueToken, Type} from 'angular2/angular2';
export {ROUTE_DATA} from './src/router/route_data';
import {APP_COMPONENT} from './src/core/application_tokens';
import {Binding} from './di';
import {CONST_EXPR} from './src/facade/lang';
import {List} from './src/facade/collection';
// remove when https://github.com/systemjs/systemjs/issues/712 is closed
import * as routerImport from './src/router/router';
import * as outletImport from './src/router/router_outlet';
import * as linkImport from './src/router/router_link';
import * as registryImport from './src/router/route_registry';
import * as html5Import from './src/router/html5_location_strategy';
import * as strategyImport from './src/router/location_strategy';
import * as locationImport from './src/router/location';
import * as pipleinImport from './src/router/pipeline';
export var Router = routerImport.Router;
export var RootRouter = routerImport.RootRouter;
export var RouterOutlet = outletImport.RouterOutlet;
export var RouterLink = linkImport.RouterLink;
export var RouteRegistry = registryImport.RouteRegistry;
export var HTML5LocationStrategy = html5Import.HTML5LocationStrategy;
export var LocationStrategy = strategyImport.LocationStrategy;
export var Location = locationImport.Location;
export const APP_BASE_HREF = locationImport.APP_BASE_HREF;
export var Pipeline = pipleinImport.Pipeline;
export type Router = routerImport.Router;
export type RootRouter = routerImport.RootRouter;
export type RouterOutlet = outletImport.RouterOutlet;
export type RouterLink = linkImport.RouterLink;
export type RouteRegistry = registryImport.RouteRegistry;
export type HTML5LocationStrategy = html5Import.HTML5LocationStrategy;
export type LocationStrategy = strategyImport.LocationStrategy;
export type Location = locationImport.Location;
export type Pipeline = pipleinImport.Pipeline;
export const ROUTER_DIRECTIVES: List<any> = CONST_EXPR([RouterOutlet, RouterLink]);
export const ROUTER_BINDINGS: List<any> = CONST_EXPR([
RouteRegistry,
Pipeline,
CONST_EXPR(new Binding(LocationStrategy, {toClass: HTML5LocationStrategy})),
Location,
CONST_EXPR(
new Binding(Router,
{
toFactory: routerFactory,
deps: CONST_EXPR([RouteRegistry, Pipeline, Location, APP_COMPONENT])
}))
]);
function routerFactory(registry, pipeline, location, appRoot) {
return new RootRouter(registry, pipeline, location, appRoot);
}