@angular/core 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 (624) hide show
  1. package/{core.umd.js → bundles/core.umd.js} +6402 -4606
  2. package/bundles/core.umd.min.js +6 -0
  3. package/esm/index.d.ts +5 -4
  4. package/esm/index.js +9 -8
  5. package/esm/index.js.map +1 -1
  6. package/esm/private_export.d.ts +96 -11
  7. package/esm/private_export.js +39 -10
  8. package/esm/private_export.js.map +1 -1
  9. package/esm/private_export.metadata.json +1 -1
  10. package/esm/src/animation/active_animation_players_map.d.ts +11 -0
  11. package/esm/src/animation/active_animation_players_map.js +47 -0
  12. package/esm/src/animation/active_animation_players_map.js.map +1 -0
  13. package/esm/src/animation/animation_constants.d.ts +4 -0
  14. package/esm/src/animation/animation_constants.js +5 -0
  15. package/esm/src/animation/animation_constants.js.map +1 -0
  16. package/esm/src/animation/animation_constants.metadata.json +1 -0
  17. package/esm/src/animation/animation_driver.d.ts +9 -0
  18. package/esm/src/animation/animation_driver.js +9 -0
  19. package/esm/src/animation/animation_driver.js.map +1 -0
  20. package/esm/src/animation/animation_group_player.d.ts +18 -0
  21. package/esm/src/animation/animation_group_player.js +60 -0
  22. package/esm/src/animation/animation_group_player.js.map +1 -0
  23. package/esm/src/animation/animation_keyframe.d.ts +6 -0
  24. package/esm/src/animation/animation_keyframe.js +7 -0
  25. package/esm/src/animation/animation_keyframe.js.map +1 -0
  26. package/esm/src/animation/animation_player.d.ts +26 -0
  27. package/esm/src/animation/animation_player.js +30 -0
  28. package/esm/src/animation/animation_player.js.map +1 -0
  29. package/esm/src/animation/animation_sequence_player.d.ts +21 -0
  30. package/esm/src/animation/animation_sequence_player.js +64 -0
  31. package/esm/src/animation/animation_sequence_player.js.map +1 -0
  32. package/esm/src/animation/animation_style_util.d.ts +32 -0
  33. package/esm/src/animation/animation_style_util.js +91 -0
  34. package/esm/src/animation/animation_style_util.js.map +1 -0
  35. package/esm/src/animation/animation_style_util.metadata.json +1 -0
  36. package/esm/src/animation/animation_styles.d.ts +8 -0
  37. package/esm/src/animation/animation_styles.js +6 -0
  38. package/esm/src/animation/animation_styles.js.map +1 -0
  39. package/esm/src/animation/metadata.d.ts +511 -0
  40. package/esm/src/animation/metadata.js +565 -0
  41. package/esm/src/animation/metadata.js.map +1 -0
  42. package/esm/src/animation/metadata.metadata.json +1 -0
  43. package/esm/src/application_common_providers.d.ts +1 -0
  44. package/esm/src/application_common_providers.js +5 -4
  45. package/esm/src/application_common_providers.js.map +1 -1
  46. package/esm/src/application_common_providers.metadata.json +1 -1
  47. package/esm/src/application_ref.d.ts +17 -41
  48. package/esm/src/application_ref.js +32 -23
  49. package/esm/src/application_ref.js.map +1 -1
  50. package/esm/src/application_ref.metadata.json +1 -1
  51. package/esm/src/application_tokens.d.ts +6 -1
  52. package/esm/src/application_tokens.js +9 -4
  53. package/esm/src/application_tokens.js.map +1 -1
  54. package/esm/src/application_tokens.metadata.json +1 -1
  55. package/esm/src/change_detection/change_detection.d.ts +9 -8
  56. package/esm/src/change_detection/change_detection.js +7 -7
  57. package/esm/src/change_detection/change_detection.js.map +1 -1
  58. package/esm/src/change_detection/change_detection.metadata.json +1 -1
  59. package/esm/src/change_detection/change_detection_util.d.ts +3 -1
  60. package/esm/src/change_detection/change_detection_util.js +6 -5
  61. package/esm/src/change_detection/change_detection_util.js.map +1 -1
  62. package/esm/src/change_detection/change_detection_util.metadata.json +1 -1
  63. package/esm/src/change_detection/change_detector_ref.d.ts +3 -0
  64. package/esm/src/change_detection/change_detector_ref.js +3 -0
  65. package/esm/src/change_detection/change_detector_ref.js.map +1 -1
  66. package/esm/src/change_detection/constants.d.ts +1 -0
  67. package/esm/src/change_detection/constants.js +4 -3
  68. package/esm/src/change_detection/constants.js.map +1 -1
  69. package/esm/src/change_detection/constants.metadata.json +1 -1
  70. package/esm/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  71. package/esm/src/change_detection/differs/default_iterable_differ.js +25 -18
  72. package/esm/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  73. package/esm/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  74. package/esm/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  75. package/esm/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  76. package/esm/src/change_detection/differs/iterable_differs.d.ts +4 -1
  77. package/esm/src/change_detection/differs/iterable_differs.js +5 -4
  78. package/esm/src/change_detection/differs/iterable_differs.js.map +1 -1
  79. package/esm/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  80. package/esm/src/change_detection/differs/keyvalue_differs.js +5 -4
  81. package/esm/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  82. package/esm/src/change_detection/pipe_transform.js.map +1 -1
  83. package/esm/src/change_detection.d.ts +1 -1
  84. package/esm/src/change_detection.js +5 -5
  85. package/esm/src/change_detection.js.map +1 -1
  86. package/esm/src/console.js +2 -1
  87. package/esm/src/console.js.map +1 -1
  88. package/esm/src/console.metadata.json +1 -1
  89. package/esm/src/debug/debug_node.d.ts +20 -2
  90. package/esm/src/debug/debug_node.js +16 -2
  91. package/esm/src/debug/debug_node.js.map +1 -1
  92. package/esm/src/debug/debug_node.metadata.json +1 -0
  93. package/esm/src/debug/debug_renderer.d.ts +10 -6
  94. package/esm/src/debug/debug_renderer.js +13 -2
  95. package/esm/src/debug/debug_renderer.js.map +1 -1
  96. package/esm/src/di/decorators.d.ts +13 -1
  97. package/esm/src/di/decorators.js +7 -1
  98. package/esm/src/di/decorators.js.map +1 -1
  99. package/esm/src/di/decorators.metadata.json +1 -1
  100. package/esm/src/di/forward_ref.d.ts +3 -1
  101. package/esm/src/di/forward_ref.js +3 -1
  102. package/esm/src/di/forward_ref.js.map +1 -1
  103. package/esm/src/di/injector.d.ts +4 -1
  104. package/esm/src/di/injector.js +5 -2
  105. package/esm/src/di/injector.js.map +1 -1
  106. package/esm/src/di/injector.metadata.json +1 -1
  107. package/esm/src/di/metadata.d.ts +8 -1
  108. package/esm/src/di/metadata.js +10 -3
  109. package/esm/src/di/metadata.js.map +1 -1
  110. package/esm/src/di/opaque_token.d.ts +2 -1
  111. package/esm/src/di/opaque_token.js +22 -21
  112. package/esm/src/di/opaque_token.js.map +1 -1
  113. package/esm/src/di/provider.d.ts +11 -10
  114. package/esm/src/di/provider.js +17 -14
  115. package/esm/src/di/provider.js.map +1 -1
  116. package/esm/src/di/provider.metadata.json +1 -0
  117. package/esm/src/di/provider_util.js.map +1 -1
  118. package/esm/src/di/provider_util.metadata.json +1 -0
  119. package/esm/src/di/reflective_exceptions.d.ts +11 -16
  120. package/esm/src/di/reflective_exceptions.js +28 -22
  121. package/esm/src/di/reflective_exceptions.js.map +1 -1
  122. package/esm/src/di/reflective_injector.d.ts +3 -33
  123. package/esm/src/di/reflective_injector.js +10 -7
  124. package/esm/src/di/reflective_injector.js.map +1 -1
  125. package/esm/src/di/reflective_key.d.ts +1 -8
  126. package/esm/src/di/reflective_key.js +3 -2
  127. package/esm/src/di/reflective_key.js.map +1 -1
  128. package/esm/src/di/reflective_provider.d.ts +2 -1
  129. package/esm/src/di/reflective_provider.js +6 -5
  130. package/esm/src/di/reflective_provider.js.map +1 -1
  131. package/esm/src/di/reflective_provider.metadata.json +1 -0
  132. package/esm/src/di.d.ts +2 -2
  133. package/esm/src/di.js +6 -6
  134. package/esm/src/di.js.map +1 -1
  135. package/esm/src/facade/async.d.ts +11 -4
  136. package/esm/src/facade/async.js +25 -15
  137. package/esm/src/facade/async.js.map +1 -1
  138. package/esm/src/facade/base_wrapped_exception.js +4 -4
  139. package/esm/src/facade/base_wrapped_exception.js.map +1 -1
  140. package/esm/src/facade/collection.js +1 -1
  141. package/esm/src/facade/collection.js.map +1 -1
  142. package/esm/src/facade/collection.metadata.json +1 -1
  143. package/esm/src/facade/exception_handler.d.ts +2 -11
  144. package/esm/src/facade/exception_handler.js +8 -7
  145. package/esm/src/facade/exception_handler.js.map +1 -1
  146. package/esm/src/facade/exceptions.d.ts +4 -0
  147. package/esm/src/facade/exceptions.js +6 -2
  148. package/esm/src/facade/exceptions.js.map +1 -1
  149. package/esm/src/facade/exceptions.metadata.json +1 -0
  150. package/esm/src/facade/lang.d.ts +6 -4
  151. package/esm/src/facade/lang.js +12 -11
  152. package/esm/src/facade/lang.js.map +1 -1
  153. package/esm/src/facade/lang.metadata.json +1 -1
  154. package/esm/src/facade/math.d.ts +2 -0
  155. package/esm/src/facade/math.js +4 -0
  156. package/esm/src/facade/math.js.map +1 -0
  157. package/esm/src/facade/math.metadata.json +1 -0
  158. package/esm/src/facade/promise.js.map +1 -1
  159. package/esm/src/linker/component_factory.d.ts +5 -4
  160. package/esm/src/linker/component_factory.js +7 -3
  161. package/esm/src/linker/component_factory.js.map +1 -1
  162. package/esm/src/linker/component_resolver.d.ts +5 -4
  163. package/esm/src/linker/component_resolver.js +12 -7
  164. package/esm/src/linker/component_resolver.js.map +1 -1
  165. package/esm/src/linker/component_resolver.metadata.json +1 -1
  166. package/esm/src/linker/debug_context.js +5 -4
  167. package/esm/src/linker/debug_context.js.map +1 -1
  168. package/esm/src/linker/dynamic_component_loader.d.ts +5 -6
  169. package/esm/src/linker/dynamic_component_loader.js +5 -3
  170. package/esm/src/linker/dynamic_component_loader.js.map +1 -1
  171. package/esm/src/linker/dynamic_component_loader.metadata.json +1 -1
  172. package/esm/src/linker/element.d.ts +3 -3
  173. package/esm/src/linker/element.js +5 -5
  174. package/esm/src/linker/element.js.map +1 -1
  175. package/esm/src/linker/element_injector.js.map +1 -1
  176. package/esm/src/linker/element_ref.d.ts +1 -0
  177. package/esm/src/linker/element_ref.js +5 -5
  178. package/esm/src/linker/element_ref.js.map +1 -1
  179. package/esm/src/linker/exceptions.d.ts +4 -1
  180. package/esm/src/linker/exceptions.js +4 -1
  181. package/esm/src/linker/exceptions.js.map +1 -1
  182. package/esm/src/linker/query_list.d.ts +3 -10
  183. package/esm/src/linker/query_list.js +8 -7
  184. package/esm/src/linker/query_list.js.map +1 -1
  185. package/esm/src/linker/systemjs_component_resolver.d.ts +21 -0
  186. package/esm/src/linker/systemjs_component_resolver.js +44 -0
  187. package/esm/src/linker/systemjs_component_resolver.js.map +1 -0
  188. package/esm/src/linker/template_ref.d.ts +2 -1
  189. package/esm/src/linker/template_ref.js +1 -0
  190. package/esm/src/linker/template_ref.js.map +1 -1
  191. package/esm/src/linker/view.d.ts +12 -1
  192. package/esm/src/linker/view.js +62 -16
  193. package/esm/src/linker/view.js.map +1 -1
  194. package/esm/src/linker/view_container_ref.d.ts +2 -10
  195. package/esm/src/linker/view_container_ref.js +4 -3
  196. package/esm/src/linker/view_container_ref.js.map +1 -1
  197. package/esm/src/linker/view_ref.d.ts +5 -1
  198. package/esm/src/linker/view_ref.js +6 -2
  199. package/esm/src/linker/view_ref.js.map +1 -1
  200. package/esm/src/linker/view_type.js.map +1 -1
  201. package/esm/src/linker/view_utils.d.ts +2 -4
  202. package/esm/src/linker/view_utils.js +21 -21
  203. package/esm/src/linker/view_utils.js.map +1 -1
  204. package/esm/src/linker/view_utils.metadata.json +1 -1
  205. package/esm/src/linker.d.ts +5 -4
  206. package/esm/src/linker.js +5 -4
  207. package/esm/src/linker.js.map +1 -1
  208. package/esm/src/metadata/di.d.ts +8 -1
  209. package/esm/src/metadata/di.js +10 -3
  210. package/esm/src/metadata/di.js.map +1 -1
  211. package/esm/src/metadata/directives.d.ts +104 -20
  212. package/esm/src/metadata/directives.js +25 -19
  213. package/esm/src/metadata/directives.js.map +1 -1
  214. package/esm/src/metadata/lifecycle_hooks.d.ts +46 -31
  215. package/esm/src/metadata/lifecycle_hooks.js +464 -10
  216. package/esm/src/metadata/lifecycle_hooks.js.map +1 -1
  217. package/esm/src/metadata/lifecycle_hooks.metadata.json +1 -1
  218. package/esm/src/metadata/view.d.ts +6 -2
  219. package/esm/src/metadata/view.js +3 -1
  220. package/esm/src/metadata/view.js.map +1 -1
  221. package/esm/src/metadata/view.metadata.json +1 -1
  222. package/esm/src/metadata.d.ts +49 -15
  223. package/esm/src/metadata.js +35 -10
  224. package/esm/src/metadata.js.map +1 -1
  225. package/esm/src/metadata.metadata.json +1 -1
  226. package/esm/src/platform_common_providers.d.ts +1 -0
  227. package/esm/src/platform_common_providers.js +3 -3
  228. package/esm/src/platform_common_providers.js.map +1 -1
  229. package/esm/src/platform_common_providers.metadata.json +1 -1
  230. package/esm/src/platform_directives_and_pipes.d.ts +48 -45
  231. package/esm/src/platform_directives_and_pipes.js +50 -47
  232. package/esm/src/platform_directives_and_pipes.js.map +1 -1
  233. package/esm/src/platform_directives_and_pipes.metadata.json +1 -1
  234. package/esm/src/profile/profile.d.ts +5 -1
  235. package/esm/src/profile/profile.js +4 -0
  236. package/esm/src/profile/profile.js.map +1 -1
  237. package/esm/src/profile/profile.metadata.json +1 -1
  238. package/esm/src/profile/wtf_impl.js +1 -1
  239. package/esm/src/profile/wtf_impl.js.map +1 -1
  240. package/esm/src/profile/wtf_impl.metadata.json +1 -0
  241. package/esm/src/profile/wtf_init.js +2 -2
  242. package/esm/src/profile/wtf_init.js.map +1 -1
  243. package/esm/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  244. package/esm/src/reflection/platform_reflection_capabilities.js.map +1 -1
  245. package/esm/src/reflection/reflection.d.ts +1 -1
  246. package/esm/src/reflection/reflection.js +2 -2
  247. package/esm/src/reflection/reflection.js.map +1 -1
  248. package/esm/src/reflection/reflection.metadata.json +1 -1
  249. package/esm/src/reflection/reflection_capabilities.d.ts +4 -5
  250. package/esm/src/reflection/reflection_capabilities.js +22 -10
  251. package/esm/src/reflection/reflection_capabilities.js.map +1 -1
  252. package/esm/src/reflection/reflector.d.ts +8 -20
  253. package/esm/src/reflection/reflector.js +13 -3
  254. package/esm/src/reflection/reflector.js.map +1 -1
  255. package/esm/src/reflection/reflector_reader.js +3 -3
  256. package/esm/src/reflection/reflector_reader.js.map +1 -1
  257. package/esm/src/reflection/types.js.map +1 -1
  258. package/esm/src/render/api.d.ts +17 -6
  259. package/esm/src/render/api.js +8 -1
  260. package/esm/src/render/api.js.map +1 -1
  261. package/esm/src/render.d.ts +1 -1
  262. package/esm/src/render.js +1 -1
  263. package/esm/src/render.js.map +1 -1
  264. package/esm/src/security.js +6 -6
  265. package/esm/src/security.js.map +1 -1
  266. package/esm/src/testability/testability.d.ts +3 -19
  267. package/esm/src/testability/testability.js +10 -5
  268. package/esm/src/testability/testability.js.map +1 -1
  269. package/esm/src/testability/testability.metadata.json +1 -1
  270. package/esm/src/util/decorators.d.ts +2 -1
  271. package/esm/src/util/decorators.js +10 -9
  272. package/esm/src/util/decorators.js.map +1 -1
  273. package/esm/src/util.js.map +1 -1
  274. package/esm/src/zone/ng_zone.d.ts +6 -17
  275. package/esm/src/zone/ng_zone.js +7 -6
  276. package/esm/src/zone/ng_zone.js.map +1 -1
  277. package/esm/src/zone/ng_zone_impl.d.ts +1 -4
  278. package/esm/src/zone/ng_zone_impl.js +3 -2
  279. package/esm/src/zone/ng_zone_impl.js.map +1 -1
  280. package/esm/src/zone.js.map +1 -1
  281. package/esm/testing/async.js +20 -22
  282. package/esm/testing/async.js.map +1 -1
  283. package/esm/testing/async.metadata.json +1 -0
  284. package/esm/testing/async_test_completer.js.map +1 -1
  285. package/esm/testing/fake_async.d.ts +4 -1
  286. package/esm/testing/fake_async.js +9 -2
  287. package/esm/testing/fake_async.js.map +1 -1
  288. package/esm/testing/lang_utils.js +1 -1
  289. package/esm/testing/lang_utils.js.map +1 -1
  290. package/esm/testing/lang_utils.metadata.json +1 -0
  291. package/esm/testing/logger.js +5 -3
  292. package/esm/testing/logger.js.map +1 -1
  293. package/esm/testing/logger.metadata.json +1 -1
  294. package/esm/testing/mock_application_ref.d.ts +1 -1
  295. package/esm/testing/mock_application_ref.js +1 -0
  296. package/esm/testing/mock_application_ref.js.map +1 -1
  297. package/esm/testing/mock_application_ref.metadata.json +1 -1
  298. package/esm/testing/ng_zone_mock.d.ts +0 -1
  299. package/esm/testing/ng_zone_mock.js +2 -1
  300. package/esm/testing/ng_zone_mock.js.map +1 -1
  301. package/esm/testing/ng_zone_mock.metadata.json +1 -1
  302. package/esm/testing/regexp.js +1 -1
  303. package/esm/testing/regexp.js.map +1 -1
  304. package/esm/testing/regexp.metadata.json +1 -0
  305. package/esm/testing/test_injector.d.ts +6 -12
  306. package/esm/testing/test_injector.js +4 -10
  307. package/esm/testing/test_injector.js.map +1 -1
  308. package/esm/testing/test_injector.metadata.json +1 -0
  309. package/esm/testing/testing.d.ts +2 -2
  310. package/esm/testing/testing.js +2 -2
  311. package/esm/testing/testing.js.map +1 -1
  312. package/esm/testing/testing.metadata.json +1 -1
  313. package/esm/testing.js.map +1 -1
  314. package/index.d.ts +5 -4
  315. package/index.js +10 -8
  316. package/index.js.map +1 -1
  317. package/package.json +5 -1
  318. package/private_export.d.ts +96 -11
  319. package/private_export.js +39 -10
  320. package/private_export.js.map +1 -1
  321. package/private_export.metadata.json +1 -1
  322. package/src/animation/active_animation_players_map.d.ts +11 -0
  323. package/src/animation/active_animation_players_map.js +54 -0
  324. package/src/animation/active_animation_players_map.js.map +1 -0
  325. package/src/animation/animation_constants.d.ts +4 -0
  326. package/src/animation/animation_constants.js +6 -0
  327. package/src/animation/animation_constants.js.map +1 -0
  328. package/src/animation/animation_constants.metadata.json +1 -0
  329. package/src/animation/animation_driver.d.ts +9 -0
  330. package/src/animation/animation_driver.js +25 -0
  331. package/src/animation/animation_driver.js.map +1 -0
  332. package/src/animation/animation_group_player.d.ts +18 -0
  333. package/src/animation/animation_group_player.js +64 -0
  334. package/src/animation/animation_group_player.js.map +1 -0
  335. package/src/animation/animation_keyframe.d.ts +6 -0
  336. package/src/animation/animation_keyframe.js +10 -0
  337. package/src/animation/animation_keyframe.js.map +1 -0
  338. package/src/animation/animation_player.d.ts +26 -0
  339. package/src/animation/animation_player.js +42 -0
  340. package/src/animation/animation_player.js.map +1 -0
  341. package/src/animation/animation_sequence_player.d.ts +21 -0
  342. package/src/animation/animation_sequence_player.js +69 -0
  343. package/src/animation/animation_sequence_player.js.map +1 -0
  344. package/src/animation/animation_style_util.d.ts +32 -0
  345. package/src/animation/animation_style_util.js +99 -0
  346. package/src/animation/animation_style_util.js.map +1 -0
  347. package/src/animation/animation_style_util.metadata.json +1 -0
  348. package/src/animation/animation_styles.d.ts +8 -0
  349. package/src/animation/animation_styles.js +9 -0
  350. package/src/animation/animation_styles.js.map +1 -0
  351. package/src/animation/metadata.d.ts +511 -0
  352. package/src/animation/metadata.js +627 -0
  353. package/src/animation/metadata.js.map +1 -0
  354. package/src/animation/metadata.metadata.json +1 -0
  355. package/src/application_common_providers.d.ts +1 -0
  356. package/src/application_common_providers.js +4 -3
  357. package/src/application_common_providers.js.map +1 -1
  358. package/src/application_common_providers.metadata.json +1 -1
  359. package/src/application_ref.d.ts +17 -41
  360. package/src/application_ref.js +30 -21
  361. package/src/application_ref.js.map +1 -1
  362. package/src/application_ref.metadata.json +1 -1
  363. package/src/application_tokens.d.ts +6 -1
  364. package/src/application_tokens.js +9 -4
  365. package/src/application_tokens.js.map +1 -1
  366. package/src/application_tokens.metadata.json +1 -1
  367. package/src/change_detection/change_detection.d.ts +9 -8
  368. package/src/change_detection/change_detection.js +21 -21
  369. package/src/change_detection/change_detection.js.map +1 -1
  370. package/src/change_detection/change_detection.metadata.json +1 -1
  371. package/src/change_detection/change_detection_util.d.ts +3 -1
  372. package/src/change_detection/change_detection_util.js +6 -5
  373. package/src/change_detection/change_detection_util.js.map +1 -1
  374. package/src/change_detection/change_detection_util.metadata.json +1 -1
  375. package/src/change_detection/change_detector_ref.d.ts +3 -0
  376. package/src/change_detection/change_detector_ref.js +3 -0
  377. package/src/change_detection/change_detector_ref.js.map +1 -1
  378. package/src/change_detection/constants.d.ts +1 -0
  379. package/src/change_detection/constants.js +4 -3
  380. package/src/change_detection/constants.js.map +1 -1
  381. package/src/change_detection/constants.metadata.json +1 -1
  382. package/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  383. package/src/change_detection/differs/default_iterable_differ.js +25 -18
  384. package/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  385. package/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  386. package/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  387. package/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  388. package/src/change_detection/differs/iterable_differs.d.ts +4 -1
  389. package/src/change_detection/differs/iterable_differs.js +4 -3
  390. package/src/change_detection/differs/iterable_differs.js.map +1 -1
  391. package/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  392. package/src/change_detection/differs/keyvalue_differs.js +4 -3
  393. package/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  394. package/src/change_detection/pipe_transform.js.map +1 -1
  395. package/src/change_detection.d.ts +1 -1
  396. package/src/change_detection.js +9 -9
  397. package/src/change_detection.js.map +1 -1
  398. package/src/console.js +2 -1
  399. package/src/console.js.map +1 -1
  400. package/src/console.metadata.json +1 -1
  401. package/src/debug/debug_node.d.ts +20 -2
  402. package/src/debug/debug_node.js +16 -2
  403. package/src/debug/debug_node.js.map +1 -1
  404. package/src/debug/debug_node.metadata.json +1 -0
  405. package/src/debug/debug_renderer.d.ts +10 -6
  406. package/src/debug/debug_renderer.js +12 -1
  407. package/src/debug/debug_renderer.js.map +1 -1
  408. package/src/di/decorators.d.ts +13 -1
  409. package/src/di/decorators.js +7 -1
  410. package/src/di/decorators.js.map +1 -1
  411. package/src/di/decorators.metadata.json +1 -1
  412. package/src/di/forward_ref.d.ts +3 -1
  413. package/src/di/forward_ref.js +3 -1
  414. package/src/di/forward_ref.js.map +1 -1
  415. package/src/di/injector.d.ts +4 -1
  416. package/src/di/injector.js +5 -2
  417. package/src/di/injector.js.map +1 -1
  418. package/src/di/injector.metadata.json +1 -1
  419. package/src/di/metadata.d.ts +8 -1
  420. package/src/di/metadata.js +10 -3
  421. package/src/di/metadata.js.map +1 -1
  422. package/src/di/opaque_token.d.ts +2 -1
  423. package/src/di/opaque_token.js +22 -21
  424. package/src/di/opaque_token.js.map +1 -1
  425. package/src/di/provider.d.ts +11 -10
  426. package/src/di/provider.js +17 -14
  427. package/src/di/provider.js.map +1 -1
  428. package/src/di/provider.metadata.json +1 -0
  429. package/src/di/provider_util.js.map +1 -1
  430. package/src/di/provider_util.metadata.json +1 -0
  431. package/src/di/reflective_exceptions.d.ts +11 -16
  432. package/src/di/reflective_exceptions.js +28 -22
  433. package/src/di/reflective_exceptions.js.map +1 -1
  434. package/src/di/reflective_injector.d.ts +3 -33
  435. package/src/di/reflective_injector.js +9 -6
  436. package/src/di/reflective_injector.js.map +1 -1
  437. package/src/di/reflective_key.d.ts +1 -8
  438. package/src/di/reflective_key.js +3 -2
  439. package/src/di/reflective_key.js.map +1 -1
  440. package/src/di/reflective_provider.d.ts +2 -1
  441. package/src/di/reflective_provider.js +6 -5
  442. package/src/di/reflective_provider.js.map +1 -1
  443. package/src/di/reflective_provider.metadata.json +1 -0
  444. package/src/di.d.ts +2 -2
  445. package/src/di.js +7 -9
  446. package/src/di.js.map +1 -1
  447. package/src/facade/async.d.ts +11 -4
  448. package/src/facade/async.js +27 -17
  449. package/src/facade/async.js.map +1 -1
  450. package/src/facade/base_wrapped_exception.js +4 -4
  451. package/src/facade/base_wrapped_exception.js.map +1 -1
  452. package/src/facade/collection.js.map +1 -1
  453. package/src/facade/collection.metadata.json +1 -1
  454. package/src/facade/exception_handler.d.ts +2 -11
  455. package/src/facade/exception_handler.js +8 -7
  456. package/src/facade/exception_handler.js.map +1 -1
  457. package/src/facade/exceptions.d.ts +4 -0
  458. package/src/facade/exceptions.js +6 -2
  459. package/src/facade/exceptions.js.map +1 -1
  460. package/src/facade/exceptions.metadata.json +1 -0
  461. package/src/facade/lang.d.ts +6 -4
  462. package/src/facade/lang.js +12 -11
  463. package/src/facade/lang.js.map +1 -1
  464. package/src/facade/lang.metadata.json +1 -1
  465. package/src/facade/math.d.ts +2 -0
  466. package/src/facade/math.js +5 -0
  467. package/src/facade/math.js.map +1 -0
  468. package/src/facade/math.metadata.json +1 -0
  469. package/src/facade/promise.js.map +1 -1
  470. package/src/linker/component_factory.d.ts +5 -4
  471. package/src/linker/component_factory.js +7 -3
  472. package/src/linker/component_factory.js.map +1 -1
  473. package/src/linker/component_resolver.d.ts +5 -4
  474. package/src/linker/component_resolver.js +12 -7
  475. package/src/linker/component_resolver.js.map +1 -1
  476. package/src/linker/component_resolver.metadata.json +1 -1
  477. package/src/linker/debug_context.js +5 -4
  478. package/src/linker/debug_context.js.map +1 -1
  479. package/src/linker/dynamic_component_loader.d.ts +5 -6
  480. package/src/linker/dynamic_component_loader.js +5 -3
  481. package/src/linker/dynamic_component_loader.js.map +1 -1
  482. package/src/linker/dynamic_component_loader.metadata.json +1 -1
  483. package/src/linker/element.d.ts +3 -3
  484. package/src/linker/element.js +5 -5
  485. package/src/linker/element.js.map +1 -1
  486. package/src/linker/element_injector.js.map +1 -1
  487. package/src/linker/element_ref.d.ts +1 -0
  488. package/src/linker/element_ref.js +5 -5
  489. package/src/linker/element_ref.js.map +1 -1
  490. package/src/linker/exceptions.d.ts +4 -1
  491. package/src/linker/exceptions.js +4 -1
  492. package/src/linker/exceptions.js.map +1 -1
  493. package/src/linker/query_list.d.ts +3 -10
  494. package/src/linker/query_list.js +8 -7
  495. package/src/linker/query_list.js.map +1 -1
  496. package/src/linker/systemjs_component_resolver.d.ts +21 -0
  497. package/src/linker/systemjs_component_resolver.js +52 -0
  498. package/src/linker/systemjs_component_resolver.js.map +1 -0
  499. package/src/linker/template_ref.d.ts +2 -1
  500. package/src/linker/template_ref.js +1 -0
  501. package/src/linker/template_ref.js.map +1 -1
  502. package/src/linker/view.d.ts +12 -1
  503. package/src/linker/view.js +65 -15
  504. package/src/linker/view.js.map +1 -1
  505. package/src/linker/view_container_ref.d.ts +2 -10
  506. package/src/linker/view_container_ref.js +4 -3
  507. package/src/linker/view_container_ref.js.map +1 -1
  508. package/src/linker/view_ref.d.ts +5 -1
  509. package/src/linker/view_ref.js +6 -2
  510. package/src/linker/view_ref.js.map +1 -1
  511. package/src/linker/view_type.js.map +1 -1
  512. package/src/linker/view_utils.d.ts +2 -4
  513. package/src/linker/view_utils.js +21 -21
  514. package/src/linker/view_utils.js.map +1 -1
  515. package/src/linker/view_utils.metadata.json +1 -1
  516. package/src/linker.d.ts +5 -4
  517. package/src/linker.js +12 -9
  518. package/src/linker.js.map +1 -1
  519. package/src/metadata/di.d.ts +8 -1
  520. package/src/metadata/di.js +10 -3
  521. package/src/metadata/di.js.map +1 -1
  522. package/src/metadata/directives.d.ts +104 -20
  523. package/src/metadata/directives.js +25 -27
  524. package/src/metadata/directives.js.map +1 -1
  525. package/src/metadata/lifecycle_hooks.d.ts +46 -31
  526. package/src/metadata/lifecycle_hooks.js +496 -10
  527. package/src/metadata/lifecycle_hooks.js.map +1 -1
  528. package/src/metadata/lifecycle_hooks.metadata.json +1 -1
  529. package/src/metadata/view.d.ts +6 -2
  530. package/src/metadata/view.js +3 -1
  531. package/src/metadata/view.js.map +1 -1
  532. package/src/metadata/view.metadata.json +1 -1
  533. package/src/metadata.d.ts +49 -15
  534. package/src/metadata.js +70 -37
  535. package/src/metadata.js.map +1 -1
  536. package/src/metadata.metadata.json +1 -1
  537. package/src/platform_common_providers.d.ts +1 -0
  538. package/src/platform_common_providers.js +3 -3
  539. package/src/platform_common_providers.js.map +1 -1
  540. package/src/platform_common_providers.metadata.json +1 -1
  541. package/src/platform_directives_and_pipes.d.ts +48 -45
  542. package/src/platform_directives_and_pipes.js +50 -47
  543. package/src/platform_directives_and_pipes.js.map +1 -1
  544. package/src/platform_directives_and_pipes.metadata.json +1 -1
  545. package/src/profile/profile.d.ts +5 -1
  546. package/src/profile/profile.js +5 -3
  547. package/src/profile/profile.js.map +1 -1
  548. package/src/profile/profile.metadata.json +1 -1
  549. package/src/profile/wtf_impl.js +1 -1
  550. package/src/profile/wtf_impl.js.map +1 -1
  551. package/src/profile/wtf_impl.metadata.json +1 -0
  552. package/src/profile/wtf_init.js +2 -2
  553. package/src/profile/wtf_init.js.map +1 -1
  554. package/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  555. package/src/reflection/platform_reflection_capabilities.js.map +1 -1
  556. package/src/reflection/reflection.d.ts +1 -1
  557. package/src/reflection/reflection.js +2 -2
  558. package/src/reflection/reflection.js.map +1 -1
  559. package/src/reflection/reflection.metadata.json +1 -1
  560. package/src/reflection/reflection_capabilities.d.ts +4 -5
  561. package/src/reflection/reflection_capabilities.js +24 -10
  562. package/src/reflection/reflection_capabilities.js.map +1 -1
  563. package/src/reflection/reflector.d.ts +8 -20
  564. package/src/reflection/reflector.js +13 -3
  565. package/src/reflection/reflector.js.map +1 -1
  566. package/src/reflection/reflector_reader.js +3 -3
  567. package/src/reflection/reflector_reader.js.map +1 -1
  568. package/src/reflection/types.js.map +1 -1
  569. package/src/render/api.d.ts +17 -6
  570. package/src/render/api.js +8 -1
  571. package/src/render/api.js.map +1 -1
  572. package/src/render.d.ts +1 -1
  573. package/src/render.js +2 -2
  574. package/src/render.js.map +1 -1
  575. package/src/security.js +6 -6
  576. package/src/security.js.map +1 -1
  577. package/src/testability/testability.d.ts +3 -19
  578. package/src/testability/testability.js +10 -5
  579. package/src/testability/testability.js.map +1 -1
  580. package/src/testability/testability.metadata.json +1 -1
  581. package/src/util/decorators.d.ts +2 -1
  582. package/src/util/decorators.js +10 -9
  583. package/src/util/decorators.js.map +1 -1
  584. package/src/util.js.map +1 -1
  585. package/src/zone/ng_zone.d.ts +6 -17
  586. package/src/zone/ng_zone.js +11 -6
  587. package/src/zone/ng_zone.js.map +1 -1
  588. package/src/zone/ng_zone_impl.d.ts +1 -4
  589. package/src/zone/ng_zone_impl.js +3 -2
  590. package/src/zone/ng_zone_impl.js.map +1 -1
  591. package/src/zone.js.map +1 -1
  592. package/testing/async.js +20 -22
  593. package/testing/async.js.map +1 -1
  594. package/testing/async.metadata.json +1 -0
  595. package/testing/async_test_completer.js.map +1 -1
  596. package/testing/fake_async.d.ts +4 -1
  597. package/testing/fake_async.js +10 -2
  598. package/testing/fake_async.js.map +1 -1
  599. package/testing/lang_utils.js +1 -1
  600. package/testing/lang_utils.js.map +1 -1
  601. package/testing/lang_utils.metadata.json +1 -0
  602. package/testing/logger.js +5 -3
  603. package/testing/logger.js.map +1 -1
  604. package/testing/logger.metadata.json +1 -1
  605. package/testing/mock_application_ref.d.ts +1 -1
  606. package/testing/mock_application_ref.js +1 -0
  607. package/testing/mock_application_ref.js.map +1 -1
  608. package/testing/mock_application_ref.metadata.json +1 -1
  609. package/testing/ng_zone_mock.d.ts +0 -1
  610. package/testing/ng_zone_mock.js +2 -1
  611. package/testing/ng_zone_mock.js.map +1 -1
  612. package/testing/ng_zone_mock.metadata.json +1 -1
  613. package/testing/regexp.js +1 -1
  614. package/testing/regexp.js.map +1 -1
  615. package/testing/regexp.metadata.json +1 -0
  616. package/testing/test_injector.d.ts +6 -12
  617. package/testing/test_injector.js +3 -9
  618. package/testing/test_injector.js.map +1 -1
  619. package/testing/test_injector.metadata.json +1 -0
  620. package/testing/testing.d.ts +2 -2
  621. package/testing/testing.js +5 -5
  622. package/testing/testing.js.map +1 -1
  623. package/testing/testing.metadata.json +1 -1
  624. package/testing.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reflective_injector.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/di/reflective_injector.ts"],"names":[],"mappings":"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,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5E,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,G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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {ListWrapper} from '../../src/facade/collection';\nimport {Provider} from './provider';\nimport {\n ResolvedReflectiveProvider,\n ReflectiveDependency,\n ResolvedReflectiveFactory,\n resolveReflectiveProviders\n} from './reflective_provider';\nimport {\n AbstractProviderError,\n NoProviderError,\n CyclicDependencyError,\n InstantiationError,\n OutOfBoundsError\n} from './reflective_exceptions';\nimport {Type} from '../../src/facade/lang';\nimport {BaseException, unimplemented} from '../../src/facade/exceptions';\nimport {ReflectiveKey} from './reflective_key';\nimport {SelfMetadata, SkipSelfMetadata} from './metadata';\nimport {Injector, THROW_IF_NOT_FOUND} from './injector';\n\nvar __unused: Type; // avoid unused import when Type union types are erased\n\n// Threshold for the dynamic version\nconst _MAX_CONSTRUCTION_COUNTER = 10;\nconst UNDEFINED = /*@ts2dart_const*/ new Object();\n\nexport interface ReflectiveProtoInjectorStrategy {\n getProviderAtIndex(index: number): ResolvedReflectiveProvider;\n createInjectorStrategy(inj: ReflectiveInjector_): ReflectiveInjectorStrategy;\n}\n\nexport class ReflectiveProtoInjectorInlineStrategy implements ReflectiveProtoInjectorStrategy {\n provider0: ResolvedReflectiveProvider = null;\n provider1: ResolvedReflectiveProvider = null;\n provider2: ResolvedReflectiveProvider = null;\n provider3: ResolvedReflectiveProvider = null;\n provider4: ResolvedReflectiveProvider = null;\n provider5: ResolvedReflectiveProvider = null;\n provider6: ResolvedReflectiveProvider = null;\n provider7: ResolvedReflectiveProvider = null;\n provider8: ResolvedReflectiveProvider = null;\n provider9: ResolvedReflectiveProvider = null;\n\n keyId0: number = null;\n keyId1: number = null;\n keyId2: number = null;\n keyId3: number = null;\n keyId4: number = null;\n keyId5: number = null;\n keyId6: number = null;\n keyId7: number = null;\n keyId8: number = null;\n keyId9: number = null;\n\n constructor(protoEI: ReflectiveProtoInjector, providers: ResolvedReflectiveProvider[]) {\n var length = providers.length;\n\n if (length > 0) {\n this.provider0 = providers[0];\n this.keyId0 = providers[0].key.id;\n }\n if (length > 1) {\n this.provider1 = providers[1];\n this.keyId1 = providers[1].key.id;\n }\n if (length > 2) {\n this.provider2 = providers[2];\n this.keyId2 = providers[2].key.id;\n }\n if (length > 3) {\n this.provider3 = providers[3];\n this.keyId3 = providers[3].key.id;\n }\n if (length > 4) {\n this.provider4 = providers[4];\n this.keyId4 = providers[4].key.id;\n }\n if (length > 5) {\n this.provider5 = providers[5];\n this.keyId5 = providers[5].key.id;\n }\n if (length > 6) {\n this.provider6 = providers[6];\n this.keyId6 = providers[6].key.id;\n }\n if (length > 7) {\n this.provider7 = providers[7];\n this.keyId7 = providers[7].key.id;\n }\n if (length > 8) {\n this.provider8 = providers[8];\n this.keyId8 = providers[8].key.id;\n }\n if (length > 9) {\n this.provider9 = providers[9];\n this.keyId9 = providers[9].key.id;\n }\n }\n\n getProviderAtIndex(index: number): ResolvedReflectiveProvider {\n if (index == 0) return this.provider0;\n if (index == 1) return this.provider1;\n if (index == 2) return this.provider2;\n if (index == 3) return this.provider3;\n if (index == 4) return this.provider4;\n if (index == 5) return this.provider5;\n if (index == 6) return this.provider6;\n if (index == 7) return this.provider7;\n if (index == 8) return this.provider8;\n if (index == 9) return this.provider9;\n throw new OutOfBoundsError(index);\n }\n\n createInjectorStrategy(injector: ReflectiveInjector_): ReflectiveInjectorStrategy {\n return new ReflectiveInjectorInlineStrategy(injector, this);\n }\n}\n\nexport class ReflectiveProtoInjectorDynamicStrategy implements ReflectiveProtoInjectorStrategy {\n keyIds: number[];\n\n constructor(protoInj: ReflectiveProtoInjector, public providers: ResolvedReflectiveProvider[]) {\n var len = providers.length;\n\n this.keyIds = ListWrapper.createFixedSize(len);\n\n for (var i = 0; i < len; i++) {\n this.keyIds[i] = providers[i].key.id;\n }\n }\n\n getProviderAtIndex(index: number): ResolvedReflectiveProvider {\n if (index < 0 || index >= this.providers.length) {\n throw new OutOfBoundsError(index);\n }\n return this.providers[index];\n }\n\n createInjectorStrategy(ei: ReflectiveInjector_): ReflectiveInjectorStrategy {\n return new ReflectiveInjectorDynamicStrategy(this, ei);\n }\n}\n\nexport class ReflectiveProtoInjector {\n static fromResolvedProviders(providers: ResolvedReflectiveProvider[]): ReflectiveProtoInjector {\n return new ReflectiveProtoInjector(providers);\n }\n\n /** @internal */\n _strategy: ReflectiveProtoInjectorStrategy;\n numberOfProviders: number;\n\n constructor(providers: ResolvedReflectiveProvider[]) {\n this.numberOfProviders = providers.length;\n this._strategy = providers.length > _MAX_CONSTRUCTION_COUNTER ?\n new ReflectiveProtoInjectorDynamicStrategy(this, providers) :\n new ReflectiveProtoInjectorInlineStrategy(this, providers);\n }\n\n getProviderAtIndex(index: number): ResolvedReflectiveProvider {\n return this._strategy.getProviderAtIndex(index);\n }\n}\n\n\n\nexport interface ReflectiveInjectorStrategy {\n getObjByKeyId(keyId: number): any;\n getObjAtIndex(index: number): any;\n getMaxNumberOfObjects(): number;\n\n resetConstructionCounter(): void;\n instantiateProvider(provider: ResolvedReflectiveProvider): any;\n}\n\nexport class ReflectiveInjectorInlineStrategy implements ReflectiveInjectorStrategy {\n obj0: any = UNDEFINED;\n obj1: any = UNDEFINED;\n obj2: any = UNDEFINED;\n obj3: any = UNDEFINED;\n obj4: any = UNDEFINED;\n obj5: any = UNDEFINED;\n obj6: any = UNDEFINED;\n obj7: any = UNDEFINED;\n obj8: any = UNDEFINED;\n obj9: any = UNDEFINED;\n\n constructor(public injector: ReflectiveInjector_,\n public protoStrategy: ReflectiveProtoInjectorInlineStrategy) {}\n\n resetConstructionCounter(): void { this.injector._constructionCounter = 0; }\n\n instantiateProvider(provider: ResolvedReflectiveProvider): any {\n return this.injector._new(provider);\n }\n\n getObjByKeyId(keyId: number): any {\n var p = this.protoStrategy;\n var inj = this.injector;\n\n if (p.keyId0 === keyId) {\n if (this.obj0 === UNDEFINED) {\n this.obj0 = inj._new(p.provider0);\n }\n return this.obj0;\n }\n if (p.keyId1 === keyId) {\n if (this.obj1 === UNDEFINED) {\n this.obj1 = inj._new(p.provider1);\n }\n return this.obj1;\n }\n if (p.keyId2 === keyId) {\n if (this.obj2 === UNDEFINED) {\n this.obj2 = inj._new(p.provider2);\n }\n return this.obj2;\n }\n if (p.keyId3 === keyId) {\n if (this.obj3 === UNDEFINED) {\n this.obj3 = inj._new(p.provider3);\n }\n return this.obj3;\n }\n if (p.keyId4 === keyId) {\n if (this.obj4 === UNDEFINED) {\n this.obj4 = inj._new(p.provider4);\n }\n return this.obj4;\n }\n if (p.keyId5 === keyId) {\n if (this.obj5 === UNDEFINED) {\n this.obj5 = inj._new(p.provider5);\n }\n return this.obj5;\n }\n if (p.keyId6 === keyId) {\n if (this.obj6 === UNDEFINED) {\n this.obj6 = inj._new(p.provider6);\n }\n return this.obj6;\n }\n if (p.keyId7 === keyId) {\n if (this.obj7 === UNDEFINED) {\n this.obj7 = inj._new(p.provider7);\n }\n return this.obj7;\n }\n if (p.keyId8 === keyId) {\n if (this.obj8 === UNDEFINED) {\n this.obj8 = inj._new(p.provider8);\n }\n return this.obj8;\n }\n if (p.keyId9 === keyId) {\n if (this.obj9 === UNDEFINED) {\n this.obj9 = inj._new(p.provider9);\n }\n return this.obj9;\n }\n\n return UNDEFINED;\n }\n\n getObjAtIndex(index: number): any {\n if (index == 0) return this.obj0;\n if (index == 1) return this.obj1;\n if (index == 2) return this.obj2;\n if (index == 3) return this.obj3;\n if (index == 4) return this.obj4;\n if (index == 5) return this.obj5;\n if (index == 6) return this.obj6;\n if (index == 7) return this.obj7;\n if (index == 8) return this.obj8;\n if (index == 9) return this.obj9;\n throw new OutOfBoundsError(index);\n }\n\n getMaxNumberOfObjects(): number { return _MAX_CONSTRUCTION_COUNTER; }\n}\n\n\nexport class ReflectiveInjectorDynamicStrategy implements ReflectiveInjectorStrategy {\n objs: any[];\n\n constructor(public protoStrategy: ReflectiveProtoInjectorDynamicStrategy,\n public injector: ReflectiveInjector_) {\n this.objs = ListWrapper.createFixedSize(protoStrategy.providers.length);\n ListWrapper.fill(this.objs, UNDEFINED);\n }\n\n resetConstructionCounter(): void { this.injector._constructionCounter = 0; }\n\n instantiateProvider(provider: ResolvedReflectiveProvider): any {\n return this.injector._new(provider);\n }\n\n getObjByKeyId(keyId: number): any {\n var p = this.protoStrategy;\n\n for (var i = 0; i < p.keyIds.length; i++) {\n if (p.keyIds[i] === keyId) {\n if (this.objs[i] === UNDEFINED) {\n this.objs[i] = this.injector._new(p.providers[i]);\n }\n\n return this.objs[i];\n }\n }\n\n return UNDEFINED;\n }\n\n getObjAtIndex(index: number): any {\n if (index < 0 || index >= this.objs.length) {\n throw new OutOfBoundsError(index);\n }\n\n return this.objs[index];\n }\n\n getMaxNumberOfObjects(): number { return this.objs.length; }\n}\n\n/**\n * A ReflectiveDependency injection container used for instantiating objects and resolving\n * dependencies.\n *\n * An `Injector` is a replacement for a `new` operator, which can automatically resolve the\n * constructor dependencies.\n *\n * In typical use, application code asks for the dependencies in the constructor and they are\n * resolved by the `Injector`.\n *\n * ### Example ([live demo](http://plnkr.co/edit/jzjec0?p=preview))\n *\n * The following example creates an `Injector` configured to create `Engine` and `Car`.\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\n * var car = injector.get(Car);\n * expect(car instanceof Car).toBe(true);\n * expect(car.engine instanceof Engine).toBe(true);\n * ```\n *\n * Notice, we don't use the `new` operator because we explicitly want to have the `Injector`\n * resolve all of the object's dependencies automatically.\n */\nexport abstract class ReflectiveInjector implements Injector {\n /**\n * Turns an array of provider definitions into an array of resolved providers.\n *\n * A resolution is a process of flattening multiple nested arrays and converting individual\n * providers into an array of {@link ResolvedReflectiveProvider}s.\n *\n * ### Example ([live demo](http://plnkr.co/edit/AiXTHi?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);\n *\n * expect(providers.length).toEqual(2);\n *\n * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);\n * expect(providers[0].key.displayName).toBe(\"Car\");\n * expect(providers[0].dependencies.length).toEqual(1);\n * expect(providers[0].factory).toBeDefined();\n *\n * expect(providers[1].key.displayName).toBe(\"Engine\");\n * });\n * ```\n *\n * See {@link ReflectiveInjector#fromResolvedProviders} for more info.\n */\n static resolve(providers: Array<Type | Provider | {[k: string]: any} | any[]>):\n ResolvedReflectiveProvider[] {\n return resolveReflectiveProviders(providers);\n }\n\n /**\n * Resolves an array of providers and creates an injector from those providers.\n *\n * The passed-in providers can be an array of `Type`, {@link Provider},\n * or a recursive array of more providers.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ePOccA?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\n * expect(injector.get(Car) instanceof Car).toBe(true);\n * ```\n *\n * This function is slower than the corresponding `fromResolvedProviders`\n * because it needs to resolve the passed-in providers first.\n * See {@link Injector#resolve} and {@link Injector#fromResolvedProviders}.\n */\n static resolveAndCreate(providers: Array<Type | Provider | {[k: string]: any} | any[]>,\n parent: Injector = null): ReflectiveInjector {\n var ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return ReflectiveInjector.fromResolvedProviders(ResolvedReflectiveProviders, parent);\n }\n\n /**\n * Creates an injector from previously resolved providers.\n *\n * This API is the recommended way to construct injectors in performance-sensitive parts.\n *\n * ### Example ([live demo](http://plnkr.co/edit/KrSMci?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var providers = ReflectiveInjector.resolve([Car, Engine]);\n * var injector = ReflectiveInjector.fromResolvedProviders(providers);\n * expect(injector.get(Car) instanceof Car).toBe(true);\n * ```\n */\n static fromResolvedProviders(providers: ResolvedReflectiveProvider[],\n parent: Injector = null): ReflectiveInjector {\n return new ReflectiveInjector_(ReflectiveProtoInjector.fromResolvedProviders(providers),\n parent);\n }\n\n /**\n * @deprecated\n */\n static fromResolvedBindings(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {\n return ReflectiveInjector.fromResolvedProviders(providers);\n }\n\n\n /**\n * Parent of this injector.\n *\n * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\n * -->\n *\n * ### Example ([live demo](http://plnkr.co/edit/eosMGo?p=preview))\n *\n * ```typescript\n * var parent = ReflectiveInjector.resolveAndCreate([]);\n * var child = parent.resolveAndCreateChild([]);\n * expect(child.parent).toBe(parent);\n * ```\n */\n get parent(): Injector { return unimplemented(); }\n\n\n /**\n * @internal\n */\n debugContext(): any { return null; }\n\n /**\n * Resolves an array of providers and creates a child injector from those providers.\n *\n * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\n * -->\n *\n * The passed-in providers can be an array of `Type`, {@link Provider},\n * or a recursive array of more providers.\n *\n * ### Example ([live demo](http://plnkr.co/edit/opB3T4?p=preview))\n *\n * ```typescript\n * class ParentProvider {}\n * class ChildProvider {}\n *\n * var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]);\n * var child = parent.resolveAndCreateChild([ChildProvider]);\n *\n * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\n * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\n * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\n * ```\n *\n * This function is slower than the corresponding `createChildFromResolved`\n * because it needs to resolve the passed-in providers first.\n * See {@link Injector#resolve} and {@link Injector#createChildFromResolved}.\n */\n resolveAndCreateChild(\n providers: Array<Type | Provider | {[k: string]: any} | any[]>): ReflectiveInjector {\n return unimplemented();\n }\n\n /**\n * Creates a child injector from previously resolved providers.\n *\n * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\n * -->\n *\n * This API is the recommended way to construct injectors in performance-sensitive parts.\n *\n * ### Example ([live demo](http://plnkr.co/edit/VhyfjN?p=preview))\n *\n * ```typescript\n * class ParentProvider {}\n * class ChildProvider {}\n *\n * var parentProviders = ReflectiveInjector.resolve([ParentProvider]);\n * var childProviders = ReflectiveInjector.resolve([ChildProvider]);\n *\n * var parent = ReflectiveInjector.fromResolvedProviders(parentProviders);\n * var child = parent.createChildFromResolved(childProviders);\n *\n * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\n * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\n * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\n * ```\n */\n createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {\n return unimplemented();\n }\n\n /**\n * Resolves a provider and instantiates an object in the context of the injector.\n *\n * The created object does not get cached by the injector.\n *\n * ### Example ([live demo](http://plnkr.co/edit/yvVXoB?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\n *\n * var car = injector.resolveAndInstantiate(Car);\n * expect(car.engine).toBe(injector.get(Engine));\n * expect(car).not.toBe(injector.resolveAndInstantiate(Car));\n * ```\n */\n resolveAndInstantiate(provider: Type | Provider): any { return unimplemented(); }\n\n /**\n * Instantiates an object using a resolved provider in the context of the injector.\n *\n * The created object does not get cached by the injector.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ptCImQ?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\n * var carProvider = ReflectiveInjector.resolve([Car])[0];\n * var car = injector.instantiateResolved(carProvider);\n * expect(car.engine).toBe(injector.get(Engine));\n * expect(car).not.toBe(injector.instantiateResolved(carProvider));\n * ```\n */\n instantiateResolved(provider: ResolvedReflectiveProvider): any { return unimplemented(); }\n\n abstract get(token: any, notFoundValue?: any): any;\n}\n\nexport class ReflectiveInjector_ implements ReflectiveInjector {\n private _strategy: ReflectiveInjectorStrategy;\n /** @internal */\n _constructionCounter: number = 0;\n /** @internal */\n public _proto: any /* ProtoInjector */;\n /** @internal */\n public _parent: Injector;\n /**\n * Private\n */\n constructor(_proto: any /* ProtoInjector */, _parent: Injector = null,\n private _debugContext: Function = null) {\n this._proto = _proto;\n this._parent = _parent;\n this._strategy = _proto._strategy.createInjectorStrategy(this);\n }\n\n /**\n * @internal\n */\n debugContext(): any { return this._debugContext(); }\n\n get(token: any, notFoundValue: any = /*@ts2dart_const*/ THROW_IF_NOT_FOUND): any {\n return this._getByKey(ReflectiveKey.get(token), null, null, notFoundValue);\n }\n\n getAt(index: number): any { return this._strategy.getObjAtIndex(index); }\n\n get parent(): Injector { return this._parent; }\n\n /**\n * @internal\n * Internal. Do not use.\n * We return `any` not to export the InjectorStrategy type.\n */\n get internalStrategy(): any { return this._strategy; }\n\n resolveAndCreateChild(providers: Array<Type | Provider | any[]>): ReflectiveInjector {\n var ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return this.createChildFromResolved(ResolvedReflectiveProviders);\n }\n\n createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {\n var proto = new ReflectiveProtoInjector(providers);\n var inj = new ReflectiveInjector_(proto);\n inj._parent = this;\n return inj;\n }\n\n resolveAndInstantiate(provider: Type | Provider): any {\n return this.instantiateResolved(ReflectiveInjector.resolve([provider])[0]);\n }\n\n instantiateResolved(provider: ResolvedReflectiveProvider): any {\n return this._instantiateProvider(provider);\n }\n\n /** @internal */\n _new(provider: ResolvedReflectiveProvider): any {\n if (this._constructionCounter++ > this._strategy.getMaxNumberOfObjects()) {\n throw new CyclicDependencyError(this, provider.key);\n }\n return this._instantiateProvider(provider);\n }\n\n private _instantiateProvider(provider: ResolvedReflectiveProvider): any {\n if (provider.multiProvider) {\n var res = ListWrapper.createFixedSize(provider.resolvedFactories.length);\n for (var i = 0; i < provider.resolvedFactories.length; ++i) {\n res[i] = this._instantiate(provider, provider.resolvedFactories[i]);\n }\n return res;\n } else {\n return this._instantiate(provider, provider.resolvedFactories[0]);\n }\n }\n\n private _instantiate(provider: ResolvedReflectiveProvider,\n ResolvedReflectiveFactory: ResolvedReflectiveFactory): any {\n var factory = ResolvedReflectiveFactory.factory;\n var deps = ResolvedReflectiveFactory.dependencies;\n var length = deps.length;\n\n var d0: any;\n var d1: any;\n var d2: any;\n var d3: any;\n var d4: any;\n var d5: any;\n var d6: any;\n var d7: any;\n var d8: any;\n var d9: any;\n var d10: any;\n var d11: any;\n var d12: any;\n var d13: any;\n var d14: any;\n var d15: any;\n var d16: any;\n var d17: any;\n var d18: any;\n var d19: any;\n try {\n d0 = length > 0 ? this._getByReflectiveDependency(provider, deps[0]) : null;\n d1 = length > 1 ? this._getByReflectiveDependency(provider, deps[1]) : null;\n d2 = length > 2 ? this._getByReflectiveDependency(provider, deps[2]) : null;\n d3 = length > 3 ? this._getByReflectiveDependency(provider, deps[3]) : null;\n d4 = length > 4 ? this._getByReflectiveDependency(provider, deps[4]) : null;\n d5 = length > 5 ? this._getByReflectiveDependency(provider, deps[5]) : null;\n d6 = length > 6 ? this._getByReflectiveDependency(provider, deps[6]) : null;\n d7 = length > 7 ? this._getByReflectiveDependency(provider, deps[7]) : null;\n d8 = length > 8 ? this._getByReflectiveDependency(provider, deps[8]) : null;\n d9 = length > 9 ? this._getByReflectiveDependency(provider, deps[9]) : null;\n d10 = length > 10 ? this._getByReflectiveDependency(provider, deps[10]) : null;\n d11 = length > 11 ? this._getByReflectiveDependency(provider, deps[11]) : null;\n d12 = length > 12 ? this._getByReflectiveDependency(provider, deps[12]) : null;\n d13 = length > 13 ? this._getByReflectiveDependency(provider, deps[13]) : null;\n d14 = length > 14 ? this._getByReflectiveDependency(provider, deps[14]) : null;\n d15 = length > 15 ? this._getByReflectiveDependency(provider, deps[15]) : null;\n d16 = length > 16 ? this._getByReflectiveDependency(provider, deps[16]) : null;\n d17 = length > 17 ? this._getByReflectiveDependency(provider, deps[17]) : null;\n d18 = length > 18 ? this._getByReflectiveDependency(provider, deps[18]) : null;\n d19 = length > 19 ? this._getByReflectiveDependency(provider, deps[19]) : null;\n } catch (e) {\n if (e instanceof AbstractProviderError || e instanceof InstantiationError) {\n e.addKey(this, provider.key);\n }\n throw e;\n }\n\n var obj;\n try {\n switch (length) {\n case 0:\n obj = factory();\n break;\n case 1:\n obj = factory(d0);\n break;\n case 2:\n obj = factory(d0, d1);\n break;\n case 3:\n obj = factory(d0, d1, d2);\n break;\n case 4:\n obj = factory(d0, d1, d2, d3);\n break;\n case 5:\n obj = factory(d0, d1, d2, d3, d4);\n break;\n case 6:\n obj = factory(d0, d1, d2, d3, d4, d5);\n break;\n case 7:\n obj = factory(d0, d1, d2, d3, d4, d5, d6);\n break;\n case 8:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7);\n break;\n case 9:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8);\n break;\n case 10:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9);\n break;\n case 11:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10);\n break;\n case 12:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11);\n break;\n case 13:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12);\n break;\n case 14:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13);\n break;\n case 15:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14);\n break;\n case 16:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15);\n break;\n case 17:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16);\n break;\n case 18:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16,\n d17);\n break;\n case 19:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16,\n d17, d18);\n break;\n case 20:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16,\n d17, d18, d19);\n break;\n default:\n throw new BaseException(\n `Cannot instantiate '${provider.key.displayName}' because it has more than 20 dependencies`);\n }\n } catch (e) {\n throw new InstantiationError(this, e, e.stack, provider.key);\n }\n return obj;\n }\n\n private _getByReflectiveDependency(provider: ResolvedReflectiveProvider,\n dep: ReflectiveDependency): any {\n return this._getByKey(dep.key, dep.lowerBoundVisibility, dep.upperBoundVisibility,\n dep.optional ? null : THROW_IF_NOT_FOUND);\n }\n\n private _getByKey(key: ReflectiveKey, lowerBoundVisibility: Object, upperBoundVisibility: Object,\n notFoundValue: any): any {\n if (key === INJECTOR_KEY) {\n return this;\n }\n\n if (upperBoundVisibility instanceof SelfMetadata) {\n return this._getByKeySelf(key, notFoundValue);\n\n } else {\n return this._getByKeyDefault(key, notFoundValue, lowerBoundVisibility);\n }\n }\n\n /** @internal */\n _throwOrNull(key: ReflectiveKey, notFoundValue: any): any {\n if (notFoundValue !== THROW_IF_NOT_FOUND) {\n return notFoundValue;\n } else {\n throw new NoProviderError(this, key);\n }\n }\n\n /** @internal */\n _getByKeySelf(key: ReflectiveKey, notFoundValue: any): any {\n var obj = this._strategy.getObjByKeyId(key.id);\n return (obj !== UNDEFINED) ? obj : this._throwOrNull(key, notFoundValue);\n }\n\n /** @internal */\n _getByKeyDefault(key: ReflectiveKey, notFoundValue: any, lowerBoundVisibility: Object): any {\n var inj: Injector;\n\n if (lowerBoundVisibility instanceof SkipSelfMetadata) {\n inj = this._parent;\n } else {\n inj = this;\n }\n\n while (inj instanceof ReflectiveInjector_) {\n var inj_ = <ReflectiveInjector_>inj;\n var obj = inj_._strategy.getObjByKeyId(key.id);\n if (obj !== UNDEFINED) return obj;\n inj = inj_._parent;\n }\n if (inj !== null) {\n return inj.get(key.token, notFoundValue);\n } else {\n return this._throwOrNull(key, notFoundValue);\n }\n }\n\n get displayName(): string {\n return `ReflectiveInjector(providers: [${_mapProviders(this, (b: ResolvedReflectiveProvider) => ` \"${b.key.displayName}\" `).join(\", \")}])`;\n }\n\n toString(): string { return this.displayName; }\n}\n\nvar INJECTOR_KEY = ReflectiveKey.get(Injector);\n\nfunction _mapProviders(injector: ReflectiveInjector_, fn: Function): any[] {\n var res = [];\n for (var i = 0; i < injector._proto.numberOfProviders; ++i) {\n res.push(fn(injector._proto.getProviderAtIndex(i)));\n }\n return res;\n}\n"]}
1
+ {"version":3,"file":"reflective_injector.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/di/reflective_injector.ts"],"names":[],"mappings":"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GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5E,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/E,GAAG,GAAG,MAAM,GA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","sourcesContent":["import {ListWrapper} from '../facade/collection';\nimport {BaseException, unimplemented} from '../facade/exceptions';\nimport {Type} from '../facade/lang';\n\nimport {Injector, THROW_IF_NOT_FOUND} from './injector';\nimport {SelfMetadata, SkipSelfMetadata} from './metadata';\nimport {Provider} from './provider';\nimport {AbstractProviderError, CyclicDependencyError, InstantiationError, NoProviderError, OutOfBoundsError} from './reflective_exceptions';\nimport {ReflectiveKey} from './reflective_key';\nimport {ReflectiveDependency, ResolvedReflectiveFactory, ResolvedReflectiveProvider, resolveReflectiveProviders} from './reflective_provider';\n\nvar __unused: Type; // avoid unused import when Type union types are erased\n\n// Threshold for the dynamic version\nconst _MAX_CONSTRUCTION_COUNTER = 10;\nconst UNDEFINED = /*@ts2dart_const*/ new Object();\n\nexport interface ReflectiveProtoInjectorStrategy {\n getProviderAtIndex(index: number): ResolvedReflectiveProvider;\n createInjectorStrategy(inj: ReflectiveInjector_): ReflectiveInjectorStrategy;\n}\n\nexport class ReflectiveProtoInjectorInlineStrategy implements ReflectiveProtoInjectorStrategy {\n provider0: ResolvedReflectiveProvider = null;\n provider1: ResolvedReflectiveProvider = null;\n provider2: ResolvedReflectiveProvider = null;\n provider3: ResolvedReflectiveProvider = null;\n provider4: ResolvedReflectiveProvider = null;\n provider5: ResolvedReflectiveProvider = null;\n provider6: ResolvedReflectiveProvider = null;\n provider7: ResolvedReflectiveProvider = null;\n provider8: ResolvedReflectiveProvider = null;\n provider9: ResolvedReflectiveProvider = null;\n\n keyId0: number = null;\n keyId1: number = null;\n keyId2: number = null;\n keyId3: number = null;\n keyId4: number = null;\n keyId5: number = null;\n keyId6: number = null;\n keyId7: number = null;\n keyId8: number = null;\n keyId9: number = null;\n\n constructor(protoEI: ReflectiveProtoInjector, providers: ResolvedReflectiveProvider[]) {\n var length = providers.length;\n\n if (length > 0) {\n this.provider0 = providers[0];\n this.keyId0 = providers[0].key.id;\n }\n if (length > 1) {\n this.provider1 = providers[1];\n this.keyId1 = providers[1].key.id;\n }\n if (length > 2) {\n this.provider2 = providers[2];\n this.keyId2 = providers[2].key.id;\n }\n if (length > 3) {\n this.provider3 = providers[3];\n this.keyId3 = providers[3].key.id;\n }\n if (length > 4) {\n this.provider4 = providers[4];\n this.keyId4 = providers[4].key.id;\n }\n if (length > 5) {\n this.provider5 = providers[5];\n this.keyId5 = providers[5].key.id;\n }\n if (length > 6) {\n this.provider6 = providers[6];\n this.keyId6 = providers[6].key.id;\n }\n if (length > 7) {\n this.provider7 = providers[7];\n this.keyId7 = providers[7].key.id;\n }\n if (length > 8) {\n this.provider8 = providers[8];\n this.keyId8 = providers[8].key.id;\n }\n if (length > 9) {\n this.provider9 = providers[9];\n this.keyId9 = providers[9].key.id;\n }\n }\n\n getProviderAtIndex(index: number): ResolvedReflectiveProvider {\n if (index == 0) return this.provider0;\n if (index == 1) return this.provider1;\n if (index == 2) return this.provider2;\n if (index == 3) return this.provider3;\n if (index == 4) return this.provider4;\n if (index == 5) return this.provider5;\n if (index == 6) return this.provider6;\n if (index == 7) return this.provider7;\n if (index == 8) return this.provider8;\n if (index == 9) return this.provider9;\n throw new OutOfBoundsError(index);\n }\n\n createInjectorStrategy(injector: ReflectiveInjector_): ReflectiveInjectorStrategy {\n return new ReflectiveInjectorInlineStrategy(injector, this);\n }\n}\n\nexport class ReflectiveProtoInjectorDynamicStrategy implements ReflectiveProtoInjectorStrategy {\n keyIds: number[];\n\n constructor(protoInj: ReflectiveProtoInjector, public providers: ResolvedReflectiveProvider[]) {\n var len = providers.length;\n\n this.keyIds = ListWrapper.createFixedSize(len);\n\n for (var i = 0; i < len; i++) {\n this.keyIds[i] = providers[i].key.id;\n }\n }\n\n getProviderAtIndex(index: number): ResolvedReflectiveProvider {\n if (index < 0 || index >= this.providers.length) {\n throw new OutOfBoundsError(index);\n }\n return this.providers[index];\n }\n\n createInjectorStrategy(ei: ReflectiveInjector_): ReflectiveInjectorStrategy {\n return new ReflectiveInjectorDynamicStrategy(this, ei);\n }\n}\n\nexport class ReflectiveProtoInjector {\n static fromResolvedProviders(providers: ResolvedReflectiveProvider[]): ReflectiveProtoInjector {\n return new ReflectiveProtoInjector(providers);\n }\n\n /** @internal */\n _strategy: ReflectiveProtoInjectorStrategy;\n numberOfProviders: number;\n\n constructor(providers: ResolvedReflectiveProvider[]) {\n this.numberOfProviders = providers.length;\n this._strategy = providers.length > _MAX_CONSTRUCTION_COUNTER ?\n new ReflectiveProtoInjectorDynamicStrategy(this, providers) :\n new ReflectiveProtoInjectorInlineStrategy(this, providers);\n }\n\n getProviderAtIndex(index: number): ResolvedReflectiveProvider {\n return this._strategy.getProviderAtIndex(index);\n }\n}\n\n\n\nexport interface ReflectiveInjectorStrategy {\n getObjByKeyId(keyId: number): any;\n getObjAtIndex(index: number): any;\n getMaxNumberOfObjects(): number;\n\n resetConstructionCounter(): void;\n instantiateProvider(provider: ResolvedReflectiveProvider): any;\n}\n\nexport class ReflectiveInjectorInlineStrategy implements ReflectiveInjectorStrategy {\n obj0: any = UNDEFINED;\n obj1: any = UNDEFINED;\n obj2: any = UNDEFINED;\n obj3: any = UNDEFINED;\n obj4: any = UNDEFINED;\n obj5: any = UNDEFINED;\n obj6: any = UNDEFINED;\n obj7: any = UNDEFINED;\n obj8: any = UNDEFINED;\n obj9: any = UNDEFINED;\n\n constructor(\n public injector: ReflectiveInjector_,\n public protoStrategy: ReflectiveProtoInjectorInlineStrategy) {}\n\n resetConstructionCounter(): void { this.injector._constructionCounter = 0; }\n\n instantiateProvider(provider: ResolvedReflectiveProvider): any {\n return this.injector._new(provider);\n }\n\n getObjByKeyId(keyId: number): any {\n var p = this.protoStrategy;\n var inj = this.injector;\n\n if (p.keyId0 === keyId) {\n if (this.obj0 === UNDEFINED) {\n this.obj0 = inj._new(p.provider0);\n }\n return this.obj0;\n }\n if (p.keyId1 === keyId) {\n if (this.obj1 === UNDEFINED) {\n this.obj1 = inj._new(p.provider1);\n }\n return this.obj1;\n }\n if (p.keyId2 === keyId) {\n if (this.obj2 === UNDEFINED) {\n this.obj2 = inj._new(p.provider2);\n }\n return this.obj2;\n }\n if (p.keyId3 === keyId) {\n if (this.obj3 === UNDEFINED) {\n this.obj3 = inj._new(p.provider3);\n }\n return this.obj3;\n }\n if (p.keyId4 === keyId) {\n if (this.obj4 === UNDEFINED) {\n this.obj4 = inj._new(p.provider4);\n }\n return this.obj4;\n }\n if (p.keyId5 === keyId) {\n if (this.obj5 === UNDEFINED) {\n this.obj5 = inj._new(p.provider5);\n }\n return this.obj5;\n }\n if (p.keyId6 === keyId) {\n if (this.obj6 === UNDEFINED) {\n this.obj6 = inj._new(p.provider6);\n }\n return this.obj6;\n }\n if (p.keyId7 === keyId) {\n if (this.obj7 === UNDEFINED) {\n this.obj7 = inj._new(p.provider7);\n }\n return this.obj7;\n }\n if (p.keyId8 === keyId) {\n if (this.obj8 === UNDEFINED) {\n this.obj8 = inj._new(p.provider8);\n }\n return this.obj8;\n }\n if (p.keyId9 === keyId) {\n if (this.obj9 === UNDEFINED) {\n this.obj9 = inj._new(p.provider9);\n }\n return this.obj9;\n }\n\n return UNDEFINED;\n }\n\n getObjAtIndex(index: number): any {\n if (index == 0) return this.obj0;\n if (index == 1) return this.obj1;\n if (index == 2) return this.obj2;\n if (index == 3) return this.obj3;\n if (index == 4) return this.obj4;\n if (index == 5) return this.obj5;\n if (index == 6) return this.obj6;\n if (index == 7) return this.obj7;\n if (index == 8) return this.obj8;\n if (index == 9) return this.obj9;\n throw new OutOfBoundsError(index);\n }\n\n getMaxNumberOfObjects(): number { return _MAX_CONSTRUCTION_COUNTER; }\n}\n\n\nexport class ReflectiveInjectorDynamicStrategy implements ReflectiveInjectorStrategy {\n objs: any[];\n\n constructor(\n public protoStrategy: ReflectiveProtoInjectorDynamicStrategy,\n public injector: ReflectiveInjector_) {\n this.objs = ListWrapper.createFixedSize(protoStrategy.providers.length);\n ListWrapper.fill(this.objs, UNDEFINED);\n }\n\n resetConstructionCounter(): void { this.injector._constructionCounter = 0; }\n\n instantiateProvider(provider: ResolvedReflectiveProvider): any {\n return this.injector._new(provider);\n }\n\n getObjByKeyId(keyId: number): any {\n var p = this.protoStrategy;\n\n for (var i = 0; i < p.keyIds.length; i++) {\n if (p.keyIds[i] === keyId) {\n if (this.objs[i] === UNDEFINED) {\n this.objs[i] = this.injector._new(p.providers[i]);\n }\n\n return this.objs[i];\n }\n }\n\n return UNDEFINED;\n }\n\n getObjAtIndex(index: number): any {\n if (index < 0 || index >= this.objs.length) {\n throw new OutOfBoundsError(index);\n }\n\n return this.objs[index];\n }\n\n getMaxNumberOfObjects(): number { return this.objs.length; }\n}\n\n/**\n * A ReflectiveDependency injection container used for instantiating objects and resolving\n * dependencies.\n *\n * An `Injector` is a replacement for a `new` operator, which can automatically resolve the\n * constructor dependencies.\n *\n * In typical use, application code asks for the dependencies in the constructor and they are\n * resolved by the `Injector`.\n *\n * ### Example ([live demo](http://plnkr.co/edit/jzjec0?p=preview))\n *\n * The following example creates an `Injector` configured to create `Engine` and `Car`.\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\n * var car = injector.get(Car);\n * expect(car instanceof Car).toBe(true);\n * expect(car.engine instanceof Engine).toBe(true);\n * ```\n *\n * Notice, we don't use the `new` operator because we explicitly want to have the `Injector`\n * resolve all of the object's dependencies automatically.\n */\nexport abstract class ReflectiveInjector implements Injector {\n /**\n * Turns an array of provider definitions into an array of resolved providers.\n *\n * A resolution is a process of flattening multiple nested arrays and converting individual\n * providers into an array of {@link ResolvedReflectiveProvider}s.\n *\n * ### Example ([live demo](http://plnkr.co/edit/AiXTHi?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);\n *\n * expect(providers.length).toEqual(2);\n *\n * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);\n * expect(providers[0].key.displayName).toBe(\"Car\");\n * expect(providers[0].dependencies.length).toEqual(1);\n * expect(providers[0].factory).toBeDefined();\n *\n * expect(providers[1].key.displayName).toBe(\"Engine\");\n * });\n * ```\n *\n * See {@link ReflectiveInjector#fromResolvedProviders} for more info.\n */\n static resolve(providers: Array<Type|Provider|{[k: string]: any}|any[]>):\n ResolvedReflectiveProvider[] {\n return resolveReflectiveProviders(providers);\n }\n\n /**\n * Resolves an array of providers and creates an injector from those providers.\n *\n * The passed-in providers can be an array of `Type`, {@link Provider},\n * or a recursive array of more providers.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ePOccA?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\n * expect(injector.get(Car) instanceof Car).toBe(true);\n * ```\n *\n * This function is slower than the corresponding `fromResolvedProviders`\n * because it needs to resolve the passed-in providers first.\n * See {@link Injector#resolve} and {@link Injector#fromResolvedProviders}.\n */\n static resolveAndCreate(\n providers: Array<Type|Provider|{[k: string]: any}|any[]>,\n parent: Injector = null): ReflectiveInjector {\n var ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return ReflectiveInjector.fromResolvedProviders(ResolvedReflectiveProviders, parent);\n }\n\n /**\n * Creates an injector from previously resolved providers.\n *\n * This API is the recommended way to construct injectors in performance-sensitive parts.\n *\n * ### Example ([live demo](http://plnkr.co/edit/KrSMci?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var providers = ReflectiveInjector.resolve([Car, Engine]);\n * var injector = ReflectiveInjector.fromResolvedProviders(providers);\n * expect(injector.get(Car) instanceof Car).toBe(true);\n * ```\n * @experimental\n */\n static fromResolvedProviders(providers: ResolvedReflectiveProvider[], parent: Injector = null):\n ReflectiveInjector {\n return new ReflectiveInjector_(\n ReflectiveProtoInjector.fromResolvedProviders(providers), parent);\n }\n\n /**\n * @deprecated\n */\n static fromResolvedBindings(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {\n return ReflectiveInjector.fromResolvedProviders(providers);\n }\n\n\n /**\n * Parent of this injector.\n *\n * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\n * -->\n *\n * ### Example ([live demo](http://plnkr.co/edit/eosMGo?p=preview))\n *\n * ```typescript\n * var parent = ReflectiveInjector.resolveAndCreate([]);\n * var child = parent.resolveAndCreateChild([]);\n * expect(child.parent).toBe(parent);\n * ```\n */\n get parent(): Injector { return unimplemented(); }\n\n\n /**\n * @internal\n */\n debugContext(): any { return null; }\n\n /**\n * Resolves an array of providers and creates a child injector from those providers.\n *\n * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\n * -->\n *\n * The passed-in providers can be an array of `Type`, {@link Provider},\n * or a recursive array of more providers.\n *\n * ### Example ([live demo](http://plnkr.co/edit/opB3T4?p=preview))\n *\n * ```typescript\n * class ParentProvider {}\n * class ChildProvider {}\n *\n * var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]);\n * var child = parent.resolveAndCreateChild([ChildProvider]);\n *\n * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\n * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\n * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\n * ```\n *\n * This function is slower than the corresponding `createChildFromResolved`\n * because it needs to resolve the passed-in providers first.\n * See {@link Injector#resolve} and {@link Injector#createChildFromResolved}.\n */\n resolveAndCreateChild(providers: Array<Type|Provider|{[k: string]: any}|any[]>):\n ReflectiveInjector {\n return unimplemented();\n }\n\n /**\n * Creates a child injector from previously resolved providers.\n *\n * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\n * -->\n *\n * This API is the recommended way to construct injectors in performance-sensitive parts.\n *\n * ### Example ([live demo](http://plnkr.co/edit/VhyfjN?p=preview))\n *\n * ```typescript\n * class ParentProvider {}\n * class ChildProvider {}\n *\n * var parentProviders = ReflectiveInjector.resolve([ParentProvider]);\n * var childProviders = ReflectiveInjector.resolve([ChildProvider]);\n *\n * var parent = ReflectiveInjector.fromResolvedProviders(parentProviders);\n * var child = parent.createChildFromResolved(childProviders);\n *\n * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\n * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\n * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\n * ```\n */\n createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {\n return unimplemented();\n }\n\n /**\n * Resolves a provider and instantiates an object in the context of the injector.\n *\n * The created object does not get cached by the injector.\n *\n * ### Example ([live demo](http://plnkr.co/edit/yvVXoB?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\n *\n * var car = injector.resolveAndInstantiate(Car);\n * expect(car.engine).toBe(injector.get(Engine));\n * expect(car).not.toBe(injector.resolveAndInstantiate(Car));\n * ```\n */\n resolveAndInstantiate(provider: Type|Provider): any { return unimplemented(); }\n\n /**\n * Instantiates an object using a resolved provider in the context of the injector.\n *\n * The created object does not get cached by the injector.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ptCImQ?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\n * var carProvider = ReflectiveInjector.resolve([Car])[0];\n * var car = injector.instantiateResolved(carProvider);\n * expect(car.engine).toBe(injector.get(Engine));\n * expect(car).not.toBe(injector.instantiateResolved(carProvider));\n * ```\n */\n instantiateResolved(provider: ResolvedReflectiveProvider): any { return unimplemented(); }\n\n abstract get(token: any, notFoundValue?: any): any;\n}\n\nexport class ReflectiveInjector_ implements ReflectiveInjector {\n private _strategy: ReflectiveInjectorStrategy;\n /** @internal */\n _constructionCounter: number = 0;\n /** @internal */\n public _proto: any /* ProtoInjector */;\n /** @internal */\n public _parent: Injector;\n /**\n * Private\n */\n constructor(\n _proto: any /* ProtoInjector */, _parent: Injector = null,\n private _debugContext: Function = null) {\n this._proto = _proto;\n this._parent = _parent;\n this._strategy = _proto._strategy.createInjectorStrategy(this);\n }\n\n /**\n * @internal\n */\n debugContext(): any { return this._debugContext(); }\n\n get(token: any, notFoundValue: any = /*@ts2dart_const*/ THROW_IF_NOT_FOUND): any {\n return this._getByKey(ReflectiveKey.get(token), null, null, notFoundValue);\n }\n\n getAt(index: number): any { return this._strategy.getObjAtIndex(index); }\n\n get parent(): Injector { return this._parent; }\n\n /**\n * @internal\n * Internal. Do not use.\n * We return `any` not to export the InjectorStrategy type.\n */\n get internalStrategy(): any { return this._strategy; }\n\n resolveAndCreateChild(providers: Array<Type|Provider|any[]>): ReflectiveInjector {\n var ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return this.createChildFromResolved(ResolvedReflectiveProviders);\n }\n\n createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {\n var proto = new ReflectiveProtoInjector(providers);\n var inj = new ReflectiveInjector_(proto);\n inj._parent = this;\n return inj;\n }\n\n resolveAndInstantiate(provider: Type|Provider): any {\n return this.instantiateResolved(ReflectiveInjector.resolve([provider])[0]);\n }\n\n instantiateResolved(provider: ResolvedReflectiveProvider): any {\n return this._instantiateProvider(provider);\n }\n\n /** @internal */\n _new(provider: ResolvedReflectiveProvider): any {\n if (this._constructionCounter++ > this._strategy.getMaxNumberOfObjects()) {\n throw new CyclicDependencyError(this, provider.key);\n }\n return this._instantiateProvider(provider);\n }\n\n private _instantiateProvider(provider: ResolvedReflectiveProvider): any {\n if (provider.multiProvider) {\n var res = ListWrapper.createFixedSize(provider.resolvedFactories.length);\n for (var i = 0; i < provider.resolvedFactories.length; ++i) {\n res[i] = this._instantiate(provider, provider.resolvedFactories[i]);\n }\n return res;\n } else {\n return this._instantiate(provider, provider.resolvedFactories[0]);\n }\n }\n\n private _instantiate(\n provider: ResolvedReflectiveProvider,\n ResolvedReflectiveFactory: ResolvedReflectiveFactory): any {\n var factory = ResolvedReflectiveFactory.factory;\n var deps = ResolvedReflectiveFactory.dependencies;\n var length = deps.length;\n\n var d0: any;\n var d1: any;\n var d2: any;\n var d3: any;\n var d4: any;\n var d5: any;\n var d6: any;\n var d7: any;\n var d8: any;\n var d9: any;\n var d10: any;\n var d11: any;\n var d12: any;\n var d13: any;\n var d14: any;\n var d15: any;\n var d16: any;\n var d17: any;\n var d18: any;\n var d19: any;\n try {\n d0 = length > 0 ? this._getByReflectiveDependency(provider, deps[0]) : null;\n d1 = length > 1 ? this._getByReflectiveDependency(provider, deps[1]) : null;\n d2 = length > 2 ? this._getByReflectiveDependency(provider, deps[2]) : null;\n d3 = length > 3 ? this._getByReflectiveDependency(provider, deps[3]) : null;\n d4 = length > 4 ? this._getByReflectiveDependency(provider, deps[4]) : null;\n d5 = length > 5 ? this._getByReflectiveDependency(provider, deps[5]) : null;\n d6 = length > 6 ? this._getByReflectiveDependency(provider, deps[6]) : null;\n d7 = length > 7 ? this._getByReflectiveDependency(provider, deps[7]) : null;\n d8 = length > 8 ? this._getByReflectiveDependency(provider, deps[8]) : null;\n d9 = length > 9 ? this._getByReflectiveDependency(provider, deps[9]) : null;\n d10 = length > 10 ? this._getByReflectiveDependency(provider, deps[10]) : null;\n d11 = length > 11 ? this._getByReflectiveDependency(provider, deps[11]) : null;\n d12 = length > 12 ? this._getByReflectiveDependency(provider, deps[12]) : null;\n d13 = length > 13 ? this._getByReflectiveDependency(provider, deps[13]) : null;\n d14 = length > 14 ? this._getByReflectiveDependency(provider, deps[14]) : null;\n d15 = length > 15 ? this._getByReflectiveDependency(provider, deps[15]) : null;\n d16 = length > 16 ? this._getByReflectiveDependency(provider, deps[16]) : null;\n d17 = length > 17 ? this._getByReflectiveDependency(provider, deps[17]) : null;\n d18 = length > 18 ? this._getByReflectiveDependency(provider, deps[18]) : null;\n d19 = length > 19 ? this._getByReflectiveDependency(provider, deps[19]) : null;\n } catch (e) {\n if (e instanceof AbstractProviderError || e instanceof InstantiationError) {\n e.addKey(this, provider.key);\n }\n throw e;\n }\n\n var obj: any /** TODO #9100 */;\n try {\n switch (length) {\n case 0:\n obj = factory();\n break;\n case 1:\n obj = factory(d0);\n break;\n case 2:\n obj = factory(d0, d1);\n break;\n case 3:\n obj = factory(d0, d1, d2);\n break;\n case 4:\n obj = factory(d0, d1, d2, d3);\n break;\n case 5:\n obj = factory(d0, d1, d2, d3, d4);\n break;\n case 6:\n obj = factory(d0, d1, d2, d3, d4, d5);\n break;\n case 7:\n obj = factory(d0, d1, d2, d3, d4, d5, d6);\n break;\n case 8:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7);\n break;\n case 9:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8);\n break;\n case 10:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9);\n break;\n case 11:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10);\n break;\n case 12:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11);\n break;\n case 13:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12);\n break;\n case 14:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13);\n break;\n case 15:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14);\n break;\n case 16:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15);\n break;\n case 17:\n obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16);\n break;\n case 18:\n obj = factory(\n d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17);\n break;\n case 19:\n obj = factory(\n d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18);\n break;\n case 20:\n obj = factory(\n d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18,\n d19);\n break;\n default:\n throw new BaseException(\n `Cannot instantiate '${provider.key.displayName}' because it has more than 20 dependencies`);\n }\n } catch (e) {\n throw new InstantiationError(this, e, e.stack, provider.key);\n }\n return obj;\n }\n\n private _getByReflectiveDependency(\n provider: ResolvedReflectiveProvider, dep: ReflectiveDependency): any {\n return this._getByKey(\n dep.key, dep.lowerBoundVisibility, dep.upperBoundVisibility,\n dep.optional ? null : THROW_IF_NOT_FOUND);\n }\n\n private _getByKey(\n key: ReflectiveKey, lowerBoundVisibility: Object, upperBoundVisibility: Object,\n notFoundValue: any): any {\n if (key === INJECTOR_KEY) {\n return this;\n }\n\n if (upperBoundVisibility instanceof SelfMetadata) {\n return this._getByKeySelf(key, notFoundValue);\n\n } else {\n return this._getByKeyDefault(key, notFoundValue, lowerBoundVisibility);\n }\n }\n\n /** @internal */\n _throwOrNull(key: ReflectiveKey, notFoundValue: any): any {\n if (notFoundValue !== THROW_IF_NOT_FOUND) {\n return notFoundValue;\n } else {\n throw new NoProviderError(this, key);\n }\n }\n\n /** @internal */\n _getByKeySelf(key: ReflectiveKey, notFoundValue: any): any {\n var obj = this._strategy.getObjByKeyId(key.id);\n return (obj !== UNDEFINED) ? obj : this._throwOrNull(key, notFoundValue);\n }\n\n /** @internal */\n _getByKeyDefault(key: ReflectiveKey, notFoundValue: any, lowerBoundVisibility: Object): any {\n var inj: Injector;\n\n if (lowerBoundVisibility instanceof SkipSelfMetadata) {\n inj = this._parent;\n } else {\n inj = this;\n }\n\n while (inj instanceof ReflectiveInjector_) {\n var inj_ = <ReflectiveInjector_>inj;\n var obj = inj_._strategy.getObjByKeyId(key.id);\n if (obj !== UNDEFINED) return obj;\n inj = inj_._parent;\n }\n if (inj !== null) {\n return inj.get(key.token, notFoundValue);\n } else {\n return this._throwOrNull(key, notFoundValue);\n }\n }\n\n get displayName(): string {\n const providers =\n _mapProviders(this, (b: ResolvedReflectiveProvider) => ' \"' + b.key.displayName + '\" ')\n .join(', ');\n return `ReflectiveInjector(providers: [${providers}])`;\n }\n\n toString(): string { return this.displayName; }\n}\n\nvar INJECTOR_KEY = ReflectiveKey.get(Injector);\n\nfunction _mapProviders(injector: ReflectiveInjector_, fn: Function): any[] {\n var res: any[] /** TODO #9100 */ = [];\n for (var i = 0; i < injector._proto.numberOfProviders; ++i) {\n res.push(fn(injector._proto.getProviderAtIndex(i)));\n }\n return res;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -12,6 +12,7 @@
12
12
  * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when
13
13
  * resolving
14
14
  * providers.
15
+ * @experimental
15
16
  */
16
17
  export declare class ReflectiveKey {
17
18
  token: Object;
@@ -33,11 +34,3 @@ export declare class ReflectiveKey {
33
34
  */
34
35
  static numberOfKeys: number;
35
36
  }
36
- /**
37
- * @internal
38
- */
39
- export declare class KeyRegistry {
40
- private _allKeys;
41
- get(token: Object): ReflectiveKey;
42
- numberOfKeys: number;
43
- }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
- var lang_1 = require('../../src/facade/lang');
3
- var exceptions_1 = require('../../src/facade/exceptions');
2
+ var exceptions_1 = require('../facade/exceptions');
3
+ var lang_1 = require('../facade/lang');
4
4
  var forward_ref_1 = require('./forward_ref');
5
5
  /**
6
6
  * A unique object used for retrieving items from the {@link ReflectiveInjector}.
@@ -16,6 +16,7 @@ var forward_ref_1 = require('./forward_ref');
16
16
  * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when
17
17
  * resolving
18
18
  * providers.
19
+ * @experimental
19
20
  */
20
21
  var ReflectiveKey = (function () {
21
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reflective_key.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/di/reflective_key.ts"],"names":[],"mappings":";AAIE,qBAAiC,uBAAuB,CAAC,CAAA;AAC3D,2BAA4B,6BAA6B,CAAC,CAAA;AAC1D,4BAAgC,eAAe,CAAC,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH;IACE;;OAEG;IACH,uBAAmB,KAAa,EAAS,EAAU;QAAhC,UAAK,GAAL,KAAK,CAAQ;QAAS,OAAE,GAAF,EAAE,CAAQ;QACjD,EAAE,CAAC,CAAC,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,0BAAa,CAAC,wBAAwB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAKD,sBAAI,sCAAW;QAHf;;WAEG;aACH,cAA4B,MAAM,CAAC,gBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;OAAA;IAE3D;;OAEG;IACI,iBAAG,GAAV,UAAW,KAAa;QACtB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,+BAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAKD,sBAAW,6BAAY;QAHvB;;WAEG;aACH,cAAoC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;;;OAAA;IAC/E,oBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,qBAAa,gBA0BzB,CAAA;AAED;;GAEG;AACH;IAAA;QACU,aAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAetD,CAAC;IAbC,yBAAG,GAAH,UAAI,KAAa;QACf,EAAE,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAEjD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED,sBAAI,qCAAY;aAAhB,cAA6B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;;;OAAA;IAC3D,kBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,mBAAW,cAgBvB,CAAA;AAED,IAAI,kBAAkB,GAAG,IAAI,WAAW,EAAE,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {stringify, isBlank} from '../../src/facade/lang';\nimport {BaseException} from '../../src/facade/exceptions';\nimport {resolveForwardRef} from './forward_ref';\n\n/**\n * A unique object used for retrieving items from the {@link ReflectiveInjector}.\n *\n * Keys have:\n * - a system-wide unique `id`.\n * - a `token`.\n *\n * `Key` is used internally by {@link ReflectiveInjector} because its system-wide unique `id` allows\n * the\n * injector to store created objects in a more efficient way.\n *\n * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when\n * resolving\n * providers.\n */\nexport class ReflectiveKey {\n /**\n * Private\n */\n constructor(public token: Object, public id: number) {\n if (isBlank(token)) {\n throw new BaseException('Token must be defined!');\n }\n }\n\n /**\n * Returns a stringified token.\n */\n get displayName(): string { return stringify(this.token); }\n\n /**\n * Retrieves a `Key` for a token.\n */\n static get(token: Object): ReflectiveKey {\n return _globalKeyRegistry.get(resolveForwardRef(token));\n }\n\n /**\n * @returns the number of keys registered in the system.\n */\n static get numberOfKeys(): number { return _globalKeyRegistry.numberOfKeys; }\n}\n\n/**\n * @internal\n */\nexport class KeyRegistry {\n private _allKeys = new Map<Object, ReflectiveKey>();\n\n get(token: Object): ReflectiveKey {\n if (token instanceof ReflectiveKey) return token;\n\n if (this._allKeys.has(token)) {\n return this._allKeys.get(token);\n }\n\n var newKey = new ReflectiveKey(token, ReflectiveKey.numberOfKeys);\n this._allKeys.set(token, newKey);\n return newKey;\n }\n\n get numberOfKeys(): number { return this._allKeys.size; }\n}\n\nvar _globalKeyRegistry = new KeyRegistry();\n"]}
1
+ {"version":3,"file":"reflective_key.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/di/reflective_key.ts"],"names":[],"mappings":";AAAA,2BAA4B,sBAAsB,CAAC,CAAA;AACnD,qBAAiC,gBAAgB,CAAC,CAAA;AAElD,4BAAgC,eAAe,CAAC,CAAA;AAGhD;;;;;;;;;;;;;;;GAeG;AACH;IACE;;OAEG;IACH,uBAAmB,KAAa,EAAS,EAAU;QAAhC,UAAK,GAAL,KAAK,CAAQ;QAAS,OAAE,GAAF,EAAE,CAAQ;QACjD,EAAE,CAAC,CAAC,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,0BAAa,CAAC,wBAAwB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAKD,sBAAI,sCAAW;QAHf;;WAEG;aACH,cAA4B,MAAM,CAAC,gBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;OAAA;IAE3D;;OAEG;IACI,iBAAG,GAAV,UAAW,KAAa;QACtB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,+BAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAKD,sBAAW,6BAAY;QAHvB;;WAEG;aACH,cAAoC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;;;OAAA;IAC/E,oBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,qBAAa,gBA0BzB,CAAA;AAED;;GAEG;AACH;IAAA;QACU,aAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAetD,CAAC;IAbC,yBAAG,GAAH,UAAI,KAAa;QACf,EAAE,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAEjD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED,sBAAI,qCAAY;aAAhB,cAA6B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;;;OAAA;IAC3D,kBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,mBAAW,cAgBvB,CAAA;AAED,IAAI,kBAAkB,GAAG,IAAI,WAAW,EAAE,CAAC","sourcesContent":["import {BaseException} from '../facade/exceptions';\nimport {isBlank, stringify} from '../facade/lang';\n\nimport {resolveForwardRef} from './forward_ref';\n\n\n/**\n * A unique object used for retrieving items from the {@link ReflectiveInjector}.\n *\n * Keys have:\n * - a system-wide unique `id`.\n * - a `token`.\n *\n * `Key` is used internally by {@link ReflectiveInjector} because its system-wide unique `id` allows\n * the\n * injector to store created objects in a more efficient way.\n *\n * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when\n * resolving\n * providers.\n * @experimental\n */\nexport class ReflectiveKey {\n /**\n * Private\n */\n constructor(public token: Object, public id: number) {\n if (isBlank(token)) {\n throw new BaseException('Token must be defined!');\n }\n }\n\n /**\n * Returns a stringified token.\n */\n get displayName(): string { return stringify(this.token); }\n\n /**\n * Retrieves a `Key` for a token.\n */\n static get(token: Object): ReflectiveKey {\n return _globalKeyRegistry.get(resolveForwardRef(token));\n }\n\n /**\n * @returns the number of keys registered in the system.\n */\n static get numberOfKeys(): number { return _globalKeyRegistry.numberOfKeys; }\n}\n\n/**\n * @internal\n */\nexport class KeyRegistry {\n private _allKeys = new Map<Object, ReflectiveKey>();\n\n get(token: Object): ReflectiveKey {\n if (token instanceof ReflectiveKey) return token;\n\n if (this._allKeys.has(token)) {\n return this._allKeys.get(token);\n }\n\n var newKey = new ReflectiveKey(token, ReflectiveKey.numberOfKeys);\n this._allKeys.set(token, newKey);\n return newKey;\n }\n\n get numberOfKeys(): number { return this._allKeys.size; }\n}\n\nvar _globalKeyRegistry = new KeyRegistry();\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Type } from '../../src/facade/lang';
1
+ import { Type } from '../facade/lang';
2
2
  import { ReflectiveKey } from './reflective_key';
3
3
  import { Provider } from './provider';
4
4
  /**
@@ -60,6 +60,7 @@ export declare class ResolvedReflectiveProvider_ implements ResolvedReflectiveBi
60
60
  }
61
61
  /**
62
62
  * An internal resolved representation of a factory function created by resolving {@link Provider}.
63
+ * @experimental
63
64
  */
64
65
  export declare class ResolvedReflectiveFactory {
65
66
  /**
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
- var lang_1 = require('../../src/facade/lang');
3
- var collection_1 = require('../../src/facade/collection');
2
+ var lang_1 = require('../facade/lang');
3
+ var collection_1 = require('../facade/collection');
4
4
  var reflection_1 = require('../reflection/reflection');
5
5
  var reflective_key_1 = require('./reflective_key');
6
6
  var metadata_1 = require('./metadata');
@@ -43,6 +43,7 @@ var ResolvedReflectiveProvider_ = (function () {
43
43
  exports.ResolvedReflectiveProvider_ = ResolvedReflectiveProvider_;
44
44
  /**
45
45
  * An internal resolved representation of a factory function created by resolving {@link Provider}.
46
+ * @experimental
46
47
  */
47
48
  var ResolvedReflectiveFactory = (function () {
48
49
  function ResolvedReflectiveFactory(
@@ -72,7 +73,7 @@ function resolveReflectiveFactory(provider) {
72
73
  resolvedDeps = _dependenciesFor(useClass);
73
74
  }
74
75
  else if (lang_1.isPresent(provider.useExisting)) {
75
- factoryFn = function (aliasInstance) { return aliasInstance; };
76
+ factoryFn = function (aliasInstance /** TODO #9100 */) { return aliasInstance; };
76
77
  resolvedDeps = [ReflectiveDependency.fromKey(reflective_key_1.ReflectiveKey.get(provider.useExisting))];
77
78
  }
78
79
  else if (lang_1.isPresent(provider.useFactory)) {
@@ -183,7 +184,7 @@ function _dependenciesFor(typeOrFunc) {
183
184
  }
184
185
  return params.map(function (p) { return _extractToken(typeOrFunc, p, params); });
185
186
  }
186
- function _extractToken(typeOrFunc, metadata /*any[] | any*/, params) {
187
+ function _extractToken(typeOrFunc /** TODO #9100 */, metadata /** TODO #9100 */ /*any[] | any*/, params) {
187
188
  var depProps = [];
188
189
  var token = null;
189
190
  var optional = false;
@@ -232,7 +233,7 @@ function _extractToken(typeOrFunc, metadata /*any[] | any*/, params) {
232
233
  throw new reflective_exceptions_1.NoAnnotationError(typeOrFunc, params);
233
234
  }
234
235
  }
235
- function _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps) {
236
+ function _createDependency(token /** TODO #9100 */, optional /** TODO #9100 */, lowerBoundVisibility /** TODO #9100 */, upperBoundVisibility /** TODO #9100 */, depProps /** TODO #9100 */) {
236
237
  return new ReflectiveDependency(reflective_key_1.ReflectiveKey.get(token), optional, lowerBoundVisibility, upperBoundVisibility, depProps);
237
238
  }
238
239
  //# sourceMappingURL=reflective_provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflective_provider.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/di/reflective_provider.ts"],"names":[],"mappings":"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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {\n Type,\n isBlank,\n isPresent,\n isArray,\n} from '../../src/facade/lang';\nimport {MapWrapper, ListWrapper} from '../../src/facade/collection';\nimport {reflector} from '../reflection/reflection';\nimport {ReflectiveKey} from './reflective_key';\nimport {\n InjectMetadata,\n OptionalMetadata,\n SelfMetadata,\n HostMetadata,\n SkipSelfMetadata,\n DependencyMetadata\n} from './metadata';\nimport {\n NoAnnotationError,\n MixingMultiProvidersWithRegularProvidersError,\n InvalidProviderError\n} from './reflective_exceptions';\nimport {resolveForwardRef} from './forward_ref';\nimport {Provider, ProviderBuilder, provide} from './provider';\nimport {isProviderLiteral, createProvider} from './provider_util';\n\n/**\n * `Dependency` is used by the framework to extend DI.\n * This is internal to Angular and should not be used directly.\n */\nexport class ReflectiveDependency {\n constructor(public key: ReflectiveKey, public optional: boolean, public lowerBoundVisibility: any,\n public upperBoundVisibility: any, public properties: any[]) {}\n\n static fromKey(key: ReflectiveKey): ReflectiveDependency {\n return new ReflectiveDependency(key, false, null, null, []);\n }\n}\n\nconst _EMPTY_LIST = /*@ts2dart_const*/[];\n\n/**\n * An internal resolved representation of a {@link Provider} used by the {@link Injector}.\n *\n * It is usually created automatically by `Injector.resolveAndCreate`.\n *\n * It can be created manually, as follows:\n *\n * ### Example ([live demo](http://plnkr.co/edit/RfEnhh8kUEI0G3qsnIeT?p%3Dpreview&p=preview))\n *\n * ```typescript\n * var resolvedProviders = Injector.resolve([new Provider('message', {useValue: 'Hello'})]);\n * var injector = Injector.fromResolvedProviders(resolvedProviders);\n *\n * expect(injector.get('message')).toEqual('Hello');\n * ```\n */\nexport interface ResolvedReflectiveProvider {\n /**\n * A key, usually a `Type`.\n */\n key: ReflectiveKey;\n\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n resolvedFactories: ResolvedReflectiveFactory[];\n\n /**\n * Indicates if the provider is a multi-provider or a regular provider.\n */\n multiProvider: boolean;\n}\n\n/**\n * See {@link ResolvedProvider} instead.\n *\n * @deprecated\n */\nexport interface ResolvedReflectiveBinding extends ResolvedReflectiveProvider {}\n\nexport class ResolvedReflectiveProvider_ implements ResolvedReflectiveBinding {\n constructor(public key: ReflectiveKey, public resolvedFactories: ResolvedReflectiveFactory[],\n public multiProvider: boolean) {}\n\n get resolvedFactory(): ResolvedReflectiveFactory { return this.resolvedFactories[0]; }\n}\n\n/**\n * An internal resolved representation of a factory function created by resolving {@link Provider}.\n */\nexport class ResolvedReflectiveFactory {\n constructor(\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n public factory: Function,\n\n /**\n * Arguments (dependencies) to the `factory` function.\n */\n public dependencies: ReflectiveDependency[]) {}\n}\n\n\n/**\n * Resolve a single provider.\n */\nexport function resolveReflectiveFactory(provider: Provider): ResolvedReflectiveFactory {\n var factoryFn: Function;\n var resolvedDeps;\n if (isPresent(provider.useClass)) {\n var useClass = resolveForwardRef(provider.useClass);\n factoryFn = reflector.factory(useClass);\n resolvedDeps = _dependenciesFor(useClass);\n } else if (isPresent(provider.useExisting)) {\n factoryFn = (aliasInstance) => aliasInstance;\n resolvedDeps = [ReflectiveDependency.fromKey(ReflectiveKey.get(provider.useExisting))];\n } else if (isPresent(provider.useFactory)) {\n factoryFn = provider.useFactory;\n resolvedDeps = constructDependencies(provider.useFactory, provider.dependencies);\n } else {\n factoryFn = () => provider.useValue;\n resolvedDeps = _EMPTY_LIST;\n }\n return new ResolvedReflectiveFactory(factoryFn, resolvedDeps);\n}\n\n/**\n * Converts the {@link Provider} into {@link ResolvedProvider}.\n *\n * {@link Injector} internally only uses {@link ResolvedProvider}, {@link Provider} contains\n * convenience provider syntax.\n */\nexport function resolveReflectiveProvider(provider: Provider): ResolvedReflectiveProvider {\n return new ResolvedReflectiveProvider_(ReflectiveKey.get(provider.token),\n [resolveReflectiveFactory(provider)], provider.multi);\n}\n\n/**\n * Resolve a list of Providers.\n */\nexport function resolveReflectiveProviders(\n providers: Array<Type | Provider | {[k: string]: any} | any[]>): ResolvedReflectiveProvider[] {\n var normalized = _normalizeProviders(providers, []);\n var resolved = normalized.map(resolveReflectiveProvider);\n return MapWrapper.values(\n mergeResolvedReflectiveProviders(resolved, new Map<number, ResolvedReflectiveProvider>()));\n}\n\n/**\n * Merges a list of ResolvedProviders into a list where\n * each key is contained exactly once and multi providers\n * have been merged.\n */\nexport function mergeResolvedReflectiveProviders(\n providers: ResolvedReflectiveProvider[],\n normalizedProvidersMap: Map<number, ResolvedReflectiveProvider>):\n Map<number, ResolvedReflectiveProvider> {\n for (var i = 0; i < providers.length; i++) {\n var provider = providers[i];\n var existing = normalizedProvidersMap.get(provider.key.id);\n if (isPresent(existing)) {\n if (provider.multiProvider !== existing.multiProvider) {\n throw new MixingMultiProvidersWithRegularProvidersError(existing, provider);\n }\n if (provider.multiProvider) {\n for (var j = 0; j < provider.resolvedFactories.length; j++) {\n existing.resolvedFactories.push(provider.resolvedFactories[j]);\n }\n } else {\n normalizedProvidersMap.set(provider.key.id, provider);\n }\n } else {\n var resolvedProvider;\n if (provider.multiProvider) {\n resolvedProvider = new ResolvedReflectiveProvider_(\n provider.key, ListWrapper.clone(provider.resolvedFactories), provider.multiProvider);\n } else {\n resolvedProvider = provider;\n }\n normalizedProvidersMap.set(provider.key.id, resolvedProvider);\n }\n }\n return normalizedProvidersMap;\n}\n\nfunction _normalizeProviders(\n providers: Array<Type | Provider | {[k: string]: any} | ProviderBuilder | any[]>,\n res: Provider[]): Provider[] {\n providers.forEach(b => {\n if (b instanceof Type) {\n res.push(provide(b, {useClass: b}));\n\n } else if (b instanceof Provider) {\n res.push(b);\n\n } else if (isProviderLiteral(b)) {\n res.push(createProvider(b));\n\n } else if (b instanceof Array) {\n _normalizeProviders(b, res);\n\n } else if (b instanceof ProviderBuilder) {\n throw new InvalidProviderError(b.token);\n\n } else {\n throw new InvalidProviderError(b);\n }\n });\n\n return res;\n}\n\nexport function constructDependencies(typeOrFunc: any,\n dependencies: any[]): ReflectiveDependency[] {\n if (isBlank(dependencies)) {\n return _dependenciesFor(typeOrFunc);\n } else {\n var params: any[][] = dependencies.map(t => [t]);\n return dependencies.map(t => _extractToken(typeOrFunc, t, params));\n }\n}\n\nfunction _dependenciesFor(typeOrFunc: any): ReflectiveDependency[] {\n var params = reflector.parameters(typeOrFunc);\n if (isBlank(params)) return [];\n if (params.some(isBlank)) {\n throw new NoAnnotationError(typeOrFunc, params);\n }\n return params.map((p: any[]) => _extractToken(typeOrFunc, p, params));\n}\n\nfunction _extractToken(typeOrFunc, metadata /*any[] | any*/,\n params: any[][]): ReflectiveDependency {\n var depProps = [];\n var token = null;\n var optional = false;\n\n if (!isArray(metadata)) {\n if (metadata instanceof InjectMetadata) {\n return _createDependency(metadata.token, optional, null, null, depProps);\n } else {\n return _createDependency(metadata, optional, null, null, depProps);\n }\n }\n\n var lowerBoundVisibility = null;\n var upperBoundVisibility = null;\n\n for (var i = 0; i < metadata.length; ++i) {\n var paramMetadata = metadata[i];\n\n if (paramMetadata instanceof Type) {\n token = paramMetadata;\n\n } else if (paramMetadata instanceof InjectMetadata) {\n token = paramMetadata.token;\n\n } else if (paramMetadata instanceof OptionalMetadata) {\n optional = true;\n\n } else if (paramMetadata instanceof SelfMetadata) {\n upperBoundVisibility = paramMetadata;\n\n } else if (paramMetadata instanceof HostMetadata) {\n upperBoundVisibility = paramMetadata;\n\n } else if (paramMetadata instanceof SkipSelfMetadata) {\n lowerBoundVisibility = paramMetadata;\n\n } else if (paramMetadata instanceof DependencyMetadata) {\n if (isPresent(paramMetadata.token)) {\n token = paramMetadata.token;\n }\n depProps.push(paramMetadata);\n }\n }\n\n token = resolveForwardRef(token);\n\n if (isPresent(token)) {\n return _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps);\n } else {\n throw new NoAnnotationError(typeOrFunc, params);\n }\n}\n\nfunction _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility,\n depProps): ReflectiveDependency {\n return new ReflectiveDependency(ReflectiveKey.get(token), optional, lowerBoundVisibility,\n upperBoundVisibility, depProps);\n}\n"]}
1
+ {"version":3,"file":"reflective_provider.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/di/reflective_provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {Type, isBlank, isPresent, isArray,} from '../facade/lang';\nimport {MapWrapper, ListWrapper} from '../facade/collection';\nimport {reflector} from '../reflection/reflection';\nimport {ReflectiveKey} from './reflective_key';\nimport {InjectMetadata, OptionalMetadata, SelfMetadata, HostMetadata, SkipSelfMetadata, DependencyMetadata} from './metadata';\nimport {NoAnnotationError, MixingMultiProvidersWithRegularProvidersError, InvalidProviderError} from './reflective_exceptions';\nimport {resolveForwardRef} from './forward_ref';\nimport {Provider, ProviderBuilder, provide} from './provider';\nimport {isProviderLiteral, createProvider} from './provider_util';\n\n/**\n * `Dependency` is used by the framework to extend DI.\n * This is internal to Angular and should not be used directly.\n */\nexport class ReflectiveDependency {\n constructor(\n public key: ReflectiveKey, public optional: boolean, public lowerBoundVisibility: any,\n public upperBoundVisibility: any, public properties: any[]) {}\n\n static fromKey(key: ReflectiveKey): ReflectiveDependency {\n return new ReflectiveDependency(key, false, null, null, []);\n }\n}\n\nconst _EMPTY_LIST: any[] /** TODO #9100 */ = /*@ts2dart_const*/[];\n\n/**\n * An internal resolved representation of a {@link Provider} used by the {@link Injector}.\n *\n * It is usually created automatically by `Injector.resolveAndCreate`.\n *\n * It can be created manually, as follows:\n *\n * ### Example ([live demo](http://plnkr.co/edit/RfEnhh8kUEI0G3qsnIeT?p%3Dpreview&p=preview))\n *\n * ```typescript\n * var resolvedProviders = Injector.resolve([new Provider('message', {useValue: 'Hello'})]);\n * var injector = Injector.fromResolvedProviders(resolvedProviders);\n *\n * expect(injector.get('message')).toEqual('Hello');\n * ```\n */\nexport interface ResolvedReflectiveProvider {\n /**\n * A key, usually a `Type`.\n */\n key: ReflectiveKey;\n\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n resolvedFactories: ResolvedReflectiveFactory[];\n\n /**\n * Indicates if the provider is a multi-provider or a regular provider.\n */\n multiProvider: boolean;\n}\n\n/**\n * See {@link ResolvedProvider} instead.\n *\n * @deprecated\n */\nexport interface ResolvedReflectiveBinding extends ResolvedReflectiveProvider {}\n\nexport class ResolvedReflectiveProvider_ implements ResolvedReflectiveBinding {\n constructor(\n public key: ReflectiveKey, public resolvedFactories: ResolvedReflectiveFactory[],\n public multiProvider: boolean) {}\n\n get resolvedFactory(): ResolvedReflectiveFactory { return this.resolvedFactories[0]; }\n}\n\n/**\n * An internal resolved representation of a factory function created by resolving {@link Provider}.\n * @experimental\n */\nexport class ResolvedReflectiveFactory {\n constructor(\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n public factory: Function,\n\n /**\n * Arguments (dependencies) to the `factory` function.\n */\n public dependencies: ReflectiveDependency[]) {}\n}\n\n\n/**\n * Resolve a single provider.\n */\nexport function resolveReflectiveFactory(provider: Provider): ResolvedReflectiveFactory {\n var factoryFn: Function;\n var resolvedDeps: any /** TODO #9100 */;\n if (isPresent(provider.useClass)) {\n var useClass = resolveForwardRef(provider.useClass);\n factoryFn = reflector.factory(useClass);\n resolvedDeps = _dependenciesFor(useClass);\n } else if (isPresent(provider.useExisting)) {\n factoryFn = (aliasInstance: any /** TODO #9100 */) => aliasInstance;\n resolvedDeps = [ReflectiveDependency.fromKey(ReflectiveKey.get(provider.useExisting))];\n } else if (isPresent(provider.useFactory)) {\n factoryFn = provider.useFactory;\n resolvedDeps = constructDependencies(provider.useFactory, provider.dependencies);\n } else {\n factoryFn = () => provider.useValue;\n resolvedDeps = _EMPTY_LIST;\n }\n return new ResolvedReflectiveFactory(factoryFn, resolvedDeps);\n}\n\n/**\n * Converts the {@link Provider} into {@link ResolvedProvider}.\n *\n * {@link Injector} internally only uses {@link ResolvedProvider}, {@link Provider} contains\n * convenience provider syntax.\n */\nexport function resolveReflectiveProvider(provider: Provider): ResolvedReflectiveProvider {\n return new ResolvedReflectiveProvider_(\n ReflectiveKey.get(provider.token), [resolveReflectiveFactory(provider)], provider.multi);\n}\n\n/**\n * Resolve a list of Providers.\n */\nexport function resolveReflectiveProviders(\n providers: Array<Type|Provider|{[k: string]: any}|any[]>): ResolvedReflectiveProvider[] {\n var normalized = _normalizeProviders(providers, []);\n var resolved = normalized.map(resolveReflectiveProvider);\n return MapWrapper.values(\n mergeResolvedReflectiveProviders(resolved, new Map<number, ResolvedReflectiveProvider>()));\n}\n\n/**\n * Merges a list of ResolvedProviders into a list where\n * each key is contained exactly once and multi providers\n * have been merged.\n */\nexport function mergeResolvedReflectiveProviders(\n providers: ResolvedReflectiveProvider[],\n normalizedProvidersMap: Map<number, ResolvedReflectiveProvider>):\n Map<number, ResolvedReflectiveProvider> {\n for (var i = 0; i < providers.length; i++) {\n var provider = providers[i];\n var existing = normalizedProvidersMap.get(provider.key.id);\n if (isPresent(existing)) {\n if (provider.multiProvider !== existing.multiProvider) {\n throw new MixingMultiProvidersWithRegularProvidersError(existing, provider);\n }\n if (provider.multiProvider) {\n for (var j = 0; j < provider.resolvedFactories.length; j++) {\n existing.resolvedFactories.push(provider.resolvedFactories[j]);\n }\n } else {\n normalizedProvidersMap.set(provider.key.id, provider);\n }\n } else {\n var resolvedProvider: any /** TODO #9100 */;\n if (provider.multiProvider) {\n resolvedProvider = new ResolvedReflectiveProvider_(\n provider.key, ListWrapper.clone(provider.resolvedFactories), provider.multiProvider);\n } else {\n resolvedProvider = provider;\n }\n normalizedProvidersMap.set(provider.key.id, resolvedProvider);\n }\n }\n return normalizedProvidersMap;\n}\n\nfunction _normalizeProviders(\n providers: Array<Type|Provider|{[k: string]: any}|ProviderBuilder|any[]>,\n res: Provider[]): Provider[] {\n providers.forEach(b => {\n if (b instanceof Type) {\n res.push(provide(b, {useClass: b}));\n\n } else if (b instanceof Provider) {\n res.push(b);\n\n } else if (isProviderLiteral(b)) {\n res.push(createProvider(b));\n\n } else if (b instanceof Array) {\n _normalizeProviders(b, res);\n\n } else if (b instanceof ProviderBuilder) {\n throw new InvalidProviderError(b.token);\n\n } else {\n throw new InvalidProviderError(b);\n }\n });\n\n return res;\n}\n\nexport function constructDependencies(\n typeOrFunc: any, dependencies: any[]): ReflectiveDependency[] {\n if (isBlank(dependencies)) {\n return _dependenciesFor(typeOrFunc);\n } else {\n var params: any[][] = dependencies.map(t => [t]);\n return dependencies.map(t => _extractToken(typeOrFunc, t, params));\n }\n}\n\nfunction _dependenciesFor(typeOrFunc: any): ReflectiveDependency[] {\n var params = reflector.parameters(typeOrFunc);\n if (isBlank(params)) return [];\n if (params.some(isBlank)) {\n throw new NoAnnotationError(typeOrFunc, params);\n }\n return params.map((p: any[]) => _extractToken(typeOrFunc, p, params));\n}\n\nfunction _extractToken(\n typeOrFunc: any /** TODO #9100 */, metadata: any /** TODO #9100 */ /*any[] | any*/,\n params: any[][]): ReflectiveDependency {\n var depProps: any[] /** TODO #9100 */ = [];\n var token: any /** TODO #9100 */ = null;\n var optional = false;\n\n if (!isArray(metadata)) {\n if (metadata instanceof InjectMetadata) {\n return _createDependency(metadata.token, optional, null, null, depProps);\n } else {\n return _createDependency(metadata, optional, null, null, depProps);\n }\n }\n\n var lowerBoundVisibility: any /** TODO #9100 */ = null;\n var upperBoundVisibility: any /** TODO #9100 */ = null;\n\n for (var i = 0; i < metadata.length; ++i) {\n var paramMetadata = metadata[i];\n\n if (paramMetadata instanceof Type) {\n token = paramMetadata;\n\n } else if (paramMetadata instanceof InjectMetadata) {\n token = paramMetadata.token;\n\n } else if (paramMetadata instanceof OptionalMetadata) {\n optional = true;\n\n } else if (paramMetadata instanceof SelfMetadata) {\n upperBoundVisibility = paramMetadata;\n\n } else if (paramMetadata instanceof HostMetadata) {\n upperBoundVisibility = paramMetadata;\n\n } else if (paramMetadata instanceof SkipSelfMetadata) {\n lowerBoundVisibility = paramMetadata;\n\n } else if (paramMetadata instanceof DependencyMetadata) {\n if (isPresent(paramMetadata.token)) {\n token = paramMetadata.token;\n }\n depProps.push(paramMetadata);\n }\n }\n\n token = resolveForwardRef(token);\n\n if (isPresent(token)) {\n return _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps);\n } else {\n throw new NoAnnotationError(typeOrFunc, params);\n }\n}\n\nfunction _createDependency(\n token: any /** TODO #9100 */, optional: any /** TODO #9100 */,\n lowerBoundVisibility: any /** TODO #9100 */, upperBoundVisibility: any /** TODO #9100 */,\n depProps: any /** TODO #9100 */): ReflectiveDependency {\n return new ReflectiveDependency(\n ReflectiveKey.get(token), optional, lowerBoundVisibility, upperBoundVisibility, depProps);\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":1,"metadata":{"resolveReflectiveProvider":{"__symbolic":"function","parameters":["provider"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ResolvedReflectiveProvider_"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"./reflective_key","name":"ReflectiveKey"},"member":"get"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"provider"},"member":"token"}]},[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"resolveReflectiveFactory"},"arguments":[{"__symbolic":"reference","name":"provider"}]}],{"__symbolic":"select","expression":{"__symbolic":"reference","name":"provider"},"member":"multi"}]}}}}
package/src/di.d.ts CHANGED
@@ -3,13 +3,13 @@
3
3
  * @description
4
4
  * The `di` module provides dependency injection container services.
5
5
  */
6
- export { InjectMetadata, OptionalMetadata, InjectableMetadata, SelfMetadata, HostMetadata, SkipSelfMetadata, DependencyMetadata } from './di/metadata';
6
+ export { HostMetadata, InjectMetadata, InjectableMetadata, OptionalMetadata, SelfMetadata, SkipSelfMetadata } from './di/metadata';
7
7
  export * from './di/decorators';
8
8
  export { forwardRef, resolveForwardRef, ForwardRefFn } from './di/forward_ref';
9
9
  export { Injector } from './di/injector';
10
10
  export { ReflectiveInjector } from './di/reflective_injector';
11
11
  export { Binding, ProviderBuilder, bind, Provider, provide } from './di/provider';
12
- export { ResolvedReflectiveBinding, ResolvedReflectiveFactory, ReflectiveDependency, ResolvedReflectiveProvider } from './di/reflective_provider';
12
+ export { ResolvedReflectiveBinding, ResolvedReflectiveFactory, ResolvedReflectiveProvider } from './di/reflective_provider';
13
13
  export { ReflectiveKey } from './di/reflective_key';
14
14
  export { NoProviderError, AbstractProviderError, CyclicDependencyError, InstantiationError, InvalidProviderError, NoAnnotationError, OutOfBoundsError } from './di/reflective_exceptions';
15
15
  export { OpaqueToken } from './di/opaque_token';
package/src/di.js CHANGED
@@ -1,20 +1,19 @@
1
+ /**
2
+ * @module
3
+ * @description
4
+ * The `di` module provides dependency injection container services.
5
+ */
1
6
  "use strict";
2
7
  function __export(m) {
3
8
  for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
9
  }
5
- /**
6
- * @module
7
- * @description
8
- * The `di` module provides dependency injection container services.
9
- */
10
10
  var metadata_1 = require('./di/metadata');
11
+ exports.HostMetadata = metadata_1.HostMetadata;
11
12
  exports.InjectMetadata = metadata_1.InjectMetadata;
12
- exports.OptionalMetadata = metadata_1.OptionalMetadata;
13
13
  exports.InjectableMetadata = metadata_1.InjectableMetadata;
14
+ exports.OptionalMetadata = metadata_1.OptionalMetadata;
14
15
  exports.SelfMetadata = metadata_1.SelfMetadata;
15
- exports.HostMetadata = metadata_1.HostMetadata;
16
16
  exports.SkipSelfMetadata = metadata_1.SkipSelfMetadata;
17
- exports.DependencyMetadata = metadata_1.DependencyMetadata;
18
17
  // we have to reexport * because Dart and TS export two different sets of types
19
18
  __export(require('./di/decorators'));
20
19
  var forward_ref_1 = require('./di/forward_ref');
@@ -32,7 +31,6 @@ exports.Provider = provider_1.Provider;
32
31
  exports.provide = provider_1.provide;
33
32
  var reflective_provider_1 = require('./di/reflective_provider');
34
33
  exports.ResolvedReflectiveFactory = reflective_provider_1.ResolvedReflectiveFactory;
35
- exports.ReflectiveDependency = reflective_provider_1.ReflectiveDependency;
36
34
  var reflective_key_1 = require('./di/reflective_key');
37
35
  exports.ReflectiveKey = reflective_key_1.ReflectiveKey;
38
36
  var reflective_exceptions_1 = require('./di/reflective_exceptions');
package/src/di.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"di.js","sourceRoot":"","sources":["../../../../modules/@angular/core/src/di.ts"],"names":[],"mappings":";;;;AAIE;;;;EAIC;AAEH,yBAQO,eAAe,CAAC;AAPrB,mDAAc;AACd,uDAAgB;AAChB,2DAAkB;AAClB,+CAAY;AACZ,+CAAY;AACZ,uDAAgB;AAChB,2DACqB;AAEvB,+EAA+E;AAC/E,iBAAc,iBAAiB,CAAC,EAAA;AAEhC,4BAA0D,kBAAkB,CAAC;AAArE,8CAAU;AAAE,4DAAyD;AAE7E,yBAAuB,eAAe,CAAC;AAA/B,uCAA+B;AACvC,oCAAiC,0BAA0B,CAAC;AAApD,sEAAoD;AAC5D,yBAOO,eAAe,CAAC;AANrB,qCAAO;AACP,qDAAe;AACf,+BAAI;AAEJ,uCAAQ;AACR,qCACqB;AACvB,oCAMO,0BAA0B,CAAC;AAJhC,oFAAyB;AACzB,0EAGgC;AAClC,+BAA4B,qBAAqB,CAAC;AAA1C,uDAA0C;AAClD,sCAQO,4BAA4B,CAAC;AAPlC,kEAAe;AACf,8EAAqB;AACrB,8EAAqB;AACrB,wEAAkB;AAClB,4EAAoB;AACpB,sEAAiB;AACjB,oEACkC;AACpC,6BAA0B,mBAAmB,CAAC;AAAtC,iDAAsC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n /**\n * @module\n * @description\n * The `di` module provides dependency injection container services.\n */\n\nexport {\n InjectMetadata,\n OptionalMetadata,\n InjectableMetadata,\n SelfMetadata,\n HostMetadata,\n SkipSelfMetadata,\n DependencyMetadata\n} from './di/metadata';\n\n// we have to reexport * because Dart and TS export two different sets of types\nexport * from './di/decorators';\n\nexport {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref';\n\nexport {Injector} from './di/injector';\nexport {ReflectiveInjector} from './di/reflective_injector';\nexport {\n Binding,\n ProviderBuilder,\n bind,\n\n Provider,\n provide\n} from './di/provider';\nexport {\n ResolvedReflectiveBinding,\n ResolvedReflectiveFactory,\n ReflectiveDependency,\n\n ResolvedReflectiveProvider\n} from './di/reflective_provider';\nexport {ReflectiveKey} from './di/reflective_key';\nexport {\n NoProviderError,\n AbstractProviderError,\n CyclicDependencyError,\n InstantiationError,\n InvalidProviderError,\n NoAnnotationError,\n OutOfBoundsError\n} from './di/reflective_exceptions';\nexport {OpaqueToken} from './di/opaque_token';\n"]}
1
+ {"version":3,"file":"di.js","sourceRoot":"","sources":["../../../../modules/@angular/core/src/di.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;AAEH,yBAAiH,eAAe,CAAC;AAAzH,+CAAY;AAAE,mDAAc;AAAE,2DAAkB;AAAE,uDAAgB;AAAE,+CAAY;AAAE,uDAAuC;AAGjI,+EAA+E;AAC/E,iBAAc,iBAAiB,CAAC,EAAA;AAEhC,4BAA0D,kBAAkB,CAAC;AAArE,8CAAU;AAAE,4DAAyD;AAE7E,yBAAuB,eAAe,CAAC;AAA/B,uCAA+B;AACvC,oCAAiC,0BAA0B,CAAC;AAApD,sEAAoD;AAC5D,yBAAgE,eAAe,CAAC;AAAxE,qCAAO;AAAE,qDAAe;AAAE,+BAAI;AAAE,uCAAQ;AAAE,qCAA8B;AAChF,oCAA+F,0BAA0B,CAAC;AAAvF,oFAAuF;AAC1H,+BAA4B,qBAAqB,CAAC;AAA1C,uDAA0C;AAClD,sCAA2J,4BAA4B,CAAC;AAAhL,kEAAe;AAAE,8EAAqB;AAAE,8EAAqB;AAAE,wEAAkB;AAAE,4EAAoB;AAAE,sEAAiB;AAAE,oEAAoD;AACxL,6BAA0B,mBAAmB,CAAC;AAAtC,iDAAsC","sourcesContent":["/**\n * @module\n * @description\n * The `di` module provides dependency injection container services.\n */\n\nexport {HostMetadata, InjectMetadata, InjectableMetadata, OptionalMetadata, SelfMetadata, SkipSelfMetadata} from './di/metadata';\n\n\n// we have to reexport * because Dart and TS export two different sets of types\nexport * from './di/decorators';\n\nexport {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref';\n\nexport {Injector} from './di/injector';\nexport {ReflectiveInjector} from './di/reflective_injector';\nexport {Binding, ProviderBuilder, bind, Provider, provide} from './di/provider';\nexport {ResolvedReflectiveBinding, ResolvedReflectiveFactory, ResolvedReflectiveProvider} from './di/reflective_provider';\nexport {ReflectiveKey} from './di/reflective_key';\nexport {NoProviderError, AbstractProviderError, CyclicDependencyError, InstantiationError, InvalidProviderError, NoAnnotationError, OutOfBoundsError} from './di/reflective_exceptions';\nexport {OpaqueToken} from './di/opaque_token';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,8 +1,8 @@
1
- export { PromiseWrapper, PromiseCompleter } from './promise';
2
1
  import { Observable } from 'rxjs/Observable';
3
2
  import { Subject } from 'rxjs/Subject';
4
3
  export { Observable } from 'rxjs/Observable';
5
4
  export { Subject } from 'rxjs/Subject';
5
+ export { PromiseCompleter, PromiseWrapper } from './promise';
6
6
  export declare class TimerWrapper {
7
7
  static setTimeout(fn: (...args: any[]) => void, millis: number): number;
8
8
  static clearTimeout(id: number): void;
@@ -61,14 +61,21 @@ export declare class ObservableWrapper {
61
61
  * }
62
62
  * ```
63
63
  *
64
- * Use Rx.Observable but provides an adapter to make it work as specified here:
64
+ * The events payload can be accessed by the parameter `$event` on the components output event
65
+ * handler:
66
+ *
67
+ * ```
68
+ * <zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
69
+ * ```
70
+ *
71
+ * Uses Rx.Observable but provides an adapter to make it work as specified here:
65
72
  * https://github.com/jhusain/observable-spec
66
73
  *
67
74
  * Once a reference implementation of the spec is available, switch to it.
75
+ * @stable
68
76
  */
69
77
  export declare class EventEmitter<T> extends Subject<T> {
70
- /** @internal */
71
- _isAsync: boolean;
78
+ __isAsync: boolean;
72
79
  /**
73
80
  * Creates an instance of [EventEmitter], which depending on [isAsync],
74
81
  * delivers events synchronously or asynchronously.