@angular/router 0.1.0 → 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 (190) hide show
  1. package/bundles/router.umd.js +1812 -0
  2. package/bundles/router.umd.min.js +2 -0
  3. package/esm/index.d.ts +15 -0
  4. package/esm/index.js +15 -0
  5. package/esm/index.js.map +1 -0
  6. package/esm/src/constants.d.ts +5 -0
  7. package/esm/src/constants.js +6 -0
  8. package/esm/src/constants.js.map +1 -0
  9. package/esm/src/constants.metadata.json +1 -0
  10. package/esm/src/core_private.d.ts +3 -0
  11. package/esm/src/core_private.js +4 -0
  12. package/esm/src/core_private.js.map +1 -0
  13. package/esm/src/core_private.metadata.json +1 -0
  14. package/esm/src/directives/router_directives.d.ts +21 -0
  15. package/esm/src/directives/router_directives.js +24 -0
  16. package/esm/src/directives/router_directives.js.map +1 -0
  17. package/esm/src/directives/router_directives.metadata.json +1 -0
  18. package/esm/src/directives/router_link.d.ts +49 -0
  19. package/esm/src/directives/router_link.js +68 -0
  20. package/esm/src/directives/router_link.js.map +1 -0
  21. package/esm/src/directives/router_link.metadata.json +1 -0
  22. package/esm/src/directives/router_outlet.d.ts +36 -0
  23. package/esm/src/directives/router_outlet.js +42 -0
  24. package/esm/src/directives/router_outlet.js.map +1 -0
  25. package/esm/src/directives/router_outlet.metadata.json +1 -0
  26. package/esm/src/facade/async.d.ts +90 -0
  27. package/esm/src/facade/async.js +137 -0
  28. package/esm/src/facade/async.js.map +1 -0
  29. package/esm/src/facade/base_wrapped_exception.d.ts +14 -0
  30. package/esm/src/facade/base_wrapped_exception.js +17 -0
  31. package/esm/src/facade/base_wrapped_exception.js.map +1 -0
  32. package/esm/src/facade/collection.d.ts +103 -0
  33. package/esm/src/facade/collection.js +343 -0
  34. package/esm/src/facade/collection.js.map +1 -0
  35. package/esm/src/facade/collection.metadata.json +1 -0
  36. package/esm/src/facade/exception_handler.d.ts +29 -0
  37. package/esm/src/facade/exception_handler.js +124 -0
  38. package/esm/src/facade/exception_handler.js.map +1 -0
  39. package/esm/src/facade/exceptions.d.ts +32 -0
  40. package/esm/src/facade/exceptions.js +42 -0
  41. package/esm/src/facade/exceptions.js.map +1 -0
  42. package/esm/src/facade/exceptions.metadata.json +1 -0
  43. package/esm/src/facade/lang.d.ts +158 -0
  44. package/esm/src/facade/lang.js +386 -0
  45. package/esm/src/facade/lang.js.map +1 -0
  46. package/esm/src/facade/lang.metadata.json +1 -0
  47. package/esm/src/facade/promise.d.ts +17 -0
  48. package/esm/src/facade/promise.js +41 -0
  49. package/esm/src/facade/promise.js.map +1 -0
  50. package/esm/src/interfaces.d.ts +23 -0
  51. package/esm/src/interfaces.js +1 -0
  52. package/esm/src/interfaces.js.map +1 -0
  53. package/esm/src/lifecycle_reflector.d.ts +1 -0
  54. package/esm/src/lifecycle_reflector.js +10 -0
  55. package/esm/src/lifecycle_reflector.js.map +1 -0
  56. package/esm/src/link.d.ts +2 -0
  57. package/esm/src/link.js +183 -0
  58. package/esm/src/link.js.map +1 -0
  59. package/esm/src/metadata/decorators.d.ts +16 -0
  60. package/esm/src/metadata/decorators.js +9 -0
  61. package/esm/src/metadata/decorators.js.map +1 -0
  62. package/esm/src/metadata/decorators.metadata.json +1 -0
  63. package/esm/src/metadata/metadata.d.ts +48 -0
  64. package/esm/src/metadata/metadata.js +48 -0
  65. package/esm/src/metadata/metadata.js.map +1 -0
  66. package/esm/src/recognize.d.ts +4 -0
  67. package/esm/src/recognize.js +164 -0
  68. package/esm/src/recognize.js.map +1 -0
  69. package/esm/src/router.d.ts +95 -0
  70. package/esm/src/router.js +243 -0
  71. package/esm/src/router.js.map +1 -0
  72. package/esm/src/router_providers.d.ts +23 -0
  73. package/esm/src/router_providers.js +26 -0
  74. package/esm/src/router_providers.js.map +1 -0
  75. package/esm/src/router_providers.metadata.json +1 -0
  76. package/esm/src/router_providers_common.d.ts +11 -0
  77. package/esm/src/router_providers_common.js +32 -0
  78. package/esm/src/router_providers_common.js.map +1 -0
  79. package/esm/src/router_providers_common.metadata.json +1 -0
  80. package/esm/src/router_url_serializer.d.ts +21 -0
  81. package/esm/src/router_url_serializer.js +164 -0
  82. package/esm/src/router_url_serializer.js.map +1 -0
  83. package/esm/src/segments.d.ts +51 -0
  84. package/esm/src/segments.js +137 -0
  85. package/esm/src/segments.js.map +1 -0
  86. package/esm/src/segments.metadata.json +1 -0
  87. package/esm/testing/router_testing_providers.d.ts +1 -0
  88. package/esm/testing/router_testing_providers.js +31 -0
  89. package/esm/testing/router_testing_providers.js.map +1 -0
  90. package/esm/testing/router_testing_providers.metadata.json +1 -0
  91. package/esm/testing.d.ts +1 -0
  92. package/esm/testing.js +2 -0
  93. package/esm/testing.js.map +1 -0
  94. package/index.d.ts +15 -0
  95. package/index.js +31 -0
  96. package/index.js.map +1 -0
  97. package/package.json +16 -1
  98. package/src/constants.d.ts +5 -0
  99. package/src/constants.js +7 -0
  100. package/src/constants.js.map +1 -0
  101. package/src/constants.metadata.json +1 -0
  102. package/src/core_private.d.ts +3 -0
  103. package/src/core_private.js +5 -0
  104. package/src/core_private.js.map +1 -0
  105. package/src/core_private.metadata.json +1 -0
  106. package/src/directives/router_directives.d.ts +21 -0
  107. package/src/directives/router_directives.js +25 -0
  108. package/src/directives/router_directives.js.map +1 -0
  109. package/src/directives/router_directives.metadata.json +1 -0
  110. package/src/directives/router_link.d.ts +49 -0
  111. package/src/directives/router_link.js +76 -0
  112. package/src/directives/router_link.js.map +1 -0
  113. package/src/directives/router_link.metadata.json +1 -0
  114. package/src/directives/router_outlet.d.ts +36 -0
  115. package/src/directives/router_outlet.js +53 -0
  116. package/src/directives/router_outlet.js.map +1 -0
  117. package/src/directives/router_outlet.metadata.json +1 -0
  118. package/src/facade/async.d.ts +90 -0
  119. package/src/facade/async.js +160 -0
  120. package/src/facade/async.js.map +1 -0
  121. package/src/facade/base_wrapped_exception.d.ts +14 -0
  122. package/src/facade/base_wrapped_exception.js +50 -0
  123. package/src/facade/base_wrapped_exception.js.map +1 -0
  124. package/src/facade/collection.d.ts +103 -0
  125. package/src/facade/collection.js +368 -0
  126. package/src/facade/collection.js.map +1 -0
  127. package/src/facade/collection.metadata.json +1 -0
  128. package/src/facade/exception_handler.d.ts +29 -0
  129. package/src/facade/exception_handler.js +133 -0
  130. package/src/facade/exception_handler.js.map +1 -0
  131. package/src/facade/exceptions.d.ts +32 -0
  132. package/src/facade/exceptions.js +82 -0
  133. package/src/facade/exceptions.js.map +1 -0
  134. package/src/facade/exceptions.metadata.json +1 -0
  135. package/src/facade/lang.d.ts +158 -0
  136. package/src/facade/lang.js +480 -0
  137. package/src/facade/lang.js.map +1 -0
  138. package/src/facade/lang.metadata.json +1 -0
  139. package/src/facade/promise.d.ts +17 -0
  140. package/src/facade/promise.js +49 -0
  141. package/src/facade/promise.js.map +1 -0
  142. package/src/interfaces.d.ts +23 -0
  143. package/src/interfaces.js +2 -0
  144. package/src/interfaces.js.map +1 -0
  145. package/src/lifecycle_reflector.d.ts +1 -0
  146. package/src/lifecycle_reflector.js +12 -0
  147. package/src/lifecycle_reflector.js.map +1 -0
  148. package/src/link.d.ts +2 -0
  149. package/src/link.js +189 -0
  150. package/src/link.js.map +1 -0
  151. package/src/metadata/decorators.d.ts +16 -0
  152. package/src/metadata/decorators.js +10 -0
  153. package/src/metadata/decorators.js.map +1 -0
  154. package/src/metadata/decorators.metadata.json +1 -0
  155. package/src/metadata/metadata.d.ts +48 -0
  156. package/src/metadata/metadata.js +66 -0
  157. package/src/metadata/metadata.js.map +1 -0
  158. package/src/recognize.d.ts +4 -0
  159. package/src/recognize.js +172 -0
  160. package/src/recognize.js.map +1 -0
  161. package/src/router.d.ts +95 -0
  162. package/src/router.js +276 -0
  163. package/src/router.js.map +1 -0
  164. package/src/router_providers.d.ts +23 -0
  165. package/src/router_providers.js +27 -0
  166. package/src/router_providers.js.map +1 -0
  167. package/src/router_providers.metadata.json +1 -0
  168. package/src/router_providers_common.d.ts +11 -0
  169. package/src/router_providers_common.js +35 -0
  170. package/src/router_providers_common.js.map +1 -0
  171. package/src/router_providers_common.metadata.json +1 -0
  172. package/src/router_url_serializer.d.ts +21 -0
  173. package/src/router_url_serializer.js +184 -0
  174. package/src/router_url_serializer.js.map +1 -0
  175. package/src/segments.d.ts +51 -0
  176. package/src/segments.js +181 -0
  177. package/src/segments.js.map +1 -0
  178. package/src/segments.metadata.json +1 -0
  179. package/testing/router_testing_providers.d.ts +1 -0
  180. package/testing/router_testing_providers.js +35 -0
  181. package/testing/router_testing_providers.js.map +1 -0
  182. package/testing/router_testing_providers.metadata.json +1 -0
  183. package/testing.d.ts +1 -0
  184. package/testing.js +6 -0
  185. package/testing.js.map +1 -0
  186. package/angular1/angular_1_router.js +0 -2922
  187. package/angular1/ng_route_shim.js +0 -349
  188. package/angular2/router.dev.js +0 -3107
  189. package/angular2/router.js +0 -3107
  190. package/angular2/router.min.js +0 -3
@@ -0,0 +1,137 @@
1
+ import { Subject } from 'rxjs/Subject';
2
+ import { PromiseObservable } from 'rxjs/observable/PromiseObservable';
3
+ import { toPromise } from 'rxjs/operator/toPromise';
4
+ import { global, noop } from './lang';
5
+ export { Observable } from 'rxjs/Observable';
6
+ export { Subject } from 'rxjs/Subject';
7
+ export { PromiseCompleter, PromiseWrapper } from './promise';
8
+ export class TimerWrapper {
9
+ static setTimeout(fn, millis) {
10
+ return global.setTimeout(fn, millis);
11
+ }
12
+ static clearTimeout(id) { global.clearTimeout(id); }
13
+ static setInterval(fn, millis) {
14
+ return global.setInterval(fn, millis);
15
+ }
16
+ static clearInterval(id) { global.clearInterval(id); }
17
+ }
18
+ export class ObservableWrapper {
19
+ // TODO(vsavkin): when we use rxnext, try inferring the generic type from the first arg
20
+ static subscribe(emitter, onNext, onError, onComplete = () => { }) {
21
+ onError = (typeof onError === 'function') && onError || noop;
22
+ onComplete = (typeof onComplete === 'function') && onComplete || noop;
23
+ return emitter.subscribe({ next: onNext, error: onError, complete: onComplete });
24
+ }
25
+ static isObservable(obs) { return !!obs.subscribe; }
26
+ /**
27
+ * Returns whether `obs` has any subscribers listening to events.
28
+ */
29
+ static hasSubscribers(obs) { return obs.observers.length > 0; }
30
+ static dispose(subscription) { subscription.unsubscribe(); }
31
+ /**
32
+ * @deprecated - use callEmit() instead
33
+ */
34
+ static callNext(emitter, value) { emitter.next(value); }
35
+ static callEmit(emitter, value) { emitter.emit(value); }
36
+ static callError(emitter, error) { emitter.error(error); }
37
+ static callComplete(emitter) { emitter.complete(); }
38
+ static fromPromise(promise) {
39
+ return PromiseObservable.create(promise);
40
+ }
41
+ static toPromise(obj) { return toPromise.call(obj); }
42
+ }
43
+ /**
44
+ * Use by directives and components to emit custom Events.
45
+ *
46
+ * ### Examples
47
+ *
48
+ * In the following example, `Zippy` alternatively emits `open` and `close` events when its
49
+ * title gets clicked:
50
+ *
51
+ * ```
52
+ * @Component({
53
+ * selector: 'zippy',
54
+ * template: `
55
+ * <div class="zippy">
56
+ * <div (click)="toggle()">Toggle</div>
57
+ * <div [hidden]="!visible">
58
+ * <ng-content></ng-content>
59
+ * </div>
60
+ * </div>`})
61
+ * export class Zippy {
62
+ * visible: boolean = true;
63
+ * @Output() open: EventEmitter<any> = new EventEmitter();
64
+ * @Output() close: EventEmitter<any> = new EventEmitter();
65
+ *
66
+ * toggle() {
67
+ * this.visible = !this.visible;
68
+ * if (this.visible) {
69
+ * this.open.emit(null);
70
+ * } else {
71
+ * this.close.emit(null);
72
+ * }
73
+ * }
74
+ * }
75
+ * ```
76
+ *
77
+ * The events payload can be accessed by the parameter `$event` on the components output event
78
+ * handler:
79
+ *
80
+ * ```
81
+ * <zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
82
+ * ```
83
+ *
84
+ * Uses Rx.Observable but provides an adapter to make it work as specified here:
85
+ * https://github.com/jhusain/observable-spec
86
+ *
87
+ * Once a reference implementation of the spec is available, switch to it.
88
+ * @stable
89
+ */
90
+ export class EventEmitter extends Subject {
91
+ /**
92
+ * Creates an instance of [EventEmitter], which depending on [isAsync],
93
+ * delivers events synchronously or asynchronously.
94
+ */
95
+ constructor(isAsync = false) {
96
+ super();
97
+ this.__isAsync = isAsync;
98
+ }
99
+ emit(value) { super.next(value); }
100
+ /**
101
+ * @deprecated - use .emit(value) instead
102
+ */
103
+ next(value) { super.next(value); }
104
+ subscribe(generatorOrNext, error, complete) {
105
+ let schedulerFn;
106
+ let errorFn = (err) => null;
107
+ let completeFn = () => null;
108
+ if (generatorOrNext && typeof generatorOrNext === 'object') {
109
+ schedulerFn = this.__isAsync ? (value /** TODO #9100 */) => {
110
+ setTimeout(() => generatorOrNext.next(value));
111
+ } : (value /** TODO #9100 */) => { generatorOrNext.next(value); };
112
+ if (generatorOrNext.error) {
113
+ errorFn = this.__isAsync ? (err) => { setTimeout(() => generatorOrNext.error(err)); } :
114
+ (err) => { generatorOrNext.error(err); };
115
+ }
116
+ if (generatorOrNext.complete) {
117
+ completeFn = this.__isAsync ? () => { setTimeout(() => generatorOrNext.complete()); } :
118
+ () => { generatorOrNext.complete(); };
119
+ }
120
+ }
121
+ else {
122
+ schedulerFn = this.__isAsync ? (value /** TODO #9100 */) => {
123
+ setTimeout(() => generatorOrNext(value));
124
+ } : (value /** TODO #9100 */) => { generatorOrNext(value); };
125
+ if (error) {
126
+ errorFn =
127
+ this.__isAsync ? (err) => { setTimeout(() => error(err)); } : (err) => { error(err); };
128
+ }
129
+ if (complete) {
130
+ completeFn =
131
+ this.__isAsync ? () => { setTimeout(() => complete()); } : () => { complete(); };
132
+ }
133
+ }
134
+ return super.subscribe(schedulerFn, errorFn, completeFn);
135
+ }
136
+ }
137
+ //# sourceMappingURL=async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/facade/async.ts"],"names":[],"mappings":"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","sourcesContent":["import {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {PromiseObservable} from 'rxjs/observable/PromiseObservable';\nimport {toPromise} from 'rxjs/operator/toPromise';\n\nimport {global, noop} from './lang';\n\nexport {Observable} from 'rxjs/Observable';\nexport {Subject} from 'rxjs/Subject';\nexport {PromiseCompleter, PromiseWrapper} from './promise';\n\nexport class TimerWrapper {\n static setTimeout(fn: (...args: any[]) => void, millis: number): number {\n return global.setTimeout(fn, millis);\n }\n static clearTimeout(id: number): void { global.clearTimeout(id); }\n\n static setInterval(fn: (...args: any[]) => void, millis: number): number {\n return global.setInterval(fn, millis);\n }\n static clearInterval(id: number): void { global.clearInterval(id); }\n}\n\nexport class ObservableWrapper {\n // TODO(vsavkin): when we use rxnext, try inferring the generic type from the first arg\n static subscribe<T>(\n emitter: any, onNext: (value: T) => void, onError?: (exception: any) => void,\n onComplete: () => void = () => {}): Object {\n onError = (typeof onError === 'function') && onError || noop;\n onComplete = (typeof onComplete === 'function') && onComplete || noop;\n return emitter.subscribe({next: onNext, error: onError, complete: onComplete});\n }\n\n static isObservable(obs: any): boolean { return !!obs.subscribe; }\n\n /**\n * Returns whether `obs` has any subscribers listening to events.\n */\n static hasSubscribers(obs: EventEmitter<any>): boolean { return obs.observers.length > 0; }\n\n static dispose(subscription: any) { subscription.unsubscribe(); }\n\n /**\n * @deprecated - use callEmit() instead\n */\n static callNext(emitter: EventEmitter<any>, value: any) { emitter.next(value); }\n\n static callEmit(emitter: EventEmitter<any>, value: any) { emitter.emit(value); }\n\n static callError(emitter: EventEmitter<any>, error: any) { emitter.error(error); }\n\n static callComplete(emitter: EventEmitter<any>) { emitter.complete(); }\n\n static fromPromise(promise: Promise<any>): Observable<any> {\n return PromiseObservable.create(promise);\n }\n\n static toPromise(obj: Observable<any>): Promise<any> { return toPromise.call(obj); }\n}\n\n/**\n * Use by directives and components to emit custom Events.\n *\n * ### Examples\n *\n * In the following example, `Zippy` alternatively emits `open` and `close` events when its\n * title gets clicked:\n *\n * ```\n * @Component({\n * selector: 'zippy',\n * template: `\n * <div class=\"zippy\">\n * <div (click)=\"toggle()\">Toggle</div>\n * <div [hidden]=\"!visible\">\n * <ng-content></ng-content>\n * </div>\n * </div>`})\n * export class Zippy {\n * visible: boolean = true;\n * @Output() open: EventEmitter<any> = new EventEmitter();\n * @Output() close: EventEmitter<any> = new EventEmitter();\n *\n * toggle() {\n * this.visible = !this.visible;\n * if (this.visible) {\n * this.open.emit(null);\n * } else {\n * this.close.emit(null);\n * }\n * }\n * }\n * ```\n *\n * The events payload can be accessed by the parameter `$event` on the components output event\n * handler:\n *\n * ```\n * <zippy (open)=\"onOpen($event)\" (close)=\"onClose($event)\"></zippy>\n * ```\n *\n * Uses Rx.Observable but provides an adapter to make it work as specified here:\n * https://github.com/jhusain/observable-spec\n *\n * Once a reference implementation of the spec is available, switch to it.\n * @stable\n */\nexport class EventEmitter<T> extends Subject<T> {\n // TODO: mark this as internal once all the facades are gone\n // we can't mark it as internal now because EventEmitter exported via @angular/core would not\n // contain this property making it incompatible with all the code that uses EventEmitter via\n // facades, which are local to the code and do not have this property stripped.\n // tslint:disable-next-line\n __isAsync: boolean;\n\n /**\n * Creates an instance of [EventEmitter], which depending on [isAsync],\n * delivers events synchronously or asynchronously.\n */\n constructor(isAsync: boolean = false) {\n super();\n this.__isAsync = isAsync;\n }\n\n emit(value: T) { super.next(value); }\n\n /**\n * @deprecated - use .emit(value) instead\n */\n next(value: any) { super.next(value); }\n\n subscribe(generatorOrNext?: any, error?: any, complete?: any): any {\n let schedulerFn: any /** TODO #9100 */;\n let errorFn = (err: any): any /** TODO #9100 */ => null;\n let completeFn = (): any /** TODO #9100 */ => null;\n\n if (generatorOrNext && typeof generatorOrNext === 'object') {\n schedulerFn = this.__isAsync ? (value: any /** TODO #9100 */) => {\n setTimeout(() => generatorOrNext.next(value));\n } : (value: any /** TODO #9100 */) => { generatorOrNext.next(value); };\n\n if (generatorOrNext.error) {\n errorFn = this.__isAsync ? (err) => { setTimeout(() => generatorOrNext.error(err)); } :\n (err) => { generatorOrNext.error(err); };\n }\n\n if (generatorOrNext.complete) {\n completeFn = this.__isAsync ? () => { setTimeout(() => generatorOrNext.complete()); } :\n () => { generatorOrNext.complete(); };\n }\n } else {\n schedulerFn = this.__isAsync ? (value: any /** TODO #9100 */) => {\n setTimeout(() => generatorOrNext(value));\n } : (value: any /** TODO #9100 */) => { generatorOrNext(value); };\n\n if (error) {\n errorFn =\n this.__isAsync ? (err) => { setTimeout(() => error(err)); } : (err) => { error(err); };\n }\n\n if (complete) {\n completeFn =\n this.__isAsync ? () => { setTimeout(() => complete()); } : () => { complete(); };\n }\n }\n\n return super.subscribe(schedulerFn, errorFn, completeFn);\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A base class for the WrappedException that can be used to identify
3
+ * a WrappedException from ExceptionHandler without adding circular
4
+ * dependency.
5
+ */
6
+ export declare class BaseWrappedException extends Error {
7
+ constructor(message: string);
8
+ readonly wrapperMessage: string;
9
+ readonly wrapperStack: any;
10
+ readonly originalException: any;
11
+ readonly originalStack: any;
12
+ readonly context: any;
13
+ readonly message: string;
14
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A base class for the WrappedException that can be used to identify
3
+ * a WrappedException from ExceptionHandler without adding circular
4
+ * dependency.
5
+ */
6
+ export class BaseWrappedException extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ }
10
+ get wrapperMessage() { return ''; }
11
+ get wrapperStack() { return null; }
12
+ get originalException() { return null; }
13
+ get originalStack() { return null; }
14
+ get context() { return null; }
15
+ get message() { return ''; }
16
+ }
17
+ //# sourceMappingURL=base_wrapped_exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_wrapped_exception.js","sourceRoot":"","sources":["../../../../../../modules/@angular/router/src/facade/base_wrapped_exception.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0CAA0C,KAAK;IAC7C,YAAY,OAAe;QAAI,MAAM,OAAO,CAAC,CAAC;IAAC,CAAC;IAEhD,IAAI,cAAc,KAAa,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,YAAY,KAAU,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,IAAI,iBAAiB,KAAU,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,aAAa,KAAU,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,OAAO,KAAU,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,IAAI,OAAO,KAAa,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAAA","sourcesContent":["/**\n * A base class for the WrappedException that can be used to identify\n * a WrappedException from ExceptionHandler without adding circular\n * dependency.\n */\nexport class BaseWrappedException extends Error {\n constructor(message: string) { super(message); }\n\n get wrapperMessage(): string { return ''; }\n get wrapperStack(): any { return null; }\n get originalException(): any { return null; }\n get originalStack(): any { return null; }\n get context(): any { return null; }\n get message(): string { return ''; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -0,0 +1,103 @@
1
+ export declare var Map: MapConstructor;
2
+ export declare var Set: SetConstructor;
3
+ export declare class MapWrapper {
4
+ static clone<K, V>(m: Map<K, V>): Map<K, V>;
5
+ static createFromStringMap<T>(stringMap: {
6
+ [key: string]: T;
7
+ }): Map<string, T>;
8
+ static toStringMap<T>(m: Map<string, T>): {
9
+ [key: string]: T;
10
+ };
11
+ static createFromPairs(pairs: any[]): Map<any, any>;
12
+ static clearValues(m: Map<any, any>): void;
13
+ static iterable<T>(m: T): T;
14
+ static keys<K>(m: Map<K, any>): K[];
15
+ static values<V>(m: Map<any, V>): V[];
16
+ }
17
+ /**
18
+ * Wraps Javascript Objects
19
+ */
20
+ export declare class StringMapWrapper {
21
+ static create(): {
22
+ [k: string]: any;
23
+ };
24
+ static contains(map: {
25
+ [key: string]: any;
26
+ }, key: string): boolean;
27
+ static get<V>(map: {
28
+ [key: string]: V;
29
+ }, key: string): V;
30
+ static set<V>(map: {
31
+ [key: string]: V;
32
+ }, key: string, value: V): void;
33
+ static keys(map: {
34
+ [key: string]: any;
35
+ }): string[];
36
+ static values<T>(map: {
37
+ [key: string]: T;
38
+ }): T[];
39
+ static isEmpty(map: {
40
+ [key: string]: any;
41
+ }): boolean;
42
+ static delete(map: {
43
+ [key: string]: any;
44
+ }, key: string): void;
45
+ static forEach<K, V>(map: {
46
+ [key: string]: V;
47
+ }, callback: Function): void;
48
+ static merge<V>(m1: {
49
+ [key: string]: V;
50
+ }, m2: {
51
+ [key: string]: V;
52
+ }): {
53
+ [key: string]: V;
54
+ };
55
+ static equals<V>(m1: {
56
+ [key: string]: V;
57
+ }, m2: {
58
+ [key: string]: V;
59
+ }): boolean;
60
+ }
61
+ /**
62
+ * A boolean-valued function over a value, possibly including context information
63
+ * regarding that value's position in an array.
64
+ */
65
+ export interface Predicate<T> {
66
+ (value: T, index?: number, array?: T[]): boolean;
67
+ }
68
+ export declare class ListWrapper {
69
+ static createFixedSize(size: number): any[];
70
+ static createGrowableSize(size: number): any[];
71
+ static clone<T>(array: T[]): T[];
72
+ static forEachWithIndex<T>(array: T[], fn: (t: T, n: number) => void): void;
73
+ static first<T>(array: T[]): T;
74
+ static last<T>(array: T[]): T;
75
+ static indexOf<T>(array: T[], value: T, startIndex?: number): number;
76
+ static contains<T>(list: T[], el: T): boolean;
77
+ static reversed<T>(array: T[]): T[];
78
+ static concat(a: any[], b: any[]): any[];
79
+ static insert<T>(list: T[], index: number, value: T): void;
80
+ static removeAt<T>(list: T[], index: number): T;
81
+ static removeAll<T>(list: T[], items: T[]): void;
82
+ static remove<T>(list: T[], el: T): boolean;
83
+ static clear(list: any[]): void;
84
+ static isEmpty(list: any[]): boolean;
85
+ static fill(list: any[], value: any, start?: number, end?: number): void;
86
+ static equals(a: any[], b: any[]): boolean;
87
+ static slice<T>(l: T[], from?: number, to?: number): T[];
88
+ static splice<T>(l: T[], from: number, length: number): T[];
89
+ static sort<T>(l: T[], compareFn?: (a: T, b: T) => number): void;
90
+ static toString<T>(l: T[]): string;
91
+ static toJSON<T>(l: T[]): string;
92
+ static maximum<T>(list: T[], predicate: (t: T) => number): T;
93
+ static flatten<T>(list: Array<T | T[]>): T[];
94
+ static addAll<T>(list: Array<T>, source: Array<T>): void;
95
+ }
96
+ export declare function isListLikeIterable(obj: any): boolean;
97
+ export declare function areIterablesEqual(a: any, b: any, comparator: Function): boolean;
98
+ export declare function iterateListLike(obj: any, fn: Function): void;
99
+ export declare class SetWrapper {
100
+ static createFromList<T>(lst: T[]): Set<T>;
101
+ static has<T>(s: Set<T>, key: T): boolean;
102
+ static delete<K>(m: Set<K>, k: K): void;
103
+ }
@@ -0,0 +1,343 @@
1
+ import { getSymbolIterator, global, isArray, isBlank, isJsObject, isPresent } from './lang';
2
+ export var Map = global.Map;
3
+ export var Set = global.Set;
4
+ // Safari and Internet Explorer do not support the iterable parameter to the
5
+ // Map constructor. We work around that by manually adding the items.
6
+ var createMapFromPairs = (function () {
7
+ try {
8
+ if (new Map([[1, 2]]).size === 1) {
9
+ return function createMapFromPairs(pairs) { return new Map(pairs); };
10
+ }
11
+ }
12
+ catch (e) {
13
+ }
14
+ return function createMapAndPopulateFromPairs(pairs) {
15
+ var map = new Map();
16
+ for (var i = 0; i < pairs.length; i++) {
17
+ var pair = pairs[i];
18
+ map.set(pair[0], pair[1]);
19
+ }
20
+ return map;
21
+ };
22
+ })();
23
+ var createMapFromMap = (function () {
24
+ try {
25
+ if (new Map(new Map())) {
26
+ return function createMapFromMap(m) { return new Map(m); };
27
+ }
28
+ }
29
+ catch (e) {
30
+ }
31
+ return function createMapAndPopulateFromMap(m) {
32
+ var map = new Map();
33
+ m.forEach((v, k) => { map.set(k, v); });
34
+ return map;
35
+ };
36
+ })();
37
+ var _clearValues = (function () {
38
+ if ((new Map()).keys().next) {
39
+ return function _clearValues(m) {
40
+ var keyIterator = m.keys();
41
+ var k;
42
+ while (!((k = keyIterator.next()).done)) {
43
+ m.set(k.value, null);
44
+ }
45
+ };
46
+ }
47
+ else {
48
+ return function _clearValuesWithForeEach(m) {
49
+ m.forEach((v, k) => { m.set(k, null); });
50
+ };
51
+ }
52
+ })();
53
+ // Safari doesn't implement MapIterator.next(), which is used is Traceur's polyfill of Array.from
54
+ // TODO(mlaval): remove the work around once we have a working polyfill of Array.from
55
+ var _arrayFromMap = (function () {
56
+ try {
57
+ if ((new Map()).values().next) {
58
+ return function createArrayFromMap(m, getValues) {
59
+ return getValues ? Array.from(m.values()) : Array.from(m.keys());
60
+ };
61
+ }
62
+ }
63
+ catch (e) {
64
+ }
65
+ return function createArrayFromMapWithForeach(m, getValues) {
66
+ var res = ListWrapper.createFixedSize(m.size), i = 0;
67
+ m.forEach((v, k) => {
68
+ res[i] = getValues ? v : k;
69
+ i++;
70
+ });
71
+ return res;
72
+ };
73
+ })();
74
+ export class MapWrapper {
75
+ static clone(m) { return createMapFromMap(m); }
76
+ static createFromStringMap(stringMap) {
77
+ var result = new Map();
78
+ for (var prop in stringMap) {
79
+ result.set(prop, stringMap[prop]);
80
+ }
81
+ return result;
82
+ }
83
+ static toStringMap(m) {
84
+ var r = {};
85
+ m.forEach((v, k) => r[k] = v);
86
+ return r;
87
+ }
88
+ static createFromPairs(pairs) { return createMapFromPairs(pairs); }
89
+ static clearValues(m) { _clearValues(m); }
90
+ static iterable(m) { return m; }
91
+ static keys(m) { return _arrayFromMap(m, false); }
92
+ static values(m) { return _arrayFromMap(m, true); }
93
+ }
94
+ /**
95
+ * Wraps Javascript Objects
96
+ */
97
+ export class StringMapWrapper {
98
+ static create() {
99
+ // Note: We are not using Object.create(null) here due to
100
+ // performance!
101
+ // http://jsperf.com/ng2-object-create-null
102
+ return {};
103
+ }
104
+ static contains(map, key) {
105
+ return map.hasOwnProperty(key);
106
+ }
107
+ static get(map, key) {
108
+ return map.hasOwnProperty(key) ? map[key] : undefined;
109
+ }
110
+ static set(map, key, value) { map[key] = value; }
111
+ static keys(map) { return Object.keys(map); }
112
+ static values(map) {
113
+ return Object.keys(map).reduce((r, a) => {
114
+ r.push(map[a]);
115
+ return r;
116
+ }, []);
117
+ }
118
+ static isEmpty(map) {
119
+ for (var prop in map) {
120
+ return false;
121
+ }
122
+ return true;
123
+ }
124
+ static delete(map, key) { delete map[key]; }
125
+ static forEach(map, callback) {
126
+ for (var prop in map) {
127
+ if (map.hasOwnProperty(prop)) {
128
+ callback(map[prop], prop);
129
+ }
130
+ }
131
+ }
132
+ static merge(m1, m2) {
133
+ var m = {};
134
+ for (var attr in m1) {
135
+ if (m1.hasOwnProperty(attr)) {
136
+ m[attr] = m1[attr];
137
+ }
138
+ }
139
+ for (var attr in m2) {
140
+ if (m2.hasOwnProperty(attr)) {
141
+ m[attr] = m2[attr];
142
+ }
143
+ }
144
+ return m;
145
+ }
146
+ static equals(m1, m2) {
147
+ var k1 = Object.keys(m1);
148
+ var k2 = Object.keys(m2);
149
+ if (k1.length != k2.length) {
150
+ return false;
151
+ }
152
+ var key;
153
+ for (var i = 0; i < k1.length; i++) {
154
+ key = k1[i];
155
+ if (m1[key] !== m2[key]) {
156
+ return false;
157
+ }
158
+ }
159
+ return true;
160
+ }
161
+ }
162
+ export class ListWrapper {
163
+ // JS has no way to express a statically fixed size list, but dart does so we
164
+ // keep both methods.
165
+ static createFixedSize(size) { return new Array(size); }
166
+ static createGrowableSize(size) { return new Array(size); }
167
+ static clone(array) { return array.slice(0); }
168
+ static forEachWithIndex(array, fn) {
169
+ for (var i = 0; i < array.length; i++) {
170
+ fn(array[i], i);
171
+ }
172
+ }
173
+ static first(array) {
174
+ if (!array)
175
+ return null;
176
+ return array[0];
177
+ }
178
+ static last(array) {
179
+ if (!array || array.length == 0)
180
+ return null;
181
+ return array[array.length - 1];
182
+ }
183
+ static indexOf(array, value, startIndex = 0) {
184
+ return array.indexOf(value, startIndex);
185
+ }
186
+ static contains(list, el) { return list.indexOf(el) !== -1; }
187
+ static reversed(array) {
188
+ var a = ListWrapper.clone(array);
189
+ return a.reverse();
190
+ }
191
+ static concat(a, b) { return a.concat(b); }
192
+ static insert(list, index, value) { list.splice(index, 0, value); }
193
+ static removeAt(list, index) {
194
+ var res = list[index];
195
+ list.splice(index, 1);
196
+ return res;
197
+ }
198
+ static removeAll(list, items) {
199
+ for (var i = 0; i < items.length; ++i) {
200
+ var index = list.indexOf(items[i]);
201
+ list.splice(index, 1);
202
+ }
203
+ }
204
+ static remove(list, el) {
205
+ var index = list.indexOf(el);
206
+ if (index > -1) {
207
+ list.splice(index, 1);
208
+ return true;
209
+ }
210
+ return false;
211
+ }
212
+ static clear(list) { list.length = 0; }
213
+ static isEmpty(list) { return list.length == 0; }
214
+ static fill(list, value, start = 0, end = null) {
215
+ list.fill(value, start, end === null ? list.length : end);
216
+ }
217
+ static equals(a, b) {
218
+ if (a.length != b.length)
219
+ return false;
220
+ for (var i = 0; i < a.length; ++i) {
221
+ if (a[i] !== b[i])
222
+ return false;
223
+ }
224
+ return true;
225
+ }
226
+ static slice(l, from = 0, to = null) {
227
+ return l.slice(from, to === null ? undefined : to);
228
+ }
229
+ static splice(l, from, length) { return l.splice(from, length); }
230
+ static sort(l, compareFn) {
231
+ if (isPresent(compareFn)) {
232
+ l.sort(compareFn);
233
+ }
234
+ else {
235
+ l.sort();
236
+ }
237
+ }
238
+ static toString(l) { return l.toString(); }
239
+ static toJSON(l) { return JSON.stringify(l); }
240
+ static maximum(list, predicate) {
241
+ if (list.length == 0) {
242
+ return null;
243
+ }
244
+ var solution = null;
245
+ var maxValue = -Infinity;
246
+ for (var index = 0; index < list.length; index++) {
247
+ var candidate = list[index];
248
+ if (isBlank(candidate)) {
249
+ continue;
250
+ }
251
+ var candidateValue = predicate(candidate);
252
+ if (candidateValue > maxValue) {
253
+ solution = candidate;
254
+ maxValue = candidateValue;
255
+ }
256
+ }
257
+ return solution;
258
+ }
259
+ static flatten(list) {
260
+ var target = [];
261
+ _flattenArray(list, target);
262
+ return target;
263
+ }
264
+ static addAll(list, source) {
265
+ for (var i = 0; i < source.length; i++) {
266
+ list.push(source[i]);
267
+ }
268
+ }
269
+ }
270
+ function _flattenArray(source, target) {
271
+ if (isPresent(source)) {
272
+ for (var i = 0; i < source.length; i++) {
273
+ var item = source[i];
274
+ if (isArray(item)) {
275
+ _flattenArray(item, target);
276
+ }
277
+ else {
278
+ target.push(item);
279
+ }
280
+ }
281
+ }
282
+ return target;
283
+ }
284
+ export function isListLikeIterable(obj) {
285
+ if (!isJsObject(obj))
286
+ return false;
287
+ return isArray(obj) ||
288
+ (!(obj instanceof Map) &&
289
+ getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop
290
+ }
291
+ export function areIterablesEqual(a, b, comparator) {
292
+ var iterator1 = a[getSymbolIterator()]();
293
+ var iterator2 = b[getSymbolIterator()]();
294
+ while (true) {
295
+ let item1 = iterator1.next();
296
+ let item2 = iterator2.next();
297
+ if (item1.done && item2.done)
298
+ return true;
299
+ if (item1.done || item2.done)
300
+ return false;
301
+ if (!comparator(item1.value, item2.value))
302
+ return false;
303
+ }
304
+ }
305
+ export function iterateListLike(obj, fn) {
306
+ if (isArray(obj)) {
307
+ for (var i = 0; i < obj.length; i++) {
308
+ fn(obj[i]);
309
+ }
310
+ }
311
+ else {
312
+ var iterator = obj[getSymbolIterator()]();
313
+ var item;
314
+ while (!((item = iterator.next()).done)) {
315
+ fn(item.value);
316
+ }
317
+ }
318
+ }
319
+ // Safari and Internet Explorer do not support the iterable parameter to the
320
+ // Set constructor. We work around that by manually adding the items.
321
+ var createSetFromList = (function () {
322
+ var test = new Set([1, 2, 3]);
323
+ if (test.size === 3) {
324
+ return function createSetFromList(lst) { return new Set(lst); };
325
+ }
326
+ else {
327
+ return function createSetAndPopulateFromList(lst) {
328
+ var res = new Set(lst);
329
+ if (res.size !== lst.length) {
330
+ for (var i = 0; i < lst.length; i++) {
331
+ res.add(lst[i]);
332
+ }
333
+ }
334
+ return res;
335
+ };
336
+ }
337
+ })();
338
+ export class SetWrapper {
339
+ static createFromList(lst) { return createSetFromList(lst); }
340
+ static has(s, key) { return s.has(key); }
341
+ static delete(m, k) { m.delete(k); }
342
+ }
343
+ //# sourceMappingURL=collection.js.map