@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.
Files changed (160) hide show
  1. package/{router.umd.js → bundles/router.umd.js} +727 -637
  2. package/bundles/router.umd.min.js +2 -0
  3. package/esm/index.d.ts +7 -25
  4. package/esm/index.js +10 -30
  5. package/esm/index.js.map +1 -1
  6. package/esm/src/constants.js +4 -4
  7. package/esm/src/constants.js.map +1 -1
  8. package/esm/src/constants.metadata.json +1 -1
  9. package/esm/src/core_private.d.ts +3 -2
  10. package/esm/src/core_private.js +3 -2
  11. package/esm/src/core_private.js.map +1 -1
  12. package/esm/src/core_private.metadata.json +1 -1
  13. package/esm/src/directives/router_directives.d.ts +21 -0
  14. package/esm/src/directives/router_directives.js +24 -0
  15. package/esm/src/directives/router_directives.js.map +1 -0
  16. package/esm/src/directives/router_directives.metadata.json +1 -0
  17. package/esm/src/directives/router_link.d.ts +4 -2
  18. package/esm/src/directives/router_link.js +21 -13
  19. package/esm/src/directives/router_link.js.map +1 -1
  20. package/esm/src/directives/router_link.metadata.json +1 -1
  21. package/esm/src/directives/router_outlet.d.ts +6 -6
  22. package/esm/src/directives/router_outlet.js +13 -11
  23. package/esm/src/directives/router_outlet.js.map +1 -1
  24. package/esm/src/directives/router_outlet.metadata.json +1 -1
  25. package/esm/src/facade/async.d.ts +11 -4
  26. package/esm/src/facade/async.js +25 -15
  27. package/esm/src/facade/async.js.map +1 -1
  28. package/esm/src/facade/base_wrapped_exception.js +4 -4
  29. package/esm/src/facade/base_wrapped_exception.js.map +1 -1
  30. package/esm/src/facade/collection.js +1 -1
  31. package/esm/src/facade/collection.js.map +1 -1
  32. package/esm/src/facade/collection.metadata.json +1 -1
  33. package/esm/src/facade/exception_handler.d.ts +2 -11
  34. package/esm/src/facade/exception_handler.js +8 -7
  35. package/esm/src/facade/exception_handler.js.map +1 -1
  36. package/esm/src/facade/exceptions.d.ts +4 -0
  37. package/esm/src/facade/exceptions.js +6 -2
  38. package/esm/src/facade/exceptions.js.map +1 -1
  39. package/esm/src/facade/exceptions.metadata.json +1 -0
  40. package/esm/src/facade/lang.d.ts +6 -4
  41. package/esm/src/facade/lang.js +12 -11
  42. package/esm/src/facade/lang.js.map +1 -1
  43. package/esm/src/facade/lang.metadata.json +1 -1
  44. package/esm/src/facade/promise.js.map +1 -1
  45. package/esm/src/interfaces.js.map +1 -1
  46. package/esm/src/lifecycle_reflector.js.map +1 -1
  47. package/esm/src/link.d.ts +1 -1
  48. package/esm/src/link.js +31 -18
  49. package/esm/src/link.js.map +1 -1
  50. package/esm/src/metadata/decorators.d.ts +1 -1
  51. package/esm/src/metadata/decorators.js +1 -1
  52. package/esm/src/metadata/decorators.js.map +1 -1
  53. package/esm/src/metadata/decorators.metadata.json +1 -1
  54. package/esm/src/metadata/metadata.d.ts +3 -3
  55. package/esm/src/metadata/metadata.js +1 -1
  56. package/esm/src/metadata/metadata.js.map +1 -1
  57. package/esm/src/recognize.d.ts +3 -3
  58. package/esm/src/recognize.js +57 -41
  59. package/esm/src/recognize.js.map +1 -1
  60. package/esm/src/router.d.ts +3 -23
  61. package/esm/src/router.js +54 -58
  62. package/esm/src/router.js.map +1 -1
  63. package/esm/src/router_providers.d.ts +1 -1
  64. package/esm/src/router_providers.js +3 -7
  65. package/esm/src/router_providers.js.map +1 -1
  66. package/esm/src/router_providers.metadata.json +1 -1
  67. package/esm/src/router_providers_common.d.ts +7 -0
  68. package/esm/src/router_providers_common.js +10 -7
  69. package/esm/src/router_providers_common.js.map +1 -1
  70. package/esm/src/router_providers_common.metadata.json +1 -1
  71. package/esm/src/router_url_serializer.js +9 -9
  72. package/esm/src/router_url_serializer.js.map +1 -1
  73. package/esm/src/segments.d.ts +7 -12
  74. package/esm/src/segments.js +27 -45
  75. package/esm/src/segments.js.map +1 -1
  76. package/esm/src/segments.metadata.json +1 -0
  77. package/esm/testing/router_testing_providers.js +10 -3
  78. package/esm/testing/router_testing_providers.js.map +1 -1
  79. package/esm/testing/router_testing_providers.metadata.json +1 -1
  80. package/esm/testing.js.map +1 -1
  81. package/index.d.ts +7 -25
  82. package/index.js +22 -39
  83. package/index.js.map +1 -1
  84. package/package.json +8 -4
  85. package/src/constants.js +4 -4
  86. package/src/constants.js.map +1 -1
  87. package/src/constants.metadata.json +1 -1
  88. package/src/core_private.d.ts +3 -2
  89. package/src/core_private.js +1 -0
  90. package/src/core_private.js.map +1 -1
  91. package/src/core_private.metadata.json +1 -1
  92. package/src/directives/router_directives.d.ts +21 -0
  93. package/src/directives/router_directives.js +25 -0
  94. package/src/directives/router_directives.js.map +1 -0
  95. package/src/directives/router_directives.metadata.json +1 -0
  96. package/src/directives/router_link.d.ts +4 -2
  97. package/src/directives/router_link.js +20 -12
  98. package/src/directives/router_link.js.map +1 -1
  99. package/src/directives/router_link.metadata.json +1 -1
  100. package/src/directives/router_outlet.d.ts +6 -6
  101. package/src/directives/router_outlet.js +13 -11
  102. package/src/directives/router_outlet.js.map +1 -1
  103. package/src/directives/router_outlet.metadata.json +1 -1
  104. package/src/facade/async.d.ts +11 -4
  105. package/src/facade/async.js +27 -17
  106. package/src/facade/async.js.map +1 -1
  107. package/src/facade/base_wrapped_exception.js +4 -4
  108. package/src/facade/base_wrapped_exception.js.map +1 -1
  109. package/src/facade/collection.js.map +1 -1
  110. package/src/facade/collection.metadata.json +1 -1
  111. package/src/facade/exception_handler.d.ts +2 -11
  112. package/src/facade/exception_handler.js +8 -7
  113. package/src/facade/exception_handler.js.map +1 -1
  114. package/src/facade/exceptions.d.ts +4 -0
  115. package/src/facade/exceptions.js +6 -2
  116. package/src/facade/exceptions.js.map +1 -1
  117. package/src/facade/exceptions.metadata.json +1 -0
  118. package/src/facade/lang.d.ts +6 -4
  119. package/src/facade/lang.js +12 -11
  120. package/src/facade/lang.js.map +1 -1
  121. package/src/facade/lang.metadata.json +1 -1
  122. package/src/facade/promise.js.map +1 -1
  123. package/src/interfaces.js.map +1 -1
  124. package/src/lifecycle_reflector.js.map +1 -1
  125. package/src/link.d.ts +1 -1
  126. package/src/link.js +33 -18
  127. package/src/link.js.map +1 -1
  128. package/src/metadata/decorators.d.ts +1 -1
  129. package/src/metadata/decorators.js +1 -1
  130. package/src/metadata/decorators.js.map +1 -1
  131. package/src/metadata/decorators.metadata.json +1 -1
  132. package/src/metadata/metadata.d.ts +3 -3
  133. package/src/metadata/metadata.js +1 -1
  134. package/src/metadata/metadata.js.map +1 -1
  135. package/src/recognize.d.ts +3 -3
  136. package/src/recognize.js +62 -42
  137. package/src/recognize.js.map +1 -1
  138. package/src/router.d.ts +3 -23
  139. package/src/router.js +64 -64
  140. package/src/router.js.map +1 -1
  141. package/src/router_providers.d.ts +1 -1
  142. package/src/router_providers.js +3 -7
  143. package/src/router_providers.js.map +1 -1
  144. package/src/router_providers.metadata.json +1 -1
  145. package/src/router_providers_common.d.ts +7 -0
  146. package/src/router_providers_common.js +10 -5
  147. package/src/router_providers_common.js.map +1 -1
  148. package/src/router_providers_common.metadata.json +1 -1
  149. package/src/router_url_serializer.js +8 -8
  150. package/src/router_url_serializer.js.map +1 -1
  151. package/src/segments.d.ts +7 -12
  152. package/src/segments.js +26 -44
  153. package/src/segments.js.map +1 -1
  154. package/src/segments.metadata.json +1 -0
  155. package/testing/router_testing_providers.js +9 -2
  156. package/testing/router_testing_providers.js.map +1 -1
  157. package/testing/router_testing_providers.metadata.json +1 -1
  158. package/testing.js.map +1 -1
  159. package/esm/index.metadata.json +0 -1
  160. package/index.metadata.json +0 -1
@@ -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 === "boolean";
68
+ return typeof obj === 'boolean';
68
69
  }
69
70
  export function isNumber(obj) {
70
- return typeof obj === "number";
71
+ return typeof obj === 'number';
71
72
  }
72
73
  export function isString(obj) {
73
- return typeof obj === "string";
74
+ return typeof obj === 'string';
74
75
  }
75
76
  export function isFunction(obj) {
76
- return typeof obj === "function";
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("\n");
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("Invalid integer literal when parsing " + text);
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("Invalid integer literal when parsing " + text + " in base " +
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 === "number" && typeof b === "number" && isNaN(a) && isNaN(b);
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 === "function" || typeof o === "object");
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":"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","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":"AAKA;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,CAAC,IAAkB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAExE,yEAAyE;IACzE,uBAAuB;IACvB,OAAO,UAAU,CAAI,OAAmB,EACnB,OAA2C;QAC9D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,GAAG,CAAI,QAA4B;QACxC,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,CAAO,OAAmB,EAAE,OAAyC,EAC9D,SAA2D;QAC3E,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":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n \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, _): 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>,\n onError: (error: any) => T | PromiseLike<T>): 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>(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"]}
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":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {RouteSegment, Tree, RouteTree} from './segments';\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(curr: RouteSegment, prev?: RouteSegment, currTree?: RouteTree,\n 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}"]}
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":"OAIS,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,eAAe;AAE7C,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,IAAS,IAAK,CAAC,SAAS,CAAC;AACtC,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n 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"]}
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, UrlTree, RouteTree } from './segments';
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 { TreeNode, UrlSegment, rootNode, UrlTree } from './segments';
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 { ListWrapper } from './facade/collection';
5
- // TODO: vsavkin: should reuse segments
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 && normalizedChange.commands[0] == "/";
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("Invalid number of '../'");
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
@@ -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,4 +1,4 @@
1
- import { RoutesMetadata, RouteMetadata } from "./metadata";
1
+ import { RouteMetadata, RoutesMetadata } from './metadata';
2
2
  /**
3
3
  * Defines routes for a given component.
4
4
  *
@@ -1,5 +1,5 @@
1
- import { RoutesMetadata } from "./metadata";
2
1
  import { makeDecorator } from '../core_private';
2
+ import { RoutesMetadata } from './metadata';
3
3
  /**
4
4
  * Defines routes for a given component.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/metadata/decorators.ts"],"names":[],"mappings":"OAIS,EAAC,cAAc,EAAgB,MAAM,YAAY;OACnD,EAAC,aAAa,EAAC,MAAM,iBAAiB;AAY7C;;;;GAIG;AACH,OAAO,IAAI,MAAM,GAAiC,aAAa,CAAC,cAAc,CAAC,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {RoutesMetadata, RouteMetadata} from \"./metadata\";\nimport {makeDecorator} from '../core_private';\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"]}
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","name":"makeDecorator","module":"../core_private"},"arguments":[{"__symbolic":"reference","name":"RoutesMetadata","module":"./metadata"}]}}}
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,4 +1,4 @@
1
- import { stringify } from "../facade/lang";
1
+ import { stringify } from '../facade/lang';
2
2
  /**
3
3
  * Information about a route.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/metadata/metadata.ts"],"names":[],"mappings":"OAKO,EAAC,SAAS,EAAC,MAAM,gBAAgB;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH;IACE,IAAa,IAAI,MAAW;IAC5B,IAAa,SAAS,MAAS;AACjC,CAAC;AAED;;;GAGG;AACH;IAGE,YAAY,EAAC,IAAI,EAAE,SAAS,EAAC,GAAsC,EAAE;QACnE,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":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n 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;\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;\n constructor({path, component}: {path?: string, component?: Type} = {}) {\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"]}
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"]}
@@ -1,4 +1,4 @@
1
- import { UrlTree, RouteTree } from './segments';
2
- import { Type } from './facade/lang';
3
1
  import { ComponentResolver } from '@angular/core';
4
- export declare function recognize(componentResolver: ComponentResolver, type: Type, url: UrlTree): Promise<RouteTree>;
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>;