@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
package/esm/src/facade/lang.js
CHANGED
|
@@ -40,6 +40,7 @@ export function lockMode() {
|
|
|
40
40
|
* One important assertion this disables verifies that a change detection pass
|
|
41
41
|
* does not result in additional changes to any bindings (also known as
|
|
42
42
|
* unidirectional data flow).
|
|
43
|
+
* @stable
|
|
43
44
|
*/
|
|
44
45
|
export function enableProdMode() {
|
|
45
46
|
if (_modeLocked) {
|
|
@@ -64,16 +65,16 @@ export function isBlank(obj) {
|
|
|
64
65
|
return obj === undefined || obj === null;
|
|
65
66
|
}
|
|
66
67
|
export function isBoolean(obj) {
|
|
67
|
-
return typeof obj ===
|
|
68
|
+
return typeof obj === 'boolean';
|
|
68
69
|
}
|
|
69
70
|
export function isNumber(obj) {
|
|
70
|
-
return typeof obj ===
|
|
71
|
+
return typeof obj === 'number';
|
|
71
72
|
}
|
|
72
73
|
export function isString(obj) {
|
|
73
|
-
return typeof obj ===
|
|
74
|
+
return typeof obj === 'string';
|
|
74
75
|
}
|
|
75
76
|
export function isFunction(obj) {
|
|
76
|
-
return typeof obj ===
|
|
77
|
+
return typeof obj === 'function';
|
|
77
78
|
}
|
|
78
79
|
export function isType(obj) {
|
|
79
80
|
return isFunction(obj);
|
|
@@ -109,7 +110,7 @@ export function stringify(token) {
|
|
|
109
110
|
return token.overriddenName;
|
|
110
111
|
}
|
|
111
112
|
var res = token.toString();
|
|
112
|
-
var newLineIndex = res.indexOf(
|
|
113
|
+
var newLineIndex = res.indexOf('\n');
|
|
113
114
|
return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);
|
|
114
115
|
}
|
|
115
116
|
// serialize / deserialize enum exist only for consistency with dart API
|
|
@@ -187,7 +188,7 @@ export class StringJoiner {
|
|
|
187
188
|
this.parts = parts;
|
|
188
189
|
}
|
|
189
190
|
add(part) { this.parts.push(part); }
|
|
190
|
-
toString() { return this.parts.join(
|
|
191
|
+
toString() { return this.parts.join(''); }
|
|
191
192
|
}
|
|
192
193
|
export class NumberParseError extends Error {
|
|
193
194
|
constructor(message) {
|
|
@@ -202,7 +203,7 @@ export class NumberWrapper {
|
|
|
202
203
|
static parseIntAutoRadix(text) {
|
|
203
204
|
var result = parseInt(text);
|
|
204
205
|
if (isNaN(result)) {
|
|
205
|
-
throw new NumberParseError(
|
|
206
|
+
throw new NumberParseError('Invalid integer literal when parsing ' + text);
|
|
206
207
|
}
|
|
207
208
|
return result;
|
|
208
209
|
}
|
|
@@ -223,8 +224,7 @@ export class NumberWrapper {
|
|
|
223
224
|
return result;
|
|
224
225
|
}
|
|
225
226
|
}
|
|
226
|
-
throw new NumberParseError(
|
|
227
|
-
radix);
|
|
227
|
+
throw new NumberParseError('Invalid integer literal when parsing ' + text + ' in base ' + radix);
|
|
228
228
|
}
|
|
229
229
|
// TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.
|
|
230
230
|
static parseFloat(text) { return parseFloat(text); }
|
|
@@ -277,10 +277,11 @@ export class RegExpMatcherWrapper {
|
|
|
277
277
|
}
|
|
278
278
|
export class FunctionWrapper {
|
|
279
279
|
static apply(fn, posArgs) { return fn.apply(null, posArgs); }
|
|
280
|
+
static bind(fn, scope) { return fn.bind(scope); }
|
|
280
281
|
}
|
|
281
282
|
// JS has NaN !== NaN
|
|
282
283
|
export function looseIdentical(a, b) {
|
|
283
|
-
return a === b || typeof a ===
|
|
284
|
+
return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);
|
|
284
285
|
}
|
|
285
286
|
// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)
|
|
286
287
|
// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
|
|
@@ -294,7 +295,7 @@ export function normalizeBool(obj) {
|
|
|
294
295
|
return isBlank(obj) ? false : obj;
|
|
295
296
|
}
|
|
296
297
|
export function isJsObject(o) {
|
|
297
|
-
return o !== null && (typeof o ===
|
|
298
|
+
return o !== null && (typeof o === 'function' || typeof o === 'object');
|
|
298
299
|
}
|
|
299
300
|
export function print(obj) {
|
|
300
301
|
console.log(obj);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/facade/lang.ts"],"names":[],"mappings":"AAiCA,IAAI,WAA8B,CAAC;AACnC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,CAAC,OAAO,iBAAiB,KAAK,WAAW,IAAI,IAAI,YAAY,iBAAiB,CAAC,CAAC,CAAC;QAClF,yEAAyE;QACzE,WAAW,GAAQ,IAAI,CAAC;IAC1B,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,WAAW,GAAQ,MAAM,CAAC;IAC5B,CAAC;AACH,CAAC;AAAC,IAAI,CAAC,CAAC;IACN,WAAW,GAAQ,MAAM,CAAC;AAC5B,CAAC;AAED,kCAAkC,EAAY;IAC5C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,MAAM,OAAO,GAAG,KAAK,CAAC;AAE7B,kEAAkE;AAClE,4CAA4C;AAC5C,IAAI,OAAO,GAAsB,WAAW,CAAC;AAE7C,SAAQ,OAAO,IAAI,MAAM,GAAE;AAE3B,OAAO,IAAI,IAAI,GAAG,QAAQ,CAAC;AAe3B,wCAAwC,IAAU;IAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,CAAC,OAAO,IAAI,CAAC;AACrB,CAAC;AAGD,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC/B,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE/B,IAAI,QAAQ,GAAY,IAAI,CAAC;AAC7B,IAAI,WAAW,GAAY,KAAK,CAAC;AAEjC;IACE,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH;IACE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAChB,uEAAuE;QACvE,MAAM,+CAA+C,CAAC;IACxD,CAAC;IACD,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED;IACE,MAAM,CAAC,QAAQ,CAAC;AAClB,CAAC;AAED,yDAAyD;AACzD,4DAA4D;AAC5D,4CAA4C;AAC5C,OAAO,CAAC,MAAM,GAAG,gBAAgB,SAAS;IACxC,qDAAqD;AACvD,CAAC,CAAC;AAEF,0BAA0B,GAAQ;IAChC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAED,wBAAwB,GAAQ;IAC9B,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAED,0BAA0B,GAAQ;IAChC,MAAM,CAAC,OAAO,GAAG,KAAK,SAAS,CAAC;AAClC,CAAC;AAED,yBAAyB,GAAQ;IAC/B,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,yBAAyB,GAAQ;IAC/B,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,2BAA2B,GAAQ;IACjC,MAAM,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,uBAAuB,GAAQ;IAC7B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,4BAA4B,GAAQ;IAClC,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACjD,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACnD,kCAAkC,GAAQ;IACxC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;AAC7E,CAAC;AAED,0BAA0B,GAAQ;IAChC,MAAM,CAAC,GAAG,YAAkB,OAAQ,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED,wBAAwB,GAAQ;IAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,uBAAuB,GAAG;IACxB,MAAM,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,yBAAwB,CAAC;AAEzB,0BAA0B,KAAK;IAC7B,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IACD,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAED,wEAAwE;AACxE,kDAAkD;AAElD,8BAA8B,GAAG;IAC/B,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAED,gCAAgC,GAAG,EAAE,MAAwB;IAC3D,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAED,iCAAiC,SAAS,EAAE,GAAG;IAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;IACE,OAAO,YAAY,CAAC,IAAY,IAAY,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,UAAU,CAAC,CAAS,EAAE,KAAa,IAAY,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnF,OAAO,KAAK,CAAC,CAAS,EAAE,MAAc,IAAc,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE7E,OAAO,MAAM,CAAC,CAAS,EAAE,EAAU,IAAa,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAElE,OAAO,SAAS,CAAC,CAAS,EAAE,OAAe;QACzC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;oBAAC,KAAK,CAAC;gBAC3B,GAAG,EAAE,CAAC;YACR,CAAC;YACD,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAED,OAAO,UAAU,CAAC,CAAS,EAAE,OAAe;QAC1C,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;oBAAC,KAAK,CAAC;gBAC3B,GAAG,EAAE,CAAC;YACR,CAAC;YACD,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAED,OAAO,OAAO,CAAC,CAAS,EAAE,IAAY,EAAE,OAAe;QACrD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,UAAU,CAAC,CAAS,EAAE,IAAY,EAAE,OAAe;QACxD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAI,CAAS,EAAE,IAAI,GAAW,CAAC,EAAE,EAAE,GAAW,IAAI;QAC5D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,gBAAgB,CAAC,CAAS,EAAE,IAAY,EAAE,EAAY;QAC3D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAS,GAAG,OAAO;YACxC,+CAA+C;YAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,2CAA2C;YAC3C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,CAAS,EAAE,MAAc,IAAa,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvF,OAAO,OAAO,CAAC,CAAS,EAAE,CAAS;QACjC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAED;IACE,YAAmB,KAAK,GAAG,EAAE;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAEjC,GAAG,CAAC,IAAY,IAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElD,QAAQ,KAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,sCAAsC,KAAK;IAGzC,YAAmB,OAAe;QAAI,OAAO,CAAC;QAA3B,YAAO,GAAP,OAAO,CAAQ;IAAa,CAAC;IAEhD,QAAQ,KAAa,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC;AAGD;IACE,OAAO,OAAO,CAAC,CAAS,EAAE,cAAsB,IAAY,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAE/F,OAAO,KAAK,CAAC,CAAS,EAAE,CAAS,IAAa,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/D,OAAO,iBAAiB,CAAC,IAAY;QACnC,IAAI,MAAM,GAAW,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAY,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAChB,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,MAAM,GAAW,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,gBAAgB,CAAC,uCAAuC,GAAG,IAAI,GAAG,WAAW;YAC5D,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,mFAAmF;IACnF,OAAO,UAAU,CAAC,IAAY,IAAY,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpE,WAAW,GAAG,KAAa,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAExC,OAAO,KAAK,CAAC,KAAU,IAAa,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1D,OAAO,SAAS,CAAC,KAAU,IAAa,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,OAAO,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAEnC;IACE,OAAO,MAAM,CAAC,SAAiB,EAAE,KAAK,GAAW,EAAE;QACjD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,UAAU,CAAC,MAAc,EAAE,KAAa;QAC7C,+BAA+B;QAC/B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC,MAAc,EAAE,KAAa;QACvC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC,MAAc,EAAE,KAAa;QAK1C,iCAAiC;QACjC,wCAAwC;QACxC,aAAa;QACb,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,EAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;IACpC,CAAC;IACD,OAAO,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,OAAiB;QAChE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACtC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;IACE,OAAO,IAAI,CAAC,OAGX;QACC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;IACE,OAAO,KAAK,CAAC,EAAY,EAAE,OAAY,IAAS,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,qBAAqB;AACrB,+BAA+B,CAAC,EAAE,CAAC;IACjC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,gFAAgF;AAChF,2FAA2F;AAC3F,0BAA6B,KAAQ;IACnC,MAAM,CAAC,KAAK,CAAC;AACf,CAAC;AAED,+BAA+B,GAAW;IACxC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AACnC,CAAC;AAED,8BAA8B,GAAY;IACxC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;AACpC,CAAC;AAED,2BAA2B,CAAM;IAC/B,MAAM,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAED,sBAAsB,GAAmB;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,qBAAqB,GAAmB;IACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,oFAAoF;AACpF;IACE,OAAO,KAAK,CAAC,CAAS,IAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,SAAS,CAAC,IAAY;QAC3B,gCAAgC;QAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;IACE,OAAO,MAAM,CAAC,IAAY,EAAE,KAAK,GAAW,CAAC,EAAE,GAAG,GAAW,CAAC,EAAE,IAAI,GAAW,CAAC,EAClE,OAAO,GAAW,CAAC,EAAE,OAAO,GAAW,CAAC,EAAE,YAAY,GAAW,CAAC;QAC9E,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,aAAa,CAAC,GAAW,IAAU,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,UAAU,CAAC,EAAU,IAAU,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC,IAAU,IAAY,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,GAAG,KAAW,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,IAAU,IAAY,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,+BAA+B,MAAW,EAAE,IAAY,EAAE,KAAU;IAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,GAAG,GAAQ,MAAM,CAAC;IACtB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IACD,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;QACtC,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;AAC7B,CAAC;AAID,IAAI,eAAe,GAAG,IAAI,CAAC;AAC3B;IACE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7B,EAAE,CAAC,CAAC,SAAS,CAAO,WAAY,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvE,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,0BAA0B;YAC1B,IAAI,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM;oBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACpD,eAAe,GAAG,GAAG,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,CAAC,eAAe,CAAC;AACzB,CAAC;AAED,+BAA+B,SAAiB,EAAE,IAAY,EAAE,YAAoB,EACrD,IAA0B;IACvD,IAAI,MAAM,GAAG,GAAG,YAAY,YAAY,IAAI,mBAAmB,SAAS,EAAE,CAAC;IAC3E,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,GAAG,CAAC,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AACpE,CAAC;AAED,4BAA4B,GAAQ;IAClC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,+BAA+B,KAAa,EAAE,IAAU;IACtD,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;AACpC,CAAC;AAED,0BAA0B,MAAgB;IACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,2BAA2B,MAAgB;IACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,uBAAuB,CAAS;IAC9B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n export interface BrowserNodeGlobal {\n Object: typeof Object;\n Array: typeof Array;\n Map: typeof Map;\n Set: typeof Set;\n Date: DateConstructor;\n RegExp: RegExpConstructor;\n JSON: typeof JSON;\n Math: any; // typeof Math;\n assert(condition: any): void;\n Reflect: any;\n getAngularTestability: Function;\n getAllAngularTestabilities: Function;\n getAllAngularRootElements: Function;\n frameworkStabilizers: Array<Function>;\n setTimeout: Function;\n clearTimeout: Function;\n setInterval: Function;\n clearInterval: Function;\n encodeURI: Function;\n}\n\n// TODO(jteplitz602): Load WorkerGlobalScope from lib.webworker.d.ts file #3492\ndeclare var WorkerGlobalScope;\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\ndeclare var global;\n\nvar globalScope: BrowserNodeGlobal;\nif (typeof window === 'undefined') {\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492\n globalScope = <any>self;\n } else {\n globalScope = <any>global;\n }\n} else {\n globalScope = <any>window;\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n\nexport const IS_DART = false;\n\n// Need to declare a new variable for global here since TypeScript\n// exports the original value of the symbol.\nvar _global: BrowserNodeGlobal = globalScope;\n\nexport {_global as global};\n\nexport var Type = Function;\n\n/**\n * Runtime representation a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by\n * the `MyCustomComponent` constructor function.\n */\nexport interface Type extends Function {}\n\n/**\n * Runtime representation of a type that is constructable (non-abstract).\n */\nexport interface ConcreteType extends Type { new (...args): any; }\n\nexport function getTypeNameForDebugging(type: Type): string {\n if (type['name']) {\n return type['name'];\n }\n return typeof type;\n}\n\n\nexport var Math = _global.Math;\nexport var Date = _global.Date;\n\nvar _devMode: boolean = true;\nvar _modeLocked: boolean = false;\n\nexport function lockMode() {\n _modeLocked = true;\n}\n\n/**\n * Disable Angular's development mode, which turns off assertions and other\n * checks within the framework.\n *\n * One important assertion this disables verifies that a change detection pass\n * does not result in additional changes to any bindings (also known as\n * unidirectional data flow).\n */\nexport function enableProdMode() {\n if (_modeLocked) {\n // Cannot use BaseException as that ends up importing from facade/lang.\n throw 'Cannot enable prod mode after platform setup.';\n }\n _devMode = false;\n}\n\nexport function assertionsEnabled(): boolean {\n return _devMode;\n}\n\n// TODO: remove calls to assert in production environment\n// Note: Can't just export this and import in in other files\n// as `assert` is a reserved keyword in Dart\n_global.assert = function assert(condition) {\n // TODO: to be fixed properly via #2830, noop for now\n};\n\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\nexport function isBoolean(obj: any): boolean {\n return typeof obj === \"boolean\";\n}\n\nexport function isNumber(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nexport function isString(obj: any): boolean {\n return typeof obj === \"string\";\n}\n\nexport function isFunction(obj: any): boolean {\n return typeof obj === \"function\";\n}\n\nexport function isType(obj: any): boolean {\n return isFunction(obj);\n}\n\nexport function isStringMap(obj: any): boolean {\n return typeof obj === 'object' && obj !== null;\n}\n\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\nexport function isStrictStringMap(obj: any): boolean {\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\n\nexport function isPromise(obj: any): boolean {\n return obj instanceof (<any>_global).Promise;\n}\n\nexport function isArray(obj: any): boolean {\n return Array.isArray(obj);\n}\n\nexport function isDate(obj): boolean {\n return obj instanceof Date && !isNaN(obj.valueOf());\n}\n\nexport function noop() {}\n\nexport function stringify(token): string {\n if (typeof token === 'string') {\n return token;\n }\n\n if (token === undefined || token === null) {\n return '' + token;\n }\n\n if (token.name) {\n return token.name;\n }\n if (token.overriddenName) {\n return token.overriddenName;\n }\n\n var res = token.toString();\n var newLineIndex = res.indexOf(\"\\n\");\n return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);\n}\n\n// serialize / deserialize enum exist only for consistency with dart API\n// enums in typescript don't need to be serialized\n\nexport function serializeEnum(val): number {\n return val;\n}\n\nexport function deserializeEnum(val, values: Map<number, any>): any {\n return val;\n}\n\nexport function resolveEnumToken(enumValue, val): string {\n return enumValue[val];\n}\n\nexport class StringWrapper {\n static fromCharCode(code: number): string { return String.fromCharCode(code); }\n\n static charCodeAt(s: string, index: number): number { return s.charCodeAt(index); }\n\n static split(s: string, regExp: RegExp): string[] { return s.split(regExp); }\n\n static equals(s: string, s2: string): boolean { return s === s2; }\n\n static stripLeft(s: string, charVal: string): string {\n if (s && s.length) {\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n if (s[i] != charVal) break;\n pos++;\n }\n s = s.substring(pos);\n }\n return s;\n }\n\n static stripRight(s: string, charVal: string): string {\n if (s && s.length) {\n var pos = s.length;\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] != charVal) break;\n pos--;\n }\n s = s.substring(0, pos);\n }\n return s;\n }\n\n static replace(s: string, from: string, replace: string): string {\n return s.replace(from, replace);\n }\n\n static replaceAll(s: string, from: RegExp, replace: string): string {\n return s.replace(from, replace);\n }\n\n static slice<T>(s: string, from: number = 0, to: number = null): string {\n return s.slice(from, to === null ? undefined : to);\n }\n\n static replaceAllMapped(s: string, from: RegExp, cb: Function): string {\n return s.replace(from, function(...matches) {\n // Remove offset & string from the result array\n matches.splice(-2, 2);\n // The callback receives match, p1, ..., pn\n return cb(matches);\n });\n }\n\n static contains(s: string, substr: string): boolean { return s.indexOf(substr) != -1; }\n\n static compare(a: string, b: string): number {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n }\n}\n\nexport class StringJoiner {\n constructor(public parts = []) {}\n\n add(part: string): void { this.parts.push(part); }\n\n toString(): string { return this.parts.join(\"\"); }\n}\n\nexport class NumberParseError extends Error {\n name: string;\n\n constructor(public message: string) { super(); }\n\n toString(): string { return this.message; }\n}\n\n\nexport class NumberWrapper {\n static toFixed(n: number, fractionDigits: number): string { return n.toFixed(fractionDigits); }\n\n static equal(a: number, b: number): boolean { return a === b; }\n\n static parseIntAutoRadix(text: string): number {\n var result: number = parseInt(text);\n if (isNaN(result)) {\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text);\n }\n return result;\n }\n\n static parseInt(text: string, radix: number): number {\n if (radix == 10) {\n if (/^(\\-|\\+)?[0-9]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else if (radix == 16) {\n if (/^(\\-|\\+)?[0-9ABCDEFabcdef]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else {\n var result: number = parseInt(text, radix);\n if (!isNaN(result)) {\n return result;\n }\n }\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text + \" in base \" +\n radix);\n }\n\n // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.\n static parseFloat(text: string): number { return parseFloat(text); }\n\n static get NaN(): number { return NaN; }\n\n static isNaN(value: any): boolean { return isNaN(value); }\n\n static isInteger(value: any): boolean { return Number.isInteger(value); }\n}\n\nexport var RegExp = _global.RegExp;\n\nexport class RegExpWrapper {\n static create(regExpStr: string, flags: string = ''): RegExp {\n flags = flags.replace(/g/g, '');\n return new _global.RegExp(regExpStr, flags + 'g');\n }\n static firstMatch(regExp: RegExp, input: string): RegExpExecArray {\n // Reset multimatch regex state\n regExp.lastIndex = 0;\n return regExp.exec(input);\n }\n static test(regExp: RegExp, input: string): boolean {\n regExp.lastIndex = 0;\n return regExp.test(input);\n }\n static matcher(regExp: RegExp, input: string): {\n re: RegExp;\n input: string\n }\n {\n // Reset regex state for the case\n // someone did not loop over all matches\n // last time.\n regExp.lastIndex = 0;\n return {re: regExp, input: input};\n }\n static replaceAll(regExp: RegExp, input: string, replace: Function): string {\n let c = regExp.exec(input);\n let res = '';\n regExp.lastIndex = 0;\n let prev = 0;\n while (c) {\n res += input.substring(prev, c.index);\n res += replace(c);\n prev = c.index + c[0].length;\n regExp.lastIndex = prev;\n c = regExp.exec(input);\n }\n res += input.substring(prev);\n return res;\n }\n}\n\nexport class RegExpMatcherWrapper {\n static next(matcher: {\n re: RegExp;\n input: string\n }): RegExpExecArray {\n return matcher.re.exec(matcher.input);\n }\n}\n\nexport class FunctionWrapper {\n static apply(fn: Function, posArgs: any): any { return fn.apply(null, posArgs); }\n}\n\n// JS has NaN !== NaN\nexport function looseIdentical(a, b): boolean {\n return a === b || typeof a === \"number\" && typeof b === \"number\" && isNaN(a) && isNaN(b);\n}\n\n// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)\n// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map\nexport function getMapKey<T>(value: T): T {\n return value;\n}\n\nexport function normalizeBlank(obj: Object): any {\n return isBlank(obj) ? null : obj;\n}\n\nexport function normalizeBool(obj: boolean): boolean {\n return isBlank(obj) ? false : obj;\n}\n\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === \"function\" || typeof o === \"object\");\n}\n\nexport function print(obj: Error | Object) {\n console.log(obj);\n}\n\nexport function warn(obj: Error | Object) {\n console.warn(obj);\n}\n\n// Can't be all uppercase as our transpiler would think it is a special directive...\nexport class Json {\n static parse(s: string): Object { return _global.JSON.parse(s); }\n static stringify(data: Object): string {\n // Dart doesn't take 3 arguments\n return _global.JSON.stringify(data, null, 2);\n }\n}\n\nexport class DateWrapper {\n static create(year: number, month: number = 1, day: number = 1, hour: number = 0,\n minutes: number = 0, seconds: number = 0, milliseconds: number = 0): Date {\n return new Date(year, month - 1, day, hour, minutes, seconds, milliseconds);\n }\n static fromISOString(str: string): Date { return new Date(str); }\n static fromMillis(ms: number): Date { return new Date(ms); }\n static toMillis(date: Date): number { return date.getTime(); }\n static now(): Date { return new Date(); }\n static toJson(date: Date): string { return date.toJSON(); }\n}\n\nexport function setValueOnPath(global: any, path: string, value: any) {\n var parts = path.split('.');\n var obj: any = global;\n while (parts.length > 1) {\n var name = parts.shift();\n if (obj.hasOwnProperty(name) && isPresent(obj[name])) {\n obj = obj[name];\n } else {\n obj = obj[name] = {};\n }\n }\n if (obj === undefined || obj === null) {\n obj = {};\n }\n obj[parts.shift()] = value;\n}\n\n// When Symbol.iterator doesn't exist, retrieves the key used in es6-shim\ndeclare var Symbol;\nvar _symbolIterator = null;\nexport function getSymbolIterator(): string | symbol {\n if (isBlank(_symbolIterator)) {\n if (isPresent((<any>globalScope).Symbol) && isPresent(Symbol.iterator)) {\n _symbolIterator = Symbol.iterator;\n } else {\n // es6-shim specific logic\n var keys = Object.getOwnPropertyNames(Map.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (key !== 'entries' && key !== 'size' &&\n Map.prototype[key] === Map.prototype['entries']) {\n _symbolIterator = key;\n }\n }\n }\n }\n return _symbolIterator;\n}\n\nexport function evalExpression(sourceUrl: string, expr: string, declarations: string,\n vars: {[key: string]: any}): any {\n var fnBody = `${declarations}\\nreturn ${expr}\\n//# sourceURL=${sourceUrl}`;\n var fnArgNames = [];\n var fnArgValues = [];\n for (var argName in vars) {\n fnArgNames.push(argName);\n fnArgValues.push(vars[argName]);\n }\n return new Function(...fnArgNames.concat(fnBody))(...fnArgValues);\n}\n\nexport function isPrimitive(obj: any): boolean {\n return !isJsObject(obj);\n}\n\nexport function hasConstructor(value: Object, type: Type): boolean {\n return value.constructor === type;\n}\n\nexport function bitWiseOr(values: number[]): number {\n return values.reduce((a, b) => { return a | b; });\n}\n\nexport function bitWiseAnd(values: number[]): number {\n return values.reduce((a, b) => { return a & b; });\n}\n\nexport function escape(s: string): string {\n return _global.encodeURI(s);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/facade/lang.ts"],"names":[],"mappings":"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","sourcesContent":["export interface BrowserNodeGlobal {\n Object: typeof Object;\n Array: typeof Array;\n Map: typeof Map;\n Set: typeof Set;\n Date: DateConstructor;\n RegExp: RegExpConstructor;\n JSON: typeof JSON;\n Math: any; // typeof Math;\n assert(condition: any): void;\n Reflect: any;\n getAngularTestability: Function;\n getAllAngularTestabilities: Function;\n getAllAngularRootElements: Function;\n frameworkStabilizers: Array<Function>;\n setTimeout: Function;\n clearTimeout: Function;\n setInterval: Function;\n clearInterval: Function;\n encodeURI: Function;\n}\n\n// TODO(jteplitz602): Load WorkerGlobalScope from lib.webworker.d.ts file #3492\ndeclare var WorkerGlobalScope: any /** TODO #9100 */;\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\ndeclare var global: any /** TODO #9100 */;\n\nvar globalScope: BrowserNodeGlobal;\nif (typeof window === 'undefined') {\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492\n globalScope = <any>self;\n } else {\n globalScope = <any>global;\n }\n} else {\n globalScope = <any>window;\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n\nexport const IS_DART = false;\n\n// Need to declare a new variable for global here since TypeScript\n// exports the original value of the symbol.\nvar _global: BrowserNodeGlobal = globalScope;\n\nexport {_global as global};\n\nexport var Type = Function;\n\n/**\n * Runtime representation a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by\n * the `MyCustomComponent` constructor function.\n */\nexport interface Type extends Function {}\n\n/**\n * Runtime representation of a type that is constructable (non-abstract).\n */\nexport interface ConcreteType extends Type { new (...args: any[] /** TODO #9100 */): any; }\n\nexport function getTypeNameForDebugging(type: Type): string {\n if (type['name']) {\n return type['name'];\n }\n return typeof type;\n}\n\n\nexport var Math = _global.Math;\nexport var Date = _global.Date;\n\nvar _devMode: boolean = true;\nvar _modeLocked: boolean = false;\n\nexport function lockMode() {\n _modeLocked = true;\n}\n\n/**\n * Disable Angular's development mode, which turns off assertions and other\n * checks within the framework.\n *\n * One important assertion this disables verifies that a change detection pass\n * does not result in additional changes to any bindings (also known as\n * unidirectional data flow).\n * @stable\n */\nexport function enableProdMode() {\n if (_modeLocked) {\n // Cannot use BaseException as that ends up importing from facade/lang.\n throw 'Cannot enable prod mode after platform setup.';\n }\n _devMode = false;\n}\n\nexport function assertionsEnabled(): boolean {\n return _devMode;\n}\n\n// TODO: remove calls to assert in production environment\n// Note: Can't just export this and import in in other files\n// as `assert` is a reserved keyword in Dart\n_global.assert = function assert(condition) {\n // TODO: to be fixed properly via #2830, noop for now\n};\n\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\nexport function isBoolean(obj: any): boolean {\n return typeof obj === 'boolean';\n}\n\nexport function isNumber(obj: any): boolean {\n return typeof obj === 'number';\n}\n\nexport function isString(obj: any): obj is String {\n return typeof obj === 'string';\n}\n\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\nexport function isType(obj: any): boolean {\n return isFunction(obj);\n}\n\nexport function isStringMap(obj: any): boolean {\n return typeof obj === 'object' && obj !== null;\n}\n\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\nexport function isStrictStringMap(obj: any): boolean {\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\n\nexport function isPromise(obj: any): boolean {\n return obj instanceof (<any>_global).Promise;\n}\n\nexport function isArray(obj: any): boolean {\n return Array.isArray(obj);\n}\n\nexport function isDate(obj: any): obj is Date {\n return obj instanceof Date && !isNaN(obj.valueOf());\n}\n\nexport function noop() {}\n\nexport function stringify(token: any): string {\n if (typeof token === 'string') {\n return token;\n }\n\n if (token === undefined || token === null) {\n return '' + token;\n }\n\n if (token.name) {\n return token.name;\n }\n if (token.overriddenName) {\n return token.overriddenName;\n }\n\n var res = token.toString();\n var newLineIndex = res.indexOf('\\n');\n return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);\n}\n\n// serialize / deserialize enum exist only for consistency with dart API\n// enums in typescript don't need to be serialized\n\nexport function serializeEnum(val: any): number {\n return val;\n}\n\nexport function deserializeEnum(val: any, values: Map<number, any>): any {\n return val;\n}\n\nexport function resolveEnumToken(enumValue: any, val: any): string {\n return enumValue[val];\n}\n\nexport class StringWrapper {\n static fromCharCode(code: number): string { return String.fromCharCode(code); }\n\n static charCodeAt(s: string, index: number): number { return s.charCodeAt(index); }\n\n static split(s: string, regExp: RegExp): string[] { return s.split(regExp); }\n\n static equals(s: string, s2: string): boolean { return s === s2; }\n\n static stripLeft(s: string, charVal: string): string {\n if (s && s.length) {\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n if (s[i] != charVal) break;\n pos++;\n }\n s = s.substring(pos);\n }\n return s;\n }\n\n static stripRight(s: string, charVal: string): string {\n if (s && s.length) {\n var pos = s.length;\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] != charVal) break;\n pos--;\n }\n s = s.substring(0, pos);\n }\n return s;\n }\n\n static replace(s: string, from: string, replace: string): string {\n return s.replace(from, replace);\n }\n\n static replaceAll(s: string, from: RegExp, replace: string): string {\n return s.replace(from, replace);\n }\n\n static slice<T>(s: string, from: number = 0, to: number = null): string {\n return s.slice(from, to === null ? undefined : to);\n }\n\n static replaceAllMapped(s: string, from: RegExp, cb: Function): string {\n return s.replace(from, function(...matches: any[]) {\n // Remove offset & string from the result array\n matches.splice(-2, 2);\n // The callback receives match, p1, ..., pn\n return cb(matches);\n });\n }\n\n static contains(s: string, substr: string): boolean { return s.indexOf(substr) != -1; }\n\n static compare(a: string, b: string): number {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n }\n}\n\nexport class StringJoiner {\n constructor(public parts: string[] = []) {}\n\n add(part: string): void { this.parts.push(part); }\n\n toString(): string { return this.parts.join(''); }\n}\n\nexport class NumberParseError extends Error {\n name: string;\n\n constructor(public message: string) { super(); }\n\n toString(): string { return this.message; }\n}\n\n\nexport class NumberWrapper {\n static toFixed(n: number, fractionDigits: number): string { return n.toFixed(fractionDigits); }\n\n static equal(a: number, b: number): boolean { return a === b; }\n\n static parseIntAutoRadix(text: string): number {\n var result: number = parseInt(text);\n if (isNaN(result)) {\n throw new NumberParseError('Invalid integer literal when parsing ' + text);\n }\n return result;\n }\n\n static parseInt(text: string, radix: number): number {\n if (radix == 10) {\n if (/^(\\-|\\+)?[0-9]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else if (radix == 16) {\n if (/^(\\-|\\+)?[0-9ABCDEFabcdef]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else {\n var result: number = parseInt(text, radix);\n if (!isNaN(result)) {\n return result;\n }\n }\n throw new NumberParseError(\n 'Invalid integer literal when parsing ' + text + ' in base ' + radix);\n }\n\n // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.\n static parseFloat(text: string): number { return parseFloat(text); }\n\n static get NaN(): number { return NaN; }\n\n static isNaN(value: any): boolean { return isNaN(value); }\n\n static isInteger(value: any): boolean { return Number.isInteger(value); }\n}\n\nexport var RegExp = _global.RegExp;\n\nexport class RegExpWrapper {\n static create(regExpStr: string, flags: string = ''): RegExp {\n flags = flags.replace(/g/g, '');\n return new _global.RegExp(regExpStr, flags + 'g');\n }\n static firstMatch(regExp: RegExp, input: string): RegExpExecArray {\n // Reset multimatch regex state\n regExp.lastIndex = 0;\n return regExp.exec(input);\n }\n static test(regExp: RegExp, input: string): boolean {\n regExp.lastIndex = 0;\n return regExp.test(input);\n }\n static matcher(regExp: RegExp, input: string): {re: RegExp; input: string} {\n // Reset regex state for the case\n // someone did not loop over all matches\n // last time.\n regExp.lastIndex = 0;\n return {re: regExp, input: input};\n }\n static replaceAll(regExp: RegExp, input: string, replace: Function): string {\n let c = regExp.exec(input);\n let res = '';\n regExp.lastIndex = 0;\n let prev = 0;\n while (c) {\n res += input.substring(prev, c.index);\n res += replace(c);\n prev = c.index + c[0].length;\n regExp.lastIndex = prev;\n c = regExp.exec(input);\n }\n res += input.substring(prev);\n return res;\n }\n}\n\nexport class RegExpMatcherWrapper {\n static next(matcher: {re: RegExp; input: string}): RegExpExecArray {\n return matcher.re.exec(matcher.input);\n }\n}\n\nexport class FunctionWrapper {\n static apply(fn: Function, posArgs: any): any { return fn.apply(null, posArgs); }\n\n static bind(fn: Function, scope: any): Function { return fn.bind(scope); }\n}\n\n// JS has NaN !== NaN\nexport function looseIdentical(a: any, b: any): boolean {\n return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);\n}\n\n// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)\n// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map\nexport function getMapKey<T>(value: T): T {\n return value;\n}\n\nexport function normalizeBlank(obj: Object): any {\n return isBlank(obj) ? null : obj;\n}\n\nexport function normalizeBool(obj: boolean): boolean {\n return isBlank(obj) ? false : obj;\n}\n\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\nexport function print(obj: Error | Object) {\n console.log(obj);\n}\n\nexport function warn(obj: Error | Object) {\n console.warn(obj);\n}\n\n// Can't be all uppercase as our transpiler would think it is a special directive...\nexport class Json {\n static parse(s: string): Object { return _global.JSON.parse(s); }\n static stringify(data: Object): string {\n // Dart doesn't take 3 arguments\n return _global.JSON.stringify(data, null, 2);\n }\n}\n\nexport class DateWrapper {\n static create(\n year: number, month: number = 1, day: number = 1, hour: number = 0, minutes: number = 0,\n seconds: number = 0, milliseconds: number = 0): Date {\n return new Date(year, month - 1, day, hour, minutes, seconds, milliseconds);\n }\n static fromISOString(str: string): Date { return new Date(str); }\n static fromMillis(ms: number): Date { return new Date(ms); }\n static toMillis(date: Date): number { return date.getTime(); }\n static now(): Date { return new Date(); }\n static toJson(date: Date): string { return date.toJSON(); }\n}\n\nexport function setValueOnPath(global: any, path: string, value: any) {\n var parts = path.split('.');\n var obj: any = global;\n while (parts.length > 1) {\n var name = parts.shift();\n if (obj.hasOwnProperty(name) && isPresent(obj[name])) {\n obj = obj[name];\n } else {\n obj = obj[name] = {};\n }\n }\n if (obj === undefined || obj === null) {\n obj = {};\n }\n obj[parts.shift()] = value;\n}\n\n// When Symbol.iterator doesn't exist, retrieves the key used in es6-shim\ndeclare var Symbol: any;\nvar _symbolIterator: any = null;\nexport function getSymbolIterator(): string|symbol {\n if (isBlank(_symbolIterator)) {\n if (isPresent((<any>globalScope).Symbol) && isPresent(Symbol.iterator)) {\n _symbolIterator = Symbol.iterator;\n } else {\n // es6-shim specific logic\n var keys = Object.getOwnPropertyNames(Map.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (key !== 'entries' && key !== 'size' &&\n (Map as any).prototype[key] === Map.prototype['entries']) {\n _symbolIterator = key;\n }\n }\n }\n }\n return _symbolIterator;\n}\n\nexport function evalExpression(\n sourceUrl: string, expr: string, declarations: string, vars: {[key: string]: any}): any {\n var fnBody = `${declarations}\\nreturn ${expr}\\n//# sourceURL=${sourceUrl}`;\n var fnArgNames: string[] = [];\n var fnArgValues: any[] = [];\n for (var argName in vars) {\n fnArgNames.push(argName);\n fnArgValues.push(vars[argName]);\n }\n return new Function(...fnArgNames.concat(fnBody))(...fnArgValues);\n}\n\nexport function isPrimitive(obj: any): boolean {\n return !isJsObject(obj);\n}\n\nexport function hasConstructor(value: Object, type: Type): boolean {\n return value.constructor === type;\n}\n\nexport function bitWiseOr(values: number[]): number {\n return values.reduce((a, b) => { return a | b; });\n}\n\nexport function bitWiseAnd(values: number[]): number {\n return values.reduce((a, b) => { return a & b; });\n}\n\nexport function escape(s: string): string {\n return _global.encodeURI(s);\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","metadata":{"IS_DART":false,"Type":{"__symbolic":"reference","name":"Function"},"Math":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Math"},"Date":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Date"},"RegExp":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"RegExp"}}}
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"IS_DART":false,"Type":{"__symbolic":"reference","name":"Function"},"Math":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Math"},"Date":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Date"},"assertionsEnabled":{"__symbolic":"function","parameters":[],"value":true},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBoolean":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":8},"right":"boolean"}},"isNumber":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":8},"right":"number"}},"isString":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":131,"character":8},"right":"string"}},"isFunction":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":135,"character":8},"right":"function"}},"isType":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isFunction"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":143,"character":8},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isStringMap"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"reference","name":"STRING_MAP_PROTO"}}}},"isPromise":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Promise"}}},"isArray":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"serializeEnum":{"__symbolic":"function","parameters":["val"],"value":{"__symbolic":"reference","name":"val"}},"deserializeEnum":{"__symbolic":"function","parameters":["val","values"],"value":{"__symbolic":"reference","name":"val"}},"resolveEnumToken":{"__symbolic":"function","parameters":["enumValue","val"],"value":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"enumValue"},"index":{"__symbolic":"reference","name":"val"}}},"RegExp":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"RegExp"},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":381,"character":19},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":381,"character":44},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"getMapKey":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"reference","name":"value"}},"normalizeBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"error","message":"Expression form not supported","line":391,"character":8}},"normalizeBool":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"error","message":"Expression form not supported","line":395,"character":8}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":399,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":399,"character":50},"right":"object"}}}},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"hasConstructor":{"__symbolic":"function","parameters":["value","type"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"value"},"member":"constructor"},"right":{"__symbolic":"reference","name":"type"}}},"bitWiseOr":{"__symbolic":"function","parameters":["values"],"value":{"__symbolic":"error","message":"Function call not supported","line":492,"character":23}},"bitWiseAnd":{"__symbolic":"function","parameters":["values"],"value":{"__symbolic":"error","message":"Function call not supported","line":496,"character":23}},"escape":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"encodeURI"},"arguments":[{"__symbolic":"reference","name":"s"}]}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/facade/promise.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/facade/promise.ts"],"names":[],"mappings":"AACA;IAKE;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG;YAClC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;IACE,OAAO,OAAO,CAAI,GAAM,IAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO,MAAM,CAAC,GAAQ,EAAE,CAAM,IAAkB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7E,yEAAyE;IACzE,uBAAuB;IACvB,OAAO,UAAU,CAAI,OAAmB,EAAE,OAA2C;QAEnF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,GAAG,CAAI,QAA0B;QACtC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CACP,OAAmB,EAAE,OAAyC,EAC9D,SAA2D;QAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAI,WAAoB;QACjC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG;YAC1B,IAAI,CAAC;gBACH,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACrB,CAAE;YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACX,GAAG,CAAC,CAAC,CAAC,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,iBAAiB,CAAC,WAAsB;QAC7C,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,SAAS,CAAC,GAAQ,IAAa,MAAM,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC;IAEtE,OAAO,SAAS,KAA6B,MAAM,CAAC,IAAI,gBAAgB,EAAK,CAAC,CAAC,CAAC;AAClF,CAAC;AAAA","sourcesContent":["\nexport class PromiseCompleter<R> {\n promise: Promise<R>;\n resolve: (value?: R|PromiseLike<R>) => void;\n reject: (error?: any, stackTrace?: string) => void;\n\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\n\nexport class PromiseWrapper {\n static resolve<T>(obj: T): Promise<T> { return Promise.resolve(obj); }\n\n static reject(obj: any, _: any): Promise<any> { return Promise.reject(obj); }\n\n // Note: We can't rename this method into `catch`, as this is not a valid\n // method name in Dart.\n static catchError<T>(promise: Promise<T>, onError: (error: any) => T | PromiseLike<T>):\n Promise<T> {\n return promise.catch(onError);\n }\n\n static all<T>(promises: (T|Promise<T>)[]): Promise<T[]> {\n if (promises.length == 0) return Promise.resolve([]);\n return Promise.all(promises);\n }\n\n static then<T, U>(\n promise: Promise<T>, success: (value: T) => U | PromiseLike<U>,\n rejection?: (error: any, stack?: any) => U | PromiseLike<U>): Promise<U> {\n return promise.then(success, rejection);\n }\n\n static wrap<T>(computation: () => T): Promise<T> {\n return new Promise((res, rej) => {\n try {\n res(computation());\n } catch (e) {\n rej(e);\n }\n });\n }\n\n static scheduleMicrotask(computation: () => any): void {\n PromiseWrapper.then(PromiseWrapper.resolve(null), computation, (_) => {});\n }\n\n static isPromise(obj: any): boolean { return obj instanceof Promise; }\n\n static completer<T>(): PromiseCompleter<T> { return new PromiseCompleter<T>(); }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import {RouteSegment, RouteTree, Tree} from './segments';\n\n\n/**\n * Defines route lifecycle method `routerOnActivate`, which is called by the router at the end of a\n * successful route navigation.\n *\n * The `routerOnActivate` hook is called with the current and previous {@link RouteSegment}s of the\n * component and with the corresponding route trees.\n */\nexport interface OnActivate {\n routerOnActivate(\n curr: RouteSegment, prev?: RouteSegment, currTree?: RouteTree, prevTree?: RouteTree): void;\n}\n\n/**\n * Defines route lifecycle method `routerOnDeactivate`, which is called by the router before\n * destroying a component as part of a route change.\n *\n * The `routerOnDeactivate` hook is called with two {@link RouteTree}s, representing the current\n * and the future state of the application.\n *\n * `routerOnDeactivate` must return a promise. The route change will wait until the promise settles.\n */\nexport interface CanDeactivate {\n routerCanDeactivate(currTree?: RouteTree, futureTree?: RouteTree): Promise<boolean>;\n}\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle_reflector.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/lifecycle_reflector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle_reflector.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/lifecycle_reflector.ts"],"names":[],"mappings":"OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,eAAe;AAE3C,iCAAiC,IAAY,EAAE,GAAW;IACxD,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAC/B,IAAI,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC;IAC3B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC;IAC1C,MAAM,CAAC,IAAI,IAAU,IAAK,CAAC,SAAS,CAAC;AACvC,CAAC","sourcesContent":["import {Type, isBlank} from './facade/lang';\n\nexport function hasLifecycleHook(name: string, obj: Object): boolean {\n if (isBlank(obj)) return false;\n let type = obj.constructor;\n if (!(type instanceof Type)) return false;\n return name in (<any>type).prototype;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
package/esm/src/link.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { RouteSegment,
|
|
1
|
+
import { RouteSegment, RouteTree, UrlTree } from './segments';
|
|
2
2
|
export declare function link(segment: RouteSegment, routeTree: RouteTree, urlTree: UrlTree, commands: any[]): UrlTree;
|
package/esm/src/link.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isBlank, isPresent, isString, isStringMap } from './facade/lang';
|
|
1
|
+
import { ListWrapper, StringMapWrapper } from './facade/collection';
|
|
3
2
|
import { BaseException } from './facade/exceptions';
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import { isBlank, isPresent, isString, isStringMap } from './facade/lang';
|
|
4
|
+
import { TreeNode, UrlSegment, UrlTree, rootNode } from './segments';
|
|
6
5
|
export function link(segment, routeTree, urlTree, commands) {
|
|
7
6
|
if (commands.length === 0)
|
|
8
7
|
return urlTree;
|
|
@@ -12,12 +11,14 @@ export function link(segment, routeTree, urlTree, commands) {
|
|
|
12
11
|
}
|
|
13
12
|
let startingNode = _findStartingNode(normalizedCommands, urlTree, segment, routeTree);
|
|
14
13
|
let updated = normalizedCommands.commands.length > 0 ?
|
|
15
|
-
_updateMany(ListWrapper.clone(startingNode.children), normalizedCommands.commands) :
|
|
14
|
+
_updateMany(ListWrapper.clone(startingNode.children), normalizedCommands.commands) :
|
|
15
|
+
[];
|
|
16
16
|
let newRoot = _constructNewTree(rootNode(urlTree), startingNode, updated);
|
|
17
17
|
return new UrlTree(newRoot);
|
|
18
18
|
}
|
|
19
19
|
function _navigateToRoot(normalizedChange) {
|
|
20
|
-
return normalizedChange.isAbsolute && normalizedChange.commands.length === 1 &&
|
|
20
|
+
return normalizedChange.isAbsolute && normalizedChange.commands.length === 1 &&
|
|
21
|
+
normalizedChange.commands[0] == '/';
|
|
21
22
|
}
|
|
22
23
|
class _NormalizedNavigationCommands {
|
|
23
24
|
constructor(isAbsolute, numberOfDoubleDots, commands) {
|
|
@@ -27,9 +28,7 @@ class _NormalizedNavigationCommands {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
function _normalizeCommands(commands) {
|
|
30
|
-
|
|
31
|
-
'';
|
|
32
|
-
if (isString(commands[0]) && commands.length === 1 && commands[0] == "/") {
|
|
31
|
+
if (isString(commands[0]) && commands.length === 1 && commands[0] == '/') {
|
|
33
32
|
return new _NormalizedNavigationCommands(true, 0, commands);
|
|
34
33
|
}
|
|
35
34
|
let numberOfDoubleDots = 0;
|
|
@@ -46,12 +45,12 @@ function _normalizeCommands(commands) {
|
|
|
46
45
|
let cc = parts[j];
|
|
47
46
|
// first exp is treated in a special way
|
|
48
47
|
if (i == 0) {
|
|
49
|
-
if (j == 0 && cc ==
|
|
48
|
+
if (j == 0 && cc == '.') {
|
|
50
49
|
}
|
|
51
|
-
else if (j == 0 && cc ==
|
|
50
|
+
else if (j == 0 && cc == '') {
|
|
52
51
|
isAbsolute = true;
|
|
53
52
|
}
|
|
54
|
-
else if (cc ==
|
|
53
|
+
else if (cc == '..') {
|
|
55
54
|
numberOfDoubleDots++;
|
|
56
55
|
}
|
|
57
56
|
else if (cc != '') {
|
|
@@ -75,7 +74,7 @@ function _findUrlSegment(segment, routeTree, urlTree, numberOfDoubleDots) {
|
|
|
75
74
|
let urlSegment = ListWrapper.last(s.urlSegments);
|
|
76
75
|
let path = urlTree.pathFromRoot(urlSegment);
|
|
77
76
|
if (path.length <= numberOfDoubleDots) {
|
|
78
|
-
throw new BaseException(
|
|
77
|
+
throw new BaseException('Invalid number of \'../\'');
|
|
79
78
|
}
|
|
80
79
|
return path[path.length - 1 - numberOfDoubleDots];
|
|
81
80
|
}
|
|
@@ -118,25 +117,39 @@ function _update(node, commands) {
|
|
|
118
117
|
return new TreeNode(urlSegment, children);
|
|
119
118
|
}
|
|
120
119
|
else if (isBlank(node) && isStringMap(next)) {
|
|
121
|
-
let urlSegment = new UrlSegment(segment, next, outlet);
|
|
120
|
+
let urlSegment = new UrlSegment(segment, _stringify(next), outlet);
|
|
122
121
|
return _recurse(urlSegment, node, rest.slice(1));
|
|
123
122
|
}
|
|
124
123
|
else if (outlet != node.value.outlet) {
|
|
125
124
|
return node;
|
|
126
125
|
}
|
|
127
126
|
else if (isStringMap(segment)) {
|
|
128
|
-
let newSegment = new UrlSegment(node.value.segment, segment, node.value.outlet);
|
|
127
|
+
let newSegment = new UrlSegment(node.value.segment, _stringify(segment), node.value.outlet);
|
|
129
128
|
return _recurse(newSegment, node, rest);
|
|
130
129
|
}
|
|
130
|
+
else if (isStringMap(next) && _compare(segment, _stringify(next), node.value)) {
|
|
131
|
+
return _recurse(node.value, node, rest.slice(1));
|
|
132
|
+
}
|
|
131
133
|
else if (isStringMap(next)) {
|
|
132
|
-
let urlSegment = new UrlSegment(segment, next, outlet);
|
|
134
|
+
let urlSegment = new UrlSegment(segment, _stringify(next), outlet);
|
|
133
135
|
return _recurse(urlSegment, node, rest.slice(1));
|
|
134
136
|
}
|
|
137
|
+
else if (_compare(segment, {}, node.value)) {
|
|
138
|
+
return _recurse(node.value, node, rest);
|
|
139
|
+
}
|
|
135
140
|
else {
|
|
136
141
|
let urlSegment = new UrlSegment(segment, {}, outlet);
|
|
137
142
|
return _recurse(urlSegment, node, rest);
|
|
138
143
|
}
|
|
139
144
|
}
|
|
145
|
+
function _stringify(params) {
|
|
146
|
+
let res = {};
|
|
147
|
+
StringMapWrapper.forEach(params, (v /** TODO #9100 */, k /** TODO #9100 */) => res[k] = v.toString());
|
|
148
|
+
return res;
|
|
149
|
+
}
|
|
150
|
+
function _compare(path, params, segment) {
|
|
151
|
+
return path == segment.segment && StringMapWrapper.equals(params, segment.parameters);
|
|
152
|
+
}
|
|
140
153
|
function _recurse(urlSegment, node, rest) {
|
|
141
154
|
if (rest.length === 0) {
|
|
142
155
|
return new TreeNode(urlSegment, []);
|
|
@@ -158,13 +171,13 @@ function _updateMany(nodes, commands) {
|
|
|
158
171
|
function _segment(commands) {
|
|
159
172
|
if (!isString(commands[0]))
|
|
160
173
|
return commands[0];
|
|
161
|
-
let parts = commands[0].toString().split(
|
|
174
|
+
let parts = commands[0].toString().split(':');
|
|
162
175
|
return parts.length > 1 ? parts[1] : commands[0];
|
|
163
176
|
}
|
|
164
177
|
function _outlet(commands) {
|
|
165
178
|
if (!isString(commands[0]))
|
|
166
179
|
return null;
|
|
167
|
-
let parts = commands[0].toString().split(
|
|
180
|
+
let parts = commands[0].toString().split(':');
|
|
168
181
|
return parts.length > 1 ? parts[0] : null;
|
|
169
182
|
}
|
|
170
183
|
//# sourceMappingURL=link.js.map
|
package/esm/src/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/link.ts"],"names":[],"mappings":"OAIS,EAAO,QAAQ,EAAE,UAAU,EAAgB,QAAQ,EAAE,OAAO,EAAY,MAAM,YAAY;OAC5F,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,eAAe;OAChE,EAAC,aAAa,EAAC,MAAM,qBAAqB;OAC1C,EAAC,WAAW,EAAC,MAAM,qBAAqB;AAE/C,uCAAuC;AACvC,qBAAqB,OAAqB,EAAE,SAAoB,EAAE,OAAgB,EAAE,QAAe;IACjG,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,OAAO,CAAC;IAE1C,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtD,EAAE,CAAC,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,CAAa,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,YAAY,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACtF,IAAI,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClD,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC1F,IAAI,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAE1E,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,yBAAyB,gBAA8C;IACrE,MAAM,CAAC,gBAAgB,CAAC,UAAU,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACtH,CAAC;AAED;IACE,YAAmB,UAAmB,EACnB,kBAA0B,EAC1B,QAAe;QAFf,eAAU,GAAV,UAAU,CAAS;QACnB,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,aAAQ,GAAR,QAAQ,CAAO;IAAG,CAAC;AACxC,CAAC;AAED,4BAA4B,QAAe;IAAkC,CAAC;IAAA,EAAE,CAAA;IAC9E,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,6BAA6B,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEpB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,QAAQ,CAAC;QACX,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAElB,wCAAwC;YACxC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACX,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAE1B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC9B,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,kBAAkB,EAAE,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,CAAC;YAEH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC;oBACZ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,6BAA6B,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,yBAAyB,OAAqB,EAAE,SAAoB,EAAE,OAAgB,EAAE,kBAA0B;IAChH,IAAI,CAAC,GAAG,OAAO,CAAC;IAChB,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAED,2BAA2B,gBAA8C,EAAE,OAAe,EAAE,OAAoB,EAAE,SAAmB;IACnI,EAAE,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,IAAI,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACnG,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,2BAA2B,OAAmB,EAAE,IAA0B;IACxE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC;IACxC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC;AACd,CAAC;AAED,2BAA2B,IAA0B,EAAE,QAA8B,EAC1D,OAA+B;IACxD,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,QAAQ,CAAa,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,IAAI,QAAQ,CACf,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,iBAAiB,IAA0B,EAAE,QAAe;IAC1D,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEjC,sDAAsD;IACtD,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,QAAQ,CAAa,UAAU,EAAE,QAAQ,CAAC,CAAC;IAExD,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAGnD,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;IAGd,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAG1C,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAGnD,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,kBAAkB,UAAsB,EAAE,IAA0B,EAAE,IAAW;IAC/E,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,QAAQ,CAAa,UAAU,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,CAAC,IAAI,QAAQ,CAAa,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,qBAAqB,KAA6B,EAAE,QAAe;IACjE,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;IACrE,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,eAAe,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAE,wBAAwB;QACtE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC;AACf,CAAC;AAED,kBAAkB,QAAe;IAC/B,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,iBAAiB,QAAe;IAC9B,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC;IACxC,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5C,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {Tree, TreeNode, UrlSegment, RouteSegment, rootNode, UrlTree, RouteTree} from './segments';\nimport {isBlank, isPresent, isString, isStringMap} from './facade/lang';\nimport {BaseException} from './facade/exceptions';\nimport {ListWrapper} from './facade/collection';\n\n// TODO: vsavkin: should reuse segments\nexport function link(segment: RouteSegment, routeTree: RouteTree, urlTree: UrlTree, commands: any[]): UrlTree {\n if (commands.length === 0) return urlTree;\n\n let normalizedCommands = _normalizeCommands(commands);\n if (_navigateToRoot(normalizedCommands)) {\n return new UrlTree(new TreeNode<UrlSegment>(urlTree.root, []));\n }\n\n let startingNode = _findStartingNode(normalizedCommands, urlTree, segment, routeTree);\n let updated = normalizedCommands.commands.length > 0 ?\n _updateMany(ListWrapper.clone(startingNode.children), normalizedCommands.commands) : [];\n let newRoot = _constructNewTree(rootNode(urlTree), startingNode, updated);\n\n return new UrlTree(newRoot);\n}\n\nfunction _navigateToRoot(normalizedChange:_NormalizedNavigationCommands):boolean {\n return normalizedChange.isAbsolute && normalizedChange.commands.length === 1 && normalizedChange.commands[0] == \"/\";\n}\n\nclass _NormalizedNavigationCommands {\n constructor(public isAbsolute: boolean,\n public numberOfDoubleDots: number,\n public commands: any[]) {}\n}\n\nfunction _normalizeCommands(commands: any[]): _NormalizedNavigationCommands {;''\n if (isString(commands[0]) && commands.length === 1 && commands[0] == \"/\") {\n return new _NormalizedNavigationCommands(true, 0, commands);\n }\n\n let numberOfDoubleDots = 0;\n let isAbsolute = false;\n let res = [];\n\n for (let i = 0; i < commands.length; ++i) {\n let c = commands[i];\n\n if (!isString(c)) {\n res.push(c);\n continue;\n }\n\n let parts = c.split('/');\n for (let j = 0; j < parts.length; ++j) {\n let cc = parts[j];\n\n // first exp is treated in a special way\n if (i == 0) {\n if (j == 0 && cc == \".\") { // './a'\n // skip it\n } else if (j == 0 && cc == \"\") { // '/a'\n isAbsolute = true;\n } else if (cc == \"..\") { // '../a'\n numberOfDoubleDots++;\n } else if (cc != '') {\n res.push(cc);\n }\n\n } else {\n if (cc != ''){\n res.push(cc);\n }\n }\n }\n }\n\n return new _NormalizedNavigationCommands(isAbsolute, numberOfDoubleDots, res);\n}\n\nfunction _findUrlSegment(segment: RouteSegment, routeTree: RouteTree, urlTree: UrlTree, numberOfDoubleDots: number): UrlSegment {\n let s = segment;\n while (s.urlSegments.length === 0) {\n s = routeTree.parent(s);\n }\n let urlSegment = ListWrapper.last(s.urlSegments);\n let path = urlTree.pathFromRoot(urlSegment);\n if (path.length <= numberOfDoubleDots) {\n throw new BaseException(\"Invalid number of '../'\");\n }\n return path[path.length - 1 - numberOfDoubleDots];\n}\n\nfunction _findStartingNode(normalizedChange:_NormalizedNavigationCommands, urlTree:UrlTree, segment:RouteSegment, routeTree:RouteTree):TreeNode<UrlSegment> {\n if (normalizedChange.isAbsolute) {\n return rootNode(urlTree);\n } else {\n let urlSegment = _findUrlSegment(segment, routeTree, urlTree, normalizedChange.numberOfDoubleDots);\n return _findMatchingNode(urlSegment, rootNode(urlTree));\n }\n}\n\nfunction _findMatchingNode(segment: UrlSegment, node: TreeNode<UrlSegment>): TreeNode<UrlSegment> {\n if (node.value === segment) return node;\n for (var c of node.children) {\n let r = _findMatchingNode(segment, c);\n if (isPresent(r)) return r;\n }\n return null;\n}\n\nfunction _constructNewTree(node: TreeNode<UrlSegment>, original: TreeNode<UrlSegment>,\n updated: TreeNode<UrlSegment>[]): TreeNode<UrlSegment> {\n if (node === original) {\n return new TreeNode<UrlSegment>(node.value, updated);\n } else {\n return new TreeNode<UrlSegment>(\n node.value, node.children.map(c => _constructNewTree(c, original, updated)));\n }\n}\n\nfunction _update(node: TreeNode<UrlSegment>, commands: any[]): TreeNode<UrlSegment> {\n let rest = commands.slice(1);\n let next = rest.length === 0 ? null : rest[0];\n let outlet = _outlet(commands);\n let segment = _segment(commands);\n\n // reach the end of the tree => create new tree nodes.\n if (isBlank(node) && !isStringMap(next)) {\n let urlSegment = new UrlSegment(segment, {}, outlet);\n let children = rest.length === 0 ? [] : [_update(null, rest)];\n return new TreeNode<UrlSegment>(urlSegment, children);\n\n } else if (isBlank(node) && isStringMap(next)) {\n let urlSegment = new UrlSegment(segment, next, outlet);\n return _recurse(urlSegment, node, rest.slice(1));\n \n // different outlet => preserve the subtree\n } else if (outlet != node.value.outlet) {\n return node;\n\n // params command\n } else if (isStringMap(segment)) {\n let newSegment = new UrlSegment(node.value.segment, segment, node.value.outlet);\n return _recurse(newSegment, node, rest);\n\n // next one is a params command\n } else if (isStringMap(next)) {\n let urlSegment = new UrlSegment(segment, next, outlet);\n return _recurse(urlSegment, node, rest.slice(1));\n\n // next one is not a params command\n } else {\n let urlSegment = new UrlSegment(segment, {}, outlet);\n return _recurse(urlSegment, node, rest);\n }\n}\n\nfunction _recurse(urlSegment: UrlSegment, node: TreeNode<UrlSegment>, rest: any[]): TreeNode<UrlSegment> {\n if (rest.length === 0) {\n return new TreeNode<UrlSegment>(urlSegment, []);\n }\n return new TreeNode<UrlSegment>(urlSegment, _updateMany(ListWrapper.clone(node.children), rest));\n}\n\nfunction _updateMany(nodes: TreeNode<UrlSegment>[], commands: any[]): TreeNode<UrlSegment>[] {\n let outlet = _outlet(commands);\n let nodesInRightOutlet = nodes.filter(c => c.value.outlet == outlet);\n if (nodesInRightOutlet.length > 0) {\n let nodeRightOutlet = nodesInRightOutlet[0]; // there can be only one\n nodes[nodes.indexOf(nodeRightOutlet)] = _update(nodeRightOutlet, commands);\n } else {\n nodes.push(_update(null, commands));\n }\n\n return nodes;\n}\n\nfunction _segment(commands: any[]): any {\n if (!isString(commands[0])) return commands[0];\n let parts = commands[0].toString().split(\":\");\n return parts.length > 1 ? parts[1] : commands[0];\n}\n\nfunction _outlet(commands: any[]): string {\n if (!isString(commands[0])) return null;\n let parts = commands[0].toString().split(\":\");\n return parts.length > 1 ? parts[0] : null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../modules/@angular/router/src/link.ts"],"names":[],"mappings":"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","sourcesContent":["import {ListWrapper, StringMapWrapper} from './facade/collection';\nimport {BaseException} from './facade/exceptions';\nimport {isBlank, isPresent, isString, isStringMap} from './facade/lang';\nimport {RouteSegment, RouteTree, Tree, TreeNode, UrlSegment, UrlTree, rootNode} from './segments';\n\nexport function link(\n segment: RouteSegment, routeTree: RouteTree, urlTree: UrlTree, commands: any[]): UrlTree {\n if (commands.length === 0) return urlTree;\n\n let normalizedCommands = _normalizeCommands(commands);\n if (_navigateToRoot(normalizedCommands)) {\n return new UrlTree(new TreeNode<UrlSegment>(urlTree.root, []));\n }\n\n let startingNode = _findStartingNode(normalizedCommands, urlTree, segment, routeTree);\n let updated = normalizedCommands.commands.length > 0 ?\n _updateMany(ListWrapper.clone(startingNode.children), normalizedCommands.commands) :\n [];\n let newRoot = _constructNewTree(rootNode(urlTree), startingNode, updated);\n\n return new UrlTree(newRoot);\n}\n\nfunction _navigateToRoot(normalizedChange: _NormalizedNavigationCommands): boolean {\n return normalizedChange.isAbsolute && normalizedChange.commands.length === 1 &&\n normalizedChange.commands[0] == '/';\n}\n\nclass _NormalizedNavigationCommands {\n constructor(\n public isAbsolute: boolean, public numberOfDoubleDots: number, public commands: any[]) {}\n}\n\nfunction _normalizeCommands(commands: any[]): _NormalizedNavigationCommands {\n if (isString(commands[0]) && commands.length === 1 && commands[0] == '/') {\n return new _NormalizedNavigationCommands(true, 0, commands);\n }\n\n let numberOfDoubleDots = 0;\n let isAbsolute = false;\n let res: any[] /** TODO #9100 */ = [];\n\n for (let i = 0; i < commands.length; ++i) {\n let c = commands[i];\n\n if (!isString(c)) {\n res.push(c);\n continue;\n }\n\n let parts = c.split('/');\n for (let j = 0; j < parts.length; ++j) {\n let cc = parts[j];\n\n // first exp is treated in a special way\n if (i == 0) {\n if (j == 0 && cc == '.') { // './a'\n // skip it\n } else if (j == 0 && cc == '') { // '/a'\n isAbsolute = true;\n } else if (cc == '..') { // '../a'\n numberOfDoubleDots++;\n } else if (cc != '') {\n res.push(cc);\n }\n\n } else {\n if (cc != '') {\n res.push(cc);\n }\n }\n }\n }\n\n return new _NormalizedNavigationCommands(isAbsolute, numberOfDoubleDots, res);\n}\n\nfunction _findUrlSegment(\n segment: RouteSegment, routeTree: RouteTree, urlTree: UrlTree,\n numberOfDoubleDots: number): UrlSegment {\n let s = segment;\n while (s.urlSegments.length === 0) {\n s = routeTree.parent(s);\n }\n let urlSegment = ListWrapper.last(s.urlSegments);\n let path = urlTree.pathFromRoot(urlSegment);\n if (path.length <= numberOfDoubleDots) {\n throw new BaseException('Invalid number of \\'../\\'');\n }\n return path[path.length - 1 - numberOfDoubleDots];\n}\n\nfunction _findStartingNode(\n normalizedChange: _NormalizedNavigationCommands, urlTree: UrlTree, segment: RouteSegment,\n routeTree: RouteTree): TreeNode<UrlSegment> {\n if (normalizedChange.isAbsolute) {\n return rootNode(urlTree);\n } else {\n let urlSegment =\n _findUrlSegment(segment, routeTree, urlTree, normalizedChange.numberOfDoubleDots);\n return _findMatchingNode(urlSegment, rootNode(urlTree));\n }\n}\n\nfunction _findMatchingNode(segment: UrlSegment, node: TreeNode<UrlSegment>): TreeNode<UrlSegment> {\n if (node.value === segment) return node;\n for (var c of node.children) {\n let r = _findMatchingNode(segment, c);\n if (isPresent(r)) return r;\n }\n return null;\n}\n\nfunction _constructNewTree(\n node: TreeNode<UrlSegment>, original: TreeNode<UrlSegment>,\n updated: TreeNode<UrlSegment>[]): TreeNode<UrlSegment> {\n if (node === original) {\n return new TreeNode<UrlSegment>(node.value, updated);\n } else {\n return new TreeNode<UrlSegment>(\n node.value, node.children.map(c => _constructNewTree(c, original, updated)));\n }\n}\n\nfunction _update(node: TreeNode<UrlSegment>, commands: any[]): TreeNode<UrlSegment> {\n let rest = commands.slice(1);\n let next = rest.length === 0 ? null : rest[0];\n let outlet = _outlet(commands);\n let segment = _segment(commands);\n\n // reach the end of the tree => create new tree nodes.\n if (isBlank(node) && !isStringMap(next)) {\n let urlSegment = new UrlSegment(segment, {}, outlet);\n let children = rest.length === 0 ? [] : [_update(null, rest)];\n return new TreeNode<UrlSegment>(urlSegment, children);\n\n } else if (isBlank(node) && isStringMap(next)) {\n let urlSegment = new UrlSegment(segment, _stringify(next), outlet);\n return _recurse(urlSegment, node, rest.slice(1));\n\n // different outlet => preserve the subtree\n } else if (outlet != node.value.outlet) {\n return node;\n\n // params command\n } else if (isStringMap(segment)) {\n let newSegment = new UrlSegment(node.value.segment, _stringify(segment), node.value.outlet);\n return _recurse(newSegment, node, rest);\n\n // next one is a params command && can reuse the node\n } else if (isStringMap(next) && _compare(segment, _stringify(next), node.value)) {\n return _recurse(node.value, node, rest.slice(1));\n\n // next one is a params command && cannot reuse the node\n } else if (isStringMap(next)) {\n let urlSegment = new UrlSegment(segment, _stringify(next), outlet);\n return _recurse(urlSegment, node, rest.slice(1));\n\n // next one is not a params command && can reuse the node\n } else if (_compare(segment, {}, node.value)) {\n return _recurse(node.value, node, rest);\n\n // next one is not a params command && cannot reuse the node\n } else {\n let urlSegment = new UrlSegment(segment, {}, outlet);\n return _recurse(urlSegment, node, rest);\n }\n}\n\nfunction _stringify(params: {[key: string]: any}): {[key: string]: string} {\n let res = {};\n StringMapWrapper.forEach(\n params, (v: any /** TODO #9100 */, k: any /** TODO #9100 */) =>\n (res as any /** TODO #9100 */)[k] = v.toString());\n return res;\n}\n\nfunction _compare(path: string, params: {[key: string]: any}, segment: UrlSegment): boolean {\n return path == segment.segment && StringMapWrapper.equals(params, segment.parameters);\n}\n\nfunction _recurse(\n urlSegment: UrlSegment, node: TreeNode<UrlSegment>, rest: any[]): TreeNode<UrlSegment> {\n if (rest.length === 0) {\n return new TreeNode<UrlSegment>(urlSegment, []);\n }\n return new TreeNode<UrlSegment>(urlSegment, _updateMany(ListWrapper.clone(node.children), rest));\n}\n\nfunction _updateMany(nodes: TreeNode<UrlSegment>[], commands: any[]): TreeNode<UrlSegment>[] {\n let outlet = _outlet(commands);\n let nodesInRightOutlet = nodes.filter(c => c.value.outlet == outlet);\n if (nodesInRightOutlet.length > 0) {\n let nodeRightOutlet = nodesInRightOutlet[0]; // there can be only one\n nodes[nodes.indexOf(nodeRightOutlet)] = _update(nodeRightOutlet, commands);\n } else {\n nodes.push(_update(null, commands));\n }\n\n return nodes;\n}\n\nfunction _segment(commands: any[]): any {\n if (!isString(commands[0])) return commands[0];\n let parts = commands[0].toString().split(':');\n return parts.length > 1 ? parts[1] : commands[0];\n}\n\nfunction _outlet(commands: any[]): string {\n if (!isString(commands[0])) return null;\n let parts = commands[0].toString().split(':');\n return parts.length > 1 ? parts[0] : null;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/metadata/decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/metadata/decorators.ts"],"names":[],"mappings":"OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB;OAEtC,EAAgB,cAAc,EAAC,MAAM,YAAY;AAaxD;;;;GAIG;AACH,OAAO,IAAI,MAAM,GAAiC,aAAa,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import {makeDecorator} from '../core_private';\n\nimport {RouteMetadata, RoutesMetadata} from './metadata';\n\n\n/**\n * Defines routes for a given component.\n *\n * It takes an array of {@link RouteMetadata}s.\n */\nexport interface RoutesFactory {\n (routes: RouteMetadata[]): any;\n new (routes: RouteMetadata[]): RoutesMetadata;\n}\n\n/**\n * Defines routes for a given component.\n *\n * It takes an array of {@link RouteMetadata}s.\n */\nexport var Routes: RoutesFactory = <RoutesFactory>makeDecorator(RoutesMetadata);\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","metadata":{"Routes":{"__symbolic":"call","expression":{"__symbolic":"reference","
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"Routes":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../core_private","name":"makeDecorator"},"arguments":[{"__symbolic":"reference","module":"./metadata","name":"RoutesMetadata"}]}}}
|
|
@@ -20,7 +20,7 @@ import { Type } from '@angular/core';
|
|
|
20
20
|
*/
|
|
21
21
|
export declare abstract class RouteMetadata {
|
|
22
22
|
readonly abstract path: string;
|
|
23
|
-
readonly abstract component: Type;
|
|
23
|
+
readonly abstract component: Type | string;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* See {@link RouteMetadata} for more information.
|
|
@@ -28,10 +28,10 @@ export declare abstract class RouteMetadata {
|
|
|
28
28
|
*/
|
|
29
29
|
export declare class Route implements RouteMetadata {
|
|
30
30
|
path: string;
|
|
31
|
-
component: Type;
|
|
31
|
+
component: Type | string;
|
|
32
32
|
constructor({path, component}?: {
|
|
33
33
|
path?: string;
|
|
34
|
-
component?: Type;
|
|
34
|
+
component?: Type | string;
|
|
35
35
|
});
|
|
36
36
|
toString(): string;
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/metadata/metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/metadata/metadata.ts"],"names":[],"mappings":"OACO,EAAC,SAAS,EAAC,MAAM,gBAAgB;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH;IACE,IAAa,IAAI,MAAW;IAC5B,IAAa,SAAS,MAAgB;AACxC,CAAC;AAED;;;GAGG;AACH;IAGE,YAAY,EAAC,IAAI,EAAE,SAAS,EAAC,GAA6C,EAAE;QAC1E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,QAAQ,KAAa,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;GAKG;AACH;IACE,YAAmB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAC9C,QAAQ,KAAa,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAAA","sourcesContent":["import {Type} from '@angular/core';\nimport {stringify} from '../facade/lang';\n\n/**\n * Information about a route.\n *\n * It has the following properties:\n * - `path` is a string that uses the route matcher DSL.\n * - `component` a component type.\n *\n * ### Example\n * ```\n * import {Routes} from '@angular/router';\n *\n * @Routes([\n * {path: '/home', component: HomeCmp}\n * ])\n * class MyApp {}\n * ```\n *\n * @ts2dart_const\n */\nexport abstract class RouteMetadata {\n abstract get path(): string;\n abstract get component(): Type|string;\n}\n\n/**\n * See {@link RouteMetadata} for more information.\n * @ts2dart_const\n */\nexport class Route implements RouteMetadata {\n path: string;\n component: Type|string;\n constructor({path, component}: {path?: string, component?: Type|string} = {}) {\n this.path = path;\n this.component = component;\n }\n toString(): string { return `@Route(${this.path}, ${stringify(this.component)})`; }\n}\n\n/**\n * Defines routes for a given component.\n *\n * It takes an array of {@link RouteMetadata}s.\n * @ts2dart_const\n */\nexport class RoutesMetadata {\n constructor(public routes: RouteMetadata[]) {}\n toString(): string { return `@Routes(${this.routes})`; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
package/esm/src/recognize.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UrlTree, RouteTree } from './segments';
|
|
2
|
-
import { Type } from './facade/lang';
|
|
3
1
|
import { ComponentResolver } from '@angular/core';
|
|
4
|
-
|
|
2
|
+
import { Type } from './facade/lang';
|
|
3
|
+
import { RouteTree, UrlTree } from './segments';
|
|
4
|
+
export declare function recognize(componentResolver: ComponentResolver, rootComponent: Type, url: UrlTree, existingTree: RouteTree): Promise<RouteTree>;
|