@angular/router 2.0.0-rc.1 → 2.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{router.umd.js → bundles/router.umd.js} +727 -637
- package/bundles/router.umd.min.js +2 -0
- package/esm/index.d.ts +7 -25
- package/esm/index.js +10 -30
- package/esm/index.js.map +1 -1
- package/esm/src/constants.js +4 -4
- package/esm/src/constants.js.map +1 -1
- package/esm/src/constants.metadata.json +1 -1
- package/esm/src/core_private.d.ts +3 -2
- package/esm/src/core_private.js +3 -2
- package/esm/src/core_private.js.map +1 -1
- package/esm/src/core_private.metadata.json +1 -1
- package/esm/src/directives/router_directives.d.ts +21 -0
- package/esm/src/directives/router_directives.js +24 -0
- package/esm/src/directives/router_directives.js.map +1 -0
- package/esm/src/directives/router_directives.metadata.json +1 -0
- package/esm/src/directives/router_link.d.ts +4 -2
- package/esm/src/directives/router_link.js +21 -13
- package/esm/src/directives/router_link.js.map +1 -1
- package/esm/src/directives/router_link.metadata.json +1 -1
- package/esm/src/directives/router_outlet.d.ts +6 -6
- package/esm/src/directives/router_outlet.js +13 -11
- package/esm/src/directives/router_outlet.js.map +1 -1
- package/esm/src/directives/router_outlet.metadata.json +1 -1
- package/esm/src/facade/async.d.ts +11 -4
- package/esm/src/facade/async.js +25 -15
- package/esm/src/facade/async.js.map +1 -1
- package/esm/src/facade/base_wrapped_exception.js +4 -4
- package/esm/src/facade/base_wrapped_exception.js.map +1 -1
- package/esm/src/facade/collection.js +1 -1
- package/esm/src/facade/collection.js.map +1 -1
- package/esm/src/facade/collection.metadata.json +1 -1
- package/esm/src/facade/exception_handler.d.ts +2 -11
- package/esm/src/facade/exception_handler.js +8 -7
- package/esm/src/facade/exception_handler.js.map +1 -1
- package/esm/src/facade/exceptions.d.ts +4 -0
- package/esm/src/facade/exceptions.js +6 -2
- package/esm/src/facade/exceptions.js.map +1 -1
- package/esm/src/facade/exceptions.metadata.json +1 -0
- package/esm/src/facade/lang.d.ts +6 -4
- package/esm/src/facade/lang.js +12 -11
- package/esm/src/facade/lang.js.map +1 -1
- package/esm/src/facade/lang.metadata.json +1 -1
- package/esm/src/facade/promise.js.map +1 -1
- package/esm/src/interfaces.js.map +1 -1
- package/esm/src/lifecycle_reflector.js.map +1 -1
- package/esm/src/link.d.ts +1 -1
- package/esm/src/link.js +31 -18
- package/esm/src/link.js.map +1 -1
- package/esm/src/metadata/decorators.d.ts +1 -1
- package/esm/src/metadata/decorators.js +1 -1
- package/esm/src/metadata/decorators.js.map +1 -1
- package/esm/src/metadata/decorators.metadata.json +1 -1
- package/esm/src/metadata/metadata.d.ts +3 -3
- package/esm/src/metadata/metadata.js +1 -1
- package/esm/src/metadata/metadata.js.map +1 -1
- package/esm/src/recognize.d.ts +3 -3
- package/esm/src/recognize.js +57 -41
- package/esm/src/recognize.js.map +1 -1
- package/esm/src/router.d.ts +3 -23
- package/esm/src/router.js +54 -58
- package/esm/src/router.js.map +1 -1
- package/esm/src/router_providers.d.ts +1 -1
- package/esm/src/router_providers.js +3 -7
- package/esm/src/router_providers.js.map +1 -1
- package/esm/src/router_providers.metadata.json +1 -1
- package/esm/src/router_providers_common.d.ts +7 -0
- package/esm/src/router_providers_common.js +10 -7
- package/esm/src/router_providers_common.js.map +1 -1
- package/esm/src/router_providers_common.metadata.json +1 -1
- package/esm/src/router_url_serializer.js +9 -9
- package/esm/src/router_url_serializer.js.map +1 -1
- package/esm/src/segments.d.ts +7 -12
- package/esm/src/segments.js +27 -45
- package/esm/src/segments.js.map +1 -1
- package/esm/src/segments.metadata.json +1 -0
- package/esm/testing/router_testing_providers.js +10 -3
- package/esm/testing/router_testing_providers.js.map +1 -1
- package/esm/testing/router_testing_providers.metadata.json +1 -1
- package/esm/testing.js.map +1 -1
- package/index.d.ts +7 -25
- package/index.js +22 -39
- package/index.js.map +1 -1
- package/package.json +8 -4
- package/src/constants.js +4 -4
- package/src/constants.js.map +1 -1
- package/src/constants.metadata.json +1 -1
- package/src/core_private.d.ts +3 -2
- package/src/core_private.js +1 -0
- package/src/core_private.js.map +1 -1
- package/src/core_private.metadata.json +1 -1
- package/src/directives/router_directives.d.ts +21 -0
- package/src/directives/router_directives.js +25 -0
- package/src/directives/router_directives.js.map +1 -0
- package/src/directives/router_directives.metadata.json +1 -0
- package/src/directives/router_link.d.ts +4 -2
- package/src/directives/router_link.js +20 -12
- package/src/directives/router_link.js.map +1 -1
- package/src/directives/router_link.metadata.json +1 -1
- package/src/directives/router_outlet.d.ts +6 -6
- package/src/directives/router_outlet.js +13 -11
- package/src/directives/router_outlet.js.map +1 -1
- package/src/directives/router_outlet.metadata.json +1 -1
- package/src/facade/async.d.ts +11 -4
- package/src/facade/async.js +27 -17
- package/src/facade/async.js.map +1 -1
- package/src/facade/base_wrapped_exception.js +4 -4
- package/src/facade/base_wrapped_exception.js.map +1 -1
- package/src/facade/collection.js.map +1 -1
- package/src/facade/collection.metadata.json +1 -1
- package/src/facade/exception_handler.d.ts +2 -11
- package/src/facade/exception_handler.js +8 -7
- package/src/facade/exception_handler.js.map +1 -1
- package/src/facade/exceptions.d.ts +4 -0
- package/src/facade/exceptions.js +6 -2
- package/src/facade/exceptions.js.map +1 -1
- package/src/facade/exceptions.metadata.json +1 -0
- package/src/facade/lang.d.ts +6 -4
- package/src/facade/lang.js +12 -11
- package/src/facade/lang.js.map +1 -1
- package/src/facade/lang.metadata.json +1 -1
- package/src/facade/promise.js.map +1 -1
- package/src/interfaces.js.map +1 -1
- package/src/lifecycle_reflector.js.map +1 -1
- package/src/link.d.ts +1 -1
- package/src/link.js +33 -18
- package/src/link.js.map +1 -1
- package/src/metadata/decorators.d.ts +1 -1
- package/src/metadata/decorators.js +1 -1
- package/src/metadata/decorators.js.map +1 -1
- package/src/metadata/decorators.metadata.json +1 -1
- package/src/metadata/metadata.d.ts +3 -3
- package/src/metadata/metadata.js +1 -1
- package/src/metadata/metadata.js.map +1 -1
- package/src/recognize.d.ts +3 -3
- package/src/recognize.js +62 -42
- package/src/recognize.js.map +1 -1
- package/src/router.d.ts +3 -23
- package/src/router.js +64 -64
- package/src/router.js.map +1 -1
- package/src/router_providers.d.ts +1 -1
- package/src/router_providers.js +3 -7
- package/src/router_providers.js.map +1 -1
- package/src/router_providers.metadata.json +1 -1
- package/src/router_providers_common.d.ts +7 -0
- package/src/router_providers_common.js +10 -5
- package/src/router_providers_common.js.map +1 -1
- package/src/router_providers_common.metadata.json +1 -1
- package/src/router_url_serializer.js +8 -8
- package/src/router_url_serializer.js.map +1 -1
- package/src/segments.d.ts +7 -12
- package/src/segments.js +26 -44
- package/src/segments.js.map +1 -1
- package/src/segments.metadata.json +1 -0
- package/testing/router_testing_providers.js +9 -2
- package/testing/router_testing_providers.js.map +1 -1
- package/testing/router_testing_providers.metadata.json +1 -1
- package/testing.js.map +1 -1
- package/esm/index.metadata.json +0 -1
- package/index.metadata.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router_providers.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/router_providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router_providers.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/router_providers.ts"],"names":[],"mappings":"OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8CAA8C;AAC9C,OAAO,MAAM,gBAAgB,GAA4B,CAAC,uBAAuB,CAAC,CAAC","sourcesContent":["import {ROUTER_PROVIDERS_COMMON} from './router_providers_common';\n\n/**\n * A list of providers. To use the router, you must add this to your application.\n *\n * ```\n * import {Component} from '@angular/core';\n * import {\n * ROUTER_DIRECTIVES,\n * ROUTER_PROVIDERS,\n * Routes\n * } from '@angular/router';\n *\n * @Component({directives: [ROUTER_DIRECTIVES]})\n * @Routes([\n * {...},\n * ])\n * class AppCmp {\n * // ...\n * }\n *\n * bootstrap(AppCmp, [ROUTER_PROVIDERS]);\n * ```\n */\n// TODO: merge with router_providers_common.ts\nexport const ROUTER_PROVIDERS: any[] = /*@ts2dart_const*/[ROUTER_PROVIDERS_COMMON];\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","metadata":{"ROUTER_PROVIDERS":[{"__symbolic":"reference","
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"ROUTER_PROVIDERS":[{"__symbolic":"reference","module":"./router_providers_common","name":"ROUTER_PROVIDERS_COMMON"}]}}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
+
import { Location } from '@angular/common';
|
|
2
|
+
import { ApplicationRef, ComponentResolver } from '@angular/core';
|
|
3
|
+
import { Router, RouterOutletMap } from './router';
|
|
4
|
+
import { RouterUrlSerializer } from './router_url_serializer';
|
|
5
|
+
import { RouteSegment } from './segments';
|
|
1
6
|
/**
|
|
2
7
|
* The Platform agnostic ROUTER PROVIDERS
|
|
3
8
|
*/
|
|
4
9
|
export declare const ROUTER_PROVIDERS_COMMON: any[];
|
|
10
|
+
export declare function routerFactory(app: ApplicationRef, componentResolver: ComponentResolver, urlSerializer: RouterUrlSerializer, routerOutletMap: RouterOutletMap, location: Location): Router;
|
|
11
|
+
export declare function routeSegmentFactory(router: Router): RouteSegment;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';
|
|
2
|
+
import { ApplicationRef, BaseException, ComponentResolver } from '@angular/core';
|
|
3
3
|
import { Router, RouterOutletMap } from './router';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { BaseException } from '@angular/core';
|
|
4
|
+
import { DefaultRouterUrlSerializer, RouterUrlSerializer } from './router_url_serializer';
|
|
5
|
+
import { RouteSegment } from './segments';
|
|
7
6
|
/**
|
|
8
7
|
* The Platform agnostic ROUTER PROVIDERS
|
|
9
8
|
*/
|
|
@@ -16,14 +15,18 @@ export const ROUTER_PROVIDERS_COMMON = [
|
|
|
16
15
|
useFactory: routerFactory,
|
|
17
16
|
deps: /*@ts2dart_const*/ [ApplicationRef, ComponentResolver, RouterUrlSerializer, RouterOutletMap, Location],
|
|
18
17
|
},
|
|
18
|
+
/*@ts2dart_Provider*/ { provide: RouteSegment, useFactory: routeSegmentFactory, deps: [Router] }
|
|
19
19
|
];
|
|
20
|
-
function routerFactory(app, componentResolver, urlSerializer, routerOutletMap, location) {
|
|
20
|
+
export function routerFactory(app, componentResolver, urlSerializer, routerOutletMap, location) {
|
|
21
21
|
if (app.componentTypes.length == 0) {
|
|
22
|
-
throw new BaseException(
|
|
22
|
+
throw new BaseException('Bootstrap at least one component before injecting Router.');
|
|
23
23
|
}
|
|
24
24
|
// TODO: vsavkin this should not be null
|
|
25
25
|
let router = new Router(null, app.componentTypes[0], componentResolver, urlSerializer, routerOutletMap, location);
|
|
26
26
|
app.registerDisposeListener(() => router.dispose());
|
|
27
27
|
return router;
|
|
28
28
|
}
|
|
29
|
+
export function routeSegmentFactory(router) {
|
|
30
|
+
return router.routeTree.root;
|
|
31
|
+
}
|
|
29
32
|
//# sourceMappingURL=router_providers_common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router_providers_common.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/router_providers_common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router_providers_common.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/router_providers_common.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,iBAAiB;OACzE,EAAC,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAC,MAAM,eAAe;OAEvE,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,UAAU;OACzC,EAAC,0BAA0B,EAAE,mBAAmB,EAAC,MAAM,yBAAyB;OAChF,EAAC,YAAY,EAAC,MAAM,YAAY;AAGvC;;GAEG;AACH,OAAO,MAAM,uBAAuB,GAA4B;IAC9D,eAAe;IACf,qBAAqB,CAAC,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,0BAA0B,EAAC;IAC1F,qBAAqB,CAAC,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAC,EAAE,QAAQ;IAC3F,qBAAqB,CAAC;QACpB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,aAAa;QACzB,IAAI,EAAE,kBAAkB,CACpB,CAAC,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC;KACxF;IACD,qBAAqB,CAAC,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAC;CAC/F,CAAC;AAEF,8BACI,GAAmB,EAAE,iBAAoC,EAAE,aAAkC,EAC7F,eAAgC,EAAE,QAAkB;IACtD,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,aAAa,CAAC,2DAA2D,CAAC,CAAC;IACvF,CAAC;IACD,wCAAwC;IACxC,IAAI,MAAM,GAAG,IAAI,MAAM,CACnB,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9F,GAAG,CAAC,uBAAuB,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,MAAM,CAAC;AAChB,CAAC;AAED,oCAAoC,MAAc;IAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/B,CAAC","sourcesContent":["import {Location, LocationStrategy, PathLocationStrategy} from '@angular/common';\nimport {ApplicationRef, BaseException, ComponentResolver} from '@angular/core';\n\nimport {Router, RouterOutletMap} from './router';\nimport {DefaultRouterUrlSerializer, RouterUrlSerializer} from './router_url_serializer';\nimport {RouteSegment} from './segments';\n\n\n/**\n * The Platform agnostic ROUTER PROVIDERS\n */\nexport const ROUTER_PROVIDERS_COMMON: any[] = /*@ts2dart_const*/[\n RouterOutletMap,\n /*@ts2dart_Provider*/ {provide: RouterUrlSerializer, useClass: DefaultRouterUrlSerializer},\n /*@ts2dart_Provider*/ {provide: LocationStrategy, useClass: PathLocationStrategy}, Location,\n /*@ts2dart_Provider*/ {\n provide: Router,\n useFactory: routerFactory,\n deps: /*@ts2dart_const*/\n [ApplicationRef, ComponentResolver, RouterUrlSerializer, RouterOutletMap, Location],\n },\n /*@ts2dart_Provider*/ {provide: RouteSegment, useFactory: routeSegmentFactory, deps: [Router]}\n];\n\nexport function routerFactory(\n app: ApplicationRef, componentResolver: ComponentResolver, urlSerializer: RouterUrlSerializer,\n routerOutletMap: RouterOutletMap, location: Location): Router {\n if (app.componentTypes.length == 0) {\n throw new BaseException('Bootstrap at least one component before injecting Router.');\n }\n // TODO: vsavkin this should not be null\n let router = new Router(\n null, app.componentTypes[0], componentResolver, urlSerializer, routerOutletMap, location);\n app.registerDisposeListener(() => router.dispose());\n return router;\n}\n\nexport function routeSegmentFactory(router: Router): RouteSegment {\n return router.routeTree.root;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","metadata":{"ROUTER_PROVIDERS_COMMON":[{"__symbolic":"reference","
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"ROUTER_PROVIDERS_COMMON":[{"__symbolic":"reference","module":"./router","name":"RouterOutletMap"},{"provide":{"__symbolic":"reference","module":"./router_url_serializer","name":"RouterUrlSerializer"},"useClass":{"__symbolic":"reference","module":"./router_url_serializer","name":"DefaultRouterUrlSerializer"}},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"LocationStrategy"},"useClass":{"__symbolic":"reference","module":"@angular/common","name":"PathLocationStrategy"}},{"__symbolic":"reference","module":"@angular/common","name":"Location"},{"provide":{"__symbolic":"reference","module":"./router","name":"Router"},"useFactory":{"__symbolic":"reference","name":"routerFactory"},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"ApplicationRef"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentResolver"},{"__symbolic":"reference","module":"./router_url_serializer","name":"RouterUrlSerializer"},{"__symbolic":"reference","module":"./router","name":"RouterOutletMap"},{"__symbolic":"reference","module":"@angular/common","name":"Location"}]},{"provide":{"__symbolic":"reference","module":"./segments","name":"RouteSegment"},"useFactory":{"__symbolic":"reference","name":"routeSegmentFactory"},"deps":[{"__symbolic":"reference","module":"./router","name":"Router"}]}],"routeSegmentFactory":{"__symbolic":"function","parameters":["router"],"value":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"router"},"member":"routeTree"},"member":"root"}}}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { UrlSegment, TreeNode, rootNode, UrlTree } from './segments';
|
|
2
1
|
import { BaseException } from '@angular/core';
|
|
3
|
-
import { isBlank, isPresent
|
|
2
|
+
import { RegExpWrapper, isBlank, isPresent } from './facade/lang';
|
|
3
|
+
import { TreeNode, UrlSegment, UrlTree, rootNode } from './segments';
|
|
4
4
|
/**
|
|
5
5
|
* Defines a way to serialize/deserialize a url tree.
|
|
6
6
|
*/
|
|
@@ -22,7 +22,7 @@ function _serializeUrlTreeNode(node) {
|
|
|
22
22
|
function _serializeUrlTreeNodes(nodes) {
|
|
23
23
|
let main = nodes[0].value.toString();
|
|
24
24
|
let auxNodes = nodes.slice(1);
|
|
25
|
-
let aux = auxNodes.length > 0 ? `(${auxNodes.map(_serializeUrlTreeNode).join("//")})` :
|
|
25
|
+
let aux = auxNodes.length > 0 ? `(${auxNodes.map(_serializeUrlTreeNode).join("//")})` : '';
|
|
26
26
|
let children = _serializeChildren(nodes[0]);
|
|
27
27
|
return `${main}${aux}${children}`;
|
|
28
28
|
}
|
|
@@ -31,7 +31,7 @@ function _serializeChildren(node) {
|
|
|
31
31
|
return `/${_serializeUrlTreeNodes(node.children)}`;
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
return
|
|
34
|
+
return '';
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
var SEGMENT_RE = RegExpWrapper.create('^[^\\/\\(\\)\\?;=&#]+');
|
|
@@ -74,8 +74,8 @@ class _UrlParser {
|
|
|
74
74
|
}
|
|
75
75
|
var path = matchUrlSegment(this._remaining);
|
|
76
76
|
this.capture(path);
|
|
77
|
-
if (path.indexOf(
|
|
78
|
-
let parts = path.split(
|
|
77
|
+
if (path.indexOf(':') > -1) {
|
|
78
|
+
let parts = path.split(':');
|
|
79
79
|
outletName = parts[0];
|
|
80
80
|
path = parts[1];
|
|
81
81
|
}
|
|
@@ -120,7 +120,7 @@ class _UrlParser {
|
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
122
|
this.capture(key);
|
|
123
|
-
var value =
|
|
123
|
+
var value = 'true';
|
|
124
124
|
if (this.peekStartsWith('=')) {
|
|
125
125
|
this.capture('=');
|
|
126
126
|
var valueMatch = matchUrlSegment(this._remaining);
|
|
@@ -137,7 +137,7 @@ class _UrlParser {
|
|
|
137
137
|
return;
|
|
138
138
|
}
|
|
139
139
|
this.capture(key);
|
|
140
|
-
var value =
|
|
140
|
+
var value = 'true';
|
|
141
141
|
if (this.peekStartsWith('=')) {
|
|
142
142
|
this.capture('=');
|
|
143
143
|
var valueMatch = matchUrlQueryParamValue(this._remaining);
|
|
@@ -152,7 +152,7 @@ class _UrlParser {
|
|
|
152
152
|
var segments = [];
|
|
153
153
|
this.capture('(');
|
|
154
154
|
while (!this.peekStartsWith(')') && this._remaining.length > 0) {
|
|
155
|
-
segments = segments.concat(this.parseSegments(
|
|
155
|
+
segments = segments.concat(this.parseSegments('aux'));
|
|
156
156
|
if (this.peekStartsWith('//')) {
|
|
157
157
|
this.capture('//');
|
|
158
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router_url_serializer.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/router_url_serializer.ts"],"names":[],"mappings":"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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {UrlSegment, Tree, TreeNode, rootNode, UrlTree} from './segments';\nimport {BaseException} from '@angular/core';\nimport {isBlank, isPresent, RegExpWrapper} from './facade/lang';\n\n/**\n * Defines a way to serialize/deserialize a url tree.\n */\nexport abstract class RouterUrlSerializer {\n /**\n * Parse a url into a {@Link UrlTree}\n */\n abstract parse(url: string): UrlTree;\n\n /**\n * Converts a {@Link UrlTree} into a url\n */\n abstract serialize(tree: UrlTree): string;\n}\n\n/**\n * A default implementation of the serialization.\n */\nexport class DefaultRouterUrlSerializer extends RouterUrlSerializer {\n parse(url: string): UrlTree {\n let root = new _UrlParser().parse(url);\n return new UrlTree(root);\n }\n\n serialize(tree: UrlTree): string { return _serializeUrlTreeNode(rootNode(tree)); }\n}\n\nfunction _serializeUrlTreeNode(node: TreeNode<UrlSegment>): string {\n return `${node.value}${_serializeChildren(node)}`;\n}\n\nfunction _serializeUrlTreeNodes(nodes: TreeNode<UrlSegment>[]): string {\n let main = nodes[0].value.toString();\n let auxNodes = nodes.slice(1);\n let aux = auxNodes.length > 0 ? `(${auxNodes.map(_serializeUrlTreeNode).join(\"//\")})` : \"\";\n let children = _serializeChildren(nodes[0]);\n return `${main}${aux}${children}`;\n}\n\nfunction _serializeChildren(node: TreeNode<UrlSegment>): string {\n if (node.children.length > 0) {\n return `/${_serializeUrlTreeNodes(node.children)}`;\n } else {\n return \"\";\n }\n}\n\nvar SEGMENT_RE = RegExpWrapper.create('^[^\\\\/\\\\(\\\\)\\\\?;=&#]+');\nfunction matchUrlSegment(str: string): string {\n var match = RegExpWrapper.firstMatch(SEGMENT_RE, str);\n return isPresent(match) ? match[0] : '';\n}\nvar QUERY_PARAM_VALUE_RE = RegExpWrapper.create('^[^\\\\(\\\\)\\\\?;&#]+');\nfunction matchUrlQueryParamValue(str: string): string {\n var match = RegExpWrapper.firstMatch(QUERY_PARAM_VALUE_RE, str);\n return isPresent(match) ? match[0] : '';\n}\n\nclass _UrlParser {\n private _remaining: string;\n\n peekStartsWith(str: string): boolean { return this._remaining.startsWith(str); }\n\n capture(str: string): void {\n if (!this._remaining.startsWith(str)) {\n throw new BaseException(`Expected \"${str}\".`);\n }\n this._remaining = this._remaining.substring(str.length);\n }\n\n parse(url: string): TreeNode<UrlSegment> {\n this._remaining = url;\n if (url == '' || url == '/') {\n return new TreeNode<UrlSegment>(new UrlSegment('', {}, null), []);\n } else {\n return this.parseRoot();\n }\n }\n\n parseRoot(): TreeNode<UrlSegment> {\n let segments = this.parseSegments();\n return new TreeNode<UrlSegment>(new UrlSegment('', {}, null), segments);\n }\n\n parseSegments(outletName: string = null): TreeNode<UrlSegment>[] {\n if (this._remaining.length == 0) {\n return [];\n }\n if (this.peekStartsWith('/')) {\n this.capture('/');\n }\n var path = matchUrlSegment(this._remaining);\n this.capture(path);\n\n\n if (path.indexOf(\":\") > -1) {\n let parts = path.split(\":\");\n outletName = parts[0];\n path = parts[1];\n }\n\n var matrixParams: {[key: string]: any} = {};\n if (this.peekStartsWith(';')) {\n matrixParams = this.parseMatrixParams();\n }\n\n var aux = [];\n if (this.peekStartsWith('(')) {\n aux = this.parseAuxiliaryRoutes();\n }\n\n var children: TreeNode<UrlSegment>[] = [];\n if (this.peekStartsWith('/') && !this.peekStartsWith('//')) {\n this.capture('/');\n children = this.parseSegments();\n }\n\n let segment = new UrlSegment(path, matrixParams, outletName);\n let node = new TreeNode<UrlSegment>(segment, children);\n return [node].concat(aux);\n }\n\n parseQueryParams(): {[key: string]: any} {\n var params: {[key: string]: any} = {};\n this.capture('?');\n this.parseQueryParam(params);\n while (this._remaining.length > 0 && this.peekStartsWith('&')) {\n this.capture('&');\n this.parseQueryParam(params);\n }\n return params;\n }\n\n parseMatrixParams(): {[key: string]: any} {\n var params: {[key: string]: any} = {};\n while (this._remaining.length > 0 && this.peekStartsWith(';')) {\n this.capture(';');\n this.parseParam(params);\n }\n return params;\n }\n\n parseParam(params: {[key: string]: any}): void {\n var key = matchUrlSegment(this._remaining);\n if (isBlank(key)) {\n return;\n }\n this.capture(key);\n var value: any = \"true\";\n if (this.peekStartsWith('=')) {\n this.capture('=');\n var valueMatch = matchUrlSegment(this._remaining);\n if (isPresent(valueMatch)) {\n value = valueMatch;\n this.capture(value);\n }\n }\n\n params[key] = value;\n }\n\n parseQueryParam(params: {[key: string]: any}): void {\n var key = matchUrlSegment(this._remaining);\n if (isBlank(key)) {\n return;\n }\n this.capture(key);\n var value: any = \"true\";\n if (this.peekStartsWith('=')) {\n this.capture('=');\n var valueMatch = matchUrlQueryParamValue(this._remaining);\n if (isPresent(valueMatch)) {\n value = valueMatch;\n this.capture(value);\n }\n }\n\n params[key] = value;\n }\n\n parseAuxiliaryRoutes(): TreeNode<UrlSegment>[] {\n var segments = [];\n this.capture('(');\n\n while (!this.peekStartsWith(')') && this._remaining.length > 0) {\n segments = segments.concat(this.parseSegments(\"aux\"));\n if (this.peekStartsWith('//')) {\n this.capture('//');\n }\n }\n this.capture(')');\n\n return segments;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"router_url_serializer.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/router_url_serializer.ts"],"names":[],"mappings":"OAAO,EAAC,aAAa,EAAC,MAAM,eAAe;OAEpC,EAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,eAAe;OACxD,EAAO,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,YAAY;AAGxE;;GAEG;AACH;AAUA,CAAC;AAED;;GAEG;AACH,gDAAgD,mBAAmB;IACjE,KAAK,CAAC,GAAW;QACf,IAAI,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAa,IAAY,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,+BAA+B,IAA0B;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,gCAAgC,KAA6B;IAC3D,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAC3F,IAAI,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,4BAA4B,IAA0B;IACpD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrD,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,IAAI,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC/D,yBAAyB,GAAW;IAClC,IAAI,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1C,CAAC;AACD,IAAI,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACrE,iCAAiC,GAAW;IAC1C,IAAI,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1C,CAAC;AAED;IAGE,cAAc,CAAC,GAAW,IAAa,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEhF,OAAO,CAAC,GAAW;QACjB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,IAAI,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAW;QACf,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,QAAQ,CAAa,IAAI,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,QAAQ,CAAa,IAAI,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa,CAAC,UAAU,GAAW,IAAI;QACrC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAGnB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,YAAY,GAAyB,EAAE,CAAC;QAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,GAAG,GAA4B,EAAE,CAAC;QACtC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,QAAQ,GAA2B,EAAE,CAAC;QAC1C,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,IAAI,GAAG,IAAI,QAAQ,CAAa,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,IAAI,MAAM,GAAyB,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED,iBAAiB;QACf,IAAI,MAAM,GAAyB,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAA4B;QACrC,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,GAAQ,MAAM,CAAC;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClD,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,KAAK,GAAG,UAAU,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,MAA4B;QAC1C,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,GAAQ,MAAM,CAAC;QACxB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,KAAK,GAAG,UAAU,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,oBAAoB;QAClB,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAElB,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAAA","sourcesContent":["import {BaseException} from '@angular/core';\n\nimport {RegExpWrapper, isBlank, isPresent} from './facade/lang';\nimport {Tree, TreeNode, UrlSegment, UrlTree, rootNode} from './segments';\n\n\n/**\n * Defines a way to serialize/deserialize a url tree.\n */\nexport abstract class RouterUrlSerializer {\n /**\n * Parse a url into a {@Link UrlTree}\n */\n abstract parse(url: string): UrlTree;\n\n /**\n * Converts a {@Link UrlTree} into a url\n */\n abstract serialize(tree: UrlTree): string;\n}\n\n/**\n * A default implementation of the serialization.\n */\nexport class DefaultRouterUrlSerializer extends RouterUrlSerializer {\n parse(url: string): UrlTree {\n let root = new _UrlParser().parse(url);\n return new UrlTree(root);\n }\n\n serialize(tree: UrlTree): string { return _serializeUrlTreeNode(rootNode(tree)); }\n}\n\nfunction _serializeUrlTreeNode(node: TreeNode<UrlSegment>): string {\n return `${node.value}${_serializeChildren(node)}`;\n}\n\nfunction _serializeUrlTreeNodes(nodes: TreeNode<UrlSegment>[]): string {\n let main = nodes[0].value.toString();\n let auxNodes = nodes.slice(1);\n let aux = auxNodes.length > 0 ? `(${auxNodes.map(_serializeUrlTreeNode).join(\"//\")})` : '';\n let children = _serializeChildren(nodes[0]);\n return `${main}${aux}${children}`;\n}\n\nfunction _serializeChildren(node: TreeNode<UrlSegment>): string {\n if (node.children.length > 0) {\n return `/${_serializeUrlTreeNodes(node.children)}`;\n } else {\n return '';\n }\n}\n\nvar SEGMENT_RE = RegExpWrapper.create('^[^\\\\/\\\\(\\\\)\\\\?;=&#]+');\nfunction matchUrlSegment(str: string): string {\n var match = RegExpWrapper.firstMatch(SEGMENT_RE, str);\n return isPresent(match) ? match[0] : '';\n}\nvar QUERY_PARAM_VALUE_RE = RegExpWrapper.create('^[^\\\\(\\\\)\\\\?;&#]+');\nfunction matchUrlQueryParamValue(str: string): string {\n var match = RegExpWrapper.firstMatch(QUERY_PARAM_VALUE_RE, str);\n return isPresent(match) ? match[0] : '';\n}\n\nclass _UrlParser {\n private _remaining: string;\n\n peekStartsWith(str: string): boolean { return this._remaining.startsWith(str); }\n\n capture(str: string): void {\n if (!this._remaining.startsWith(str)) {\n throw new BaseException(`Expected \"${str}\".`);\n }\n this._remaining = this._remaining.substring(str.length);\n }\n\n parse(url: string): TreeNode<UrlSegment> {\n this._remaining = url;\n if (url == '' || url == '/') {\n return new TreeNode<UrlSegment>(new UrlSegment('', {}, null), []);\n } else {\n return this.parseRoot();\n }\n }\n\n parseRoot(): TreeNode<UrlSegment> {\n let segments = this.parseSegments();\n return new TreeNode<UrlSegment>(new UrlSegment('', {}, null), segments);\n }\n\n parseSegments(outletName: string = null): TreeNode<UrlSegment>[] {\n if (this._remaining.length == 0) {\n return [];\n }\n if (this.peekStartsWith('/')) {\n this.capture('/');\n }\n var path = matchUrlSegment(this._remaining);\n this.capture(path);\n\n\n if (path.indexOf(':') > -1) {\n let parts = path.split(':');\n outletName = parts[0];\n path = parts[1];\n }\n\n var matrixParams: {[key: string]: any} = {};\n if (this.peekStartsWith(';')) {\n matrixParams = this.parseMatrixParams();\n }\n\n var aux: any[] /** TODO #9100 */ = [];\n if (this.peekStartsWith('(')) {\n aux = this.parseAuxiliaryRoutes();\n }\n\n var children: TreeNode<UrlSegment>[] = [];\n if (this.peekStartsWith('/') && !this.peekStartsWith('//')) {\n this.capture('/');\n children = this.parseSegments();\n }\n\n let segment = new UrlSegment(path, matrixParams, outletName);\n let node = new TreeNode<UrlSegment>(segment, children);\n return [node].concat(aux);\n }\n\n parseQueryParams(): {[key: string]: any} {\n var params: {[key: string]: any} = {};\n this.capture('?');\n this.parseQueryParam(params);\n while (this._remaining.length > 0 && this.peekStartsWith('&')) {\n this.capture('&');\n this.parseQueryParam(params);\n }\n return params;\n }\n\n parseMatrixParams(): {[key: string]: any} {\n var params: {[key: string]: any} = {};\n while (this._remaining.length > 0 && this.peekStartsWith(';')) {\n this.capture(';');\n this.parseParam(params);\n }\n return params;\n }\n\n parseParam(params: {[key: string]: any}): void {\n var key = matchUrlSegment(this._remaining);\n if (isBlank(key)) {\n return;\n }\n this.capture(key);\n var value: any = 'true';\n if (this.peekStartsWith('=')) {\n this.capture('=');\n var valueMatch = matchUrlSegment(this._remaining);\n if (isPresent(valueMatch)) {\n value = valueMatch;\n this.capture(value);\n }\n }\n\n params[key] = value;\n }\n\n parseQueryParam(params: {[key: string]: any}): void {\n var key = matchUrlSegment(this._remaining);\n if (isBlank(key)) {\n return;\n }\n this.capture(key);\n var value: any = 'true';\n if (this.peekStartsWith('=')) {\n this.capture('=');\n var valueMatch = matchUrlQueryParamValue(this._remaining);\n if (isPresent(valueMatch)) {\n value = valueMatch;\n this.capture(value);\n }\n }\n\n params[key] = value;\n }\n\n parseAuxiliaryRoutes(): TreeNode<UrlSegment>[] {\n var segments: any[] /** TODO #9100 */ = [];\n this.capture('(');\n\n while (!this.peekStartsWith(')') && this._remaining.length > 0) {\n segments = segments.concat(this.parseSegments('aux'));\n if (this.peekStartsWith('//')) {\n this.capture('//');\n }\n }\n this.capture(')');\n\n return segments;\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
package/esm/src/segments.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { ComponentFactory, Type } from '@angular/core';
|
|
2
2
|
export declare class Tree<T> {
|
|
3
|
-
/** @internal */
|
|
4
|
-
_root: TreeNode<T>;
|
|
5
3
|
constructor(root: TreeNode<T>);
|
|
6
4
|
readonly root: T;
|
|
7
5
|
parent(t: T): T;
|
|
@@ -25,32 +23,29 @@ export declare class TreeNode<T> {
|
|
|
25
23
|
export declare class UrlSegment {
|
|
26
24
|
segment: any;
|
|
27
25
|
parameters: {
|
|
28
|
-
[key: string]:
|
|
26
|
+
[key: string]: string;
|
|
29
27
|
};
|
|
30
28
|
outlet: string;
|
|
31
29
|
constructor(segment: any, parameters: {
|
|
32
|
-
[key: string]:
|
|
30
|
+
[key: string]: string;
|
|
33
31
|
}, outlet: string);
|
|
34
32
|
toString(): string;
|
|
35
33
|
}
|
|
36
34
|
export declare class RouteSegment {
|
|
37
35
|
urlSegments: UrlSegment[];
|
|
38
36
|
parameters: {
|
|
39
|
-
[key: string]:
|
|
37
|
+
[key: string]: string;
|
|
40
38
|
};
|
|
41
39
|
outlet: string;
|
|
42
|
-
/** @internal */
|
|
43
|
-
_type: Type;
|
|
44
|
-
/** @internal */
|
|
45
|
-
_componentFactory: ComponentFactory<any>;
|
|
46
40
|
constructor(urlSegments: UrlSegment[], parameters: {
|
|
47
|
-
[key: string]:
|
|
41
|
+
[key: string]: string;
|
|
48
42
|
}, outlet: string, type: Type, componentFactory: ComponentFactory<any>);
|
|
49
43
|
getParam(param: string): string;
|
|
44
|
+
getParamAsNumber(param: string): number;
|
|
50
45
|
readonly type: Type;
|
|
51
46
|
readonly stringifiedUrlSegments: string;
|
|
52
47
|
}
|
|
48
|
+
export declare function createEmptyRouteTree(type: Type): RouteTree;
|
|
53
49
|
export declare function serializeRouteSegmentTree(tree: RouteTree): string;
|
|
54
|
-
export declare function
|
|
55
|
-
export declare function equalUrlSegments(a: UrlSegment, b: UrlSegment): boolean;
|
|
50
|
+
export declare function equalUrlSegments(a: UrlSegment[], b: UrlSegment[]): boolean;
|
|
56
51
|
export declare function routeSegmentComponentFactory(a: RouteSegment): ComponentFactory<any>;
|
package/esm/src/segments.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { DEFAULT_OUTLET_NAME } from './constants';
|
|
2
|
+
import { ListWrapper, StringMapWrapper } from './facade/collection';
|
|
3
|
+
import { NumberWrapper, isBlank, isPresent, stringify } from './facade/lang';
|
|
3
4
|
export class Tree {
|
|
4
5
|
constructor(root) {
|
|
5
6
|
this._root = root;
|
|
@@ -34,9 +35,6 @@ export function rootNode(tree) {
|
|
|
34
35
|
return tree._root;
|
|
35
36
|
}
|
|
36
37
|
function _findNode(expected, c) {
|
|
37
|
-
// TODO: vsavkin remove it once recognize is fixed
|
|
38
|
-
if (expected instanceof RouteSegment && equalSegments(expected, c.value))
|
|
39
|
-
return c;
|
|
40
38
|
if (expected === c.value)
|
|
41
39
|
return c;
|
|
42
40
|
for (let cc of c.children) {
|
|
@@ -48,8 +46,7 @@ function _findNode(expected, c) {
|
|
|
48
46
|
}
|
|
49
47
|
function _findPath(expected, c, collected) {
|
|
50
48
|
collected.push(c);
|
|
51
|
-
|
|
52
|
-
if (_equalValues(expected, c.value))
|
|
49
|
+
if (expected === c.value)
|
|
53
50
|
return collected;
|
|
54
51
|
for (let cc of c.children) {
|
|
55
52
|
let r = _findPath(expected, cc, ListWrapper.clone(collected));
|
|
@@ -59,10 +56,10 @@ function _findPath(expected, c, collected) {
|
|
|
59
56
|
return null;
|
|
60
57
|
}
|
|
61
58
|
function _contains(tree, subtree) {
|
|
62
|
-
if (
|
|
59
|
+
if (tree.value !== subtree.value)
|
|
63
60
|
return false;
|
|
64
61
|
for (let subtreeNode of subtree.children) {
|
|
65
|
-
let s = tree.children.filter(child =>
|
|
62
|
+
let s = tree.children.filter(child => child.value === subtreeNode.value);
|
|
66
63
|
if (s.length === 0)
|
|
67
64
|
return false;
|
|
68
65
|
if (!_contains(s[0], subtreeNode))
|
|
@@ -70,13 +67,6 @@ function _contains(tree, subtree) {
|
|
|
70
67
|
}
|
|
71
68
|
return true;
|
|
72
69
|
}
|
|
73
|
-
function _equalValues(a, b) {
|
|
74
|
-
if (a instanceof RouteSegment)
|
|
75
|
-
return equalSegments(a, b);
|
|
76
|
-
if (a instanceof UrlSegment)
|
|
77
|
-
return equalUrlSegments(a, b);
|
|
78
|
-
return a === b;
|
|
79
|
-
}
|
|
80
70
|
export class TreeNode {
|
|
81
71
|
constructor(value, children) {
|
|
82
72
|
this.value = value;
|
|
@@ -90,13 +80,13 @@ export class UrlSegment {
|
|
|
90
80
|
this.outlet = outlet;
|
|
91
81
|
}
|
|
92
82
|
toString() {
|
|
93
|
-
let outletPrefix = isBlank(this.outlet) ?
|
|
83
|
+
let outletPrefix = isBlank(this.outlet) ? '' : `${this.outlet}:`;
|
|
94
84
|
return `${outletPrefix}${this.segment}${_serializeParams(this.parameters)}`;
|
|
95
85
|
}
|
|
96
86
|
}
|
|
97
87
|
function _serializeParams(params) {
|
|
98
|
-
let res =
|
|
99
|
-
StringMapWrapper.forEach(params, (v
|
|
88
|
+
let res = '';
|
|
89
|
+
StringMapWrapper.forEach(params, (v /** TODO #9100 */, k /** TODO #9100 */) => res += `;${k}=${v}`);
|
|
100
90
|
return res;
|
|
101
91
|
}
|
|
102
92
|
export class RouteSegment {
|
|
@@ -110,44 +100,36 @@ export class RouteSegment {
|
|
|
110
100
|
getParam(param) {
|
|
111
101
|
return isPresent(this.parameters) ? this.parameters[param] : null;
|
|
112
102
|
}
|
|
103
|
+
getParamAsNumber(param) {
|
|
104
|
+
return isPresent(this.parameters) ? NumberWrapper.parseFloat(this.parameters[param]) : null;
|
|
105
|
+
}
|
|
113
106
|
get type() { return this._type; }
|
|
114
|
-
get stringifiedUrlSegments() { return this.urlSegments.map(s => s.toString()).join(
|
|
107
|
+
get stringifiedUrlSegments() { return this.urlSegments.map(s => s.toString()).join('/'); }
|
|
108
|
+
}
|
|
109
|
+
export function createEmptyRouteTree(type) {
|
|
110
|
+
let root = new RouteSegment([new UrlSegment('', {}, null)], {}, DEFAULT_OUTLET_NAME, type, null);
|
|
111
|
+
return new RouteTree(new TreeNode(root, []));
|
|
115
112
|
}
|
|
116
113
|
export function serializeRouteSegmentTree(tree) {
|
|
117
114
|
return _serializeRouteSegmentTree(tree._root);
|
|
118
115
|
}
|
|
119
116
|
function _serializeRouteSegmentTree(node) {
|
|
120
117
|
let v = node.value;
|
|
121
|
-
let children = node.children.map(c => _serializeRouteSegmentTree(c)).join(
|
|
118
|
+
let children = node.children.map(c => _serializeRouteSegmentTree(c)).join(', ');
|
|
122
119
|
return `${v.outlet}:${v.stringifiedUrlSegments}(${stringify(v.type)}) [${children}]`;
|
|
123
120
|
}
|
|
124
|
-
export function equalSegments(a, b) {
|
|
125
|
-
if (isBlank(a) && !isBlank(b))
|
|
126
|
-
return false;
|
|
127
|
-
if (!isBlank(a) && isBlank(b))
|
|
128
|
-
return false;
|
|
129
|
-
if (a._type !== b._type)
|
|
130
|
-
return false;
|
|
131
|
-
if (a.outlet != b.outlet)
|
|
132
|
-
return false;
|
|
133
|
-
return StringMapWrapper.equals(a.parameters, b.parameters);
|
|
134
|
-
}
|
|
135
121
|
export function equalUrlSegments(a, b) {
|
|
136
|
-
if (
|
|
137
|
-
return false;
|
|
138
|
-
if (!isBlank(a) && isBlank(b))
|
|
139
|
-
return false;
|
|
140
|
-
if (a.segment != b.segment)
|
|
122
|
+
if (a.length !== b.length)
|
|
141
123
|
return false;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
124
|
+
for (let i = 0; i < a.length; ++i) {
|
|
125
|
+
if (a[i].segment != b[i].segment)
|
|
126
|
+
return false;
|
|
127
|
+
if (a[i].outlet != b[i].outlet)
|
|
128
|
+
return false;
|
|
129
|
+
if (!StringMapWrapper.equals(a[i].parameters, b[i].parameters))
|
|
130
|
+
return false;
|
|
149
131
|
}
|
|
150
|
-
return
|
|
132
|
+
return true;
|
|
151
133
|
}
|
|
152
134
|
export function routeSegmentComponentFactory(a) {
|
|
153
135
|
return a._componentFactory;
|
package/esm/src/segments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/segments.ts"],"names":[],"mappings":"OAKO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,qBAAqB;OAC1D,EAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,eAAe;AAE3D;IAIE,YAAY,IAAiB;QAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAAC,CAAC;IAErD,IAAI,IAAI,KAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,MAAM,CAAC,CAAI;QACT,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,CAAI;QACX,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC5D,CAAC;IAED,UAAU,CAAC,CAAI;QACb,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IAC5E,CAAC;IAED,YAAY,CAAC,CAAI,IAAS,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElF,QAAQ,CAAC,IAAa,IAAa,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,6BAA6B,IAAI;IAC/B,YAAY,IAA0B;QAAI,MAAM,IAAI,CAAC,CAAC;IAAC,CAAC;AAC1D,CAAC;AAED,+BAA+B,IAAI;IACjC,YAAY,IAA4B;QAAI,MAAM,IAAI,CAAC,CAAC;IAAC,CAAC;AAC5D,CAAC;AAED,yBAA4B,IAAa;IACvC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,mBAAsB,QAAW,EAAE,CAAc;IAC/C,kDAAkD;IAClD,EAAE,CAAC,CAAC,QAAQ,YAAY,YAAY,IAAI,aAAa,CAAM,QAAQ,EAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,EAAE,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;IACnC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC;AACd,CAAC;AAED,mBAAsB,QAAW,EAAE,CAAc,EAAE,SAAwB;IACzE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElB,kDAAkD;IAClD,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,SAAS,CAAC;IAEtD,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;AACd,CAAC;AAED,mBAAsB,IAAiB,EAAE,OAAoB;IAC3D,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAE3D,GAAG,CAAC,CAAC,IAAI,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QACjC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;AACd,CAAC;AAED,sBAAsB,CAAM,EAAE,CAAM;IAClC,EAAE,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC;QAAC,MAAM,CAAC,aAAa,CAAM,CAAC,EAAO,CAAC,CAAC,CAAC;IACpE,EAAE,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC;QAAC,MAAM,CAAC,gBAAgB,CAAM,CAAC,EAAO,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED;IACE,YAAmB,KAAQ,EAAS,QAAuB;QAAxC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAe;IAAG,CAAC;AACjE,CAAC;AAED;IACE,YAAmB,OAAY,EAAS,UAAgC,EACrD,MAAc;QADd,YAAO,GAAP,OAAO,CAAK;QAAS,eAAU,GAAV,UAAU,CAAsB;QACrD,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAErC,QAAQ;QACN,IAAI,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QACjE,MAAM,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,0BAA0B,MAA+B;IACvD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAED;IAOE,YAAmB,WAAyB,EAAS,UAAgC,EAClE,MAAc,EAAE,IAAU,EAAE,gBAAuC;QADnE,gBAAW,GAAX,WAAW,CAAc;QAAS,eAAU,GAAV,UAAU,CAAsB;QAClE,WAAM,GAAN,MAAM,CAAQ;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACpE,CAAC;IAED,IAAI,IAAI,KAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,IAAI,sBAAsB,KAAa,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,0CAA0C,IAAe;IACvD,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,oCAAoC,IAA4B;IAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,sBAAsB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,GAAG,CAAC;AACvF,CAAC;AAED,8BAA8B,CAAe,EAAE,CAAe;IAC5D,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IACtC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAED,iCAAiC,CAAa,EAAE,CAAa;IAC3D,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IACzC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IACvC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAED,6CAA6C,CAAe;IAC1D,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC7B,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {ComponentFactory, Type} from '@angular/core';\nimport {StringMapWrapper, ListWrapper} from './facade/collection';\nimport {isBlank, isPresent, stringify} from './facade/lang';\n\nexport class Tree<T> {\n /** @internal */\n _root: TreeNode<T>;\n\n constructor(root: TreeNode<T>) { this._root = root; }\n\n get root(): T { return this._root.value; }\n\n parent(t: T): T {\n let p = this.pathFromRoot(t);\n return p.length > 1 ? p[p.length - 2] : null;\n }\n\n children(t: T): T[] {\n let n = _findNode(t, this._root);\n return isPresent(n) ? n.children.map(t => t.value) : null;\n }\n\n firstChild(t: T): T {\n let n = _findNode(t, this._root);\n return isPresent(n) && n.children.length > 0 ? n.children[0].value : null;\n }\n\n pathFromRoot(t: T): T[] { return _findPath(t, this._root, []).map(s => s.value); }\n\n contains(tree: Tree<T>): boolean { return _contains(this._root, tree._root); }\n}\n\nexport class UrlTree extends Tree<UrlSegment> {\n constructor(root: TreeNode<UrlSegment>) { super(root); }\n}\n\nexport class RouteTree extends Tree<RouteSegment> {\n constructor(root: TreeNode<RouteSegment>) { super(root); }\n}\n\nexport function rootNode<T>(tree: Tree<T>): TreeNode<T> {\n return tree._root;\n}\n\nfunction _findNode<T>(expected: T, c: TreeNode<T>): TreeNode<T> {\n // TODO: vsavkin remove it once recognize is fixed\n if (expected instanceof RouteSegment && equalSegments(<any>expected, <any>c.value)) return c;\n if (expected === c.value) return c;\n for (let cc of c.children) {\n let r = _findNode(expected, cc);\n if (isPresent(r)) return r;\n }\n return null;\n}\n\nfunction _findPath<T>(expected: T, c: TreeNode<T>, collected: TreeNode<T>[]): TreeNode<T>[] {\n collected.push(c);\n\n // TODO: vsavkin remove it once recognize is fixed\n if (_equalValues(expected, c.value)) return collected;\n\n for (let cc of c.children) {\n let r = _findPath(expected, cc, ListWrapper.clone(collected));\n if (isPresent(r)) return r;\n }\n\n return null;\n}\n\nfunction _contains<T>(tree: TreeNode<T>, subtree: TreeNode<T>): boolean {\n if (!_equalValues(tree.value, subtree.value)) return false;\n\n for (let subtreeNode of subtree.children) {\n let s = tree.children.filter(child => _equalValues(child.value, subtreeNode.value));\n if (s.length === 0) return false;\n if (!_contains(s[0], subtreeNode)) return false;\n }\n\n return true;\n}\n\nfunction _equalValues(a: any, b: any): boolean {\n if (a instanceof RouteSegment) return equalSegments(<any>a, <any>b);\n if (a instanceof UrlSegment) return equalUrlSegments(<any>a, <any>b);\n return a === b;\n}\n\nexport class TreeNode<T> {\n constructor(public value: T, public children: TreeNode<T>[]) {}\n}\n\nexport class UrlSegment {\n constructor(public segment: any, public parameters: {[key: string]: any},\n public outlet: string) {}\n\n toString(): string {\n let outletPrefix = isBlank(this.outlet) ? \"\" : `${this.outlet}:`;\n return `${outletPrefix}${this.segment}${_serializeParams(this.parameters)}`;\n }\n}\n\nfunction _serializeParams(params: {[key: string]: string}): string {\n let res = \"\";\n StringMapWrapper.forEach(params, (v, k) => res += `;${k}=${v}`);\n return res;\n}\n\nexport class RouteSegment {\n /** @internal */\n _type: Type;\n\n /** @internal */\n _componentFactory: ComponentFactory<any>;\n\n constructor(public urlSegments: UrlSegment[], public parameters: {[key: string]: any},\n public outlet: string, type: Type, componentFactory: ComponentFactory<any>) {\n this._type = type;\n this._componentFactory = componentFactory;\n }\n\n getParam(param: string): string {\n return isPresent(this.parameters) ? this.parameters[param] : null;\n }\n\n get type(): Type { return this._type; }\n\n get stringifiedUrlSegments(): string { return this.urlSegments.map(s => s.toString()).join(\"/\"); }\n}\n\nexport function serializeRouteSegmentTree(tree: RouteTree): string {\n return _serializeRouteSegmentTree(tree._root);\n}\n\nfunction _serializeRouteSegmentTree(node: TreeNode<RouteSegment>): string {\n let v = node.value;\n let children = node.children.map(c => _serializeRouteSegmentTree(c)).join(\", \");\n return `${v.outlet}:${v.stringifiedUrlSegments}(${stringify(v.type)}) [${children}]`;\n}\n\nexport function equalSegments(a: RouteSegment, b: RouteSegment): boolean {\n if (isBlank(a) && !isBlank(b)) return false;\n if (!isBlank(a) && isBlank(b)) return false;\n if (a._type !== b._type) return false;\n if (a.outlet != b.outlet) return false;\n return StringMapWrapper.equals(a.parameters, b.parameters);\n}\n\nexport function equalUrlSegments(a: UrlSegment, b: UrlSegment): boolean {\n if (isBlank(a) && !isBlank(b)) return false;\n if (!isBlank(a) && isBlank(b)) return false;\n if (a.segment != b.segment) return false;\n if (a.outlet != b.outlet) return false;\n if (isBlank(a.parameters)) {\n console.log(\"a\", a);\n }\n if (isBlank(b.parameters)) {\n console.log(\"b\", b);\n }\n return StringMapWrapper.equals(a.parameters, b.parameters);\n}\n\nexport function routeSegmentComponentFactory(a: RouteSegment): ComponentFactory<any> {\n return a._componentFactory;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/segments.ts"],"names":[],"mappings":"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","sourcesContent":["import {ComponentFactory, Type} from '@angular/core';\n\nimport {DEFAULT_OUTLET_NAME} from './constants';\nimport {ListWrapper, StringMapWrapper} from './facade/collection';\nimport {NumberWrapper, isBlank, isPresent, stringify} from './facade/lang';\n\nexport class Tree<T> {\n /** @internal */\n _root: TreeNode<T>;\n\n constructor(root: TreeNode<T>) { this._root = root; }\n\n get root(): T { return this._root.value; }\n\n parent(t: T): T {\n let p = this.pathFromRoot(t);\n return p.length > 1 ? p[p.length - 2] : null;\n }\n\n children(t: T): T[] {\n let n = _findNode(t, this._root);\n return isPresent(n) ? n.children.map(t => t.value) : null;\n }\n\n firstChild(t: T): T {\n let n = _findNode(t, this._root);\n return isPresent(n) && n.children.length > 0 ? n.children[0].value : null;\n }\n\n pathFromRoot(t: T): T[] { return _findPath(t, this._root, []).map(s => s.value); }\n\n contains(tree: Tree<T>): boolean { return _contains(this._root, tree._root); }\n}\n\nexport class UrlTree extends Tree<UrlSegment> {\n constructor(root: TreeNode<UrlSegment>) { super(root); }\n}\n\nexport class RouteTree extends Tree<RouteSegment> {\n constructor(root: TreeNode<RouteSegment>) { super(root); }\n}\n\nexport function rootNode<T>(tree: Tree<T>): TreeNode<T> {\n return tree._root;\n}\n\nfunction _findNode<T>(expected: T, c: TreeNode<T>): TreeNode<T> {\n if (expected === c.value) return c;\n for (let cc of c.children) {\n let r = _findNode(expected, cc);\n if (isPresent(r)) return r;\n }\n return null;\n}\n\nfunction _findPath<T>(expected: T, c: TreeNode<T>, collected: TreeNode<T>[]): TreeNode<T>[] {\n collected.push(c);\n if (expected === c.value) return collected;\n\n for (let cc of c.children) {\n let r = _findPath(expected, cc, ListWrapper.clone(collected));\n if (isPresent(r)) return r;\n }\n\n return null;\n}\n\nfunction _contains<T>(tree: TreeNode<T>, subtree: TreeNode<T>): boolean {\n if (tree.value !== subtree.value) return false;\n\n for (let subtreeNode of subtree.children) {\n let s = tree.children.filter(child => child.value === subtreeNode.value);\n if (s.length === 0) return false;\n if (!_contains(s[0], subtreeNode)) return false;\n }\n\n return true;\n}\n\nexport class TreeNode<T> {\n constructor(public value: T, public children: TreeNode<T>[]) {}\n}\n\nexport class UrlSegment {\n constructor(\n public segment: any, public parameters: {[key: string]: string}, public outlet: string) {}\n\n toString(): string {\n let outletPrefix = isBlank(this.outlet) ? '' : `${this.outlet}:`;\n return `${outletPrefix}${this.segment}${_serializeParams(this.parameters)}`;\n }\n}\n\nfunction _serializeParams(params: {[key: string]: string}): string {\n let res = '';\n StringMapWrapper.forEach(\n params, (v: any /** TODO #9100 */, k: any /** TODO #9100 */) => res += `;${k}=${v}`);\n return res;\n}\n\nexport class RouteSegment {\n /** @internal */\n _type: Type;\n\n /** @internal */\n _componentFactory: ComponentFactory<any>;\n\n constructor(\n public urlSegments: UrlSegment[], public parameters: {[key: string]: string},\n public outlet: string, type: Type, componentFactory: ComponentFactory<any>) {\n this._type = type;\n this._componentFactory = componentFactory;\n }\n\n getParam(param: string): string {\n return isPresent(this.parameters) ? this.parameters[param] : null;\n }\n\n getParamAsNumber(param: string): number {\n return isPresent(this.parameters) ? NumberWrapper.parseFloat(this.parameters[param]) : null;\n }\n\n get type(): Type { return this._type; }\n\n get stringifiedUrlSegments(): string { return this.urlSegments.map(s => s.toString()).join('/'); }\n}\n\nexport function createEmptyRouteTree(type: Type): RouteTree {\n let root = new RouteSegment([new UrlSegment('', {}, null)], {}, DEFAULT_OUTLET_NAME, type, null);\n return new RouteTree(new TreeNode<RouteSegment>(root, []));\n}\n\nexport function serializeRouteSegmentTree(tree: RouteTree): string {\n return _serializeRouteSegmentTree(tree._root);\n}\n\nfunction _serializeRouteSegmentTree(node: TreeNode<RouteSegment>): string {\n let v = node.value;\n let children = node.children.map(c => _serializeRouteSegmentTree(c)).join(', ');\n return `${v.outlet}:${v.stringifiedUrlSegments}(${stringify(v.type)}) [${children}]`;\n}\n\nexport function equalUrlSegments(a: UrlSegment[], b: UrlSegment[]): boolean {\n if (a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; ++i) {\n if (a[i].segment != b[i].segment) return false;\n if (a[i].outlet != b[i].outlet) return false;\n if (!StringMapWrapper.equals(a[i].parameters, b[i].parameters)) return false;\n }\n\n return true;\n}\n\nexport function routeSegmentComponentFactory(a: RouteSegment): ComponentFactory<any> {\n return a._componentFactory;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"rootNode":{"__symbolic":"function","parameters":["tree"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"tree"},"member":"_root"}},"serializeRouteSegmentTree":{"__symbolic":"function","parameters":["tree"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"_serializeRouteSegmentTree"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"tree"},"member":"_root"}]}},"routeSegmentComponentFactory":{"__symbolic":"function","parameters":["a"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"a"},"member":"_componentFactory"}}}}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { SpyLocation } from '@angular/common/testing';
|
|
2
1
|
import { Location } from '@angular/common';
|
|
3
|
-
import {
|
|
4
|
-
import { RouterUrlSerializer, DefaultRouterUrlSerializer } from '../src/router_url_serializer';
|
|
2
|
+
import { SpyLocation } from '@angular/common/testing';
|
|
5
3
|
import { Component, ComponentResolver } from '@angular/core';
|
|
4
|
+
import { Router, RouterOutletMap } from '../src/router';
|
|
5
|
+
import { DefaultRouterUrlSerializer, RouterUrlSerializer } from '../src/router_url_serializer';
|
|
6
|
+
import { RouteSegment } from '../src/segments';
|
|
6
7
|
class FakeAppRootCmp {
|
|
7
8
|
}
|
|
9
|
+
/** @nocollapse */
|
|
8
10
|
FakeAppRootCmp.decorators = [
|
|
9
11
|
{ type: Component, args: [{ selector: 'fake-app-root-comp', template: `<span></span>` },] },
|
|
10
12
|
];
|
|
@@ -20,5 +22,10 @@ export const ROUTER_FAKE_PROVIDERS = [
|
|
|
20
22
|
useFactory: routerFactory,
|
|
21
23
|
deps: /*@ts2dart_const*/ [ComponentResolver, RouterUrlSerializer, RouterOutletMap, Location]
|
|
22
24
|
},
|
|
25
|
+
/*@ts2dart_Provider*/ {
|
|
26
|
+
provide: RouteSegment,
|
|
27
|
+
useFactory: (r /** TODO #9100 */) => r.routeTree.root,
|
|
28
|
+
deps: [Router]
|
|
29
|
+
}
|
|
23
30
|
];
|
|
24
31
|
//# sourceMappingURL=router_testing_providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router_testing_providers.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/testing/router_testing_providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router_testing_providers.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/testing/router_testing_providers.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB;OACjC,EAAC,WAAW,EAAC,MAAM,yBAAyB;OAC5C,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,eAAe;OAEnD,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,eAAe;OAC9C,EAAC,0BAA0B,EAAE,mBAAmB,EAAC,MAAM,8BAA8B;OACrF,EAAC,YAAY,EAAC,MAAM,iBAAiB;AAC5C;AAKA,CAAC;AAJD,kBAAkB;AACX,yBAAU,GAA0B;IAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAC,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAC,EAAG,EAAE;CACzF,CACA;AAED,uBACI,iBAAoC,EAAE,aAAkC,EACxE,eAAgC,EAAE,QAAkB;IACtD,MAAM,CAAC,IAAI,MAAM,CACb,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;AACzF,CAAC;AAED,OAAO,MAAM,qBAAqB,GAA4B;IAC5D,eAAe;IACf,uBAAuB,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAC;IAClE,uBAAuB,CAAC,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,0BAA0B,EAAC;IAC5F,uBAAuB,CAAC;QACtB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,aAAa;QACzB,IAAI,EAAE,kBAAkB,CACpB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC;KACxE;IACD,qBAAqB,CAAC;QACpB,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,CAAC,CAAM,CAAC,iBAAiB,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI;QAC1D,IAAI,EAAE,CAAC,MAAM,CAAC;KACf;CACF,CAAC","sourcesContent":["import {Location} from '@angular/common';\nimport {SpyLocation} from '@angular/common/testing';\nimport {Component, ComponentResolver} from '@angular/core';\n\nimport {Router, RouterOutletMap} from '../src/router';\nimport {DefaultRouterUrlSerializer, RouterUrlSerializer} from '../src/router_url_serializer';\nimport {RouteSegment} from '../src/segments';\nclass FakeAppRootCmp {\n/** @nocollapse */\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{selector: 'fake-app-root-comp', template: `<span></span>`}, ] },\n];\n}\n\nfunction routerFactory(\n componentResolver: ComponentResolver, urlSerializer: RouterUrlSerializer,\n routerOutletMap: RouterOutletMap, location: Location): Router {\n return new Router(\n null, FakeAppRootCmp, componentResolver, urlSerializer, routerOutletMap, location);\n}\n\nexport const ROUTER_FAKE_PROVIDERS: any[] = /*@ts2dart_const*/[\n RouterOutletMap,\n /* @ts2dart_Provider */ {provide: Location, useClass: SpyLocation},\n /* @ts2dart_Provider */ {provide: RouterUrlSerializer, useClass: DefaultRouterUrlSerializer},\n /* @ts2dart_Provider */ {\n provide: Router,\n useFactory: routerFactory,\n deps: /*@ts2dart_const*/\n [ComponentResolver, RouterUrlSerializer, RouterOutletMap, Location]\n },\n /*@ts2dart_Provider*/ {\n provide: RouteSegment,\n useFactory: (r: any /** TODO #9100 */) => r.routeTree.root,\n deps: [Router]\n }\n];\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"ROUTER_FAKE_PROVIDERS":{"__symbolic":"error","message":"Function call not supported","line":31,"character":15}}}
|
package/esm/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../../modules/@angular/router/testing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../../modules/@angular/router/testing.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC","sourcesContent":["export * from './testing/router_testing_providers';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
package/index.d.ts
CHANGED
|
@@ -3,31 +3,13 @@
|
|
|
3
3
|
* @description
|
|
4
4
|
* Maps application URLs into application states, to support deep-linking and navigation.
|
|
5
5
|
*/
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
6
|
+
export { ROUTER_DIRECTIVES } from './src/directives/router_directives';
|
|
7
|
+
export { RouterLink } from './src/directives/router_link';
|
|
8
|
+
export { RouterOutlet } from './src/directives/router_outlet';
|
|
9
|
+
export { CanDeactivate, OnActivate } from './src/interfaces';
|
|
8
10
|
export { Routes } from './src/metadata/decorators';
|
|
9
11
|
export { Route } from './src/metadata/metadata';
|
|
10
|
-
export {
|
|
11
|
-
export { OnActivate, CanDeactivate } from './src/interfaces';
|
|
12
|
+
export { Router, RouterOutletMap } from './src/router';
|
|
12
13
|
export { ROUTER_PROVIDERS } from './src/router_providers';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* {@link RouterLink}, add this to your `directives` array in the {@link View} decorator of your
|
|
16
|
-
* component.
|
|
17
|
-
*
|
|
18
|
-
* ```
|
|
19
|
-
* import {Component} from '@angular/core';
|
|
20
|
-
* import {ROUTER_DIRECTIVES, Routes} from '@angular/router-deprecated';
|
|
21
|
-
*
|
|
22
|
-
* @Component({directives: [ROUTER_DIRECTIVES]})
|
|
23
|
-
* @RouteConfig([
|
|
24
|
-
* {...},
|
|
25
|
-
* ])
|
|
26
|
-
* class AppCmp {
|
|
27
|
-
* // ...
|
|
28
|
-
* }
|
|
29
|
-
*
|
|
30
|
-
* bootstrap(AppCmp);
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export declare const ROUTER_DIRECTIVES: any[];
|
|
14
|
+
export { DefaultRouterUrlSerializer, RouterUrlSerializer } from './src/router_url_serializer';
|
|
15
|
+
export { RouteSegment, RouteTree, Tree, UrlSegment, UrlTree } from './src/segments';
|