@angular/core 0.0.0-6 → 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 (627) hide show
  1. package/{core.umd.js → bundles/core.umd.js} +6500 -4671
  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 +102 -10
  7. package/esm/private_export.js +41 -9
  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 +4 -4
  202. package/esm/src/linker/view_utils.js +25 -22
  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.d.ts +22 -0
  265. package/esm/src/security.js +23 -0
  266. package/esm/src/security.js.map +1 -0
  267. package/esm/src/testability/testability.d.ts +3 -19
  268. package/esm/src/testability/testability.js +10 -5
  269. package/esm/src/testability/testability.js.map +1 -1
  270. package/esm/src/testability/testability.metadata.json +1 -1
  271. package/esm/src/util/decorators.d.ts +2 -1
  272. package/esm/src/util/decorators.js +10 -9
  273. package/esm/src/util/decorators.js.map +1 -1
  274. package/esm/src/util.js.map +1 -1
  275. package/esm/src/zone/ng_zone.d.ts +6 -17
  276. package/esm/src/zone/ng_zone.js +7 -6
  277. package/esm/src/zone/ng_zone.js.map +1 -1
  278. package/esm/src/zone/ng_zone_impl.d.ts +1 -4
  279. package/esm/src/zone/ng_zone_impl.js +3 -2
  280. package/esm/src/zone/ng_zone_impl.js.map +1 -1
  281. package/esm/src/zone.js.map +1 -1
  282. package/esm/testing/async.js +20 -22
  283. package/esm/testing/async.js.map +1 -1
  284. package/esm/testing/async.metadata.json +1 -0
  285. package/esm/testing/async_test_completer.js.map +1 -1
  286. package/esm/testing/fake_async.d.ts +4 -1
  287. package/esm/testing/fake_async.js +9 -2
  288. package/esm/testing/fake_async.js.map +1 -1
  289. package/esm/testing/lang_utils.js +1 -1
  290. package/esm/testing/lang_utils.js.map +1 -1
  291. package/esm/testing/lang_utils.metadata.json +1 -0
  292. package/esm/testing/logger.js +5 -3
  293. package/esm/testing/logger.js.map +1 -1
  294. package/esm/testing/logger.metadata.json +1 -1
  295. package/esm/testing/mock_application_ref.d.ts +1 -1
  296. package/esm/testing/mock_application_ref.js +1 -0
  297. package/esm/testing/mock_application_ref.js.map +1 -1
  298. package/esm/testing/mock_application_ref.metadata.json +1 -1
  299. package/esm/testing/ng_zone_mock.d.ts +0 -1
  300. package/esm/testing/ng_zone_mock.js +2 -1
  301. package/esm/testing/ng_zone_mock.js.map +1 -1
  302. package/esm/testing/ng_zone_mock.metadata.json +1 -1
  303. package/esm/testing/regexp.js +1 -1
  304. package/esm/testing/regexp.js.map +1 -1
  305. package/esm/testing/regexp.metadata.json +1 -0
  306. package/esm/testing/test_injector.d.ts +6 -12
  307. package/esm/testing/test_injector.js +4 -10
  308. package/esm/testing/test_injector.js.map +1 -1
  309. package/esm/testing/test_injector.metadata.json +1 -0
  310. package/esm/testing/testing.d.ts +2 -2
  311. package/esm/testing/testing.js +2 -2
  312. package/esm/testing/testing.js.map +1 -1
  313. package/esm/testing/testing.metadata.json +1 -1
  314. package/esm/testing.js.map +1 -1
  315. package/index.d.ts +5 -4
  316. package/index.js +10 -8
  317. package/index.js.map +1 -1
  318. package/package.json +5 -1
  319. package/private_export.d.ts +102 -10
  320. package/private_export.js +41 -9
  321. package/private_export.js.map +1 -1
  322. package/private_export.metadata.json +1 -1
  323. package/src/animation/active_animation_players_map.d.ts +11 -0
  324. package/src/animation/active_animation_players_map.js +54 -0
  325. package/src/animation/active_animation_players_map.js.map +1 -0
  326. package/src/animation/animation_constants.d.ts +4 -0
  327. package/src/animation/animation_constants.js +6 -0
  328. package/src/animation/animation_constants.js.map +1 -0
  329. package/src/animation/animation_constants.metadata.json +1 -0
  330. package/src/animation/animation_driver.d.ts +9 -0
  331. package/src/animation/animation_driver.js +25 -0
  332. package/src/animation/animation_driver.js.map +1 -0
  333. package/src/animation/animation_group_player.d.ts +18 -0
  334. package/src/animation/animation_group_player.js +64 -0
  335. package/src/animation/animation_group_player.js.map +1 -0
  336. package/src/animation/animation_keyframe.d.ts +6 -0
  337. package/src/animation/animation_keyframe.js +10 -0
  338. package/src/animation/animation_keyframe.js.map +1 -0
  339. package/src/animation/animation_player.d.ts +26 -0
  340. package/src/animation/animation_player.js +42 -0
  341. package/src/animation/animation_player.js.map +1 -0
  342. package/src/animation/animation_sequence_player.d.ts +21 -0
  343. package/src/animation/animation_sequence_player.js +69 -0
  344. package/src/animation/animation_sequence_player.js.map +1 -0
  345. package/src/animation/animation_style_util.d.ts +32 -0
  346. package/src/animation/animation_style_util.js +99 -0
  347. package/src/animation/animation_style_util.js.map +1 -0
  348. package/src/animation/animation_style_util.metadata.json +1 -0
  349. package/src/animation/animation_styles.d.ts +8 -0
  350. package/src/animation/animation_styles.js +9 -0
  351. package/src/animation/animation_styles.js.map +1 -0
  352. package/src/animation/metadata.d.ts +511 -0
  353. package/src/animation/metadata.js +627 -0
  354. package/src/animation/metadata.js.map +1 -0
  355. package/src/animation/metadata.metadata.json +1 -0
  356. package/src/application_common_providers.d.ts +1 -0
  357. package/src/application_common_providers.js +4 -3
  358. package/src/application_common_providers.js.map +1 -1
  359. package/src/application_common_providers.metadata.json +1 -1
  360. package/src/application_ref.d.ts +17 -41
  361. package/src/application_ref.js +30 -21
  362. package/src/application_ref.js.map +1 -1
  363. package/src/application_ref.metadata.json +1 -1
  364. package/src/application_tokens.d.ts +6 -1
  365. package/src/application_tokens.js +9 -4
  366. package/src/application_tokens.js.map +1 -1
  367. package/src/application_tokens.metadata.json +1 -1
  368. package/src/change_detection/change_detection.d.ts +9 -8
  369. package/src/change_detection/change_detection.js +21 -21
  370. package/src/change_detection/change_detection.js.map +1 -1
  371. package/src/change_detection/change_detection.metadata.json +1 -1
  372. package/src/change_detection/change_detection_util.d.ts +3 -1
  373. package/src/change_detection/change_detection_util.js +6 -5
  374. package/src/change_detection/change_detection_util.js.map +1 -1
  375. package/src/change_detection/change_detection_util.metadata.json +1 -1
  376. package/src/change_detection/change_detector_ref.d.ts +3 -0
  377. package/src/change_detection/change_detector_ref.js +3 -0
  378. package/src/change_detection/change_detector_ref.js.map +1 -1
  379. package/src/change_detection/constants.d.ts +1 -0
  380. package/src/change_detection/constants.js +4 -3
  381. package/src/change_detection/constants.js.map +1 -1
  382. package/src/change_detection/constants.metadata.json +1 -1
  383. package/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  384. package/src/change_detection/differs/default_iterable_differ.js +25 -18
  385. package/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  386. package/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  387. package/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  388. package/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  389. package/src/change_detection/differs/iterable_differs.d.ts +4 -1
  390. package/src/change_detection/differs/iterable_differs.js +4 -3
  391. package/src/change_detection/differs/iterable_differs.js.map +1 -1
  392. package/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  393. package/src/change_detection/differs/keyvalue_differs.js +4 -3
  394. package/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  395. package/src/change_detection/pipe_transform.js.map +1 -1
  396. package/src/change_detection.d.ts +1 -1
  397. package/src/change_detection.js +9 -9
  398. package/src/change_detection.js.map +1 -1
  399. package/src/console.js +2 -1
  400. package/src/console.js.map +1 -1
  401. package/src/console.metadata.json +1 -1
  402. package/src/debug/debug_node.d.ts +20 -2
  403. package/src/debug/debug_node.js +16 -2
  404. package/src/debug/debug_node.js.map +1 -1
  405. package/src/debug/debug_node.metadata.json +1 -0
  406. package/src/debug/debug_renderer.d.ts +10 -6
  407. package/src/debug/debug_renderer.js +12 -1
  408. package/src/debug/debug_renderer.js.map +1 -1
  409. package/src/di/decorators.d.ts +13 -1
  410. package/src/di/decorators.js +7 -1
  411. package/src/di/decorators.js.map +1 -1
  412. package/src/di/decorators.metadata.json +1 -1
  413. package/src/di/forward_ref.d.ts +3 -1
  414. package/src/di/forward_ref.js +3 -1
  415. package/src/di/forward_ref.js.map +1 -1
  416. package/src/di/injector.d.ts +4 -1
  417. package/src/di/injector.js +5 -2
  418. package/src/di/injector.js.map +1 -1
  419. package/src/di/injector.metadata.json +1 -1
  420. package/src/di/metadata.d.ts +8 -1
  421. package/src/di/metadata.js +10 -3
  422. package/src/di/metadata.js.map +1 -1
  423. package/src/di/opaque_token.d.ts +2 -1
  424. package/src/di/opaque_token.js +22 -21
  425. package/src/di/opaque_token.js.map +1 -1
  426. package/src/di/provider.d.ts +11 -10
  427. package/src/di/provider.js +17 -14
  428. package/src/di/provider.js.map +1 -1
  429. package/src/di/provider.metadata.json +1 -0
  430. package/src/di/provider_util.js.map +1 -1
  431. package/src/di/provider_util.metadata.json +1 -0
  432. package/src/di/reflective_exceptions.d.ts +11 -16
  433. package/src/di/reflective_exceptions.js +28 -22
  434. package/src/di/reflective_exceptions.js.map +1 -1
  435. package/src/di/reflective_injector.d.ts +3 -33
  436. package/src/di/reflective_injector.js +9 -6
  437. package/src/di/reflective_injector.js.map +1 -1
  438. package/src/di/reflective_key.d.ts +1 -8
  439. package/src/di/reflective_key.js +3 -2
  440. package/src/di/reflective_key.js.map +1 -1
  441. package/src/di/reflective_provider.d.ts +2 -1
  442. package/src/di/reflective_provider.js +6 -5
  443. package/src/di/reflective_provider.js.map +1 -1
  444. package/src/di/reflective_provider.metadata.json +1 -0
  445. package/src/di.d.ts +2 -2
  446. package/src/di.js +7 -9
  447. package/src/di.js.map +1 -1
  448. package/src/facade/async.d.ts +11 -4
  449. package/src/facade/async.js +27 -17
  450. package/src/facade/async.js.map +1 -1
  451. package/src/facade/base_wrapped_exception.js +4 -4
  452. package/src/facade/base_wrapped_exception.js.map +1 -1
  453. package/src/facade/collection.js.map +1 -1
  454. package/src/facade/collection.metadata.json +1 -1
  455. package/src/facade/exception_handler.d.ts +2 -11
  456. package/src/facade/exception_handler.js +8 -7
  457. package/src/facade/exception_handler.js.map +1 -1
  458. package/src/facade/exceptions.d.ts +4 -0
  459. package/src/facade/exceptions.js +6 -2
  460. package/src/facade/exceptions.js.map +1 -1
  461. package/src/facade/exceptions.metadata.json +1 -0
  462. package/src/facade/lang.d.ts +6 -4
  463. package/src/facade/lang.js +12 -11
  464. package/src/facade/lang.js.map +1 -1
  465. package/src/facade/lang.metadata.json +1 -1
  466. package/src/facade/math.d.ts +2 -0
  467. package/src/facade/math.js +5 -0
  468. package/src/facade/math.js.map +1 -0
  469. package/src/facade/math.metadata.json +1 -0
  470. package/src/facade/promise.js.map +1 -1
  471. package/src/linker/component_factory.d.ts +5 -4
  472. package/src/linker/component_factory.js +7 -3
  473. package/src/linker/component_factory.js.map +1 -1
  474. package/src/linker/component_resolver.d.ts +5 -4
  475. package/src/linker/component_resolver.js +12 -7
  476. package/src/linker/component_resolver.js.map +1 -1
  477. package/src/linker/component_resolver.metadata.json +1 -1
  478. package/src/linker/debug_context.js +5 -4
  479. package/src/linker/debug_context.js.map +1 -1
  480. package/src/linker/dynamic_component_loader.d.ts +5 -6
  481. package/src/linker/dynamic_component_loader.js +5 -3
  482. package/src/linker/dynamic_component_loader.js.map +1 -1
  483. package/src/linker/dynamic_component_loader.metadata.json +1 -1
  484. package/src/linker/element.d.ts +3 -3
  485. package/src/linker/element.js +5 -5
  486. package/src/linker/element.js.map +1 -1
  487. package/src/linker/element_injector.js.map +1 -1
  488. package/src/linker/element_ref.d.ts +1 -0
  489. package/src/linker/element_ref.js +5 -5
  490. package/src/linker/element_ref.js.map +1 -1
  491. package/src/linker/exceptions.d.ts +4 -1
  492. package/src/linker/exceptions.js +4 -1
  493. package/src/linker/exceptions.js.map +1 -1
  494. package/src/linker/query_list.d.ts +3 -10
  495. package/src/linker/query_list.js +8 -7
  496. package/src/linker/query_list.js.map +1 -1
  497. package/src/linker/systemjs_component_resolver.d.ts +21 -0
  498. package/src/linker/systemjs_component_resolver.js +52 -0
  499. package/src/linker/systemjs_component_resolver.js.map +1 -0
  500. package/src/linker/template_ref.d.ts +2 -1
  501. package/src/linker/template_ref.js +1 -0
  502. package/src/linker/template_ref.js.map +1 -1
  503. package/src/linker/view.d.ts +12 -1
  504. package/src/linker/view.js +65 -15
  505. package/src/linker/view.js.map +1 -1
  506. package/src/linker/view_container_ref.d.ts +2 -10
  507. package/src/linker/view_container_ref.js +4 -3
  508. package/src/linker/view_container_ref.js.map +1 -1
  509. package/src/linker/view_ref.d.ts +5 -1
  510. package/src/linker/view_ref.js +6 -2
  511. package/src/linker/view_ref.js.map +1 -1
  512. package/src/linker/view_type.js.map +1 -1
  513. package/src/linker/view_utils.d.ts +4 -4
  514. package/src/linker/view_utils.js +25 -22
  515. package/src/linker/view_utils.js.map +1 -1
  516. package/src/linker/view_utils.metadata.json +1 -1
  517. package/src/linker.d.ts +5 -4
  518. package/src/linker.js +12 -9
  519. package/src/linker.js.map +1 -1
  520. package/src/metadata/di.d.ts +8 -1
  521. package/src/metadata/di.js +10 -3
  522. package/src/metadata/di.js.map +1 -1
  523. package/src/metadata/directives.d.ts +104 -20
  524. package/src/metadata/directives.js +25 -27
  525. package/src/metadata/directives.js.map +1 -1
  526. package/src/metadata/lifecycle_hooks.d.ts +46 -31
  527. package/src/metadata/lifecycle_hooks.js +496 -10
  528. package/src/metadata/lifecycle_hooks.js.map +1 -1
  529. package/src/metadata/lifecycle_hooks.metadata.json +1 -1
  530. package/src/metadata/view.d.ts +6 -2
  531. package/src/metadata/view.js +3 -1
  532. package/src/metadata/view.js.map +1 -1
  533. package/src/metadata/view.metadata.json +1 -1
  534. package/src/metadata.d.ts +49 -15
  535. package/src/metadata.js +70 -37
  536. package/src/metadata.js.map +1 -1
  537. package/src/metadata.metadata.json +1 -1
  538. package/src/platform_common_providers.d.ts +1 -0
  539. package/src/platform_common_providers.js +3 -3
  540. package/src/platform_common_providers.js.map +1 -1
  541. package/src/platform_common_providers.metadata.json +1 -1
  542. package/src/platform_directives_and_pipes.d.ts +48 -45
  543. package/src/platform_directives_and_pipes.js +50 -47
  544. package/src/platform_directives_and_pipes.js.map +1 -1
  545. package/src/platform_directives_and_pipes.metadata.json +1 -1
  546. package/src/profile/profile.d.ts +5 -1
  547. package/src/profile/profile.js +5 -3
  548. package/src/profile/profile.js.map +1 -1
  549. package/src/profile/profile.metadata.json +1 -1
  550. package/src/profile/wtf_impl.js +1 -1
  551. package/src/profile/wtf_impl.js.map +1 -1
  552. package/src/profile/wtf_impl.metadata.json +1 -0
  553. package/src/profile/wtf_init.js +2 -2
  554. package/src/profile/wtf_init.js.map +1 -1
  555. package/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  556. package/src/reflection/platform_reflection_capabilities.js.map +1 -1
  557. package/src/reflection/reflection.d.ts +1 -1
  558. package/src/reflection/reflection.js +2 -2
  559. package/src/reflection/reflection.js.map +1 -1
  560. package/src/reflection/reflection.metadata.json +1 -1
  561. package/src/reflection/reflection_capabilities.d.ts +4 -5
  562. package/src/reflection/reflection_capabilities.js +24 -10
  563. package/src/reflection/reflection_capabilities.js.map +1 -1
  564. package/src/reflection/reflector.d.ts +8 -20
  565. package/src/reflection/reflector.js +13 -3
  566. package/src/reflection/reflector.js.map +1 -1
  567. package/src/reflection/reflector_reader.js +3 -3
  568. package/src/reflection/reflector_reader.js.map +1 -1
  569. package/src/reflection/types.js.map +1 -1
  570. package/src/render/api.d.ts +17 -6
  571. package/src/render/api.js +8 -1
  572. package/src/render/api.js.map +1 -1
  573. package/src/render.d.ts +1 -1
  574. package/src/render.js +2 -2
  575. package/src/render.js.map +1 -1
  576. package/src/security.d.ts +22 -0
  577. package/src/security.js +28 -0
  578. package/src/security.js.map +1 -0
  579. package/src/testability/testability.d.ts +3 -19
  580. package/src/testability/testability.js +10 -5
  581. package/src/testability/testability.js.map +1 -1
  582. package/src/testability/testability.metadata.json +1 -1
  583. package/src/util/decorators.d.ts +2 -1
  584. package/src/util/decorators.js +10 -9
  585. package/src/util/decorators.js.map +1 -1
  586. package/src/util.js.map +1 -1
  587. package/src/zone/ng_zone.d.ts +6 -17
  588. package/src/zone/ng_zone.js +11 -6
  589. package/src/zone/ng_zone.js.map +1 -1
  590. package/src/zone/ng_zone_impl.d.ts +1 -4
  591. package/src/zone/ng_zone_impl.js +3 -2
  592. package/src/zone/ng_zone_impl.js.map +1 -1
  593. package/src/zone.js.map +1 -1
  594. package/testing/async.js +20 -22
  595. package/testing/async.js.map +1 -1
  596. package/testing/async.metadata.json +1 -0
  597. package/testing/async_test_completer.js.map +1 -1
  598. package/testing/fake_async.d.ts +4 -1
  599. package/testing/fake_async.js +10 -2
  600. package/testing/fake_async.js.map +1 -1
  601. package/testing/lang_utils.js +1 -1
  602. package/testing/lang_utils.js.map +1 -1
  603. package/testing/lang_utils.metadata.json +1 -0
  604. package/testing/logger.js +5 -3
  605. package/testing/logger.js.map +1 -1
  606. package/testing/logger.metadata.json +1 -1
  607. package/testing/mock_application_ref.d.ts +1 -1
  608. package/testing/mock_application_ref.js +1 -0
  609. package/testing/mock_application_ref.js.map +1 -1
  610. package/testing/mock_application_ref.metadata.json +1 -1
  611. package/testing/ng_zone_mock.d.ts +0 -1
  612. package/testing/ng_zone_mock.js +2 -1
  613. package/testing/ng_zone_mock.js.map +1 -1
  614. package/testing/ng_zone_mock.metadata.json +1 -1
  615. package/testing/regexp.js +1 -1
  616. package/testing/regexp.js.map +1 -1
  617. package/testing/regexp.metadata.json +1 -0
  618. package/testing/test_injector.d.ts +6 -12
  619. package/testing/test_injector.js +3 -9
  620. package/testing/test_injector.js.map +1 -1
  621. package/testing/test_injector.metadata.json +1 -0
  622. package/testing/testing.d.ts +2 -2
  623. package/testing/testing.js +5 -5
  624. package/testing/testing.js.map +1 -1
  625. package/testing/testing.metadata.json +1 -1
  626. package/testing.js.map +1 -1
  627. package/esm/core.umd.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.umd.js","sources":["src/facade/lang.js","src/di/metadata.js","src/di/forward_ref.js","src/metadata/di.js","src/change_detection/constants.js","src/metadata/directives.js","src/metadata/view.js","src/util/decorators.js","src/metadata.js","src/di/decorators.js","src/facade/base_wrapped_exception.js","src/facade/collection.js","src/facade/exception_handler.js","src/facade/exceptions.js","src/di/injector.js","src/reflection/reflector_reader.js","src/reflection/reflector.js","src/reflection/reflection_capabilities.js","src/reflection/reflection.js","src/di/reflective_key.js","src/di/reflective_exceptions.js","src/di/provider.js","src/di/provider_util.js","src/di/reflective_provider.js","src/di/reflective_injector.js","src/di/opaque_token.js","src/facade/promise.js","src/facade/async.js","src/zone/ng_zone_impl.js","src/zone/ng_zone.js","src/application_tokens.js","src/testability/testability.js","src/linker/view_type.js","src/linker/element_ref.js","src/profile/wtf_impl.js","src/profile/profile.js","src/linker/view_container_ref.js","src/linker/element.js","src/linker/exceptions.js","src/change_detection/differs/iterable_differs.js","src/change_detection/differs/default_iterable_differ.js","src/change_detection/differs/keyvalue_differs.js","src/change_detection/differs/default_keyvalue_differ.js","src/change_detection/change_detector_ref.js","src/change_detection/change_detection_util.js","src/change_detection/change_detection.js","src/render/api.js","src/linker/view_utils.js","src/linker/component_factory.js","src/linker/component_resolver.js","src/console.js","src/application_ref.js","src/linker/query_list.js","src/linker/dynamic_component_loader.js","src/linker/template_ref.js","src/linker/view_ref.js","src/debug/debug_node.js","src/platform_directives_and_pipes.js","src/platform_common_providers.js","src/application_common_providers.js","src/metadata/lifecycle_hooks.js","src/linker/debug_context.js","src/linker/element_injector.js","src/linker/view.js","src/profile/wtf_init.js","src/debug/debug_renderer.js","private_export.js"],"sourcesContent":["var globalScope;\nif (typeof window === 'undefined') {\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492\n globalScope = self;\n }\n else {\n globalScope = global;\n }\n}\nelse {\n globalScope = window;\n}\nexport function scheduleMicroTask(fn) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\nexport const IS_DART = false;\n// Need to declare a new variable for global here since TypeScript\n// exports the original value of the symbol.\nvar _global = globalScope;\nexport { _global as global };\nexport var Type = Function;\nexport function getTypeNameForDebugging(type) {\n if (type['name']) {\n return type['name'];\n }\n return typeof type;\n}\nexport var Math = _global.Math;\nexport var Date = _global.Date;\nvar _devMode = true;\nvar _modeLocked = false;\nexport function lockMode() {\n _modeLocked = true;\n}\n/**\n * Disable Angular's development mode, which turns off assertions and other\n * checks within the framework.\n *\n * One important assertion this disables verifies that a change detection pass\n * does not result in additional changes to any bindings (also known as\n * unidirectional data flow).\n */\nexport function enableProdMode() {\n if (_modeLocked) {\n // Cannot use BaseException as that ends up importing from facade/lang.\n throw 'Cannot enable prod mode after platform setup.';\n }\n _devMode = false;\n}\nexport function assertionsEnabled() {\n return _devMode;\n}\n// TODO: remove calls to assert in production environment\n// Note: Can't just export this and import in in other files\n// as `assert` is a reserved keyword in Dart\n_global.assert = function assert(condition) {\n // TODO: to be fixed properly via #2830, noop for now\n};\nexport function isPresent(obj) {\n return obj !== undefined && obj !== null;\n}\nexport function isBlank(obj) {\n return obj === undefined || obj === null;\n}\nexport function isBoolean(obj) {\n return typeof obj === \"boolean\";\n}\nexport function isNumber(obj) {\n return typeof obj === \"number\";\n}\nexport function isString(obj) {\n return typeof obj === \"string\";\n}\nexport function isFunction(obj) {\n return typeof obj === \"function\";\n}\nexport function isType(obj) {\n return isFunction(obj);\n}\nexport function isStringMap(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\nexport function isStrictStringMap(obj) {\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\nexport function isPromise(obj) {\n return obj instanceof _global.Promise;\n}\nexport function isArray(obj) {\n return Array.isArray(obj);\n}\nexport function isDate(obj) {\n return obj instanceof Date && !isNaN(obj.valueOf());\n}\nexport function noop() { }\nexport function stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (token === undefined || token === null) {\n return '' + token;\n }\n if (token.name) {\n return token.name;\n }\n if (token.overriddenName) {\n return token.overriddenName;\n }\n var res = token.toString();\n var newLineIndex = res.indexOf(\"\\n\");\n return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);\n}\n// serialize / deserialize enum exist only for consistency with dart API\n// enums in typescript don't need to be serialized\nexport function serializeEnum(val) {\n return val;\n}\nexport function deserializeEnum(val, values) {\n return val;\n}\nexport function resolveEnumToken(enumValue, val) {\n return enumValue[val];\n}\nexport class StringWrapper {\n static fromCharCode(code) { return String.fromCharCode(code); }\n static charCodeAt(s, index) { return s.charCodeAt(index); }\n static split(s, regExp) { return s.split(regExp); }\n static equals(s, s2) { return s === s2; }\n static stripLeft(s, charVal) {\n if (s && s.length) {\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n if (s[i] != charVal)\n break;\n pos++;\n }\n s = s.substring(pos);\n }\n return s;\n }\n static stripRight(s, charVal) {\n if (s && s.length) {\n var pos = s.length;\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] != charVal)\n break;\n pos--;\n }\n s = s.substring(0, pos);\n }\n return s;\n }\n static replace(s, from, replace) {\n return s.replace(from, replace);\n }\n static replaceAll(s, from, replace) {\n return s.replace(from, replace);\n }\n static slice(s, from = 0, to = null) {\n return s.slice(from, to === null ? undefined : to);\n }\n static replaceAllMapped(s, from, cb) {\n return s.replace(from, function (...matches) {\n // Remove offset & string from the result array\n matches.splice(-2, 2);\n // The callback receives match, p1, ..., pn\n return cb(matches);\n });\n }\n static contains(s, substr) { return s.indexOf(substr) != -1; }\n static compare(a, b) {\n if (a < b) {\n return -1;\n }\n else if (a > b) {\n return 1;\n }\n else {\n return 0;\n }\n }\n}\nexport class StringJoiner {\n constructor(parts = []) {\n this.parts = parts;\n }\n add(part) { this.parts.push(part); }\n toString() { return this.parts.join(\"\"); }\n}\nexport class NumberParseError extends Error {\n constructor(message) {\n super();\n this.message = message;\n }\n toString() { return this.message; }\n}\nexport class NumberWrapper {\n static toFixed(n, fractionDigits) { return n.toFixed(fractionDigits); }\n static equal(a, b) { return a === b; }\n static parseIntAutoRadix(text) {\n var result = parseInt(text);\n if (isNaN(result)) {\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text);\n }\n return result;\n }\n static parseInt(text, radix) {\n if (radix == 10) {\n if (/^(\\-|\\+)?[0-9]+$/.test(text)) {\n return parseInt(text, radix);\n }\n }\n else if (radix == 16) {\n if (/^(\\-|\\+)?[0-9ABCDEFabcdef]+$/.test(text)) {\n return parseInt(text, radix);\n }\n }\n else {\n var result = parseInt(text, radix);\n if (!isNaN(result)) {\n return result;\n }\n }\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text + \" in base \" +\n radix);\n }\n // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.\n static parseFloat(text) { return parseFloat(text); }\n static get NaN() { return NaN; }\n static isNaN(value) { return isNaN(value); }\n static isInteger(value) { return Number.isInteger(value); }\n}\nexport var RegExp = _global.RegExp;\nexport class RegExpWrapper {\n static create(regExpStr, flags = '') {\n flags = flags.replace(/g/g, '');\n return new _global.RegExp(regExpStr, flags + 'g');\n }\n static firstMatch(regExp, input) {\n // Reset multimatch regex state\n regExp.lastIndex = 0;\n return regExp.exec(input);\n }\n static test(regExp, input) {\n regExp.lastIndex = 0;\n return regExp.test(input);\n }\n static matcher(regExp, input) {\n // Reset regex state for the case\n // someone did not loop over all matches\n // last time.\n regExp.lastIndex = 0;\n return { re: regExp, input: input };\n }\n static replaceAll(regExp, input, replace) {\n let c = regExp.exec(input);\n let res = '';\n regExp.lastIndex = 0;\n let prev = 0;\n while (c) {\n res += input.substring(prev, c.index);\n res += replace(c);\n prev = c.index + c[0].length;\n regExp.lastIndex = prev;\n c = regExp.exec(input);\n }\n res += input.substring(prev);\n return res;\n }\n}\nexport class RegExpMatcherWrapper {\n static next(matcher) {\n return matcher.re.exec(matcher.input);\n }\n}\nexport class FunctionWrapper {\n static apply(fn, posArgs) { return fn.apply(null, posArgs); }\n}\n// JS has NaN !== NaN\nexport function looseIdentical(a, b) {\n return a === b || typeof a === \"number\" && typeof b === \"number\" && isNaN(a) && isNaN(b);\n}\n// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)\n// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map\nexport function getMapKey(value) {\n return value;\n}\nexport function normalizeBlank(obj) {\n return isBlank(obj) ? null : obj;\n}\nexport function normalizeBool(obj) {\n return isBlank(obj) ? false : obj;\n}\nexport function isJsObject(o) {\n return o !== null && (typeof o === \"function\" || typeof o === \"object\");\n}\nexport function print(obj) {\n console.log(obj);\n}\nexport function warn(obj) {\n console.warn(obj);\n}\n// Can't be all uppercase as our transpiler would think it is a special directive...\nexport class Json {\n static parse(s) { return _global.JSON.parse(s); }\n static stringify(data) {\n // Dart doesn't take 3 arguments\n return _global.JSON.stringify(data, null, 2);\n }\n}\nexport class DateWrapper {\n static create(year, month = 1, day = 1, hour = 0, minutes = 0, seconds = 0, milliseconds = 0) {\n return new Date(year, month - 1, day, hour, minutes, seconds, milliseconds);\n }\n static fromISOString(str) { return new Date(str); }\n static fromMillis(ms) { return new Date(ms); }\n static toMillis(date) { return date.getTime(); }\n static now() { return new Date(); }\n static toJson(date) { return date.toJSON(); }\n}\nexport function setValueOnPath(global, path, value) {\n var parts = path.split('.');\n var obj = global;\n while (parts.length > 1) {\n var name = parts.shift();\n if (obj.hasOwnProperty(name) && isPresent(obj[name])) {\n obj = obj[name];\n }\n else {\n obj = obj[name] = {};\n }\n }\n if (obj === undefined || obj === null) {\n obj = {};\n }\n obj[parts.shift()] = value;\n}\nvar _symbolIterator = null;\nexport function getSymbolIterator() {\n if (isBlank(_symbolIterator)) {\n if (isPresent(globalScope.Symbol) && isPresent(Symbol.iterator)) {\n _symbolIterator = Symbol.iterator;\n }\n else {\n // es6-shim specific logic\n var keys = Object.getOwnPropertyNames(Map.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (key !== 'entries' && key !== 'size' &&\n Map.prototype[key] === Map.prototype['entries']) {\n _symbolIterator = key;\n }\n }\n }\n }\n return _symbolIterator;\n}\nexport function evalExpression(sourceUrl, expr, declarations, vars) {\n var fnBody = `${declarations}\\nreturn ${expr}\\n//# sourceURL=${sourceUrl}`;\n var fnArgNames = [];\n var fnArgValues = [];\n for (var argName in vars) {\n fnArgNames.push(argName);\n fnArgValues.push(vars[argName]);\n }\n return new Function(...fnArgNames.concat(fnBody))(...fnArgValues);\n}\nexport function isPrimitive(obj) {\n return !isJsObject(obj);\n}\nexport function hasConstructor(value, type) {\n return value.constructor === type;\n}\nexport function bitWiseOr(values) {\n return values.reduce((a, b) => { return a | b; });\n}\nexport function bitWiseAnd(values) {\n return values.reduce((a, b) => { return a & b; });\n}\nexport function escape(s) {\n return _global.encodeURI(s);\n}\n//# sourceMappingURL=lang.js.map","import { stringify } from '../../src/facade/lang';\n/**\n * A parameter metadata that specifies a dependency.\n *\n * ### Example ([live demo](http://plnkr.co/edit/6uHYJK?p=preview))\n *\n * ```typescript\n * class Engine {}\n *\n * @Injectable()\n * class Car {\n * engine;\n * constructor(@Inject(\"MyEngine\") engine:Engine) {\n * this.engine = engine;\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([\n * provide(\"MyEngine\", {useClass: Engine}),\n * Car\n * ]);\n *\n * expect(injector.get(Car).engine instanceof Engine).toBe(true);\n * ```\n *\n * When `@Inject()` is not present, {@link Injector} will use the type annotation of the parameter.\n *\n * ### Example\n *\n * ```typescript\n * class Engine {}\n *\n * @Injectable()\n * class Car {\n * constructor(public engine: Engine) {} //same as constructor(@Inject(Engine) engine:Engine)\n * }\n *\n * var injector = Injector.resolveAndCreate([Engine, Car]);\n * expect(injector.get(Car).engine instanceof Engine).toBe(true);\n * ```\n * @ts2dart_const\n */\nexport class InjectMetadata {\n constructor(token) {\n this.token = token;\n }\n toString() { return `@Inject(${stringify(this.token)})`; }\n}\n/**\n * A parameter metadata that marks a dependency as optional. {@link Injector} provides `null` if\n * the dependency is not found.\n *\n * ### Example ([live demo](http://plnkr.co/edit/AsryOm?p=preview))\n *\n * ```typescript\n * class Engine {}\n *\n * @Injectable()\n * class Car {\n * engine;\n * constructor(@Optional() engine:Engine) {\n * this.engine = engine;\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([Car]);\n * expect(injector.get(Car).engine).toBeNull();\n * ```\n * @ts2dart_const\n */\nexport class OptionalMetadata {\n toString() { return `@Optional()`; }\n}\n/**\n * `DependencyMetadata` is used by the framework to extend DI.\n * This is internal to Angular and should not be used directly.\n * @ts2dart_const\n */\nexport class DependencyMetadata {\n get token() { return null; }\n}\n/**\n * A marker metadata that marks a class as available to {@link Injector} for creation.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Wk4DMQ?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class UsefulService {}\n *\n * @Injectable()\n * class NeedsService {\n * constructor(public service:UsefulService) {}\n * }\n *\n * var injector = Injector.resolveAndCreate([NeedsService, UsefulService]);\n * expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);\n * ```\n * {@link Injector} will throw {@link NoAnnotationError} when trying to instantiate a class that\n * does not have `@Injectable` marker, as shown in the example below.\n *\n * ```typescript\n * class UsefulService {}\n *\n * class NeedsService {\n * constructor(public service:UsefulService) {}\n * }\n *\n * var injector = Injector.resolveAndCreate([NeedsService, UsefulService]);\n * expect(() => injector.get(NeedsService)).toThrowError();\n * ```\n * @ts2dart_const\n */\nexport class InjectableMetadata {\n constructor() {\n }\n}\n/**\n * Specifies that an {@link Injector} should retrieve a dependency only from itself.\n *\n * ### Example ([live demo](http://plnkr.co/edit/NeagAg?p=preview))\n *\n * ```typescript\n * class Dependency {\n * }\n *\n * @Injectable()\n * class NeedsDependency {\n * dependency;\n * constructor(@Self() dependency:Dependency) {\n * this.dependency = dependency;\n * }\n * }\n *\n * var inj = Injector.resolveAndCreate([Dependency, NeedsDependency]);\n * var nd = inj.get(NeedsDependency);\n *\n * expect(nd.dependency instanceof Dependency).toBe(true);\n *\n * var inj = Injector.resolveAndCreate([Dependency]);\n * var child = inj.resolveAndCreateChild([NeedsDependency]);\n * expect(() => child.get(NeedsDependency)).toThrowError();\n * ```\n * @ts2dart_const\n */\nexport class SelfMetadata {\n toString() { return `@Self()`; }\n}\n/**\n * Specifies that the dependency resolution should start from the parent injector.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Wchdzb?p=preview))\n *\n * ```typescript\n * class Dependency {\n * }\n *\n * @Injectable()\n * class NeedsDependency {\n * dependency;\n * constructor(@SkipSelf() dependency:Dependency) {\n * this.dependency = dependency;\n * }\n * }\n *\n * var parent = Injector.resolveAndCreate([Dependency]);\n * var child = parent.resolveAndCreateChild([NeedsDependency]);\n * expect(child.get(NeedsDependency).dependency instanceof Depedency).toBe(true);\n *\n * var inj = Injector.resolveAndCreate([Dependency, NeedsDependency]);\n * expect(() => inj.get(NeedsDependency)).toThrowError();\n * ```\n * @ts2dart_const\n */\nexport class SkipSelfMetadata {\n toString() { return `@SkipSelf()`; }\n}\n/**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * closest host.\n *\n * In Angular, a component element is automatically declared as a host for all the injectors in\n * its view.\n *\n * ### Example ([live demo](http://plnkr.co/edit/GX79pV?p=preview))\n *\n * In the following example `App` contains `ParentCmp`, which contains `ChildDirective`.\n * So `ParentCmp` is the host of `ChildDirective`.\n *\n * `ChildDirective` depends on two services: `HostService` and `OtherService`.\n * `HostService` is defined at `ParentCmp`, and `OtherService` is defined at `App`.\n *\n *```typescript\n * class OtherService {}\n * class HostService {}\n *\n * @Directive({\n * selector: 'child-directive'\n * })\n * class ChildDirective {\n * constructor(@Optional() @Host() os:OtherService, @Optional() @Host() hs:HostService){\n * console.log(\"os is null\", os);\n * console.log(\"hs is NOT null\", hs);\n * }\n * }\n *\n * @Component({\n * selector: 'parent-cmp',\n * providers: [HostService],\n * template: `\n * Dir: <child-directive></child-directive>\n * `,\n * directives: [ChildDirective]\n * })\n * class ParentCmp {\n * }\n *\n * @Component({\n * selector: 'app',\n * providers: [OtherService],\n * template: `\n * Parent: <parent-cmp></parent-cmp>\n * `,\n * directives: [ParentCmp]\n * })\n * class App {\n * }\n *\n * bootstrap(App);\n *```\n * @ts2dart_const\n */\nexport class HostMetadata {\n toString() { return `@Host()`; }\n}\n//# sourceMappingURL=metadata.js.map","import { stringify, isFunction } from '../../src/facade/lang';\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared,\n * but not yet defined. It is also used when the `token` which we use when creating a query is not\n * yet defined.\n *\n * ### Example\n * {@example core/di/ts/forward_ref/forward_ref.ts region='forward_ref'}\n */\nexport function forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () { return stringify(this()); };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/GU72mJrk1fiodChcmiDR?p=preview))\n *\n * ```typescript\n * var ref = forwardRef(() => \"refValue\");\n * expect(resolveForwardRef(ref)).toEqual(\"refValue\");\n * expect(resolveForwardRef(\"regularValue\")).toEqual(\"regularValue\");\n * ```\n *\n * See: {@link forwardRef}\n */\nexport function resolveForwardRef(type) {\n if (isFunction(type) && type.hasOwnProperty('__forward_ref__') &&\n type.__forward_ref__ === forwardRef) {\n return type();\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=forward_ref.js.map","import { stringify, isString } from '../../src/facade/lang';\nimport { DependencyMetadata } from '../di/metadata';\nimport { resolveForwardRef } from '../di/forward_ref';\n/**\n * Specifies that a constant attribute value should be injected.\n *\n * The directive can inject constant string literals of host element attributes.\n *\n * ### Example\n *\n * Suppose we have an `<input>` element and want to know its `type`.\n *\n * ```html\n * <input type=\"text\">\n * ```\n *\n * A decorator can inject string literal `text` like so:\n *\n * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}\n * @ts2dart_const\n */\nexport class AttributeMetadata extends DependencyMetadata {\n constructor(attributeName) {\n super();\n this.attributeName = attributeName;\n }\n get token() {\n // Normally one would default a token to a type of an injected value but here\n // the type of a variable is \"string\" and we can't use primitive type as a return value\n // so we use instance of Attribute instead. This doesn't matter much in practice as arguments\n // with @Attribute annotation are injected by ElementInjector that doesn't take tokens into\n // account.\n return this;\n }\n toString() { return `@Attribute(${stringify(this.attributeName)})`; }\n}\n/**\n * Declares an injectable parameter to be a live list of directives or variable\n * bindings from the content children of a directive.\n *\n * ### Example ([live demo](http://plnkr.co/edit/lY9m8HLy7z06vDoUaSN2?p=preview))\n *\n * Assume that `<tabs>` component would like to get a list its children `<pane>`\n * components as shown in this example:\n *\n * ```html\n * <tabs>\n * <pane title=\"Overview\">...</pane>\n * <pane *ngFor=\"let o of objects\" [title]=\"o.title\">{{o.text}}</pane>\n * </tabs>\n * ```\n *\n * The preferred solution is to query for `Pane` directives using this decorator.\n *\n * ```javascript\n * @Component({\n * selector: 'pane',\n * inputs: ['title']\n * })\n * class Pane {\n * title:string;\n * }\n *\n * @Component({\n * selector: 'tabs',\n * template: `\n * <ul>\n * <li *ngFor=\"let pane of panes\">{{pane.title}}</li>\n * </ul>\n * <ng-content></ng-content>\n * `\n * })\n * class Tabs {\n * panes: QueryList<Pane>;\n * constructor(@Query(Pane) panes:QueryList<Pane>) {\n * this.panes = panes;\n * }\n * }\n * ```\n *\n * A query can look for variable bindings by passing in a string with desired binding symbol.\n *\n * ### Example ([live demo](http://plnkr.co/edit/sT2j25cH1dURAyBRCKx1?p=preview))\n * ```html\n * <seeker>\n * <div #findme>...</div>\n * </seeker>\n *\n * @Component({ selector: 'seeker' })\n * class Seeker {\n * constructor(@Query('findme') elList: QueryList<ElementRef>) {...}\n * }\n * ```\n *\n * In this case the object that is injected depend on the type of the variable\n * binding. It can be an ElementRef, a directive or a component.\n *\n * Passing in a comma separated list of variable bindings will query for all of them.\n *\n * ```html\n * <seeker>\n * <div #find-me>...</div>\n * <div #find-me-too>...</div>\n * </seeker>\n *\n * @Component({\n * selector: 'seeker'\n * })\n * class Seeker {\n * constructor(@Query('findMe, findMeToo') elList: QueryList<ElementRef>) {...}\n * }\n * ```\n *\n * Configure whether query looks for direct children or all descendants\n * of the querying element, by using the `descendants` parameter.\n * It is set to `false` by default.\n *\n * ### Example ([live demo](http://plnkr.co/edit/wtGeB977bv7qvA5FTYl9?p=preview))\n * ```html\n * <container #first>\n * <item>a</item>\n * <item>b</item>\n * <container #second>\n * <item>c</item>\n * </container>\n * </container>\n * ```\n *\n * When querying for items, the first container will see only `a` and `b` by default,\n * but with `Query(TextDirective, {descendants: true})` it will see `c` too.\n *\n * The queried directives are kept in a depth-first pre-order with respect to their\n * positions in the DOM.\n *\n * Query does not look deep into any subcomponent views.\n *\n * Query is updated as part of the change-detection cycle. Since change detection\n * happens after construction of a directive, QueryList will always be empty when observed in the\n * constructor.\n *\n * The injected object is an unmodifiable live list.\n * See {@link QueryList} for more details.\n * @ts2dart_const\n */\nexport class QueryMetadata extends DependencyMetadata {\n constructor(_selector, { descendants = false, first = false, read = null } = {}) {\n super();\n this._selector = _selector;\n this.descendants = descendants;\n this.first = first;\n this.read = read;\n }\n /**\n * always `false` to differentiate it with {@link ViewQueryMetadata}.\n */\n get isViewQuery() { return false; }\n /**\n * what this is querying for.\n */\n get selector() { return resolveForwardRef(this._selector); }\n /**\n * whether this is querying for a variable binding or a directive.\n */\n get isVarBindingQuery() { return isString(this.selector); }\n /**\n * returns a list of variable bindings this is querying for.\n * Only applicable if this is a variable bindings query.\n */\n get varBindings() { return this.selector.split(','); }\n toString() { return `@Query(${stringify(this.selector)})`; }\n}\n// TODO: add an example after ContentChildren and ViewChildren are in master\n/**\n * Configures a content query.\n *\n * Content queries are set before the `ngAfterContentInit` callback is called.\n *\n * ### Example\n *\n * ```\n * @Directive({\n * selector: 'someDir'\n * })\n * class SomeDir {\n * @ContentChildren(ChildDirective) contentChildren: QueryList<ChildDirective>;\n *\n * ngAfterContentInit() {\n * // contentChildren is set\n * }\n * }\n * ```\n * @ts2dart_const\n */\nexport class ContentChildrenMetadata extends QueryMetadata {\n constructor(_selector, { descendants = false, read = null } = {}) {\n super(_selector, { descendants: descendants, read: read });\n }\n}\n// TODO: add an example after ContentChild and ViewChild are in master\n/**\n * Configures a content query.\n *\n * Content queries are set before the `ngAfterContentInit` callback is called.\n *\n * ### Example\n *\n * ```\n * @Directive({\n * selector: 'someDir'\n * })\n * class SomeDir {\n * @ContentChild(ChildDirective) contentChild;\n *\n * ngAfterContentInit() {\n * // contentChild is set\n * }\n * }\n * ```\n * @ts2dart_const\n */\nexport class ContentChildMetadata extends QueryMetadata {\n constructor(_selector, { read = null } = {}) {\n super(_selector, { descendants: true, first: true, read: read });\n }\n}\n/**\n * Similar to {@link QueryMetadata}, but querying the component view, instead of\n * the content children.\n *\n * ### Example ([live demo](http://plnkr.co/edit/eNsFHDf7YjyM6IzKxM1j?p=preview))\n *\n * ```javascript\n * @Component({\n * ...,\n * template: `\n * <item> a </item>\n * <item> b </item>\n * <item> c </item>\n * `\n * })\n * class MyComponent {\n * shown: boolean;\n *\n * constructor(private @ViewQuery(Item) items:QueryList<Item>) {\n * items.changes.subscribe(() => console.log(items.length));\n * }\n * }\n * ```\n *\n * Supports the same querying parameters as {@link QueryMetadata}, except\n * `descendants`. This always queries the whole view.\n *\n * As `shown` is flipped between true and false, items will contain zero of one\n * items.\n *\n * Specifies that a {@link QueryList} should be injected.\n *\n * The injected object is an iterable and observable live list.\n * See {@link QueryList} for more details.\n * @ts2dart_const\n */\nexport class ViewQueryMetadata extends QueryMetadata {\n constructor(_selector, { descendants = false, first = false, read = null } = {}) {\n super(_selector, { descendants: descendants, first: first, read: read });\n }\n /**\n * always `true` to differentiate it with {@link QueryMetadata}.\n */\n get isViewQuery() { return true; }\n toString() { return `@ViewQuery(${stringify(this.selector)})`; }\n}\n/**\n * Declares a list of child element references.\n *\n * Angular automatically updates the list when the DOM is updated.\n *\n * `ViewChildren` takes an argument to select elements.\n *\n * - If the argument is a type, directives or components with the type will be bound.\n *\n * - If the argument is a string, the string is interpreted as a list of comma-separated selectors.\n * For each selector, an element containing the matching template variable (e.g. `#child`) will be\n * bound.\n *\n * View children are set before the `ngAfterViewInit` callback is called.\n *\n * ### Example\n *\n * With type selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: `\n * <child-cmp></child-cmp>\n * <child-cmp></child-cmp>\n * <child-cmp></child-cmp>\n * `,\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChildren(ChildCmp) children:QueryList<ChildCmp>;\n *\n * ngAfterViewInit() {\n * // children are set\n * this.children.toArray().forEach((child)=>child.doSomething());\n * }\n * }\n * ```\n *\n * With string selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: `\n * <child-cmp #child1></child-cmp>\n * <child-cmp #child2></child-cmp>\n * <child-cmp #child3></child-cmp>\n * `,\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChildren('child1,child2,child3') children:QueryList<ChildCmp>;\n *\n * ngAfterViewInit() {\n * // children are set\n * this.children.toArray().forEach((child)=>child.doSomething());\n * }\n * }\n * ```\n * @ts2dart_const\n */\nexport class ViewChildrenMetadata extends ViewQueryMetadata {\n constructor(_selector, { read = null } = {}) {\n super(_selector, { descendants: true, read: read });\n }\n}\n/**\n *\n * Declares a reference of child element.\n *\n * `ViewChildren` takes an argument to select elements.\n *\n * - If the argument is a type, a directive or a component with the type will be bound.\n *\n If the argument is a string, the string is interpreted as a selector. An element containing the\n matching template variable (e.g. `#child`) will be bound.\n *\n * In either case, `@ViewChild()` assigns the first (looking from above) element if there are\n multiple matches.\n *\n * View child is set before the `ngAfterViewInit` callback is called.\n *\n * ### Example\n *\n * With type selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: '<child-cmp></child-cmp>',\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChild(ChildCmp) child:ChildCmp;\n *\n * ngAfterViewInit() {\n * // child is set\n * this.child.doSomething();\n * }\n * }\n * ```\n *\n * With string selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: '<child-cmp #child></child-cmp>',\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChild('child') child:ChildCmp;\n *\n * ngAfterViewInit() {\n * // child is set\n * this.child.doSomething();\n * }\n * }\n * ```\n * @ts2dart_const\n */\nexport class ViewChildMetadata extends ViewQueryMetadata {\n constructor(_selector, { read = null } = {}) {\n super(_selector, { descendants: true, first: true, read: read });\n }\n}\n//# sourceMappingURL=di.js.map","import { isBlank } from '../../src/facade/lang';\n/**\n * Describes the current state of the change detector.\n */\nexport var ChangeDetectorState;\n(function (ChangeDetectorState) {\n /**\n * `NeverChecked` means that the change detector has not been checked yet, and\n * initialization methods should be called during detection.\n */\n ChangeDetectorState[ChangeDetectorState[\"NeverChecked\"] = 0] = \"NeverChecked\";\n /**\n * `CheckedBefore` means that the change detector has successfully completed at least\n * one detection previously.\n */\n ChangeDetectorState[ChangeDetectorState[\"CheckedBefore\"] = 1] = \"CheckedBefore\";\n /**\n * `Errored` means that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state will no longer detect changes.\n */\n ChangeDetectorState[ChangeDetectorState[\"Errored\"] = 2] = \"Errored\";\n})(ChangeDetectorState || (ChangeDetectorState = {}));\n/**\n * Describes within the change detector which strategy will be used the next time change\n * detection is triggered.\n */\nexport var ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * `CheckedOnce` means that after calling detectChanges the mode of the change detector\n * will become `Checked`.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"CheckOnce\"] = 0] = \"CheckOnce\";\n /**\n * `Checked` means that the change detector should be skipped until its mode changes to\n * `CheckOnce`.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Checked\"] = 1] = \"Checked\";\n /**\n * `CheckAlways` means that after calling detectChanges the mode of the change detector\n * will remain `CheckAlways`.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"CheckAlways\"] = 2] = \"CheckAlways\";\n /**\n * `Detached` means that the change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Detached\"] = 3] = \"Detached\";\n /**\n * `OnPush` means that the change detector's mode will be set to `CheckOnce` during hydration.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 4] = \"OnPush\";\n /**\n * `Default` means that the change detector's mode will be set to `CheckAlways` during hydration.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 5] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n/**\n * List of possible {@link ChangeDetectionStrategy} values.\n */\nexport var CHANGE_DETECTION_STRATEGY_VALUES = [\n ChangeDetectionStrategy.CheckOnce,\n ChangeDetectionStrategy.Checked,\n ChangeDetectionStrategy.CheckAlways,\n ChangeDetectionStrategy.Detached,\n ChangeDetectionStrategy.OnPush,\n ChangeDetectionStrategy.Default\n];\n/**\n * List of possible {@link ChangeDetectorState} values.\n */\nexport var CHANGE_DETECTOR_STATE_VALUES = [\n ChangeDetectorState.NeverChecked,\n ChangeDetectorState.CheckedBefore,\n ChangeDetectorState.Errored\n];\nexport function isDefaultChangeDetectionStrategy(changeDetectionStrategy) {\n return isBlank(changeDetectionStrategy) ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n//# sourceMappingURL=constants.js.map","import { isPresent } from '../../src/facade/lang';\nimport { InjectableMetadata } from '../di/metadata';\nimport { ChangeDetectionStrategy } from '../change_detection/constants';\n/**\n * Directives allow you to attach behavior to elements in the DOM.\n *\n * {@link DirectiveMetadata}s with an embedded view are called {@link ComponentMetadata}s.\n *\n * A directive consists of a single directive annotation and a controller class. When the\n * directive's `selector` matches\n * elements in the DOM, the following steps occur:\n *\n * 1. For each directive, the `ElementInjector` attempts to resolve the directive's constructor\n * arguments.\n * 2. Angular instantiates directives for each matched element using `ElementInjector` in a\n * depth-first order,\n * as declared in the HTML.\n *\n * ## Understanding How Injection Works\n *\n * There are three stages of injection resolution.\n * - *Pre-existing Injectors*:\n * - The terminal {@link Injector} cannot resolve dependencies. It either throws an error or, if\n * the dependency was\n * specified as `@Optional`, returns `null`.\n * - The platform injector resolves browser singleton resources, such as: cookies, title,\n * location, and others.\n * - *Component Injectors*: Each component instance has its own {@link Injector}, and they follow\n * the same parent-child hierarchy\n * as the component instances in the DOM.\n * - *Element Injectors*: Each component instance has a Shadow DOM. Within the Shadow DOM each\n * element has an `ElementInjector`\n * which follow the same parent-child hierarchy as the DOM elements themselves.\n *\n * When a template is instantiated, it also must instantiate the corresponding directives in a\n * depth-first order. The\n * current `ElementInjector` resolves the constructor dependencies for each directive.\n *\n * Angular then resolves dependencies as follows, according to the order in which they appear in the\n * {@link ViewMetadata}:\n *\n * 1. Dependencies on the current element\n * 2. Dependencies on element injectors and their parents until it encounters a Shadow DOM boundary\n * 3. Dependencies on component injectors and their parents until it encounters the root component\n * 4. Dependencies on pre-existing injectors\n *\n *\n * The `ElementInjector` can inject other directives, element-specific special objects, or it can\n * delegate to the parent\n * injector.\n *\n * To inject other directives, declare the constructor parameter as:\n * - `directive:DirectiveType`: a directive on the current element only\n * - `@Host() directive:DirectiveType`: any directive that matches the type between the current\n * element and the\n * Shadow DOM root.\n * - `@Query(DirectiveType) query:QueryList<DirectiveType>`: A live collection of direct child\n * directives.\n * - `@QueryDescendants(DirectiveType) query:QueryList<DirectiveType>`: A live collection of any\n * child directives.\n *\n * To inject element-specific special objects, declare the constructor parameter as:\n * - `element: ElementRef` to obtain a reference to logical element in the view.\n * - `viewContainer: ViewContainerRef` to control child template instantiation, for\n * {@link DirectiveMetadata} directives only\n * - `bindingPropagation: BindingPropagation` to control change detection in a more granular way.\n *\n * ### Example\n *\n * The following example demonstrates how dependency injection resolves constructor arguments in\n * practice.\n *\n *\n * Assume this HTML template:\n *\n * ```\n * <div dependency=\"1\">\n * <div dependency=\"2\">\n * <div dependency=\"3\" my-directive>\n * <div dependency=\"4\">\n * <div dependency=\"5\"></div>\n * </div>\n * <div dependency=\"6\"></div>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * With the following `dependency` decorator and `SomeService` injectable class.\n *\n * ```\n * @Injectable()\n * class SomeService {\n * }\n *\n * @Directive({\n * selector: '[dependency]',\n * inputs: [\n * 'id: dependency'\n * ]\n * })\n * class Dependency {\n * id:string;\n * }\n * ```\n *\n * Let's step through the different ways in which `MyDirective` could be declared...\n *\n *\n * ### No injection\n *\n * Here the constructor is declared with no arguments, therefore nothing is injected into\n * `MyDirective`.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor() {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with no dependencies.\n *\n *\n * ### Component-level injection\n *\n * Directives can inject any injectable instance from the closest component injector or any of its\n * parents.\n *\n * Here, the constructor declares a parameter, `someService`, and injects the `SomeService` type\n * from the parent\n * component's injector.\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(someService: SomeService) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a dependency on `SomeService`.\n *\n *\n * ### Injecting a directive from the current element\n *\n * Directives can inject other directives declared on the current element.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(dependency: Dependency) {\n * expect(dependency.id).toEqual(3);\n * }\n * }\n * ```\n * This directive would be instantiated with `Dependency` declared at the same element, in this case\n * `dependency=\"3\"`.\n *\n * ### Injecting a directive from any ancestor elements\n *\n * Directives can inject other directives declared on any ancestor element (in the current Shadow\n * DOM), i.e. on the current element, the\n * parent element, or its parents.\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Host() dependency: Dependency) {\n * expect(dependency.id).toEqual(2);\n * }\n * }\n * ```\n *\n * `@Host` checks the current element, the parent, as well as its parents recursively. If\n * `dependency=\"2\"` didn't\n * exist on the direct parent, this injection would\n * have returned\n * `dependency=\"1\"`.\n *\n *\n * ### Injecting a live collection of direct child directives\n *\n *\n * A directive can also query for other child directives. Since parent directives are instantiated\n * before child directives, a directive can't simply inject the list of child directives. Instead,\n * the directive injects a {@link QueryList}, which updates its contents as children are added,\n * removed, or moved by a directive that uses a {@link ViewContainerRef} such as a `ngFor`, an\n * `ngIf`, or an `ngSwitch`.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Query(Dependency) dependencies:QueryList<Dependency>) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a {@link QueryList} which contains `Dependency` 4 and\n * `Dependency` 6. Here, `Dependency` 5 would not be included, because it is not a direct child.\n *\n * ### Injecting a live collection of descendant directives\n *\n * By passing the descendant flag to `@Query` above, we can include the children of the child\n * elements.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Query(Dependency, {descendants: true}) dependencies:QueryList<Dependency>) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a Query which would contain `Dependency` 4, 5 and 6.\n *\n * ### Optional injection\n *\n * The normal behavior of directives is to return an error when a specified dependency cannot be\n * resolved. If you\n * would like to inject `null` on unresolved dependency instead, you can annotate that dependency\n * with `@Optional()`.\n * This explicitly permits the author of a template to treat some of the surrounding directives as\n * optional.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Optional() dependency:Dependency) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a `Dependency` directive found on the current element.\n * If none can be\n * found, the injector supplies `null` instead of throwing an error.\n *\n * ### Example\n *\n * Here we use a decorator directive to simply define basic tool-tip behavior.\n *\n * ```\n * @Directive({\n * selector: '[tooltip]',\n * inputs: [\n * 'text: tooltip'\n * ],\n * host: {\n * '(mouseenter)': 'onMouseEnter()',\n * '(mouseleave)': 'onMouseLeave()'\n * }\n * })\n * class Tooltip{\n * text:string;\n * overlay:Overlay; // NOT YET IMPLEMENTED\n * overlayManager:OverlayManager; // NOT YET IMPLEMENTED\n *\n * constructor(overlayManager:OverlayManager) {\n * this.overlay = overlay;\n * }\n *\n * onMouseEnter() {\n * // exact signature to be determined\n * this.overlay = this.overlayManager.open(text, ...);\n * }\n *\n * onMouseLeave() {\n * this.overlay.close();\n * this.overlay = null;\n * }\n * }\n * ```\n * In our HTML template, we can then add this behavior to a `<div>` or any other element with the\n * `tooltip` selector,\n * like so:\n *\n * ```\n * <div tooltip=\"some text here\"></div>\n * ```\n *\n * Directives can also control the instantiation, destruction, and positioning of inline template\n * elements:\n *\n * A directive uses a {@link ViewContainerRef} to instantiate, insert, move, and destroy views at\n * runtime.\n * The {@link ViewContainerRef} is created as a result of `<template>` element, and represents a\n * location in the current view\n * where these actions are performed.\n *\n * Views are always created as children of the current {@link ViewMetadata}, and as siblings of the\n * `<template>` element. Thus a\n * directive in a child view cannot inject the directive that created it.\n *\n * Since directives that create views via ViewContainers are common in Angular, and using the full\n * `<template>` element syntax is wordy, Angular\n * also supports a shorthand notation: `<li *foo=\"bar\">` and `<li template=\"foo: bar\">` are\n * equivalent.\n *\n * Thus,\n *\n * ```\n * <ul>\n * <li *foo=\"bar\" title=\"text\"></li>\n * </ul>\n * ```\n *\n * Expands in use to:\n *\n * ```\n * <ul>\n * <template [foo]=\"bar\">\n * <li title=\"text\"></li>\n * </template>\n * </ul>\n * ```\n *\n * Notice that although the shorthand places `*foo=\"bar\"` within the `<li>` element, the binding for\n * the directive\n * controller is correctly instantiated on the `<template>` element rather than the `<li>` element.\n *\n * ## Lifecycle hooks\n *\n * When the directive class implements some {@link ../../guide/lifecycle-hooks.html} the callbacks\n * are called by the change detection at defined points in time during the life of the directive.\n *\n * ### Example\n *\n * Let's suppose we want to implement the `unless` behavior, to conditionally include a template.\n *\n * Here is a simple directive that triggers on an `unless` selector:\n *\n * ```\n * @Directive({\n * selector: '[unless]',\n * inputs: ['unless']\n * })\n * export class Unless {\n * viewContainer: ViewContainerRef;\n * templateRef: TemplateRef;\n * prevCondition: boolean;\n *\n * constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef) {\n * this.viewContainer = viewContainer;\n * this.templateRef = templateRef;\n * this.prevCondition = null;\n * }\n *\n * set unless(newCondition) {\n * if (newCondition && (isBlank(this.prevCondition) || !this.prevCondition)) {\n * this.prevCondition = true;\n * this.viewContainer.clear();\n * } else if (!newCondition && (isBlank(this.prevCondition) || this.prevCondition)) {\n * this.prevCondition = false;\n * this.viewContainer.create(this.templateRef);\n * }\n * }\n * }\n * ```\n *\n * We can then use this `unless` selector in a template:\n * ```\n * <ul>\n * <li *unless=\"expr\"></li>\n * </ul>\n * ```\n *\n * Once the directive instantiates the child view, the shorthand notation for the template expands\n * and the result is:\n *\n * ```\n * <ul>\n * <template [unless]=\"exp\">\n * <li></li>\n * </template>\n * <li></li>\n * </ul>\n * ```\n *\n * Note also that although the `<li></li>` template still exists inside the `<template></template>`,\n * the instantiated\n * view occurs on the second `<li></li>` which is a sibling to the `<template>` element.\n * @ts2dart_const\n */\nexport class DirectiveMetadata extends InjectableMetadata {\n constructor({ selector, inputs, outputs, properties, events, host, bindings, providers, exportAs, queries } = {}) {\n super();\n this.selector = selector;\n this._inputs = inputs;\n this._properties = properties;\n this._outputs = outputs;\n this._events = events;\n this.host = host;\n this.exportAs = exportAs;\n this.queries = queries;\n this._providers = providers;\n this._bindings = bindings;\n }\n /**\n * Enumerates the set of data-bound input properties for a directive\n *\n * Angular automatically updates input properties during change detection.\n *\n * The `inputs` property defines a set of `directiveProperty` to `bindingProperty`\n * configuration:\n *\n * - `directiveProperty` specifies the component property where the value is written.\n * - `bindingProperty` specifies the DOM property where the value is read from.\n *\n * When `bindingProperty` is not provided, it is assumed to be equal to `directiveProperty`.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ivhfXY?p=preview))\n *\n * The following example creates a component with two data-bound properties.\n *\n * ```typescript\n * @Component({\n * selector: 'bank-account',\n * inputs: ['bankName', 'id: account-id'],\n * template: `\n * Bank Name: {{bankName}}\n * Account Id: {{id}}\n * `\n * })\n * class BankAccount {\n * bankName: string;\n * id: string;\n *\n * // this property is not bound, and won't be automatically updated by Angular\n * normalizedBankName: string;\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `\n * <bank-account bank-name=\"RBC\" account-id=\"4747\"></bank-account>\n * `,\n * directives: [BankAccount]\n * })\n * class App {}\n *\n * bootstrap(App);\n * ```\n *\n */\n get inputs() {\n return isPresent(this._properties) && this._properties.length > 0 ? this._properties :\n this._inputs;\n }\n get properties() { return this.inputs; }\n /**\n * Enumerates the set of event-bound output properties.\n *\n * When an output property emits an event, an event handler attached to that event\n * the template is invoked.\n *\n * The `outputs` property defines a set of `directiveProperty` to `bindingProperty`\n * configuration:\n *\n * - `directiveProperty` specifies the component property that emits events.\n * - `bindingProperty` specifies the DOM property the event handler is attached to.\n *\n * ### Example ([live demo](http://plnkr.co/edit/d5CNq7?p=preview))\n *\n * ```typescript\n * @Directive({\n * selector: 'interval-dir',\n * outputs: ['everySecond', 'five5Secs: everyFiveSeconds']\n * })\n * class IntervalDir {\n * everySecond = new EventEmitter();\n * five5Secs = new EventEmitter();\n *\n * constructor() {\n * setInterval(() => this.everySecond.emit(\"event\"), 1000);\n * setInterval(() => this.five5Secs.emit(\"event\"), 5000);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `\n * <interval-dir (everySecond)=\"everySecond()\" (everyFiveSeconds)=\"everyFiveSeconds()\">\n * </interval-dir>\n * `,\n * directives: [IntervalDir]\n * })\n * class App {\n * everySecond() { console.log('second'); }\n * everyFiveSeconds() { console.log('five seconds'); }\n * }\n * bootstrap(App);\n * ```\n *\n */\n get outputs() {\n return isPresent(this._events) && this._events.length > 0 ? this._events : this._outputs;\n }\n get events() { return this.outputs; }\n /**\n * Defines the set of injectable objects that are visible to a Directive and its light DOM\n * children.\n *\n * ## Simple Example\n *\n * Here is an example of a class that can be injected:\n *\n * ```\n * class Greeter {\n * greet(name:string) {\n * return 'Hello ' + name + '!';\n * }\n * }\n *\n * @Directive({\n * selector: 'greet',\n * bindings: [\n * Greeter\n * ]\n * })\n * class HelloWorld {\n * greeter:Greeter;\n *\n * constructor(greeter:Greeter) {\n * this.greeter = greeter;\n * }\n * }\n * ```\n */\n get providers() {\n return isPresent(this._bindings) && this._bindings.length > 0 ? this._bindings :\n this._providers;\n }\n /** @deprecated */\n get bindings() { return this.providers; }\n}\n/**\n * Declare reusable UI building blocks for an application.\n *\n * Each Angular component requires a single `@Component` annotation. The\n * `@Component`\n * annotation specifies when a component is instantiated, and which properties and hostListeners it\n * binds to.\n *\n * When a component is instantiated, Angular\n * - creates a shadow DOM for the component.\n * - loads the selected template into the shadow DOM.\n * - creates all the injectable objects configured with `providers` and `viewProviders`.\n *\n * All template expressions and statements are then evaluated against the component instance.\n *\n * For details on the `@View` annotation, see {@link ViewMetadata}.\n *\n * ## Lifecycle hooks\n *\n * When the component class implements some {@link ../../guide/lifecycle-hooks.html} the callbacks\n * are called by the change detection at defined points in time during the life of the component.\n *\n * ### Example\n *\n * {@example core/ts/metadata/metadata.ts region='component'}\n * @ts2dart_const\n */\nexport class ComponentMetadata extends DirectiveMetadata {\n constructor({ selector, inputs, outputs, properties, events, host, exportAs, moduleId, bindings, providers, viewBindings, viewProviders, changeDetection = ChangeDetectionStrategy.Default, queries, templateUrl, template, styleUrls, styles, directives, pipes, encapsulation } = {}) {\n super({\n selector: selector,\n inputs: inputs,\n outputs: outputs,\n properties: properties,\n events: events,\n host: host,\n exportAs: exportAs,\n bindings: bindings,\n providers: providers,\n queries: queries\n });\n this.changeDetection = changeDetection;\n this._viewProviders = viewProviders;\n this._viewBindings = viewBindings;\n this.templateUrl = templateUrl;\n this.template = template;\n this.styleUrls = styleUrls;\n this.styles = styles;\n this.directives = directives;\n this.pipes = pipes;\n this.encapsulation = encapsulation;\n this.moduleId = moduleId;\n }\n /**\n * Defines the set of injectable objects that are visible to its view DOM children.\n *\n * ## Simple Example\n *\n * Here is an example of a class that can be injected:\n *\n * ```\n * class Greeter {\n * greet(name:string) {\n * return 'Hello ' + name + '!';\n * }\n * }\n *\n * @Directive({\n * selector: 'needs-greeter'\n * })\n * class NeedsGreeter {\n * greeter:Greeter;\n *\n * constructor(greeter:Greeter) {\n * this.greeter = greeter;\n * }\n * }\n *\n * @Component({\n * selector: 'greet',\n * viewProviders: [\n * Greeter\n * ],\n * template: `<needs-greeter></needs-greeter>`,\n * directives: [NeedsGreeter]\n * })\n * class HelloWorld {\n * }\n *\n * ```\n */\n get viewProviders() {\n return isPresent(this._viewBindings) && this._viewBindings.length > 0 ? this._viewBindings :\n this._viewProviders;\n }\n get viewBindings() { return this.viewProviders; }\n}\n/**\n * Declare reusable pipe function.\n *\n * A \"pure\" pipe is only re-evaluated when either the input or any of the arguments change.\n *\n * When not specified, pipes default to being pure.\n *\n * ### Example\n *\n * {@example core/ts/metadata/metadata.ts region='pipe'}\n * @ts2dart_const\n */\nexport class PipeMetadata extends InjectableMetadata {\n constructor({ name, pure }) {\n super();\n this.name = name;\n this._pure = pure;\n }\n get pure() { return isPresent(this._pure) ? this._pure : true; }\n}\n/**\n * Declares a data-bound input property.\n *\n * Angular automatically updates data-bound properties during change detection.\n *\n * `InputMetadata` takes an optional parameter that specifies the name\n * used when instantiating a component in the template. When not provided,\n * the name of the decorated property is used.\n *\n * ### Example\n *\n * The following example creates a component with two input properties.\n *\n * ```typescript\n * @Component({\n * selector: 'bank-account',\n * template: `\n * Bank Name: {{bankName}}\n * Account Id: {{id}}\n * `\n * })\n * class BankAccount {\n * @Input() bankName: string;\n * @Input('account-id') id: string;\n *\n * // this property is not bound, and won't be automatically updated by Angular\n * normalizedBankName: string;\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `\n * <bank-account bank-name=\"RBC\" account-id=\"4747\"></bank-account>\n * `,\n * directives: [BankAccount]\n * })\n * class App {}\n *\n * bootstrap(App);\n * ```\n * @ts2dart_const\n */\nexport class InputMetadata {\n constructor(\n /**\n * Name used when instantiating a component in the template.\n */\n bindingPropertyName) {\n this.bindingPropertyName = bindingPropertyName;\n }\n}\n/**\n * Declares an event-bound output property.\n *\n * When an output property emits an event, an event handler attached to that event\n * the template is invoked.\n *\n * `OutputMetadata` takes an optional parameter that specifies the name\n * used when instantiating a component in the template. When not provided,\n * the name of the decorated property is used.\n *\n * ### Example\n *\n * ```typescript\n * @Directive({\n * selector: 'interval-dir',\n * })\n * class IntervalDir {\n * @Output() everySecond = new EventEmitter();\n * @Output('everyFiveSeconds') five5Secs = new EventEmitter();\n *\n * constructor() {\n * setInterval(() => this.everySecond.emit(\"event\"), 1000);\n * setInterval(() => this.five5Secs.emit(\"event\"), 5000);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `\n * <interval-dir (everySecond)=\"everySecond()\" (everyFiveSeconds)=\"everyFiveSeconds()\">\n * </interval-dir>\n * `,\n * directives: [IntervalDir]\n * })\n * class App {\n * everySecond() { console.log('second'); }\n * everyFiveSeconds() { console.log('five seconds'); }\n * }\n * bootstrap(App);\n * ```\n * @ts2dart_const\n */\nexport class OutputMetadata {\n constructor(bindingPropertyName) {\n this.bindingPropertyName = bindingPropertyName;\n }\n}\n/**\n * Declares a host property binding.\n *\n * Angular automatically checks host property bindings during change detection.\n * If a binding changes, it will update the host element of the directive.\n *\n * `HostBindingMetadata` takes an optional parameter that specifies the property\n * name of the host element that will be updated. When not provided,\n * the class property name is used.\n *\n * ### Example\n *\n * The following example creates a directive that sets the `valid` and `invalid` classes\n * on the DOM element that has ngModel directive on it.\n *\n * ```typescript\n * @Directive({selector: '[ngModel]'})\n * class NgModelStatus {\n * constructor(public control:NgModel) {}\n * @HostBinding('class.valid') get valid { return this.control.valid; }\n * @HostBinding('class.invalid') get invalid { return this.control.invalid; }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `<input [(ngModel)]=\"prop\">`,\n * directives: [FORM_DIRECTIVES, NgModelStatus]\n * })\n * class App {\n * prop;\n * }\n *\n * bootstrap(App);\n * ```\n * @ts2dart_const\n */\nexport class HostBindingMetadata {\n constructor(hostPropertyName) {\n this.hostPropertyName = hostPropertyName;\n }\n}\n/**\n * Declares a host listener.\n *\n * Angular will invoke the decorated method when the host element emits the specified event.\n *\n * If the decorated method returns `false`, then `preventDefault` is applied on the DOM\n * event.\n *\n * ### Example\n *\n * The following example declares a directive that attaches a click listener to the button and\n * counts clicks.\n *\n * ```typescript\n * @Directive({selector: 'button[counting]'})\n * class CountClicks {\n * numberOfClicks = 0;\n *\n * @HostListener('click', ['$event.target'])\n * onClick(btn) {\n * console.log(\"button\", btn, \"number of clicks:\", this.numberOfClicks++);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `<button counting>Increment</button>`,\n * directives: [CountClicks]\n * })\n * class App {}\n *\n * bootstrap(App);\n * ```\n * @ts2dart_const\n */\nexport class HostListenerMetadata {\n constructor(eventName, args) {\n this.eventName = eventName;\n this.args = args;\n }\n}\n//# sourceMappingURL=directives.js.map","/**\n * Defines template and style encapsulation options available for Component's {@link View}.\n *\n * See {@link ViewMetadata#encapsulation}.\n */\nexport var ViewEncapsulation;\n(function (ViewEncapsulation) {\n /**\n * Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host\n * Element and pre-processing the style rules provided via\n * {@link ViewMetadata#styles} or {@link ViewMetadata#stylesUrls}, and adding the new Host Element\n * attribute to all selectors.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n /**\n * Use the native encapsulation mechanism of the renderer.\n *\n * For the DOM this means using [Shadow DOM](https://w3c.github.io/webcomponents/spec/shadow/) and\n * creating a ShadowRoot for Component's Host Element.\n */\n ViewEncapsulation[ViewEncapsulation[\"Native\"] = 1] = \"Native\";\n /**\n * Don't provide any template or style encapsulation.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\nexport var VIEW_ENCAPSULATION_VALUES = [ViewEncapsulation.Emulated, ViewEncapsulation.Native, ViewEncapsulation.None];\n/**\n * Metadata properties available for configuring Views.\n *\n * Each Angular component requires a single `@Component` and at least one `@View` annotation. The\n * `@View` annotation specifies the HTML template to use, and lists the directives that are active\n * within the template.\n *\n * When a component is instantiated, the template is loaded into the component's shadow root, and\n * the expressions and statements in the template are evaluated against the component.\n *\n * For details on the `@Component` annotation, see {@link ComponentMetadata}.\n *\n * ### Example\n *\n * ```\n * @Component({\n * selector: 'greet',\n * template: 'Hello {{name}}!',\n * directives: [GreetUser, Bold]\n * })\n * class Greet {\n * name: string;\n *\n * constructor() {\n * this.name = 'World';\n * }\n * }\n * ```\n * @ts2dart_const\n */\nexport class ViewMetadata {\n constructor({ templateUrl, template, directives, pipes, encapsulation, styles, styleUrls } = {}) {\n this.templateUrl = templateUrl;\n this.template = template;\n this.styleUrls = styleUrls;\n this.styles = styles;\n this.directives = directives;\n this.pipes = pipes;\n this.encapsulation = encapsulation;\n }\n}\n//# sourceMappingURL=view.js.map","import { global, isFunction, stringify } from '../../src/facade/lang';\nvar _nextClassId = 0;\nfunction extractAnnotation(annotation) {\n if (isFunction(annotation) && annotation.hasOwnProperty('annotation')) {\n // it is a decorator, extract annotation\n annotation = annotation.annotation;\n }\n return annotation;\n}\nfunction applyParams(fnOrArray, key) {\n if (fnOrArray === Object || fnOrArray === String || fnOrArray === Function ||\n fnOrArray === Number || fnOrArray === Array) {\n throw new Error(`Can not use native ${stringify(fnOrArray)} as constructor`);\n }\n if (isFunction(fnOrArray)) {\n return fnOrArray;\n }\n else if (fnOrArray instanceof Array) {\n var annotations = fnOrArray;\n var fn = fnOrArray[fnOrArray.length - 1];\n if (!isFunction(fn)) {\n throw new Error(`Last position of Class method array must be Function in key ${key} was '${stringify(fn)}'`);\n }\n var annoLength = annotations.length - 1;\n if (annoLength != fn.length) {\n throw new Error(`Number of annotations (${annoLength}) does not match number of arguments (${fn.length}) in the function: ${stringify(fn)}`);\n }\n var paramsAnnotations = [];\n for (var i = 0, ii = annotations.length - 1; i < ii; i++) {\n var paramAnnotations = [];\n paramsAnnotations.push(paramAnnotations);\n var annotation = annotations[i];\n if (annotation instanceof Array) {\n for (var j = 0; j < annotation.length; j++) {\n paramAnnotations.push(extractAnnotation(annotation[j]));\n }\n }\n else if (isFunction(annotation)) {\n paramAnnotations.push(extractAnnotation(annotation));\n }\n else {\n paramAnnotations.push(annotation);\n }\n }\n Reflect.defineMetadata('parameters', paramsAnnotations, fn);\n return fn;\n }\n else {\n throw new Error(`Only Function or Array is supported in Class definition for key '${key}' is '${stringify(fnOrArray)}'`);\n }\n}\n/**\n * Provides a way for expressing ES6 classes with parameter annotations in ES5.\n *\n * ## Basic Example\n *\n * ```\n * var Greeter = ng.Class({\n * constructor: function(name) {\n * this.name = name;\n * },\n *\n * greet: function() {\n * alert('Hello ' + this.name + '!');\n * }\n * });\n * ```\n *\n * is equivalent to ES6:\n *\n * ```\n * class Greeter {\n * constructor(name) {\n * this.name = name;\n * }\n *\n * greet() {\n * alert('Hello ' + this.name + '!');\n * }\n * }\n * ```\n *\n * or equivalent to ES5:\n *\n * ```\n * var Greeter = function (name) {\n * this.name = name;\n * }\n *\n * Greeter.prototype.greet = function () {\n * alert('Hello ' + this.name + '!');\n * }\n * ```\n *\n * ### Example with parameter annotations\n *\n * ```\n * var MyService = ng.Class({\n * constructor: [String, [new Query(), QueryList], function(name, queryList) {\n * ...\n * }]\n * });\n * ```\n *\n * is equivalent to ES6:\n *\n * ```\n * class MyService {\n * constructor(name: string, @Query() queryList: QueryList) {\n * ...\n * }\n * }\n * ```\n *\n * ### Example with inheritance\n *\n * ```\n * var Shape = ng.Class({\n * constructor: (color) {\n * this.color = color;\n * }\n * });\n *\n * var Square = ng.Class({\n * extends: Shape,\n * constructor: function(color, size) {\n * Shape.call(this, color);\n * this.size = size;\n * }\n * });\n * ```\n */\nexport function Class(clsDef) {\n var constructor = applyParams(clsDef.hasOwnProperty('constructor') ? clsDef.constructor : undefined, 'constructor');\n var proto = constructor.prototype;\n if (clsDef.hasOwnProperty('extends')) {\n if (isFunction(clsDef.extends)) {\n constructor.prototype = proto =\n Object.create(clsDef.extends.prototype);\n }\n else {\n throw new Error(`Class definition 'extends' property must be a constructor function was: ${stringify(clsDef.extends)}`);\n }\n }\n for (var key in clsDef) {\n if (key != 'extends' && key != 'prototype' && clsDef.hasOwnProperty(key)) {\n proto[key] = applyParams(clsDef[key], key);\n }\n }\n if (this && this.annotations instanceof Array) {\n Reflect.defineMetadata('annotations', this.annotations, constructor);\n }\n if (!constructor['name']) {\n constructor['overriddenName'] = `class${_nextClassId++}`;\n }\n return constructor;\n}\nvar Reflect = global.Reflect;\n// Throw statement at top-level is disallowed by closure compiler in ES6 input.\n// Wrap in an IIFE as a work-around.\n(function checkReflect() {\n if (!(Reflect && Reflect.getMetadata)) {\n throw 'reflect-metadata shim is required when using class decorators';\n }\n})();\nexport function makeDecorator(annotationCls, chainFn = null) {\n function DecoratorFactory(objOrType) {\n var annotationInstance = new annotationCls(objOrType);\n if (this instanceof annotationCls) {\n return annotationInstance;\n }\n else {\n var chainAnnotation = isFunction(this) && this.annotations instanceof Array ? this.annotations : [];\n chainAnnotation.push(annotationInstance);\n var TypeDecorator = function TypeDecorator(cls) {\n var annotations = Reflect.getOwnMetadata('annotations', cls);\n annotations = annotations || [];\n annotations.push(annotationInstance);\n Reflect.defineMetadata('annotations', annotations, cls);\n return cls;\n };\n TypeDecorator.annotations = chainAnnotation;\n TypeDecorator.Class = Class;\n if (chainFn)\n chainFn(TypeDecorator);\n return TypeDecorator;\n }\n }\n DecoratorFactory.prototype = Object.create(annotationCls.prototype);\n DecoratorFactory.annotationCls = annotationCls;\n return DecoratorFactory;\n}\nexport function makeParamDecorator(annotationCls) {\n function ParamDecoratorFactory(...args) {\n var annotationInstance = Object.create(annotationCls.prototype);\n annotationCls.apply(annotationInstance, args);\n if (this instanceof annotationCls) {\n return annotationInstance;\n }\n else {\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n }\n function ParamDecorator(cls, unusedKey, index) {\n var parameters = Reflect.getMetadata('parameters', cls);\n parameters = parameters || [];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n parameters[index] = parameters[index] || [];\n var annotationsForParam = parameters[index];\n annotationsForParam.push(annotationInstance);\n Reflect.defineMetadata('parameters', parameters, cls);\n return cls;\n }\n }\n ParamDecoratorFactory.prototype = Object.create(annotationCls.prototype);\n ParamDecoratorFactory.annotationCls = annotationCls;\n return ParamDecoratorFactory;\n}\nexport function makePropDecorator(annotationCls) {\n function PropDecoratorFactory(...args) {\n var decoratorInstance = Object.create(annotationCls.prototype);\n annotationCls.apply(decoratorInstance, args);\n if (this instanceof annotationCls) {\n return decoratorInstance;\n }\n else {\n return function PropDecorator(target, name) {\n var meta = Reflect.getOwnMetadata('propMetadata', target.constructor);\n meta = meta || {};\n meta[name] = meta[name] || [];\n meta[name].unshift(decoratorInstance);\n Reflect.defineMetadata('propMetadata', meta, target.constructor);\n };\n }\n }\n PropDecoratorFactory.prototype = Object.create(annotationCls.prototype);\n PropDecoratorFactory.annotationCls = annotationCls;\n return PropDecoratorFactory;\n}\n//# sourceMappingURL=decorators.js.map","/**\n* This indirection is needed to free up Component, etc symbols in the public API\n* to be used by the decorator versions of these annotations.\n*/\nexport { QueryMetadata, ContentChildrenMetadata, ContentChildMetadata, ViewChildrenMetadata, ViewQueryMetadata, ViewChildMetadata, AttributeMetadata } from './metadata/di';\nexport { ComponentMetadata, DirectiveMetadata, PipeMetadata, InputMetadata, OutputMetadata, HostBindingMetadata, HostListenerMetadata } from './metadata/directives';\nexport { ViewMetadata, ViewEncapsulation } from './metadata/view';\nimport { QueryMetadata, ContentChildrenMetadata, ContentChildMetadata, ViewChildrenMetadata, ViewChildMetadata, ViewQueryMetadata, AttributeMetadata } from './metadata/di';\nimport { ComponentMetadata, DirectiveMetadata, PipeMetadata, InputMetadata, OutputMetadata, HostBindingMetadata, HostListenerMetadata } from './metadata/directives';\nimport { ViewMetadata } from './metadata/view';\nimport { makeDecorator, makeParamDecorator, makePropDecorator } from './util/decorators';\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ComponentMetadata.\n/**\n * Declare reusable UI building blocks for an application.\n *\n * Each Angular component requires a single `@Component` annotation. The `@Component`\n * annotation specifies when a component is instantiated, and which properties and hostListeners it\n * binds to.\n *\n * When a component is instantiated, Angular\n * - creates a shadow DOM for the component.\n * - loads the selected template into the shadow DOM.\n * - creates all the injectable objects configured with `providers` and `viewProviders`.\n *\n * All template expressions and statements are then evaluated against the component instance.\n *\n * ## Lifecycle hooks\n *\n * When the component class implements some {@link ../../guide/lifecycle-hooks.html} the callbacks\n * are called by the change detection at defined points in time during the life of the component.\n *\n * ### Example\n *\n * {@example core/ts/metadata/metadata.ts region='component'}\n */\nexport var Component = makeDecorator(ComponentMetadata, (fn) => fn.View = View);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from DirectiveMetadata.\n/**\n * Directives allow you to attach behavior to elements in the DOM.\n *\n * {@link DirectiveMetadata}s with an embedded view are called {@link ComponentMetadata}s.\n *\n * A directive consists of a single directive annotation and a controller class. When the\n * directive's `selector` matches\n * elements in the DOM, the following steps occur:\n *\n * 1. For each directive, the `ElementInjector` attempts to resolve the directive's constructor\n * arguments.\n * 2. Angular instantiates directives for each matched element using `ElementInjector` in a\n * depth-first order,\n * as declared in the HTML.\n *\n * ## Understanding How Injection Works\n *\n * There are three stages of injection resolution.\n * - *Pre-existing Injectors*:\n * - The terminal {@link Injector} cannot resolve dependencies. It either throws an error or, if\n * the dependency was\n * specified as `@Optional`, returns `null`.\n * - The platform injector resolves browser singleton resources, such as: cookies, title,\n * location, and others.\n * - *Component Injectors*: Each component instance has its own {@link Injector}, and they follow\n * the same parent-child hierarchy\n * as the component instances in the DOM.\n * - *Element Injectors*: Each component instance has a Shadow DOM. Within the Shadow DOM each\n * element has an `ElementInjector`\n * which follow the same parent-child hierarchy as the DOM elements themselves.\n *\n * When a template is instantiated, it also must instantiate the corresponding directives in a\n * depth-first order. The\n * current `ElementInjector` resolves the constructor dependencies for each directive.\n *\n * Angular then resolves dependencies as follows, according to the order in which they appear in the\n * {@link ViewMetadata}:\n *\n * 1. Dependencies on the current element\n * 2. Dependencies on element injectors and their parents until it encounters a Shadow DOM boundary\n * 3. Dependencies on component injectors and their parents until it encounters the root component\n * 4. Dependencies on pre-existing injectors\n *\n *\n * The `ElementInjector` can inject other directives, element-specific special objects, or it can\n * delegate to the parent\n * injector.\n *\n * To inject other directives, declare the constructor parameter as:\n * - `directive:DirectiveType`: a directive on the current element only\n * - `@Host() directive:DirectiveType`: any directive that matches the type between the current\n * element and the\n * Shadow DOM root.\n * - `@Query(DirectiveType) query:QueryList<DirectiveType>`: A live collection of direct child\n * directives.\n * - `@QueryDescendants(DirectiveType) query:QueryList<DirectiveType>`: A live collection of any\n * child directives.\n *\n * To inject element-specific special objects, declare the constructor parameter as:\n * - `element: ElementRef` to obtain a reference to logical element in the view.\n * - `viewContainer: ViewContainerRef` to control child template instantiation, for\n * {@link DirectiveMetadata} directives only\n * - `bindingPropagation: BindingPropagation` to control change detection in a more granular way.\n *\n * ### Example\n *\n * The following example demonstrates how dependency injection resolves constructor arguments in\n * practice.\n *\n *\n * Assume this HTML template:\n *\n * ```\n * <div dependency=\"1\">\n * <div dependency=\"2\">\n * <div dependency=\"3\" my-directive>\n * <div dependency=\"4\">\n * <div dependency=\"5\"></div>\n * </div>\n * <div dependency=\"6\"></div>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * With the following `dependency` decorator and `SomeService` injectable class.\n *\n * ```\n * @Injectable()\n * class SomeService {\n * }\n *\n * @Directive({\n * selector: '[dependency]',\n * inputs: [\n * 'id: dependency'\n * ]\n * })\n * class Dependency {\n * id:string;\n * }\n * ```\n *\n * Let's step through the different ways in which `MyDirective` could be declared...\n *\n *\n * ### No injection\n *\n * Here the constructor is declared with no arguments, therefore nothing is injected into\n * `MyDirective`.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor() {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with no dependencies.\n *\n *\n * ### Component-level injection\n *\n * Directives can inject any injectable instance from the closest component injector or any of its\n * parents.\n *\n * Here, the constructor declares a parameter, `someService`, and injects the `SomeService` type\n * from the parent\n * component's injector.\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(someService: SomeService) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a dependency on `SomeService`.\n *\n *\n * ### Injecting a directive from the current element\n *\n * Directives can inject other directives declared on the current element.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(dependency: Dependency) {\n * expect(dependency.id).toEqual(3);\n * }\n * }\n * ```\n * This directive would be instantiated with `Dependency` declared at the same element, in this case\n * `dependency=\"3\"`.\n *\n * ### Injecting a directive from any ancestor elements\n *\n * Directives can inject other directives declared on any ancestor element (in the current Shadow\n * DOM), i.e. on the current element, the\n * parent element, or its parents.\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Host() dependency: Dependency) {\n * expect(dependency.id).toEqual(2);\n * }\n * }\n * ```\n *\n * `@Host` checks the current element, the parent, as well as its parents recursively. If\n * `dependency=\"2\"` didn't\n * exist on the direct parent, this injection would\n * have returned\n * `dependency=\"1\"`.\n *\n *\n * ### Injecting a live collection of direct child directives\n *\n *\n * A directive can also query for other child directives. Since parent directives are instantiated\n * before child directives, a directive can't simply inject the list of child directives. Instead,\n * the directive injects a {@link QueryList}, which updates its contents as children are added,\n * removed, or moved by a directive that uses a {@link ViewContainerRef} such as a `ngFor`, an\n * `ngIf`, or an `ngSwitch`.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Query(Dependency) dependencies:QueryList<Dependency>) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a {@link QueryList} which contains `Dependency` 4 and\n * 6. Here, `Dependency` 5 would not be included, because it is not a direct child.\n *\n * ### Injecting a live collection of descendant directives\n *\n * By passing the descendant flag to `@Query` above, we can include the children of the child\n * elements.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Query(Dependency, {descendants: true}) dependencies:QueryList<Dependency>) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a Query which would contain `Dependency` 4, 5 and 6.\n *\n * ### Optional injection\n *\n * The normal behavior of directives is to return an error when a specified dependency cannot be\n * resolved. If you\n * would like to inject `null` on unresolved dependency instead, you can annotate that dependency\n * with `@Optional()`.\n * This explicitly permits the author of a template to treat some of the surrounding directives as\n * optional.\n *\n * ```\n * @Directive({ selector: '[my-directive]' })\n * class MyDirective {\n * constructor(@Optional() dependency:Dependency) {\n * }\n * }\n * ```\n *\n * This directive would be instantiated with a `Dependency` directive found on the current element.\n * If none can be\n * found, the injector supplies `null` instead of throwing an error.\n *\n * ### Example\n *\n * Here we use a decorator directive to simply define basic tool-tip behavior.\n *\n * ```\n * @Directive({\n * selector: '[tooltip]',\n * inputs: [\n * 'text: tooltip'\n * ],\n * host: {\n * '(mouseenter)': 'onMouseEnter()',\n * '(mouseleave)': 'onMouseLeave()'\n * }\n * })\n * class Tooltip{\n * text:string;\n * overlay:Overlay; // NOT YET IMPLEMENTED\n * overlayManager:OverlayManager; // NOT YET IMPLEMENTED\n *\n * constructor(overlayManager:OverlayManager) {\n * this.overlay = overlay;\n * }\n *\n * onMouseEnter() {\n * // exact signature to be determined\n * this.overlay = this.overlayManager.open(text, ...);\n * }\n *\n * onMouseLeave() {\n * this.overlay.close();\n * this.overlay = null;\n * }\n * }\n * ```\n * In our HTML template, we can then add this behavior to a `<div>` or any other element with the\n * `tooltip` selector,\n * like so:\n *\n * ```\n * <div tooltip=\"some text here\"></div>\n * ```\n *\n * Directives can also control the instantiation, destruction, and positioning of inline template\n * elements:\n *\n * A directive uses a {@link ViewContainerRef} to instantiate, insert, move, and destroy views at\n * runtime.\n * The {@link ViewContainerRef} is created as a result of `<template>` element, and represents a\n * location in the current view\n * where these actions are performed.\n *\n * Views are always created as children of the current {@link ViewMetadata}, and as siblings of the\n * `<template>` element. Thus a\n * directive in a child view cannot inject the directive that created it.\n *\n * Since directives that create views via ViewContainers are common in Angular, and using the full\n * `<template>` element syntax is wordy, Angular\n * also supports a shorthand notation: `<li *foo=\"bar\">` and `<li template=\"foo: bar\">` are\n * equivalent.\n *\n * Thus,\n *\n * ```\n * <ul>\n * <li *foo=\"bar\" title=\"text\"></li>\n * </ul>\n * ```\n *\n * Expands in use to:\n *\n * ```\n * <ul>\n * <template [foo]=\"bar\">\n * <li title=\"text\"></li>\n * </template>\n * </ul>\n * ```\n *\n * Notice that although the shorthand places `*foo=\"bar\"` within the `<li>` element, the binding for\n * the directive\n * controller is correctly instantiated on the `<template>` element rather than the `<li>` element.\n *\n * ## Lifecycle hooks\n *\n * When the directive class implements some {@link ../../guide/lifecycle-hooks.html} the callbacks\n * are called by the change detection at defined points in time during the life of the directive.\n *\n * ### Example\n *\n * Let's suppose we want to implement the `unless` behavior, to conditionally include a template.\n *\n * Here is a simple directive that triggers on an `unless` selector:\n *\n * ```\n * @Directive({\n * selector: '[unless]',\n * inputs: ['unless']\n * })\n * export class Unless {\n * viewContainer: ViewContainerRef;\n * templateRef: TemplateRef;\n * prevCondition: boolean;\n *\n * constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef) {\n * this.viewContainer = viewContainer;\n * this.templateRef = templateRef;\n * this.prevCondition = null;\n * }\n *\n * set unless(newCondition) {\n * if (newCondition && (isBlank(this.prevCondition) || !this.prevCondition)) {\n * this.prevCondition = true;\n * this.viewContainer.clear();\n * } else if (!newCondition && (isBlank(this.prevCondition) || this.prevCondition)) {\n * this.prevCondition = false;\n * this.viewContainer.create(this.templateRef);\n * }\n * }\n * }\n * ```\n *\n * We can then use this `unless` selector in a template:\n * ```\n * <ul>\n * <li *unless=\"expr\"></li>\n * </ul>\n * ```\n *\n * Once the directive instantiates the child view, the shorthand notation for the template expands\n * and the result is:\n *\n * ```\n * <ul>\n * <template [unless]=\"exp\">\n * <li></li>\n * </template>\n * <li></li>\n * </ul>\n * ```\n *\n * Note also that although the `<li></li>` template still exists inside the `<template></template>`,\n * the instantiated\n * view occurs on the second `<li></li>` which is a sibling to the `<template>` element.\n */\nexport var Directive = makeDecorator(DirectiveMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ViewMetadata.\n/**\n * Metadata properties available for configuring Views.\n *\n * Each Angular component requires a single `@Component` and at least one `@View` annotation. The\n * `@View` annotation specifies the HTML template to use, and lists the directives that are active\n * within the template.\n *\n * When a component is instantiated, the template is loaded into the component's shadow root, and\n * the expressions and statements in the template are evaluated against the component.\n *\n * For details on the `@Component` annotation, see {@link ComponentMetadata}.\n *\n * ### Example\n *\n * ```\n * @Component({\n * selector: 'greet',\n * template: 'Hello {{name}}!',\n * directives: [GreetUser, Bold]\n * })\n * class Greet {\n * name: string;\n *\n * constructor() {\n * this.name = 'World';\n * }\n * }\n * ```\n */\nvar View = makeDecorator(ViewMetadata, (fn) => fn.View = View);\n/**\n * Specifies that a constant attribute value should be injected.\n *\n * The directive can inject constant string literals of host element attributes.\n *\n * ### Example\n *\n * Suppose we have an `<input>` element and want to know its `type`.\n *\n * ```html\n * <input type=\"text\">\n * ```\n *\n * A decorator can inject string literal `text` like so:\n *\n * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}\n */\nexport var Attribute = makeParamDecorator(AttributeMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from QueryMetadata.\n/**\n * Declares an injectable parameter to be a live list of directives or variable\n * bindings from the content children of a directive.\n *\n * ### Example ([live demo](http://plnkr.co/edit/lY9m8HLy7z06vDoUaSN2?p=preview))\n *\n * Assume that `<tabs>` component would like to get a list its children `<pane>`\n * components as shown in this example:\n *\n * ```html\n * <tabs>\n * <pane title=\"Overview\">...</pane>\n * <pane *ngFor=\"let o of objects\" [title]=\"o.title\">{{o.text}}</pane>\n * </tabs>\n * ```\n *\n * The preferred solution is to query for `Pane` directives using this decorator.\n *\n * ```javascript\n * @Component({\n * selector: 'pane',\n * inputs: ['title']\n * })\n * class Pane {\n * title:string;\n * }\n *\n * @Component({\n * selector: 'tabs',\n * template: `\n * <ul>\n * <li *ngFor=\"let pane of panes\">{{pane.title}}</li>\n * </ul>\n * <ng-content></ng-content>\n * `\n * })\n * class Tabs {\n * panes: QueryList<Pane>;\n * constructor(@Query(Pane) panes:QueryList<Pane>) {\n * this.panes = panes;\n * }\n * }\n * ```\n *\n * A query can look for variable bindings by passing in a string with desired binding symbol.\n *\n * ### Example ([live demo](http://plnkr.co/edit/sT2j25cH1dURAyBRCKx1?p=preview))\n * ```html\n * <seeker>\n * <div #findme>...</div>\n * </seeker>\n *\n * @Component({ selector: 'seeker' })\n * class seeker {\n * constructor(@Query('findme') elList: QueryList<ElementRef>) {...}\n * }\n * ```\n *\n * In this case the object that is injected depend on the type of the variable\n * binding. It can be an ElementRef, a directive or a component.\n *\n * Passing in a comma separated list of variable bindings will query for all of them.\n *\n * ```html\n * <seeker>\n * <div #findMe>...</div>\n * <div #findMeToo>...</div>\n * </seeker>\n *\n * @Component({\n * selector: 'seeker'\n * })\n * class Seeker {\n * constructor(@Query('findMe, findMeToo') elList: QueryList<ElementRef>) {...}\n * }\n * ```\n *\n * Configure whether query looks for direct children or all descendants\n * of the querying element, by using the `descendants` parameter.\n * It is set to `false` by default.\n *\n * ### Example ([live demo](http://plnkr.co/edit/wtGeB977bv7qvA5FTYl9?p=preview))\n * ```html\n * <container #first>\n * <item>a</item>\n * <item>b</item>\n * <container #second>\n * <item>c</item>\n * </container>\n * </container>\n * ```\n *\n * When querying for items, the first container will see only `a` and `b` by default,\n * but with `Query(TextDirective, {descendants: true})` it will see `c` too.\n *\n * The queried directives are kept in a depth-first pre-order with respect to their\n * positions in the DOM.\n *\n * Query does not look deep into any subcomponent views.\n *\n * Query is updated as part of the change-detection cycle. Since change detection\n * happens after construction of a directive, QueryList will always be empty when observed in the\n * constructor.\n *\n * The injected object is an unmodifiable live list.\n * See {@link QueryList} for more details.\n */\nexport var Query = makeParamDecorator(QueryMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ContentChildrenMetadata.\n/**\n * Configures a content query.\n *\n * Content queries are set before the `ngAfterContentInit` callback is called.\n *\n * ### Example\n *\n * ```\n * @Directive({\n * selector: 'someDir'\n * })\n * class SomeDir {\n * @ContentChildren(ChildDirective) contentChildren: QueryList<ChildDirective>;\n *\n * ngAfterContentInit() {\n * // contentChildren is set\n * }\n * }\n * ```\n */\nexport var ContentChildren = makePropDecorator(ContentChildrenMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ContentChildMetadata.\n/**\n * Configures a content query.\n *\n * Content queries are set before the `ngAfterContentInit` callback is called.\n *\n * ### Example\n *\n * ```\n * @Directive({\n * selector: 'someDir'\n * })\n * class SomeDir {\n * @ContentChild(ChildDirective) contentChild;\n *\n * ngAfterContentInit() {\n * // contentChild is set\n * }\n * }\n * ```\n */\nexport var ContentChild = makePropDecorator(ContentChildMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ViewChildrenMetadata.\n/**\n * Declares a list of child element references.\n *\n * Angular automatically updates the list when the DOM is updated.\n *\n * `ViewChildren` takes a argument to select elements.\n *\n * - If the argument is a type, directives or components with the type will be bound.\n *\n * - If the argument is a string, the string is interpreted as a list of comma-separated selectors.\n * For each selector, an element containing the matching template variable (e.g. `#child`) will be\n * bound.\n *\n * View children are set before the `ngAfterViewInit` callback is called.\n *\n * ### Example\n *\n * With type selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: `\n * <child-cmp></child-cmp>\n * <child-cmp></child-cmp>\n * <child-cmp></child-cmp>\n * `,\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChildren(ChildCmp) children:QueryList<ChildCmp>;\n *\n * ngAfterViewInit() {\n * // children are set\n * this.children.toArray().forEach((child)=>child.doSomething());\n * }\n * }\n * ```\n *\n * With string selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: `\n * <child-cmp #child1></child-cmp>\n * <child-cmp #child2></child-cmp>\n * <child-cmp #child3></child-cmp>\n * `,\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChildren('child1,child2,child3') children:QueryList<ChildCmp>;\n *\n * ngAfterViewInit() {\n * // children are set\n * this.children.toArray().forEach((child)=>child.doSomething());\n * }\n * }\n * ```\n *\n * See also: [ViewChildrenMetadata]\n */\nexport var ViewChildren = makePropDecorator(ViewChildrenMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ViewChildMetadata.\n/**\n * Declares a reference to a child element.\n *\n * `ViewChildren` takes a argument to select elements.\n *\n * - If the argument is a type, a directive or a component with the type will be bound.\n *\n * - If the argument is a string, the string is interpreted as a selector. An element containing the\n * matching template variable (e.g. `#child`) will be bound.\n *\n * In either case, `@ViewChild()` assigns the first (looking from above) element if there are\n * multiple matches.\n *\n * View child is set before the `ngAfterViewInit` callback is called.\n *\n * ### Example\n *\n * With type selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: '<child-cmp></child-cmp>',\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChild(ChildCmp) child:ChildCmp;\n *\n * ngAfterViewInit() {\n * // child is set\n * this.child.doSomething();\n * }\n * }\n * ```\n *\n * With string selector:\n *\n * ```\n * @Component({\n * selector: 'child-cmp',\n * template: '<p>child</p>'\n * })\n * class ChildCmp {\n * doSomething() {}\n * }\n *\n * @Component({\n * selector: 'some-cmp',\n * template: '<child-cmp #child></child-cmp>',\n * directives: [ChildCmp]\n * })\n * class SomeCmp {\n * @ViewChild('child') child:ChildCmp;\n *\n * ngAfterViewInit() {\n * // child is set\n * this.child.doSomething();\n * }\n * }\n * ```\n * See also: [ViewChildMetadata]\n */\nexport var ViewChild = makePropDecorator(ViewChildMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from ViewQueryMetadata.\n/**\n * Similar to {@link QueryMetadata}, but querying the component view, instead of\n * the content children.\n *\n * ### Example ([live demo](http://plnkr.co/edit/eNsFHDf7YjyM6IzKxM1j?p=preview))\n *\n * ```javascript\n * @Component({\n * ...,\n * template: `\n * <item> a </item>\n * <item> b </item>\n * <item> c </item>\n * `\n * })\n * class MyComponent {\n * shown: boolean;\n *\n * constructor(private @Query(Item) items:QueryList<Item>) {\n * items.changes.subscribe(() => console.log(items.length));\n * }\n * }\n * ```\n *\n * Supports the same querying parameters as {@link QueryMetadata}, except\n * `descendants`. This always queries the whole view.\n *\n * As `shown` is flipped between true and false, items will contain zero of one\n * items.\n *\n * Specifies that a {@link QueryList} should be injected.\n *\n * The injected object is an iterable and observable live list.\n * See {@link QueryList} for more details.\n */\nexport var ViewQuery = makeParamDecorator(ViewQueryMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from PipeMetadata.\n/**\n * Declare reusable pipe function.\n *\n * ### Example\n *\n * {@example core/ts/metadata/metadata.ts region='pipe'}\n */\nexport var Pipe = makeDecorator(PipeMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from InputMetadata.\n/**\n * Declares a data-bound input property.\n *\n * Angular automatically updates data-bound properties during change detection.\n *\n * `InputMetadata` takes an optional parameter that specifies the name\n * used when instantiating a component in the template. When not provided,\n * the name of the decorated property is used.\n *\n * ### Example\n *\n * The following example creates a component with two input properties.\n *\n * ```typescript\n * @Component({\n * selector: 'bank-account',\n * template: `\n * Bank Name: {{bankName}}\n * Account Id: {{id}}\n * `\n * })\n * class BankAccount {\n * @Input() bankName: string;\n * @Input('account-id') id: string;\n *\n * // this property is not bound, and won't be automatically updated by Angular\n * normalizedBankName: string;\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `\n * <bank-account bank-name=\"RBC\" account-id=\"4747\"></bank-account>\n * `,\n * directives: [BankAccount]\n * })\n * class App {}\n *\n * bootstrap(App);\n * ```\n */\nexport var Input = makePropDecorator(InputMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from OutputMetadata.\n/**\n * Declares an event-bound output property.\n *\n * When an output property emits an event, an event handler attached to that event\n * the template is invoked.\n *\n * `OutputMetadata` takes an optional parameter that specifies the name\n * used when instantiating a component in the template. When not provided,\n * the name of the decorated property is used.\n *\n * ### Example\n *\n * ```typescript\n * @Directive({\n * selector: 'interval-dir',\n * })\n * class IntervalDir {\n * @Output() everySecond = new EventEmitter();\n * @Output('everyFiveSeconds') five5Secs = new EventEmitter();\n *\n * constructor() {\n * setInterval(() => this.everySecond.emit(\"event\"), 1000);\n * setInterval(() => this.five5Secs.emit(\"event\"), 5000);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `\n * <interval-dir (everySecond)=\"everySecond()\" (everyFiveSeconds)=\"everyFiveSeconds()\">\n * </interval-dir>\n * `,\n * directives: [IntervalDir]\n * })\n * class App {\n * everySecond() { console.log('second'); }\n * everyFiveSeconds() { console.log('five seconds'); }\n * }\n * bootstrap(App);\n * ```\n */\nexport var Output = makePropDecorator(OutputMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from HostBindingMetadata.\n/**\n * Declares a host property binding.\n *\n * Angular automatically checks host property bindings during change detection.\n * If a binding changes, it will update the host element of the directive.\n *\n * `HostBindingMetadata` takes an optional parameter that specifies the property\n * name of the host element that will be updated. When not provided,\n * the class property name is used.\n *\n * ### Example\n *\n * The following example creates a directive that sets the `valid` and `invalid` classes\n * on the DOM element that has ngModel directive on it.\n *\n * ```typescript\n * @Directive({selector: '[ngModel]'})\n * class NgModelStatus {\n * constructor(public control:NgModel) {}\n * @HostBinding('[class.valid]') get valid { return this.control.valid; }\n * @HostBinding('[class.invalid]') get invalid { return this.control.invalid; }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `<input [(ngModel)]=\"prop\">`,\n * directives: [FORM_DIRECTIVES, NgModelStatus]\n * })\n * class App {\n * prop;\n * }\n *\n * bootstrap(App);\n * ```\n */\nexport var HostBinding = makePropDecorator(HostBindingMetadata);\n// TODO(alexeagle): remove the duplication of this doc. It is copied from HostListenerMetadata.\n/**\n * Declares a host listener.\n *\n * Angular will invoke the decorated method when the host element emits the specified event.\n *\n * If the decorated method returns `false`, then `preventDefault` is applied on the DOM\n * event.\n *\n * ### Example\n *\n * The following example declares a directive that attaches a click listener to the button and\n * counts clicks.\n *\n * ```typescript\n * @Directive({selector: 'button[counting]'})\n * class CountClicks {\n * numberOfClicks = 0;\n *\n * @HostListener('click', ['$event.target'])\n * onClick(btn) {\n * console.log(\"button\", btn, \"number of clicks:\", this.numberOfClicks++);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: `<button counting>Increment</button>`,\n * directives: [CountClicks]\n * })\n * class App {}\n *\n * bootstrap(App);\n * ```\n */\nexport var HostListener = makePropDecorator(HostListenerMetadata);\n//# sourceMappingURL=metadata.js.map","import { InjectMetadata, OptionalMetadata, InjectableMetadata, SelfMetadata, HostMetadata, SkipSelfMetadata } from './metadata';\nimport { makeDecorator, makeParamDecorator } from '../util/decorators';\n/**\n * Factory for creating {@link InjectMetadata}.\n */\nexport var Inject = makeParamDecorator(InjectMetadata);\n/**\n * Factory for creating {@link OptionalMetadata}.\n */\nexport var Optional = makeParamDecorator(OptionalMetadata);\n/**\n * Factory for creating {@link InjectableMetadata}.\n */\nexport var Injectable = makeDecorator(InjectableMetadata);\n/**\n * Factory for creating {@link SelfMetadata}.\n */\nexport var Self = makeParamDecorator(SelfMetadata);\n/**\n * Factory for creating {@link HostMetadata}.\n */\nexport var Host = makeParamDecorator(HostMetadata);\n/**\n * Factory for creating {@link SkipSelfMetadata}.\n */\nexport var SkipSelf = makeParamDecorator(SkipSelfMetadata);\n//# sourceMappingURL=decorators.js.map","/**\n* A base class for the WrappedException that can be used to identify\n* a WrappedException from ExceptionHandler without adding circular\n* dependency.\n*/\nexport class BaseWrappedException extends Error {\n constructor(message) {\n super(message);\n }\n get wrapperMessage() { return ''; }\n get wrapperStack() { return null; }\n get originalException() { return null; }\n get originalStack() { return null; }\n get context() { return null; }\n get message() { return ''; }\n}\n//# sourceMappingURL=base_wrapped_exception.js.map","import { isJsObject, global, isPresent, isBlank, isArray, getSymbolIterator } from './lang';\nexport var Map = global.Map;\nexport var Set = global.Set;\n// Safari and Internet Explorer do not support the iterable parameter to the\n// Map constructor. We work around that by manually adding the items.\nvar createMapFromPairs = (function () {\n try {\n if (new Map([[1, 2]]).size === 1) {\n return function createMapFromPairs(pairs) { return new Map(pairs); };\n }\n }\n catch (e) {\n }\n return function createMapAndPopulateFromPairs(pairs) {\n var map = new Map();\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n map.set(pair[0], pair[1]);\n }\n return map;\n };\n})();\nvar createMapFromMap = (function () {\n try {\n if (new Map(new Map())) {\n return function createMapFromMap(m) { return new Map(m); };\n }\n }\n catch (e) {\n }\n return function createMapAndPopulateFromMap(m) {\n var map = new Map();\n m.forEach((v, k) => { map.set(k, v); });\n return map;\n };\n})();\nvar _clearValues = (function () {\n if ((new Map()).keys().next) {\n return function _clearValues(m) {\n var keyIterator = m.keys();\n var k;\n while (!((k = keyIterator.next()).done)) {\n m.set(k.value, null);\n }\n };\n }\n else {\n return function _clearValuesWithForeEach(m) {\n m.forEach((v, k) => { m.set(k, null); });\n };\n }\n})();\n// Safari doesn't implement MapIterator.next(), which is used is Traceur's polyfill of Array.from\n// TODO(mlaval): remove the work around once we have a working polyfill of Array.from\nvar _arrayFromMap = (function () {\n try {\n if ((new Map()).values().next) {\n return function createArrayFromMap(m, getValues) {\n return getValues ? Array.from(m.values()) : Array.from(m.keys());\n };\n }\n }\n catch (e) {\n }\n return function createArrayFromMapWithForeach(m, getValues) {\n var res = ListWrapper.createFixedSize(m.size), i = 0;\n m.forEach((v, k) => {\n res[i] = getValues ? v : k;\n i++;\n });\n return res;\n };\n})();\nexport class MapWrapper {\n static clone(m) { return createMapFromMap(m); }\n static createFromStringMap(stringMap) {\n var result = new Map();\n for (var prop in stringMap) {\n result.set(prop, stringMap[prop]);\n }\n return result;\n }\n static toStringMap(m) {\n var r = {};\n m.forEach((v, k) => r[k] = v);\n return r;\n }\n static createFromPairs(pairs) { return createMapFromPairs(pairs); }\n static clearValues(m) { _clearValues(m); }\n static iterable(m) { return m; }\n static keys(m) { return _arrayFromMap(m, false); }\n static values(m) { return _arrayFromMap(m, true); }\n}\n/**\n * Wraps Javascript Objects\n */\nexport class StringMapWrapper {\n static create() {\n // Note: We are not using Object.create(null) here due to\n // performance!\n // http://jsperf.com/ng2-object-create-null\n return {};\n }\n static contains(map, key) {\n return map.hasOwnProperty(key);\n }\n static get(map, key) {\n return map.hasOwnProperty(key) ? map[key] : undefined;\n }\n static set(map, key, value) { map[key] = value; }\n static keys(map) { return Object.keys(map); }\n static values(map) {\n return Object.keys(map).reduce((r, a) => {\n r.push(map[a]);\n return r;\n }, []);\n }\n static isEmpty(map) {\n for (var prop in map) {\n return false;\n }\n return true;\n }\n static delete(map, key) { delete map[key]; }\n static forEach(map, callback) {\n for (var prop in map) {\n if (map.hasOwnProperty(prop)) {\n callback(map[prop], prop);\n }\n }\n }\n static merge(m1, m2) {\n var m = {};\n for (var attr in m1) {\n if (m1.hasOwnProperty(attr)) {\n m[attr] = m1[attr];\n }\n }\n for (var attr in m2) {\n if (m2.hasOwnProperty(attr)) {\n m[attr] = m2[attr];\n }\n }\n return m;\n }\n static equals(m1, m2) {\n var k1 = Object.keys(m1);\n var k2 = Object.keys(m2);\n if (k1.length != k2.length) {\n return false;\n }\n var key;\n for (var i = 0; i < k1.length; i++) {\n key = k1[i];\n if (m1[key] !== m2[key]) {\n return false;\n }\n }\n return true;\n }\n}\nexport class ListWrapper {\n // JS has no way to express a statically fixed size list, but dart does so we\n // keep both methods.\n static createFixedSize(size) { return new Array(size); }\n static createGrowableSize(size) { return new Array(size); }\n static clone(array) { return array.slice(0); }\n static forEachWithIndex(array, fn) {\n for (var i = 0; i < array.length; i++) {\n fn(array[i], i);\n }\n }\n static first(array) {\n if (!array)\n return null;\n return array[0];\n }\n static last(array) {\n if (!array || array.length == 0)\n return null;\n return array[array.length - 1];\n }\n static indexOf(array, value, startIndex = 0) {\n return array.indexOf(value, startIndex);\n }\n static contains(list, el) { return list.indexOf(el) !== -1; }\n static reversed(array) {\n var a = ListWrapper.clone(array);\n return a.reverse();\n }\n static concat(a, b) { return a.concat(b); }\n static insert(list, index, value) { list.splice(index, 0, value); }\n static removeAt(list, index) {\n var res = list[index];\n list.splice(index, 1);\n return res;\n }\n static removeAll(list, items) {\n for (var i = 0; i < items.length; ++i) {\n var index = list.indexOf(items[i]);\n list.splice(index, 1);\n }\n }\n static remove(list, el) {\n var index = list.indexOf(el);\n if (index > -1) {\n list.splice(index, 1);\n return true;\n }\n return false;\n }\n static clear(list) { list.length = 0; }\n static isEmpty(list) { return list.length == 0; }\n static fill(list, value, start = 0, end = null) {\n list.fill(value, start, end === null ? list.length : end);\n }\n static equals(a, b) {\n if (a.length != b.length)\n return false;\n for (var i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n }\n static slice(l, from = 0, to = null) {\n return l.slice(from, to === null ? undefined : to);\n }\n static splice(l, from, length) { return l.splice(from, length); }\n static sort(l, compareFn) {\n if (isPresent(compareFn)) {\n l.sort(compareFn);\n }\n else {\n l.sort();\n }\n }\n static toString(l) { return l.toString(); }\n static toJSON(l) { return JSON.stringify(l); }\n static maximum(list, predicate) {\n if (list.length == 0) {\n return null;\n }\n var solution = null;\n var maxValue = -Infinity;\n for (var index = 0; index < list.length; index++) {\n var candidate = list[index];\n if (isBlank(candidate)) {\n continue;\n }\n var candidateValue = predicate(candidate);\n if (candidateValue > maxValue) {\n solution = candidate;\n maxValue = candidateValue;\n }\n }\n return solution;\n }\n static flatten(list) {\n var target = [];\n _flattenArray(list, target);\n return target;\n }\n static addAll(list, source) {\n for (var i = 0; i < source.length; i++) {\n list.push(source[i]);\n }\n }\n}\nfunction _flattenArray(source, target) {\n if (isPresent(source)) {\n for (var i = 0; i < source.length; i++) {\n var item = source[i];\n if (isArray(item)) {\n _flattenArray(item, target);\n }\n else {\n target.push(item);\n }\n }\n }\n return target;\n}\nexport function isListLikeIterable(obj) {\n if (!isJsObject(obj))\n return false;\n return isArray(obj) ||\n (!(obj instanceof Map) &&\n getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop\n}\nexport function areIterablesEqual(a, b, comparator) {\n var iterator1 = a[getSymbolIterator()]();\n var iterator2 = b[getSymbolIterator()]();\n while (true) {\n let item1 = iterator1.next();\n let item2 = iterator2.next();\n if (item1.done && item2.done)\n return true;\n if (item1.done || item2.done)\n return false;\n if (!comparator(item1.value, item2.value))\n return false;\n }\n}\nexport function iterateListLike(obj, fn) {\n if (isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n fn(obj[i]);\n }\n }\n else {\n var iterator = obj[getSymbolIterator()]();\n var item;\n while (!((item = iterator.next()).done)) {\n fn(item.value);\n }\n }\n}\n// Safari and Internet Explorer do not support the iterable parameter to the\n// Set constructor. We work around that by manually adding the items.\nvar createSetFromList = (function () {\n var test = new Set([1, 2, 3]);\n if (test.size === 3) {\n return function createSetFromList(lst) { return new Set(lst); };\n }\n else {\n return function createSetAndPopulateFromList(lst) {\n var res = new Set(lst);\n if (res.size !== lst.length) {\n for (var i = 0; i < lst.length; i++) {\n res.add(lst[i]);\n }\n }\n return res;\n };\n }\n})();\nexport class SetWrapper {\n static createFromList(lst) { return createSetFromList(lst); }\n static has(s, key) { return s.has(key); }\n static delete(m, k) { m.delete(k); }\n}\n//# sourceMappingURL=collection.js.map","import { isPresent, isBlank } from './lang';\nimport { BaseWrappedException } from './base_wrapped_exception';\nimport { isListLikeIterable } from './collection';\nclass _ArrayLogger {\n constructor() {\n this.res = [];\n }\n log(s) { this.res.push(s); }\n logError(s) { this.res.push(s); }\n logGroup(s) { this.res.push(s); }\n logGroupEnd() { }\n ;\n}\n/**\n * Provides a hook for centralized exception handling.\n *\n * The default implementation of `ExceptionHandler` prints error messages to the `Console`. To\n * intercept error handling,\n * write a custom exception handler that replaces this default as appropriate for your app.\n *\n * ### Example\n *\n * ```javascript\n *\n * class MyExceptionHandler implements ExceptionHandler {\n * call(error, stackTrace = null, reason = null) {\n * // do something with the exception\n * }\n * }\n *\n * bootstrap(MyApp, [provide(ExceptionHandler, {useClass: MyExceptionHandler})])\n *\n * ```\n */\nexport class ExceptionHandler {\n constructor(_logger, _rethrowException = true) {\n this._logger = _logger;\n this._rethrowException = _rethrowException;\n }\n static exceptionToString(exception, stackTrace = null, reason = null) {\n var l = new _ArrayLogger();\n var e = new ExceptionHandler(l, false);\n e.call(exception, stackTrace, reason);\n return l.res.join(\"\\n\");\n }\n call(exception, stackTrace = null, reason = null) {\n var originalException = this._findOriginalException(exception);\n var originalStack = this._findOriginalStack(exception);\n var context = this._findContext(exception);\n this._logger.logGroup(`EXCEPTION: ${this._extractMessage(exception)}`);\n if (isPresent(stackTrace) && isBlank(originalStack)) {\n this._logger.logError(\"STACKTRACE:\");\n this._logger.logError(this._longStackTrace(stackTrace));\n }\n if (isPresent(reason)) {\n this._logger.logError(`REASON: ${reason}`);\n }\n if (isPresent(originalException)) {\n this._logger.logError(`ORIGINAL EXCEPTION: ${this._extractMessage(originalException)}`);\n }\n if (isPresent(originalStack)) {\n this._logger.logError(\"ORIGINAL STACKTRACE:\");\n this._logger.logError(this._longStackTrace(originalStack));\n }\n if (isPresent(context)) {\n this._logger.logError(\"ERROR CONTEXT:\");\n this._logger.logError(context);\n }\n this._logger.logGroupEnd();\n // We rethrow exceptions, so operations like 'bootstrap' will result in an error\n // when an exception happens. If we do not rethrow, bootstrap will always succeed.\n if (this._rethrowException)\n throw exception;\n }\n /** @internal */\n _extractMessage(exception) {\n return exception instanceof BaseWrappedException ? exception.wrapperMessage :\n exception.toString();\n }\n /** @internal */\n _longStackTrace(stackTrace) {\n return isListLikeIterable(stackTrace) ? stackTrace.join(\"\\n\\n-----async gap-----\\n\") :\n stackTrace.toString();\n }\n /** @internal */\n _findContext(exception) {\n try {\n if (!(exception instanceof BaseWrappedException))\n return null;\n return isPresent(exception.context) ? exception.context :\n this._findContext(exception.originalException);\n }\n catch (e) {\n // exception.context can throw an exception. if it happens, we ignore the context.\n return null;\n }\n }\n /** @internal */\n _findOriginalException(exception) {\n if (!(exception instanceof BaseWrappedException))\n return null;\n var e = exception.originalException;\n while (e instanceof BaseWrappedException && isPresent(e.originalException)) {\n e = e.originalException;\n }\n return e;\n }\n /** @internal */\n _findOriginalStack(exception) {\n if (!(exception instanceof BaseWrappedException))\n return null;\n var e = exception;\n var stack = exception.originalStack;\n while (e instanceof BaseWrappedException && isPresent(e.originalException)) {\n e = e.originalException;\n if (e instanceof BaseWrappedException && isPresent(e.originalException)) {\n stack = e.originalStack;\n }\n }\n return stack;\n }\n}\n//# sourceMappingURL=exception_handler.js.map","import { BaseWrappedException } from './base_wrapped_exception';\nimport { ExceptionHandler } from './exception_handler';\nexport { ExceptionHandler } from './exception_handler';\nexport class BaseException extends Error {\n constructor(message = \"--\") {\n super(message);\n this.message = message;\n this.stack = (new Error(message)).stack;\n }\n toString() { return this.message; }\n}\n/**\n * Wraps an exception and provides additional context or information.\n */\nexport class WrappedException extends BaseWrappedException {\n constructor(_wrapperMessage, _originalException, _originalStack, _context) {\n super(_wrapperMessage);\n this._wrapperMessage = _wrapperMessage;\n this._originalException = _originalException;\n this._originalStack = _originalStack;\n this._context = _context;\n this._wrapperStack = (new Error(_wrapperMessage)).stack;\n }\n get wrapperMessage() { return this._wrapperMessage; }\n get wrapperStack() { return this._wrapperStack; }\n get originalException() { return this._originalException; }\n get originalStack() { return this._originalStack; }\n get context() { return this._context; }\n get message() { return ExceptionHandler.exceptionToString(this); }\n toString() { return this.message; }\n}\nexport function makeTypeError(message) {\n return new TypeError(message);\n}\nexport function unimplemented() {\n throw new BaseException('unimplemented');\n}\n//# sourceMappingURL=exceptions.js.map","import { unimplemented } from '../../src/facade/exceptions';\nconst _THROW_IF_NOT_FOUND = new Object();\nexport const THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\nexport class Injector {\n /**\n * Retrieves an instance from the injector based on the provided token.\n * If not found:\n * - Throws {@link NoProviderError} if no `notFoundValue` that is not equal to\n * Injector.THROW_IF_NOT_FOUND is given\n * - Returns the `notFoundValue` otherwise\n *\n * ### Example ([live demo](http://plnkr.co/edit/HeXSHg?p=preview))\n *\n * ```typescript\n * var injector = ReflectiveInjector.resolveAndCreate([\n * provide(\"validToken\", {useValue: \"Value\"})\n * ]);\n * expect(injector.get(\"validToken\")).toEqual(\"Value\");\n * expect(() => injector.get(\"invalidToken\")).toThrowError();\n * ```\n *\n * `Injector` returns itself when given `Injector` as a token.\n *\n * ```typescript\n * var injector = ReflectiveInjector.resolveAndCreate([]);\n * expect(injector.get(Injector)).toBe(injector);\n * ```\n */\n get(token, notFoundValue) { return unimplemented(); }\n}\nInjector.THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n//# sourceMappingURL=injector.js.map","/**\n* Provides read-only access to reflection data about symbols. Used internally by Angular\n* to power dependency injection and compilation.\n*/\nexport class ReflectorReader {\n}\n//# sourceMappingURL=reflector_reader.js.map","import { isPresent } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { Map, MapWrapper, Set, SetWrapper, StringMapWrapper } from '../../src/facade/collection';\nimport { ReflectorReader } from './reflector_reader';\n/**\n * Reflective information about a symbol, including annotations, interfaces, and other metadata.\n */\nexport class ReflectionInfo {\n constructor(annotations, parameters, factory, interfaces, propMetadata) {\n this.annotations = annotations;\n this.parameters = parameters;\n this.factory = factory;\n this.interfaces = interfaces;\n this.propMetadata = propMetadata;\n }\n}\n/**\n * Provides access to reflection data about symbols. Used internally by Angular\n * to power dependency injection and compilation.\n */\nexport class Reflector extends ReflectorReader {\n constructor(reflectionCapabilities) {\n super();\n /** @internal */\n this._injectableInfo = new Map();\n /** @internal */\n this._getters = new Map();\n /** @internal */\n this._setters = new Map();\n /** @internal */\n this._methods = new Map();\n this._usedKeys = null;\n this.reflectionCapabilities = reflectionCapabilities;\n }\n isReflectionEnabled() { return this.reflectionCapabilities.isReflectionEnabled(); }\n /**\n * Causes `this` reflector to track keys used to access\n * {@link ReflectionInfo} objects.\n */\n trackUsage() { this._usedKeys = new Set(); }\n /**\n * Lists types for which reflection information was not requested since\n * {@link #trackUsage} was called. This list could later be audited as\n * potential dead code.\n */\n listUnusedKeys() {\n if (this._usedKeys == null) {\n throw new BaseException('Usage tracking is disabled');\n }\n var allTypes = MapWrapper.keys(this._injectableInfo);\n return allTypes.filter(key => !SetWrapper.has(this._usedKeys, key));\n }\n registerFunction(func, funcInfo) {\n this._injectableInfo.set(func, funcInfo);\n }\n registerType(type, typeInfo) {\n this._injectableInfo.set(type, typeInfo);\n }\n registerGetters(getters) { _mergeMaps(this._getters, getters); }\n registerSetters(setters) { _mergeMaps(this._setters, setters); }\n registerMethods(methods) { _mergeMaps(this._methods, methods); }\n factory(type) {\n if (this._containsReflectionInfo(type)) {\n var res = this._getReflectionInfo(type).factory;\n return isPresent(res) ? res : null;\n }\n else {\n return this.reflectionCapabilities.factory(type);\n }\n }\n parameters(typeOrFunc) {\n if (this._injectableInfo.has(typeOrFunc)) {\n var res = this._getReflectionInfo(typeOrFunc).parameters;\n return isPresent(res) ? res : [];\n }\n else {\n return this.reflectionCapabilities.parameters(typeOrFunc);\n }\n }\n annotations(typeOrFunc) {\n if (this._injectableInfo.has(typeOrFunc)) {\n var res = this._getReflectionInfo(typeOrFunc).annotations;\n return isPresent(res) ? res : [];\n }\n else {\n return this.reflectionCapabilities.annotations(typeOrFunc);\n }\n }\n propMetadata(typeOrFunc) {\n if (this._injectableInfo.has(typeOrFunc)) {\n var res = this._getReflectionInfo(typeOrFunc).propMetadata;\n return isPresent(res) ? res : {};\n }\n else {\n return this.reflectionCapabilities.propMetadata(typeOrFunc);\n }\n }\n interfaces(type) {\n if (this._injectableInfo.has(type)) {\n var res = this._getReflectionInfo(type).interfaces;\n return isPresent(res) ? res : [];\n }\n else {\n return this.reflectionCapabilities.interfaces(type);\n }\n }\n getter(name) {\n if (this._getters.has(name)) {\n return this._getters.get(name);\n }\n else {\n return this.reflectionCapabilities.getter(name);\n }\n }\n setter(name) {\n if (this._setters.has(name)) {\n return this._setters.get(name);\n }\n else {\n return this.reflectionCapabilities.setter(name);\n }\n }\n method(name) {\n if (this._methods.has(name)) {\n return this._methods.get(name);\n }\n else {\n return this.reflectionCapabilities.method(name);\n }\n }\n /** @internal */\n _getReflectionInfo(typeOrFunc) {\n if (isPresent(this._usedKeys)) {\n this._usedKeys.add(typeOrFunc);\n }\n return this._injectableInfo.get(typeOrFunc);\n }\n /** @internal */\n _containsReflectionInfo(typeOrFunc) { return this._injectableInfo.has(typeOrFunc); }\n importUri(type) { return this.reflectionCapabilities.importUri(type); }\n}\nfunction _mergeMaps(target, config) {\n StringMapWrapper.forEach(config, (v, k) => target.set(k, v));\n}\n//# sourceMappingURL=reflector.js.map","import { isPresent, isFunction, global, stringify } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\nexport class ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = isPresent(reflect) ? reflect : global.Reflect;\n }\n isReflectionEnabled() { return true; }\n factory(t) {\n switch (t.length) {\n case 0:\n return () => new t();\n case 1:\n return (a1) => new t(a1);\n case 2:\n return (a1, a2) => new t(a1, a2);\n case 3:\n return (a1, a2, a3) => new t(a1, a2, a3);\n case 4:\n return (a1, a2, a3, a4) => new t(a1, a2, a3, a4);\n case 5:\n return (a1, a2, a3, a4, a5) => new t(a1, a2, a3, a4, a5);\n case 6:\n return (a1, a2, a3, a4, a5, a6) => new t(a1, a2, a3, a4, a5, a6);\n case 7:\n return (a1, a2, a3, a4, a5, a6, a7) => new t(a1, a2, a3, a4, a5, a6, a7);\n case 8:\n return (a1, a2, a3, a4, a5, a6, a7, a8) => new t(a1, a2, a3, a4, a5, a6, a7, a8);\n case 9:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9);\n case 10:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);\n case 11:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);\n case 12:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);\n case 13:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);\n case 14:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);\n case 15:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);\n case 16:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);\n case 17:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);\n case 18:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);\n case 19:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);\n case 20:\n return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) => new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);\n }\n ;\n throw new Error(`Cannot create a factory for '${stringify(t)}' because its constructor has more than 20 arguments`);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n var result;\n if (typeof paramTypes === 'undefined') {\n result = new Array(paramAnnotations.length);\n }\n else {\n result = new Array(paramTypes.length);\n }\n for (var i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (isPresent(paramAnnotations) && isPresent(paramAnnotations[i])) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n parameters(typeOrFunc) {\n // Prefer the direct API.\n if (isPresent(typeOrFunc.parameters)) {\n return typeOrFunc.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (isPresent(typeOrFunc.ctorParameters)) {\n let ctorParameters = typeOrFunc.ctorParameters;\n let paramTypes = ctorParameters.map(ctorParam => ctorParam && ctorParam.type);\n let paramAnnotations = ctorParameters.map(ctorParam => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n if (isPresent(this._reflect) && isPresent(this._reflect.getMetadata)) {\n var paramAnnotations = this._reflect.getMetadata('parameters', typeOrFunc);\n var paramTypes = this._reflect.getMetadata('design:paramtypes', typeOrFunc);\n if (isPresent(paramTypes) || isPresent(paramAnnotations)) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n }\n // The array has to be filled with `undefined` because holes would be skipped by `some`\n let parameters = new Array(typeOrFunc.length);\n parameters.fill(undefined);\n return parameters;\n }\n annotations(typeOrFunc) {\n // Prefer the direct API.\n if (isPresent(typeOrFunc.annotations)) {\n var annotations = typeOrFunc.annotations;\n if (isFunction(annotations) && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (isPresent(typeOrFunc.decorators)) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (isPresent(this._reflect) && isPresent(this._reflect.getMetadata)) {\n var annotations = this._reflect.getMetadata('annotations', typeOrFunc);\n if (isPresent(annotations))\n return annotations;\n }\n return [];\n }\n propMetadata(typeOrFunc) {\n // Prefer the direct API.\n if (isPresent(typeOrFunc.propMetadata)) {\n var propMetadata = typeOrFunc.propMetadata;\n if (isFunction(propMetadata) && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (isPresent(typeOrFunc.propDecorators)) {\n let propDecorators = typeOrFunc.propDecorators;\n let propMetadata = {};\n Object.keys(propDecorators)\n .forEach(prop => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (isPresent(this._reflect) && isPresent(this._reflect.getMetadata)) {\n var propMetadata = this._reflect.getMetadata('propMetadata', typeOrFunc);\n if (isPresent(propMetadata))\n return propMetadata;\n }\n return {};\n }\n interfaces(type) {\n throw new BaseException(\"JavaScript does not support interfaces\");\n }\n getter(name) { return new Function('o', 'return o.' + name + ';'); }\n setter(name) {\n return new Function('o', 'v', 'return o.' + name + ' = v;');\n }\n method(name) {\n let functionBody = `if (!o.${name}) throw new Error('\"${name}\" is undefined');\n return o.${name}.apply(o, args);`;\n return new Function('o', 'args', functionBody);\n }\n // There is not a concept of import uri in Js, but this is useful in developing Dart applications.\n importUri(type) { return `./${stringify(type)}`; }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map(decoratorInvocation => {\n var decoratorType = decoratorInvocation.type;\n var annotationCls = decoratorType.annotationCls;\n var annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n var annotation = Object.create(annotationCls.prototype);\n annotationCls.apply(annotation, annotationArgs);\n return annotation;\n });\n}\n//# sourceMappingURL=reflection_capabilities.js.map","import { Reflector } from './reflector';\nexport { Reflector, ReflectionInfo } from './reflector';\nimport { ReflectionCapabilities } from './reflection_capabilities';\n/**\n * The {@link Reflector} used internally in Angular to access metadata\n * about symbols.\n */\nexport var reflector = new Reflector(new ReflectionCapabilities());\n//# sourceMappingURL=reflection.js.map","import { stringify, isBlank } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { resolveForwardRef } from './forward_ref';\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(token, id) {\n this.token = token;\n this.id = id;\n if (isBlank(token)) {\n throw new BaseException('Token must be defined!');\n }\n }\n /**\n * Returns a stringified token.\n */\n get displayName() { return stringify(this.token); }\n /**\n * Retrieves a `Key` for a token.\n */\n static get(token) {\n return _globalKeyRegistry.get(resolveForwardRef(token));\n }\n /**\n * @returns the number of keys registered in the system.\n */\n static get numberOfKeys() { return _globalKeyRegistry.numberOfKeys; }\n}\n/**\n * @internal\n */\nexport class KeyRegistry {\n constructor() {\n this._allKeys = new Map();\n }\n get(token) {\n if (token instanceof ReflectiveKey)\n return token;\n if (this._allKeys.has(token)) {\n return this._allKeys.get(token);\n }\n var newKey = new ReflectiveKey(token, ReflectiveKey.numberOfKeys);\n this._allKeys.set(token, newKey);\n return newKey;\n }\n get numberOfKeys() { return this._allKeys.size; }\n}\nvar _globalKeyRegistry = new KeyRegistry();\n//# sourceMappingURL=reflective_key.js.map","import { ListWrapper } from '../../src/facade/collection';\nimport { stringify, isBlank } from '../../src/facade/lang';\nimport { BaseException, WrappedException } from '../../src/facade/exceptions';\nfunction findFirstClosedCycle(keys) {\n var res = [];\n for (var i = 0; i < keys.length; ++i) {\n if (ListWrapper.contains(res, keys[i])) {\n res.push(keys[i]);\n return res;\n }\n else {\n res.push(keys[i]);\n }\n }\n return res;\n}\nfunction constructResolvingPath(keys) {\n if (keys.length > 1) {\n var reversed = findFirstClosedCycle(ListWrapper.reversed(keys));\n var tokenStrs = reversed.map(k => stringify(k.token));\n return \" (\" + tokenStrs.join(' -> ') + \")\";\n }\n else {\n return \"\";\n }\n}\n/**\n * Base class for all errors arising from misconfigured providers.\n */\nexport class AbstractProviderError extends BaseException {\n constructor(injector, key, constructResolvingMessage) {\n super(\"DI Exception\");\n this.keys = [key];\n this.injectors = [injector];\n this.constructResolvingMessage = constructResolvingMessage;\n this.message = this.constructResolvingMessage(this.keys);\n }\n addKey(injector, key) {\n this.injectors.push(injector);\n this.keys.push(key);\n this.message = this.constructResolvingMessage(this.keys);\n }\n get context() { return this.injectors[this.injectors.length - 1].debugContext(); }\n}\n/**\n * Thrown when trying to retrieve a dependency by `Key` from {@link Injector}, but the\n * {@link Injector} does not have a {@link Provider} for {@link Key}.\n *\n * ### Example ([live demo](http://plnkr.co/edit/vq8D3FRB9aGbnWJqtEPE?p=preview))\n *\n * ```typescript\n * class A {\n * constructor(b:B) {}\n * }\n *\n * expect(() => Injector.resolveAndCreate([A])).toThrowError();\n * ```\n */\nexport class NoProviderError extends AbstractProviderError {\n constructor(injector, key) {\n super(injector, key, function (keys) {\n var first = stringify(ListWrapper.first(keys).token);\n return `No provider for ${first}!${constructResolvingPath(keys)}`;\n });\n }\n}\n/**\n * Thrown when dependencies form a cycle.\n *\n * ### Example ([live demo](http://plnkr.co/edit/wYQdNos0Tzql3ei1EV9j?p=info))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * provide(\"one\", {useFactory: (two) => \"two\", deps: [[new Inject(\"two\")]]}),\n * provide(\"two\", {useFactory: (one) => \"one\", deps: [[new Inject(\"one\")]]})\n * ]);\n *\n * expect(() => injector.get(\"one\")).toThrowError();\n * ```\n *\n * Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed.\n */\nexport class CyclicDependencyError extends AbstractProviderError {\n constructor(injector, key) {\n super(injector, key, function (keys) {\n return `Cannot instantiate cyclic dependency!${constructResolvingPath(keys)}`;\n });\n }\n}\n/**\n * Thrown when a constructing type returns with an Error.\n *\n * The `InstantiationError` class contains the original error plus the dependency graph which caused\n * this object to be instantiated.\n *\n * ### Example ([live demo](http://plnkr.co/edit/7aWYdcqTQsP0eNqEdUAf?p=preview))\n *\n * ```typescript\n * class A {\n * constructor() {\n * throw new Error('message');\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([A]);\n\n * try {\n * injector.get(A);\n * } catch (e) {\n * expect(e instanceof InstantiationError).toBe(true);\n * expect(e.originalException.message).toEqual(\"message\");\n * expect(e.originalStack).toBeDefined();\n * }\n * ```\n */\nexport class InstantiationError extends WrappedException {\n constructor(injector, originalException, originalStack, key) {\n super(\"DI Exception\", originalException, originalStack, null);\n this.keys = [key];\n this.injectors = [injector];\n }\n addKey(injector, key) {\n this.injectors.push(injector);\n this.keys.push(key);\n }\n get wrapperMessage() {\n var first = stringify(ListWrapper.first(this.keys).token);\n return `Error during instantiation of ${first}!${constructResolvingPath(this.keys)}.`;\n }\n get causeKey() { return this.keys[0]; }\n get context() { return this.injectors[this.injectors.length - 1].debugContext(); }\n}\n/**\n * Thrown when an object other then {@link Provider} (or `Type`) is passed to {@link Injector}\n * creation.\n *\n * ### Example ([live demo](http://plnkr.co/edit/YatCFbPAMCL0JSSQ4mvH?p=preview))\n *\n * ```typescript\n * expect(() => Injector.resolveAndCreate([\"not a type\"])).toThrowError();\n * ```\n */\nexport class InvalidProviderError extends BaseException {\n constructor(provider) {\n super(\"Invalid provider - only instances of Provider and Type are allowed, got: \" +\n provider.toString());\n }\n}\n/**\n * Thrown when the class has no annotation information.\n *\n * Lack of annotation information prevents the {@link Injector} from determining which dependencies\n * need to be injected into the constructor.\n *\n * ### Example ([live demo](http://plnkr.co/edit/rHnZtlNS7vJOPQ6pcVkm?p=preview))\n *\n * ```typescript\n * class A {\n * constructor(b) {}\n * }\n *\n * expect(() => Injector.resolveAndCreate([A])).toThrowError();\n * ```\n *\n * This error is also thrown when the class not marked with {@link Injectable} has parameter types.\n *\n * ```typescript\n * class B {}\n *\n * class A {\n * constructor(b:B) {} // no information about the parameter types of A is available at runtime.\n * }\n *\n * expect(() => Injector.resolveAndCreate([A,B])).toThrowError();\n * ```\n */\nexport class NoAnnotationError extends BaseException {\n constructor(typeOrFunc, params) {\n super(NoAnnotationError._genMessage(typeOrFunc, params));\n }\n static _genMessage(typeOrFunc, params) {\n var signature = [];\n for (var i = 0, ii = params.length; i < ii; i++) {\n var parameter = params[i];\n if (isBlank(parameter) || parameter.length == 0) {\n signature.push('?');\n }\n else {\n signature.push(parameter.map(stringify).join(' '));\n }\n }\n return \"Cannot resolve all parameters for '\" + stringify(typeOrFunc) + \"'(\" +\n signature.join(', ') + \"). \" +\n \"Make sure that all the parameters are decorated with Inject or have valid type annotations and that '\" +\n stringify(typeOrFunc) + \"' is decorated with Injectable.\";\n }\n}\n/**\n * Thrown when getting an object by index.\n *\n * ### Example ([live demo](http://plnkr.co/edit/bRs0SX2OTQiJzqvjgl8P?p=preview))\n *\n * ```typescript\n * class A {}\n *\n * var injector = Injector.resolveAndCreate([A]);\n *\n * expect(() => injector.getAt(100)).toThrowError();\n * ```\n */\nexport class OutOfBoundsError extends BaseException {\n constructor(index) {\n super(`Index ${index} is out-of-bounds.`);\n }\n}\n// TODO: add a working example after alpha38 is released\n/**\n * Thrown when a multi provider and a regular provider are bound to the same token.\n *\n * ### Example\n *\n * ```typescript\n * expect(() => Injector.resolveAndCreate([\n * new Provider(\"Strings\", {useValue: \"string1\", multi: true}),\n * new Provider(\"Strings\", {useValue: \"string2\", multi: false})\n * ])).toThrowError();\n * ```\n */\nexport class MixingMultiProvidersWithRegularProvidersError extends BaseException {\n constructor(provider1, provider2) {\n super(\"Cannot mix multi providers and regular providers, got: \" + provider1.toString() + \" \" +\n provider2.toString());\n }\n}\n//# sourceMappingURL=reflective_exceptions.js.map","import { normalizeBool, isType, isBlank, isFunction, stringify } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\n/**\n * Describes how the {@link Injector} should instantiate a given token.\n *\n * See {@link provide}.\n *\n * ### Example ([live demo](http://plnkr.co/edit/GNAyj6K6PfYg2NBzgwZ5?p%3Dpreview&p=preview))\n *\n * ```javascript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"message\", { useValue: 'Hello' })\n * ]);\n *\n * expect(injector.get(\"message\")).toEqual('Hello');\n * ```\n * @ts2dart_const\n */\nexport class Provider {\n constructor(token, { useClass, useValue, useExisting, useFactory, deps, multi }) {\n this.token = token;\n this.useClass = useClass;\n this.useValue = useValue;\n this.useExisting = useExisting;\n this.useFactory = useFactory;\n this.dependencies = deps;\n this._multi = multi;\n }\n // TODO: Provide a full working example after alpha38 is released.\n /**\n * Creates multiple providers matching the same token (a multi-provider).\n *\n * Multi-providers are used for creating pluggable service, where the system comes\n * with some default providers, and the user can register additional providers.\n * The combination of the default providers and the additional providers will be\n * used to drive the behavior of the system.\n *\n * ### Example\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"Strings\", { useValue: \"String1\", multi: true}),\n * new Provider(\"Strings\", { useValue: \"String2\", multi: true})\n * ]);\n *\n * expect(injector.get(\"Strings\")).toEqual([\"String1\", \"String2\"]);\n * ```\n *\n * Multi-providers and regular providers cannot be mixed. The following\n * will throw an exception:\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"Strings\", { useValue: \"String1\", multi: true }),\n * new Provider(\"Strings\", { useValue: \"String2\"})\n * ]);\n * ```\n */\n get multi() { return normalizeBool(this._multi); }\n}\n/**\n * See {@link Provider} instead.\n *\n * @deprecated\n * @ts2dart_const\n */\nexport class Binding extends Provider {\n constructor(token, { toClass, toValue, toAlias, toFactory, deps, multi }) {\n super(token, {\n useClass: toClass,\n useValue: toValue,\n useExisting: toAlias,\n useFactory: toFactory,\n deps: deps,\n multi: multi\n });\n }\n /**\n * @deprecated\n */\n get toClass() { return this.useClass; }\n /**\n * @deprecated\n */\n get toAlias() { return this.useExisting; }\n /**\n * @deprecated\n */\n get toFactory() { return this.useFactory; }\n /**\n * @deprecated\n */\n get toValue() { return this.useValue; }\n}\n/**\n * Creates a {@link Provider}.\n *\n * To construct a {@link Provider}, bind a `token` to either a class, a value, a factory function,\n * or\n * to an existing `token`.\n * See {@link ProviderBuilder} for more details.\n *\n * The `token` is most commonly a class or {@link OpaqueToken-class.html}.\n *\n * @deprecated\n */\nexport function bind(token) {\n return new ProviderBuilder(token);\n}\n/**\n * Helper class for the {@link bind} function.\n */\nexport class ProviderBuilder {\n constructor(token) {\n this.token = token;\n }\n /**\n * Binds a DI token to a class.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ZpBCSYqv6e2ud5KXLdxQ?p=preview))\n *\n * Because `toAlias` and `toClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useClass: Car})\n * ]);\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useExisting: Car})\n * ]);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n toClass(type) {\n if (!isType(type)) {\n throw new BaseException(`Trying to create a class provider but \"${stringify(type)}\" is not a class!`);\n }\n return new Provider(this.token, { useClass: type });\n }\n /**\n * Binds a DI token to a value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/G024PFHmDL0cJFgfZK8O?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * provide('message', {useValue: 'Hello'})\n * ]);\n *\n * expect(injector.get('message')).toEqual('Hello');\n * ```\n */\n toValue(value) { return new Provider(this.token, { useValue: value }); }\n /**\n * Binds a DI token to an existing token.\n *\n * Angular will return the same instance as if the provided token was used. (This is\n * in contrast to `useClass` where a separate instance of `useClass` will be returned.)\n *\n * ### Example ([live demo](http://plnkr.co/edit/uBaoF2pN5cfc5AfZapNw?p=preview))\n *\n * Because `toAlias` and `toClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useExisting: Car})\n * ]);\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useClass: Car})\n * ]);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n toAlias(aliasToken) {\n if (isBlank(aliasToken)) {\n throw new BaseException(`Can not alias ${stringify(this.token)} to a blank value!`);\n }\n return new Provider(this.token, { useExisting: aliasToken });\n }\n /**\n * Binds a DI token to a function which computes the value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/OejNIfTT3zb1iBxaIYOb?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * provide(Number, {useFactory: () => { return 1+2; }}),\n * provide(String, {useFactory: (v) => { return \"Value: \" + v; }, deps: [Number]})\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n */\n toFactory(factory, dependencies) {\n if (!isFunction(factory)) {\n throw new BaseException(`Trying to create a factory provider but \"${stringify(factory)}\" is not a function!`);\n }\n return new Provider(this.token, { useFactory: factory, deps: dependencies });\n }\n}\n/**\n * Creates a {@link Provider}.\n *\n * See {@link Provider} for more details.\n *\n * <!-- TODO: improve the docs -->\n */\nexport function provide(token, { useClass, useValue, useExisting, useFactory, deps, multi }) {\n return new Provider(token, {\n useClass: useClass,\n useValue: useValue,\n useExisting: useExisting,\n useFactory: useFactory,\n deps: deps,\n multi: multi\n });\n}\n//# sourceMappingURL=provider.js.map","import { Provider } from './provider';\nexport function isProviderLiteral(obj) {\n return obj && typeof obj == 'object' && obj.provide;\n}\nexport function createProvider(obj) {\n return new Provider(obj.provide, obj);\n}\n//# sourceMappingURL=provider_util.js.map","import { Type, isBlank, isPresent, isArray } from '../../src/facade/lang';\nimport { MapWrapper, ListWrapper } from '../../src/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 * `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(key, optional, lowerBoundVisibility, upperBoundVisibility, properties) {\n this.key = key;\n this.optional = optional;\n this.lowerBoundVisibility = lowerBoundVisibility;\n this.upperBoundVisibility = upperBoundVisibility;\n this.properties = properties;\n }\n static fromKey(key) {\n return new ReflectiveDependency(key, false, null, null, []);\n }\n}\nconst _EMPTY_LIST = [];\nexport class ResolvedReflectiveProvider_ {\n constructor(key, resolvedFactories, multiProvider) {\n this.key = key;\n this.resolvedFactories = resolvedFactories;\n this.multiProvider = multiProvider;\n }\n get resolvedFactory() { return this.resolvedFactories[0]; }\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 factory, \n /**\n * Arguments (dependencies) to the `factory` function.\n */\n dependencies) {\n this.factory = factory;\n this.dependencies = dependencies;\n }\n}\n/**\n * Resolve a single provider.\n */\nexport function resolveReflectiveFactory(provider) {\n var factoryFn;\n var resolvedDeps;\n if (isPresent(provider.useClass)) {\n var useClass = resolveForwardRef(provider.useClass);\n factoryFn = reflector.factory(useClass);\n resolvedDeps = _dependenciesFor(useClass);\n }\n else if (isPresent(provider.useExisting)) {\n factoryFn = (aliasInstance) => aliasInstance;\n resolvedDeps = [ReflectiveDependency.fromKey(ReflectiveKey.get(provider.useExisting))];\n }\n else if (isPresent(provider.useFactory)) {\n factoryFn = provider.useFactory;\n resolvedDeps = constructDependencies(provider.useFactory, provider.dependencies);\n }\n else {\n factoryFn = () => provider.useValue;\n resolvedDeps = _EMPTY_LIST;\n }\n return new ResolvedReflectiveFactory(factoryFn, resolvedDeps);\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) {\n return new ResolvedReflectiveProvider_(ReflectiveKey.get(provider.token), [resolveReflectiveFactory(provider)], provider.multi);\n}\n/**\n * Resolve a list of Providers.\n */\nexport function resolveReflectiveProviders(providers) {\n var normalized = _normalizeProviders(providers, []);\n var resolved = normalized.map(resolveReflectiveProvider);\n return MapWrapper.values(mergeResolvedReflectiveProviders(resolved, new Map()));\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(providers, normalizedProvidersMap) {\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 }\n else {\n normalizedProvidersMap.set(provider.key.id, provider);\n }\n }\n else {\n var resolvedProvider;\n if (provider.multiProvider) {\n resolvedProvider = new ResolvedReflectiveProvider_(provider.key, ListWrapper.clone(provider.resolvedFactories), provider.multiProvider);\n }\n else {\n resolvedProvider = provider;\n }\n normalizedProvidersMap.set(provider.key.id, resolvedProvider);\n }\n }\n return normalizedProvidersMap;\n}\nfunction _normalizeProviders(providers, res) {\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 return res;\n}\nexport function constructDependencies(typeOrFunc, dependencies) {\n if (isBlank(dependencies)) {\n return _dependenciesFor(typeOrFunc);\n }\n else {\n var params = dependencies.map(t => [t]);\n return dependencies.map(t => _extractToken(typeOrFunc, t, params));\n }\n}\nfunction _dependenciesFor(typeOrFunc) {\n var params = reflector.parameters(typeOrFunc);\n if (isBlank(params))\n return [];\n if (params.some(isBlank)) {\n throw new NoAnnotationError(typeOrFunc, params);\n }\n return params.map((p) => _extractToken(typeOrFunc, p, params));\n}\nfunction _extractToken(typeOrFunc, metadata /*any[] | any*/, params) {\n var depProps = [];\n var token = null;\n var optional = false;\n if (!isArray(metadata)) {\n if (metadata instanceof InjectMetadata) {\n return _createDependency(metadata.token, optional, null, null, depProps);\n }\n else {\n return _createDependency(metadata, optional, null, null, depProps);\n }\n }\n var lowerBoundVisibility = null;\n var upperBoundVisibility = null;\n for (var i = 0; i < metadata.length; ++i) {\n var paramMetadata = metadata[i];\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 token = resolveForwardRef(token);\n if (isPresent(token)) {\n return _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps);\n }\n else {\n throw new NoAnnotationError(typeOrFunc, params);\n }\n}\nfunction _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps) {\n return new ReflectiveDependency(ReflectiveKey.get(token), optional, lowerBoundVisibility, upperBoundVisibility, depProps);\n}\n//# sourceMappingURL=reflective_provider.js.map","import { ListWrapper } from '../../src/facade/collection';\nimport { resolveReflectiveProviders } from './reflective_provider';\nimport { AbstractProviderError, NoProviderError, CyclicDependencyError, InstantiationError, OutOfBoundsError } from './reflective_exceptions';\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';\nvar __unused; // avoid unused import when Type union types are erased\n// Threshold for the dynamic version\nconst _MAX_CONSTRUCTION_COUNTER = 10;\nconst UNDEFINED = new Object();\nexport class ReflectiveProtoInjectorInlineStrategy {\n constructor(protoEI, providers) {\n this.provider0 = null;\n this.provider1 = null;\n this.provider2 = null;\n this.provider3 = null;\n this.provider4 = null;\n this.provider5 = null;\n this.provider6 = null;\n this.provider7 = null;\n this.provider8 = null;\n this.provider9 = null;\n this.keyId0 = null;\n this.keyId1 = null;\n this.keyId2 = null;\n this.keyId3 = null;\n this.keyId4 = null;\n this.keyId5 = null;\n this.keyId6 = null;\n this.keyId7 = null;\n this.keyId8 = null;\n this.keyId9 = null;\n var length = providers.length;\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 getProviderAtIndex(index) {\n if (index == 0)\n return this.provider0;\n if (index == 1)\n return this.provider1;\n if (index == 2)\n return this.provider2;\n if (index == 3)\n return this.provider3;\n if (index == 4)\n return this.provider4;\n if (index == 5)\n return this.provider5;\n if (index == 6)\n return this.provider6;\n if (index == 7)\n return this.provider7;\n if (index == 8)\n return this.provider8;\n if (index == 9)\n return this.provider9;\n throw new OutOfBoundsError(index);\n }\n createInjectorStrategy(injector) {\n return new ReflectiveInjectorInlineStrategy(injector, this);\n }\n}\nexport class ReflectiveProtoInjectorDynamicStrategy {\n constructor(protoInj, providers) {\n this.providers = providers;\n var len = providers.length;\n this.keyIds = ListWrapper.createFixedSize(len);\n for (var i = 0; i < len; i++) {\n this.keyIds[i] = providers[i].key.id;\n }\n }\n getProviderAtIndex(index) {\n if (index < 0 || index >= this.providers.length) {\n throw new OutOfBoundsError(index);\n }\n return this.providers[index];\n }\n createInjectorStrategy(ei) {\n return new ReflectiveInjectorDynamicStrategy(this, ei);\n }\n}\nexport class ReflectiveProtoInjector {\n constructor(providers) {\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 static fromResolvedProviders(providers) {\n return new ReflectiveProtoInjector(providers);\n }\n getProviderAtIndex(index) {\n return this._strategy.getProviderAtIndex(index);\n }\n}\nexport class ReflectiveInjectorInlineStrategy {\n constructor(injector, protoStrategy) {\n this.injector = injector;\n this.protoStrategy = protoStrategy;\n this.obj0 = UNDEFINED;\n this.obj1 = UNDEFINED;\n this.obj2 = UNDEFINED;\n this.obj3 = UNDEFINED;\n this.obj4 = UNDEFINED;\n this.obj5 = UNDEFINED;\n this.obj6 = UNDEFINED;\n this.obj7 = UNDEFINED;\n this.obj8 = UNDEFINED;\n this.obj9 = UNDEFINED;\n }\n resetConstructionCounter() { this.injector._constructionCounter = 0; }\n instantiateProvider(provider) {\n return this.injector._new(provider);\n }\n getObjByKeyId(keyId) {\n var p = this.protoStrategy;\n var inj = this.injector;\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 return UNDEFINED;\n }\n getObjAtIndex(index) {\n if (index == 0)\n return this.obj0;\n if (index == 1)\n return this.obj1;\n if (index == 2)\n return this.obj2;\n if (index == 3)\n return this.obj3;\n if (index == 4)\n return this.obj4;\n if (index == 5)\n return this.obj5;\n if (index == 6)\n return this.obj6;\n if (index == 7)\n return this.obj7;\n if (index == 8)\n return this.obj8;\n if (index == 9)\n return this.obj9;\n throw new OutOfBoundsError(index);\n }\n getMaxNumberOfObjects() { return _MAX_CONSTRUCTION_COUNTER; }\n}\nexport class ReflectiveInjectorDynamicStrategy {\n constructor(protoStrategy, injector) {\n this.protoStrategy = protoStrategy;\n this.injector = injector;\n this.objs = ListWrapper.createFixedSize(protoStrategy.providers.length);\n ListWrapper.fill(this.objs, UNDEFINED);\n }\n resetConstructionCounter() { this.injector._constructionCounter = 0; }\n instantiateProvider(provider) {\n return this.injector._new(provider);\n }\n getObjByKeyId(keyId) {\n var p = this.protoStrategy;\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 return this.objs[i];\n }\n }\n return UNDEFINED;\n }\n getObjAtIndex(index) {\n if (index < 0 || index >= this.objs.length) {\n throw new OutOfBoundsError(index);\n }\n return this.objs[index];\n }\n getMaxNumberOfObjects() { return this.objs.length; }\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 class ReflectiveInjector {\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) {\n return resolveReflectiveProviders(providers);\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, parent = null) {\n var ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return ReflectiveInjector.fromResolvedProviders(ResolvedReflectiveProviders, parent);\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, parent = null) {\n return new ReflectiveInjector_(ReflectiveProtoInjector.fromResolvedProviders(providers), parent);\n }\n /**\n * @deprecated\n */\n static fromResolvedBindings(providers) {\n return ReflectiveInjector.fromResolvedProviders(providers);\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() { return unimplemented(); }\n /**\n * @internal\n */\n debugContext() { return null; }\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) {\n return unimplemented();\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) {\n return unimplemented();\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) { return unimplemented(); }\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) { return unimplemented(); }\n}\nexport class ReflectiveInjector_ {\n /**\n * Private\n */\n constructor(_proto /* ProtoInjector */, _parent = null, _debugContext = null) {\n this._debugContext = _debugContext;\n /** @internal */\n this._constructionCounter = 0;\n this._proto = _proto;\n this._parent = _parent;\n this._strategy = _proto._strategy.createInjectorStrategy(this);\n }\n /**\n * @internal\n */\n debugContext() { return this._debugContext(); }\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n return this._getByKey(ReflectiveKey.get(token), null, null, notFoundValue);\n }\n getAt(index) { return this._strategy.getObjAtIndex(index); }\n get parent() { return this._parent; }\n /**\n * @internal\n * Internal. Do not use.\n * We return `any` not to export the InjectorStrategy type.\n */\n get internalStrategy() { return this._strategy; }\n resolveAndCreateChild(providers) {\n var ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return this.createChildFromResolved(ResolvedReflectiveProviders);\n }\n createChildFromResolved(providers) {\n var proto = new ReflectiveProtoInjector(providers);\n var inj = new ReflectiveInjector_(proto);\n inj._parent = this;\n return inj;\n }\n resolveAndInstantiate(provider) {\n return this.instantiateResolved(ReflectiveInjector.resolve([provider])[0]);\n }\n instantiateResolved(provider) {\n return this._instantiateProvider(provider);\n }\n /** @internal */\n _new(provider) {\n if (this._constructionCounter++ > this._strategy.getMaxNumberOfObjects()) {\n throw new CyclicDependencyError(this, provider.key);\n }\n return this._instantiateProvider(provider);\n }\n _instantiateProvider(provider) {\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 }\n else {\n return this._instantiate(provider, provider.resolvedFactories[0]);\n }\n }\n _instantiate(provider, ResolvedReflectiveFactory) {\n var factory = ResolvedReflectiveFactory.factory;\n var deps = ResolvedReflectiveFactory.dependencies;\n var length = deps.length;\n var d0;\n var d1;\n var d2;\n var d3;\n var d4;\n var d5;\n var d6;\n var d7;\n var d8;\n var d9;\n var d10;\n var d11;\n var d12;\n var d13;\n var d14;\n var d15;\n var d16;\n var d17;\n var d18;\n var d19;\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 }\n catch (e) {\n if (e instanceof AbstractProviderError || e instanceof InstantiationError) {\n e.addKey(this, provider.key);\n }\n throw e;\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, 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, 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, d17, d18, d19);\n break;\n default:\n throw new BaseException(`Cannot instantiate '${provider.key.displayName}' because it has more than 20 dependencies`);\n }\n }\n catch (e) {\n throw new InstantiationError(this, e, e.stack, provider.key);\n }\n return obj;\n }\n _getByReflectiveDependency(provider, dep) {\n return this._getByKey(dep.key, dep.lowerBoundVisibility, dep.upperBoundVisibility, dep.optional ? null : THROW_IF_NOT_FOUND);\n }\n _getByKey(key, lowerBoundVisibility, upperBoundVisibility, notFoundValue) {\n if (key === INJECTOR_KEY) {\n return this;\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 /** @internal */\n _throwOrNull(key, notFoundValue) {\n if (notFoundValue !== THROW_IF_NOT_FOUND) {\n return notFoundValue;\n }\n else {\n throw new NoProviderError(this, key);\n }\n }\n /** @internal */\n _getByKeySelf(key, notFoundValue) {\n var obj = this._strategy.getObjByKeyId(key.id);\n return (obj !== UNDEFINED) ? obj : this._throwOrNull(key, notFoundValue);\n }\n /** @internal */\n _getByKeyDefault(key, notFoundValue, lowerBoundVisibility) {\n var inj;\n if (lowerBoundVisibility instanceof SkipSelfMetadata) {\n inj = this._parent;\n }\n else {\n inj = this;\n }\n while (inj instanceof ReflectiveInjector_) {\n var inj_ = inj;\n var obj = inj_._strategy.getObjByKeyId(key.id);\n if (obj !== UNDEFINED)\n return obj;\n inj = inj_._parent;\n }\n if (inj !== null) {\n return inj.get(key.token, notFoundValue);\n }\n else {\n return this._throwOrNull(key, notFoundValue);\n }\n }\n get displayName() {\n return `ReflectiveInjector(providers: [${_mapProviders(this, (b) => ` \"${b.key.displayName}\" `).join(\", \")}])`;\n }\n toString() { return this.displayName; }\n}\nvar INJECTOR_KEY = ReflectiveKey.get(Injector);\nfunction _mapProviders(injector, fn) {\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//# sourceMappingURL=reflective_injector.js.map","/**\n* Creates a token that can be used in a DI Provider.\n*\n* ### Example ([live demo](http://plnkr.co/edit/Ys9ezXpj2Mnoy3Uc8KBp?p=preview))\n*\n* ```typescript\n* var t = new OpaqueToken(\"value\");\n*\n* var injector = Injector.resolveAndCreate([\n* provide(t, {useValue: \"bindingValue\"})\n* ]);\n*\n* expect(injector.get(t)).toEqual(\"bindingValue\");\n* ```\n*\n* Using an `OpaqueToken` is preferable to using strings as tokens because of possible collisions\n* caused by multiple providers using the same string as two different tokens.\n*\n* Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better\n* error messages.\n* @ts2dart_const\n*/\nexport class OpaqueToken {\n constructor(_desc) {\n this._desc = _desc;\n }\n toString() { return `Token ${this._desc}`; }\n}\n//# sourceMappingURL=opaque_token.js.map","export class PromiseCompleter {\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\nexport class PromiseWrapper {\n static resolve(obj) { return Promise.resolve(obj); }\n static reject(obj, _) { return Promise.reject(obj); }\n // Note: We can't rename this method into `catch`, as this is not a valid\n // method name in Dart.\n static catchError(promise, onError) {\n return promise.catch(onError);\n }\n static all(promises) {\n if (promises.length == 0)\n return Promise.resolve([]);\n return Promise.all(promises);\n }\n static then(promise, success, rejection) {\n return promise.then(success, rejection);\n }\n static wrap(computation) {\n return new Promise((res, rej) => {\n try {\n res(computation());\n }\n catch (e) {\n rej(e);\n }\n });\n }\n static scheduleMicrotask(computation) {\n PromiseWrapper.then(PromiseWrapper.resolve(null), computation, (_) => { });\n }\n static isPromise(obj) { return obj instanceof Promise; }\n static completer() { return new PromiseCompleter(); }\n}\n//# sourceMappingURL=promise.js.map","import { global, noop } from './lang';\nexport { PromiseWrapper, PromiseCompleter } from './promise';\nimport { Subject } from 'rxjs/Subject';\nimport { PromiseObservable } from 'rxjs/observable/PromiseObservable';\nimport { toPromise } from 'rxjs/operator/toPromise';\nexport { Observable } from 'rxjs/Observable';\nexport { Subject } from 'rxjs/Subject';\nexport class TimerWrapper {\n static setTimeout(fn, millis) {\n return global.setTimeout(fn, millis);\n }\n static clearTimeout(id) { global.clearTimeout(id); }\n static setInterval(fn, millis) {\n return global.setInterval(fn, millis);\n }\n static clearInterval(id) { global.clearInterval(id); }\n}\nexport class ObservableWrapper {\n // TODO(vsavkin): when we use rxnext, try inferring the generic type from the first arg\n static subscribe(emitter, onNext, onError, onComplete = () => { }) {\n onError = (typeof onError === \"function\") && onError || noop;\n onComplete = (typeof onComplete === \"function\") && onComplete || noop;\n return emitter.subscribe({ next: onNext, error: onError, complete: onComplete });\n }\n static isObservable(obs) { return !!obs.subscribe; }\n /**\n * Returns whether `obs` has any subscribers listening to events.\n */\n static hasSubscribers(obs) { return obs.observers.length > 0; }\n static dispose(subscription) { subscription.unsubscribe(); }\n /**\n * @deprecated - use callEmit() instead\n */\n static callNext(emitter, value) { emitter.next(value); }\n static callEmit(emitter, value) { emitter.emit(value); }\n static callError(emitter, error) { emitter.error(error); }\n static callComplete(emitter) { emitter.complete(); }\n static fromPromise(promise) {\n return PromiseObservable.create(promise);\n }\n static toPromise(obj) { return toPromise.call(obj); }\n}\n/**\n * Use by directives and components to emit custom Events.\n *\n * ### Examples\n *\n * In the following example, `Zippy` alternatively emits `open` and `close` events when its\n * title gets clicked:\n *\n * ```\n * @Component({\n * selector: 'zippy',\n * template: `\n * <div class=\"zippy\">\n * <div (click)=\"toggle()\">Toggle</div>\n * <div [hidden]=\"!visible\">\n * <ng-content></ng-content>\n * </div>\n * </div>`})\n * export class Zippy {\n * visible: boolean = true;\n * @Output() open: EventEmitter<any> = new EventEmitter();\n * @Output() close: EventEmitter<any> = new EventEmitter();\n *\n * toggle() {\n * this.visible = !this.visible;\n * if (this.visible) {\n * this.open.emit(null);\n * } else {\n * this.close.emit(null);\n * }\n * }\n * }\n * ```\n *\n * Use Rx.Observable but provides an adapter to make it work as specified here:\n * https://github.com/jhusain/observable-spec\n *\n * Once a reference implementation of the spec is available, switch to it.\n */\nexport class EventEmitter extends Subject {\n /**\n * Creates an instance of [EventEmitter], which depending on [isAsync],\n * delivers events synchronously or asynchronously.\n */\n constructor(isAsync = true) {\n super();\n this._isAsync = isAsync;\n }\n emit(value) { super.next(value); }\n /**\n * @deprecated - use .emit(value) instead\n */\n next(value) { super.next(value); }\n subscribe(generatorOrNext, error, complete) {\n let schedulerFn;\n let errorFn = (err) => null;\n let completeFn = () => null;\n if (generatorOrNext && typeof generatorOrNext === 'object') {\n schedulerFn = this._isAsync ? (value) => { setTimeout(() => generatorOrNext.next(value)); } :\n (value) => { generatorOrNext.next(value); };\n if (generatorOrNext.error) {\n errorFn = this._isAsync ? (err) => { setTimeout(() => generatorOrNext.error(err)); } :\n (err) => { generatorOrNext.error(err); };\n }\n if (generatorOrNext.complete) {\n completeFn = this._isAsync ? () => { setTimeout(() => generatorOrNext.complete()); } :\n () => { generatorOrNext.complete(); };\n }\n }\n else {\n schedulerFn = this._isAsync ? (value) => { setTimeout(() => generatorOrNext(value)); } :\n (value) => { generatorOrNext(value); };\n if (error) {\n errorFn =\n this._isAsync ? (err) => { setTimeout(() => error(err)); } : (err) => { error(err); };\n }\n if (complete) {\n completeFn =\n this._isAsync ? () => { setTimeout(() => complete()); } : () => { complete(); };\n }\n }\n return super.subscribe(schedulerFn, errorFn, completeFn);\n }\n}\n//# sourceMappingURL=async.js.map","/**\n* Stores error information; delivered via [NgZone.onError] stream.\n*/\nexport class NgZoneError {\n constructor(error, stackTrace) {\n this.error = error;\n this.stackTrace = stackTrace;\n }\n}\nexport class NgZoneImpl {\n constructor({ trace, onEnter, onLeave, setMicrotask, setMacrotask, onError }) {\n this.onEnter = onEnter;\n this.onLeave = onLeave;\n this.setMicrotask = setMicrotask;\n this.setMacrotask = setMacrotask;\n this.onError = onError;\n if (Zone) {\n this.outer = this.inner = Zone.current;\n if (Zone['wtfZoneSpec']) {\n this.inner = this.inner.fork(Zone['wtfZoneSpec']);\n }\n if (trace && Zone['longStackTraceZoneSpec']) {\n this.inner = this.inner.fork(Zone['longStackTraceZoneSpec']);\n }\n this.inner = this.inner.fork({\n name: 'angular',\n properties: { 'isAngularZone': true },\n onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {\n try {\n this.onEnter();\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n }\n finally {\n this.onLeave();\n }\n },\n onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {\n try {\n this.onEnter();\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n }\n finally {\n this.onLeave();\n }\n },\n onHasTask: (delegate, current, target, hasTaskState) => {\n delegate.hasTask(target, hasTaskState);\n if (current == target) {\n // We are only interested in hasTask events which originate from our zone\n // (A child hasTask event is not interesting to us)\n if (hasTaskState.change == 'microTask') {\n this.setMicrotask(hasTaskState.microTask);\n }\n else if (hasTaskState.change == 'macroTask') {\n this.setMacrotask(hasTaskState.macroTask);\n }\n }\n },\n onHandleError: (delegate, current, target, error) => {\n delegate.handleError(target, error);\n this.onError(new NgZoneError(error, error.stack));\n return false;\n }\n });\n }\n else {\n throw new Error('Angular requires Zone.js polyfill.');\n }\n }\n static isInAngularZone() { return Zone.current.get('isAngularZone') === true; }\n runInner(fn) { return this.inner.run(fn); }\n ;\n runInnerGuarded(fn) { return this.inner.runGuarded(fn); }\n ;\n runOuter(fn) { return this.outer.run(fn); }\n ;\n}\n//# sourceMappingURL=ng_zone_impl.js.map","import { EventEmitter } from '../../src/facade/async';\nimport { NgZoneImpl } from './ng_zone_impl';\nimport { BaseException } from '../../src/facade/exceptions';\nexport { NgZoneError } from './ng_zone_impl';\n/**\n * An injectable service for executing work inside or outside of the Angular zone.\n *\n * The most common use of this service is to optimize performance when starting a work consisting of\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\n * can reenter the Angular zone via {@link #run}.\n *\n * <!-- TODO: add/fix links to:\n * - docs explaining zones and the use of zones in Angular and change-detection\n * - link to runOutsideAngular/run (throughout this file!)\n * -->\n *\n * ### Example ([live demo](http://plnkr.co/edit/lY9m8HLy7z06vDoUaSN2?p=preview))\n * ```\n * import {Component, View, NgZone} from '@angular/core';\n * import {NgIf} from '@angular/common';\n *\n * @Component({\n * selector: 'ng-zone-demo'.\n * template: `\n * <h2>Demo: NgZone</h2>\n *\n * <p>Progress: {{progress}}%</p>\n * <p *ngIf=\"progress >= 100\">Done processing {{label}} of Angular zone!</p>\n *\n * <button (click)=\"processWithinAngularZone()\">Process within Angular zone</button>\n * <button (click)=\"processOutsideOfAngularZone()\">Process outside of Angular zone</button>\n * `,\n * directives: [NgIf]\n * })\n * export class NgZoneDemo {\n * progress: number = 0;\n * label: string;\n *\n * constructor(private _ngZone: NgZone) {}\n *\n * // Loop inside the Angular zone\n * // so the UI DOES refresh after each setTimeout cycle\n * processWithinAngularZone() {\n * this.label = 'inside';\n * this.progress = 0;\n * this._increaseProgress(() => console.log('Inside Done!'));\n * }\n *\n * // Loop outside of the Angular zone\n * // so the UI DOES NOT refresh after each setTimeout cycle\n * processOutsideOfAngularZone() {\n * this.label = 'outside';\n * this.progress = 0;\n * this._ngZone.runOutsideAngular(() => {\n * this._increaseProgress(() => {\n * // reenter the Angular zone and display done\n * this._ngZone.run(() => {console.log('Outside Done!') });\n * }}));\n * }\n *\n *\n * _increaseProgress(doneCallback: () => void) {\n * this.progress += 1;\n * console.log(`Current progress: ${this.progress}%`);\n *\n * if (this.progress < 100) {\n * window.setTimeout(() => this._increaseProgress(doneCallback)), 10)\n * } else {\n * doneCallback();\n * }\n * }\n * }\n * ```\n */\nexport class NgZone {\n /**\n * @param {bool} enableLongStackTrace whether to enable long stack trace. They should only be\n * enabled in development mode as they significantly impact perf.\n */\n constructor({ enableLongStackTrace = false }) {\n this._hasPendingMicrotasks = false;\n this._hasPendingMacrotasks = false;\n /** @internal */\n this._isStable = true;\n /** @internal */\n this._nesting = 0;\n /** @internal */\n this._onUnstable = new EventEmitter(false);\n /** @internal */\n this._onMicrotaskEmpty = new EventEmitter(false);\n /** @internal */\n this._onStable = new EventEmitter(false);\n /** @internal */\n this._onErrorEvents = new EventEmitter(false);\n this._zoneImpl = new NgZoneImpl({\n trace: enableLongStackTrace,\n onEnter: () => {\n // console.log('ZONE.enter', this._nesting, this._isStable);\n this._nesting++;\n if (this._isStable) {\n this._isStable = false;\n this._onUnstable.emit(null);\n }\n },\n onLeave: () => {\n this._nesting--;\n // console.log('ZONE.leave', this._nesting, this._isStable);\n this._checkStable();\n },\n setMicrotask: (hasMicrotasks) => {\n this._hasPendingMicrotasks = hasMicrotasks;\n this._checkStable();\n },\n setMacrotask: (hasMacrotasks) => { this._hasPendingMacrotasks = hasMacrotasks; },\n onError: (error) => this._onErrorEvents.emit(error)\n });\n }\n static isInAngularZone() { return NgZoneImpl.isInAngularZone(); }\n static assertInAngularZone() {\n if (!NgZoneImpl.isInAngularZone()) {\n throw new BaseException('Expected to be in Angular Zone, but it is not!');\n }\n }\n static assertNotInAngularZone() {\n if (NgZoneImpl.isInAngularZone()) {\n throw new BaseException('Expected to not be in Angular Zone, but it is!');\n }\n }\n _checkStable() {\n if (this._nesting == 0) {\n if (!this._hasPendingMicrotasks && !this._isStable) {\n try {\n // console.log('ZONE.microtaskEmpty');\n this._nesting++;\n this._onMicrotaskEmpty.emit(null);\n }\n finally {\n this._nesting--;\n if (!this._hasPendingMicrotasks) {\n try {\n // console.log('ZONE.stable', this._nesting, this._isStable);\n this.runOutsideAngular(() => this._onStable.emit(null));\n }\n finally {\n this._isStable = true;\n }\n }\n }\n }\n }\n }\n ;\n /**\n * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\n */\n get onUnstable() { return this._onUnstable; }\n /**\n * Notifies when there is no more microtasks enqueue in the current VM Turn.\n * This is a hint for Angular to do change detection, which may enqueue more microtasks.\n * For this reason this event can fire multiple times per VM Turn.\n */\n get onMicrotaskEmpty() { return this._onMicrotaskEmpty; }\n /**\n * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\n * implies we are about to relinquish VM turn.\n * This event gets called just once.\n */\n get onStable() { return this._onStable; }\n /**\n * Notify that an error has been delivered.\n */\n get onError() { return this._onErrorEvents; }\n /**\n * Whether there are any outstanding microtasks.\n */\n get hasPendingMicrotasks() { return this._hasPendingMicrotasks; }\n /**\n * Whether there are any outstanding microtasks.\n */\n get hasPendingMacrotasks() { return this._hasPendingMacrotasks; }\n /**\n * Executes the `fn` function synchronously within the Angular zone and returns value returned by\n * the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n run(fn) { return this._zoneImpl.runInner(fn); }\n /**\n * Same as #run, except that synchronous errors are caught and forwarded\n * via `onError` and not rethrown.\n */\n runGuarded(fn) { return this._zoneImpl.runInnerGuarded(fn); }\n /**\n * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\n * the function.\n *\n * Running functions via `runOutsideAngular` allows you to escape Angular's zone and do work that\n * doesn't trigger Angular change-detection or is subject to Angular's error handling.\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * outside of the Angular zone.\n *\n * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\n */\n runOutsideAngular(fn) { return this._zoneImpl.runOuter(fn); }\n}\n//# sourceMappingURL=ng_zone.js.map","import { OpaqueToken } from './di';\nimport { Math, StringWrapper } from '../src/facade/lang';\n/**\n * A DI Token representing a unique string id assigned to the application by Angular and used\n * primarily for prefixing application attributes and CSS styles when\n * {@link ViewEncapsulation#Emulated} is being used.\n *\n * If you need to avoid randomly generated value to be used as an application id, you can provide\n * a custom value via a DI provider <!-- TODO: provider --> configuring the root {@link Injector}\n * using this token.\n */\nexport const APP_ID = new OpaqueToken('AppId');\nfunction _appIdRandomProviderFactory() {\n return `${_randomChar()}${_randomChar()}${_randomChar()}`;\n}\n/**\n * Providers that will generate a random APP_ID_TOKEN.\n */\nexport const APP_ID_RANDOM_PROVIDER = \n/*@ts2dart_const*/ /* @ts2dart_Provider */ {\n provide: APP_ID,\n useFactory: _appIdRandomProviderFactory,\n deps: []\n};\nfunction _randomChar() {\n return StringWrapper.fromCharCode(97 + Math.floor(Math.random() * 25));\n}\n/**\n * A function that will be executed when a platform is initialized.\n */\nexport const PLATFORM_INITIALIZER = \n/*@ts2dart_const*/ new OpaqueToken(\"Platform Initializer\");\n/**\n * A function that will be executed when an application is initialized.\n */\nexport const APP_INITIALIZER = \n/*@ts2dart_const*/ new OpaqueToken(\"Application Initializer\");\n/**\n * A token which indicates the root directory of the application\n */\nexport const PACKAGE_ROOT_URL = \n/*@ts2dart_const*/ new OpaqueToken(\"Application Packages Root URL\");\n//# sourceMappingURL=application_tokens.js.map","import { Map, MapWrapper } from '../../src/facade/collection';\nimport { scheduleMicroTask } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { NgZone } from '../zone/ng_zone';\nimport { ObservableWrapper } from '../../src/facade/async';\nimport { Injectable } from '../di/decorators';\nexport class Testability {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n /** @internal */\n this._pendingCount = 0;\n /** @internal */\n this._isZoneStable = true;\n /**\n * Whether any work was done since the last 'whenStable' callback. This is\n * useful to detect if this could have potentially destabilized another\n * component while it is stabilizing.\n * @internal\n */\n this._didWork = false;\n /** @internal */\n this._callbacks = [];\n this._watchAngularEvents();\n }\n /** @internal */\n _watchAngularEvents() {\n ObservableWrapper.subscribe(this._ngZone.onUnstable, (_) => {\n this._didWork = true;\n this._isZoneStable = false;\n });\n this._ngZone.runOutsideAngular(() => {\n ObservableWrapper.subscribe(this._ngZone.onStable, (_) => {\n NgZone.assertNotInAngularZone();\n scheduleMicroTask(() => {\n this._isZoneStable = true;\n this._runCallbacksIfReady();\n });\n });\n });\n }\n increasePendingRequestCount() {\n this._pendingCount += 1;\n this._didWork = true;\n return this._pendingCount;\n }\n decreasePendingRequestCount() {\n this._pendingCount -= 1;\n if (this._pendingCount < 0) {\n throw new BaseException('pending async requests below zero');\n }\n this._runCallbacksIfReady();\n return this._pendingCount;\n }\n isStable() {\n return this._isZoneStable && this._pendingCount == 0 && !this._ngZone.hasPendingMacrotasks;\n }\n /** @internal */\n _runCallbacksIfReady() {\n if (this.isStable()) {\n // Schedules the call backs in a new frame so that it is always async.\n scheduleMicroTask(() => {\n while (this._callbacks.length !== 0) {\n (this._callbacks.pop())(this._didWork);\n }\n this._didWork = false;\n });\n }\n else {\n // Not Ready\n this._didWork = true;\n }\n }\n whenStable(callback) {\n this._callbacks.push(callback);\n this._runCallbacksIfReady();\n }\n getPendingRequestCount() { return this._pendingCount; }\n findBindings(using, provider, exactMatch) {\n // TODO(juliemr): implement.\n return [];\n }\n findProviders(using, provider, exactMatch) {\n // TODO(juliemr): implement.\n return [];\n }\n}\nTestability.decorators = [\n { type: Injectable },\n];\nTestability.ctorParameters = [\n { type: NgZone, },\n];\nexport class TestabilityRegistry {\n constructor() {\n /** @internal */\n this._applications = new Map();\n _testabilityGetter.addToWindow(this);\n }\n registerApplication(token, testability) {\n this._applications.set(token, testability);\n }\n getTestability(elem) { return this._applications.get(elem); }\n getAllTestabilities() { return MapWrapper.values(this._applications); }\n getAllRootElements() { return MapWrapper.keys(this._applications); }\n findTestabilityInTree(elem, findInAncestors = true) {\n return _testabilityGetter.findTestabilityInTree(this, elem, findInAncestors);\n }\n}\nTestabilityRegistry.decorators = [\n { type: Injectable },\n];\nTestabilityRegistry.ctorParameters = [];\n/* @ts2dart_const */\nclass _NoopGetTestability {\n addToWindow(registry) { }\n findTestabilityInTree(registry, elem, findInAncestors) {\n return null;\n }\n}\n/**\n * Set the {@link GetTestability} implementation used by the Angular testing framework.\n */\nexport function setTestabilityGetter(getter) {\n _testabilityGetter = getter;\n}\nvar _testabilityGetter = new _NoopGetTestability();\n//# sourceMappingURL=testability.js.map","export var ViewType;\n(function (ViewType) {\n // A view that contains the host element with bound component directive.\n // Contains a COMPONENT view\n ViewType[ViewType[\"HOST\"] = 0] = \"HOST\";\n // The view of the component\n // Can contain 0 to n EMBEDDED views\n ViewType[ViewType[\"COMPONENT\"] = 1] = \"COMPONENT\";\n // A view that is embedded into another View via a <template> element\n // inside of a COMPONENT view\n ViewType[ViewType[\"EMBEDDED\"] = 2] = \"EMBEDDED\";\n})(ViewType || (ViewType = {}));\n//# sourceMappingURL=view_type.js.map","/**\n* A wrapper around a native element inside of a View.\n*\n* An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\n* element.\n*/\n// Note: We don't expose things like `Injector`, `ViewContainer`, ... here,\n// i.e. users have to ask for what they need. With that, we can build better analysis tools\n// and could do better codegen in the future.\nexport class ElementRef {\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n}\n//# sourceMappingURL=element_ref.js.map","import { global } from '../../src/facade/lang';\nvar trace;\nvar events;\nexport function detectWTF() {\n var wtf = global['wtf'];\n if (wtf) {\n trace = wtf['trace'];\n if (trace) {\n events = trace['events'];\n return true;\n }\n }\n return false;\n}\nexport function createScope(signature, flags = null) {\n return events.createScope(signature, flags);\n}\nexport function leave(scope, returnValue) {\n trace.leaveScope(scope, returnValue);\n return returnValue;\n}\nexport function startTimeRange(rangeType, action) {\n return trace.beginTimeRange(rangeType, action);\n}\nexport function endTimeRange(range) {\n trace.endTimeRange(range);\n}\n//# sourceMappingURL=wtf_impl.js.map","import * as impl from './wtf_impl';\n// Change exports to const once https://github.com/angular/ts2dart/issues/150\n/**\n * True if WTF is enabled.\n */\nexport var wtfEnabled = impl.detectWTF();\nfunction noopScope(arg0, arg1) {\n return null;\n}\n/**\n * Create trace scope.\n *\n * Scopes must be strictly nested and are analogous to stack frames, but\n * do not have to follow the stack frames. Instead it is recommended that they follow logical\n * nesting. You may want to use\n * [Event\n * Signatures](http://google.github.io/tracing-framework/instrumenting-code.html#custom-events)\n * as they are defined in WTF.\n *\n * Used to mark scope entry. The return value is used to leave the scope.\n *\n * var myScope = wtfCreateScope('MyClass#myMethod(ascii someVal)');\n *\n * someMethod() {\n * var s = myScope('Foo'); // 'Foo' gets stored in tracing UI\n * // DO SOME WORK HERE\n * return wtfLeave(s, 123); // Return value 123\n * }\n *\n * Note, adding try-finally block around the work to ensure that `wtfLeave` gets called can\n * negatively impact the performance of your application. For this reason we recommend that\n * you don't add them to ensure that `wtfLeave` gets called. In production `wtfLeave` is a noop and\n * so try-finally block has no value. When debugging perf issues, skipping `wtfLeave`, do to\n * exception, will produce incorrect trace, but presence of exception signifies logic error which\n * needs to be fixed before the app should be profiled. Add try-finally only when you expect that\n * an exception is expected during normal execution while profiling.\n *\n */\nexport var wtfCreateScope = wtfEnabled ? impl.createScope : (signature, flags) => noopScope;\n/**\n * Used to mark end of Scope.\n *\n * - `scope` to end.\n * - `returnValue` (optional) to be passed to the WTF.\n *\n * Returns the `returnValue for easy chaining.\n */\nexport var wtfLeave = wtfEnabled ? impl.leave : (s, r) => r;\n/**\n * Used to mark Async start. Async are similar to scope but they don't have to be strictly nested.\n * The return value is used in the call to [endAsync]. Async ranges only work if WTF has been\n * enabled.\n *\n * someMethod() {\n * var s = wtfStartTimeRange('HTTP:GET', 'some.url');\n * var future = new Future.delay(5).then((_) {\n * wtfEndTimeRange(s);\n * });\n * }\n */\nexport var wtfStartTimeRange = wtfEnabled ? impl.startTimeRange : (rangeType, action) => null;\n/**\n * Ends a async time range operation.\n * [range] is the return value from [wtfStartTimeRange] Async ranges only work if WTF has been\n * enabled.\n */\nexport var wtfEndTimeRange = wtfEnabled ? impl.endTimeRange : (r) => null;\n//# sourceMappingURL=profile.js.map","import { ListWrapper } from '../../src/facade/collection';\nimport { unimplemented } from '../../src/facade/exceptions';\nimport { isPresent } from '../../src/facade/lang';\nimport { wtfCreateScope, wtfLeave } from '../profile/profile';\n/**\n * Represents a container where one or more Views can be attached.\n *\n * The container can contain two kinds of Views. Host Views, created by instantiating a\n * {@link Component} via {@link #createComponent}, and Embedded Views, created by instantiating an\n * {@link TemplateRef Embedded Template} via {@link #createEmbeddedView}.\n *\n * The location of the View Container within the containing View is specified by the Anchor\n * `element`. Each View Container can have only one Anchor Element and each Anchor Element can only\n * have a single View Container.\n *\n * Root elements of Views attached to this container become siblings of the Anchor Element in\n * the Rendered View.\n *\n * To access a `ViewContainerRef` of an Element, you can either place a {@link Directive} injected\n * with `ViewContainerRef` on the Element, or you obtain it via a {@link ViewChild} query.\n */\nexport class ViewContainerRef {\n /**\n * Anchor element that specifies the location of this container in the containing View.\n * <!-- TODO: rename to anchorElement -->\n */\n get element() { return unimplemented(); }\n get injector() { return unimplemented(); }\n get parentInjector() { return unimplemented(); }\n /**\n * Returns the number of Views currently attached to this container.\n */\n get length() { return unimplemented(); }\n ;\n}\nexport class ViewContainerRef_ {\n constructor(_element) {\n this._element = _element;\n /** @internal */\n this._createComponentInContainerScope = wtfCreateScope('ViewContainerRef#createComponent()');\n /** @internal */\n this._insertScope = wtfCreateScope('ViewContainerRef#insert()');\n /** @internal */\n this._removeScope = wtfCreateScope('ViewContainerRef#remove()');\n /** @internal */\n this._detachScope = wtfCreateScope('ViewContainerRef#detach()');\n }\n get(index) { return this._element.nestedViews[index].ref; }\n get length() {\n var views = this._element.nestedViews;\n return isPresent(views) ? views.length : 0;\n }\n get element() { return this._element.elementRef; }\n get injector() { return this._element.injector; }\n get parentInjector() { return this._element.parentInjector; }\n // TODO(rado): profile and decide whether bounds checks should be added\n // to the methods below.\n createEmbeddedView(templateRef, context = null, index = -1) {\n var viewRef = templateRef.createEmbeddedView(context);\n this.insert(viewRef, index);\n return viewRef;\n }\n createComponent(componentFactory, index = -1, injector = null, projectableNodes = null) {\n var s = this._createComponentInContainerScope();\n var contextInjector = isPresent(injector) ? injector : this._element.parentInjector;\n var componentRef = componentFactory.create(contextInjector, projectableNodes);\n this.insert(componentRef.hostView, index);\n return wtfLeave(s, componentRef);\n }\n // TODO(i): refactor insert+remove into move\n insert(viewRef, index = -1) {\n var s = this._insertScope();\n if (index == -1)\n index = this.length;\n var viewRef_ = viewRef;\n this._element.attachView(viewRef_.internalView, index);\n return wtfLeave(s, viewRef_);\n }\n indexOf(viewRef) {\n return ListWrapper.indexOf(this._element.nestedViews, viewRef.internalView);\n }\n // TODO(i): rename to destroy\n remove(index = -1) {\n var s = this._removeScope();\n if (index == -1)\n index = this.length - 1;\n var view = this._element.detachView(index);\n view.destroy();\n // view is intentionally not returned to the client.\n wtfLeave(s);\n }\n // TODO(i): refactor insert+remove into move\n detach(index = -1) {\n var s = this._detachScope();\n if (index == -1)\n index = this.length - 1;\n var view = this._element.detachView(index);\n return wtfLeave(s, view.ref);\n }\n clear() {\n for (var i = this.length - 1; i >= 0; i--) {\n this.remove(i);\n }\n }\n}\n//# sourceMappingURL=view_container_ref.js.map","import { isPresent } from '../../src/facade/lang';\nimport { ListWrapper } from '../../src/facade/collection';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { ViewType } from './view_type';\nimport { ElementRef } from './element_ref';\nimport { ViewContainerRef_ } from './view_container_ref';\n/**\n * An AppElement is created for elements that have a ViewContainerRef,\n * a nested component or a <template> element to keep data around\n * that is needed for later instantiations.\n */\nexport class AppElement {\n constructor(index, parentIndex, parentView, nativeElement) {\n this.index = index;\n this.parentIndex = parentIndex;\n this.parentView = parentView;\n this.nativeElement = nativeElement;\n this.nestedViews = null;\n this.componentView = null;\n }\n get elementRef() { return new ElementRef(this.nativeElement); }\n get vcRef() { return new ViewContainerRef_(this); }\n initComponent(component, componentConstructorViewQueries, view) {\n this.component = component;\n this.componentConstructorViewQueries = componentConstructorViewQueries;\n this.componentView = view;\n }\n get parentInjector() { return this.parentView.injector(this.parentIndex); }\n get injector() { return this.parentView.injector(this.index); }\n mapNestedViews(nestedViewClass, callback) {\n var result = [];\n if (isPresent(this.nestedViews)) {\n this.nestedViews.forEach((nestedView) => {\n if (nestedView.clazz === nestedViewClass) {\n result.push(callback(nestedView));\n }\n });\n }\n return result;\n }\n attachView(view, viewIndex) {\n if (view.type === ViewType.COMPONENT) {\n throw new BaseException(`Component views can't be moved!`);\n }\n var nestedViews = this.nestedViews;\n if (nestedViews == null) {\n nestedViews = [];\n this.nestedViews = nestedViews;\n }\n ListWrapper.insert(nestedViews, viewIndex, view);\n var refRenderNode;\n if (viewIndex > 0) {\n var prevView = nestedViews[viewIndex - 1];\n refRenderNode = prevView.lastRootNode;\n }\n else {\n refRenderNode = this.nativeElement;\n }\n if (isPresent(refRenderNode)) {\n view.renderer.attachViewAfter(refRenderNode, view.flatRootNodes);\n }\n view.addToContentChildren(this);\n }\n detachView(viewIndex) {\n var view = ListWrapper.removeAt(this.nestedViews, viewIndex);\n if (view.type === ViewType.COMPONENT) {\n throw new BaseException(`Component views can't be moved!`);\n }\n view.renderer.detachView(view.flatRootNodes);\n view.removeFromContentChildren(this);\n return view;\n }\n}\n//# sourceMappingURL=element.js.map","import { BaseException, WrappedException } from '../../src/facade/exceptions';\n/**\n * An error thrown if application changes model breaking the top-down data flow.\n *\n * This exception is only thrown in dev mode.\n *\n * <!-- TODO: Add a link once the dev mode option is configurable -->\n *\n * ### Example\n *\n * ```typescript\n * @Component({\n * selector: 'parent',\n * template: `\n * <child [prop]=\"parentProp\"></child>\n * `,\n * directives: [forwardRef(() => Child)]\n * })\n * class Parent {\n * parentProp = \"init\";\n * }\n *\n * @Directive({selector: 'child', inputs: ['prop']})\n * class Child {\n * constructor(public parent: Parent) {}\n *\n * set prop(v) {\n * // this updates the parent property, which is disallowed during change detection\n * // this will result in ExpressionChangedAfterItHasBeenCheckedException\n * this.parent.parentProp = \"updated\";\n * }\n * }\n * ```\n */\nexport class ExpressionChangedAfterItHasBeenCheckedException extends BaseException {\n constructor(oldValue, currValue, context) {\n super(`Expression has changed after it was checked. ` +\n `Previous value: '${oldValue}'. Current value: '${currValue}'`);\n }\n}\n/**\n * Thrown when an exception was raised during view creation, change detection or destruction.\n *\n * This error wraps the original exception to attach additional contextual information that can\n * be useful for debugging.\n */\nexport class ViewWrappedException extends WrappedException {\n constructor(originalException, originalStack, context) {\n super(`Error in ${context.source}`, originalException, originalStack, context);\n }\n}\n/**\n * Thrown when a destroyed view is used.\n *\n * This error indicates a bug in the framework.\n *\n * This is an internal Angular error.\n */\nexport class ViewDestroyedException extends BaseException {\n constructor(details) {\n super(`Attempt to use a destroyed view: ${details}`);\n }\n}\n//# sourceMappingURL=exceptions.js.map","import { isBlank, isPresent, getTypeNameForDebugging } from '../../../src/facade/lang';\nimport { BaseException } from '../../../src/facade/exceptions';\nimport { ListWrapper } from '../../../src/facade/collection';\nimport { Provider, SkipSelfMetadata, OptionalMetadata } from '../../di';\n/**\n * A repository of different iterable diffing strategies used by NgFor, NgClass, and others.\n * @ts2dart_const\n */\nexport class IterableDiffers {\n /*@ts2dart_const*/\n constructor(factories) {\n this.factories = factories;\n }\n static create(factories, parent) {\n if (isPresent(parent)) {\n var copied = ListWrapper.clone(parent.factories);\n factories = factories.concat(copied);\n return new IterableDiffers(factories);\n }\n else {\n return new IterableDiffers(factories);\n }\n }\n /**\n * Takes an array of {@link IterableDifferFactory} and returns a provider used to extend the\n * inherited {@link IterableDiffers} instance with the provided factories and return a new\n * {@link IterableDiffers} instance.\n *\n * The following example shows how to extend an existing list of factories,\n * which will only be applied to the injector for this component and its children.\n * This step is all that's required to make a new {@link IterableDiffer} available.\n *\n * ### Example\n *\n * ```\n * @Component({\n * viewProviders: [\n * IterableDiffers.extend([new ImmutableListDiffer()])\n * ]\n * })\n * ```\n */\n static extend(factories) {\n return new Provider(IterableDiffers, {\n useFactory: (parent) => {\n if (isBlank(parent)) {\n // Typically would occur when calling IterableDiffers.extend inside of dependencies passed\n // to\n // bootstrap(), which would override default pipes instead of extending them.\n throw new BaseException('Cannot extend IterableDiffers without a parent injector');\n }\n return IterableDiffers.create(factories, parent);\n },\n // Dependency technically isn't optional, but we can provide a better error message this way.\n deps: [[IterableDiffers, new SkipSelfMetadata(), new OptionalMetadata()]]\n });\n }\n find(iterable) {\n var factory = this.factories.find(f => f.supports(iterable));\n if (isPresent(factory)) {\n return factory;\n }\n else {\n throw new BaseException(`Cannot find a differ supporting object '${iterable}' of type '${getTypeNameForDebugging(iterable)}'`);\n }\n }\n}\n//# sourceMappingURL=iterable_differs.js.map","import { BaseException } from '../../../src/facade/exceptions';\nimport { isListLikeIterable, iterateListLike } from '../../../src/facade/collection';\nimport { isBlank, isPresent, stringify, getMapKey, looseIdentical, isArray } from '../../../src/facade/lang';\n/* @ts2dart_const */\nexport class DefaultIterableDifferFactory {\n constructor() {\n }\n supports(obj) { return isListLikeIterable(obj); }\n create(cdRef, trackByFn) {\n return new DefaultIterableDiffer(trackByFn);\n }\n}\nvar trackByIdentity = (index, item) => item;\nexport class DefaultIterableDiffer {\n constructor(_trackByFn) {\n this._trackByFn = _trackByFn;\n this._length = null;\n this._collection = null;\n // Keeps track of the used records at any point in time (during & across `_check()` calls)\n this._linkedRecords = null;\n // Keeps track of the removed records at any point in time during `_check()` calls.\n this._unlinkedRecords = null;\n this._previousItHead = null;\n this._itHead = null;\n this._itTail = null;\n this._additionsHead = null;\n this._additionsTail = null;\n this._movesHead = null;\n this._movesTail = null;\n this._removalsHead = null;\n this._removalsTail = null;\n // Keeps track of records where custom track by is the same, but item identity has changed\n this._identityChangesHead = null;\n this._identityChangesTail = null;\n this._trackByFn = isPresent(this._trackByFn) ? this._trackByFn : trackByIdentity;\n }\n get collection() { return this._collection; }\n get length() { return this._length; }\n forEachItem(fn) {\n var record;\n for (record = this._itHead; record !== null; record = record._next) {\n fn(record);\n }\n }\n forEachPreviousItem(fn) {\n var record;\n for (record = this._previousItHead; record !== null; record = record._nextPrevious) {\n fn(record);\n }\n }\n forEachAddedItem(fn) {\n var record;\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n fn(record);\n }\n }\n forEachMovedItem(fn) {\n var record;\n for (record = this._movesHead; record !== null; record = record._nextMoved) {\n fn(record);\n }\n }\n forEachRemovedItem(fn) {\n var record;\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n fn(record);\n }\n }\n forEachIdentityChange(fn) {\n var record;\n for (record = this._identityChangesHead; record !== null; record = record._nextIdentityChange) {\n fn(record);\n }\n }\n diff(collection) {\n if (isBlank(collection))\n collection = [];\n if (!isListLikeIterable(collection)) {\n throw new BaseException(`Error trying to diff '${collection}'`);\n }\n if (this.check(collection)) {\n return this;\n }\n else {\n return null;\n }\n }\n onDestroy() { }\n // todo(vicb): optim for UnmodifiableListView (frozen arrays)\n check(collection) {\n this._reset();\n var record = this._itHead;\n var mayBeDirty = false;\n var index;\n var item;\n var itemTrackBy;\n if (isArray(collection)) {\n var list = collection;\n this._length = collection.length;\n for (index = 0; index < this._length; index++) {\n item = list[index];\n itemTrackBy = this._trackByFn(index, item);\n if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {\n record = this._mismatch(record, item, itemTrackBy, index);\n mayBeDirty = true;\n }\n else {\n if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, itemTrackBy, index);\n }\n if (!looseIdentical(record.item, item))\n this._addIdentityChange(record, item);\n }\n record = record._next;\n }\n }\n else {\n index = 0;\n iterateListLike(collection, (item) => {\n itemTrackBy = this._trackByFn(index, item);\n if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {\n record = this._mismatch(record, item, itemTrackBy, index);\n mayBeDirty = true;\n }\n else {\n if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, itemTrackBy, index);\n }\n if (!looseIdentical(record.item, item))\n this._addIdentityChange(record, item);\n }\n record = record._next;\n index++;\n });\n this._length = index;\n }\n this._truncate(record);\n this._collection = collection;\n return this.isDirty;\n }\n /* CollectionChanges is considered dirty if it has any additions, moves, removals, or identity\n * changes.\n */\n get isDirty() {\n return this._additionsHead !== null || this._movesHead !== null ||\n this._removalsHead !== null || this._identityChangesHead !== null;\n }\n /**\n * Reset the state of the change objects to show no changes. This means set previousKey to\n * currentKey, and clear all of the queues (additions, moves, removals).\n * Set the previousIndexes of moved and added items to their currentIndexes\n * Reset the list of additions, moves and removals\n *\n * @internal\n */\n _reset() {\n if (this.isDirty) {\n var record;\n var nextRecord;\n for (record = this._previousItHead = this._itHead; record !== null; record = record._next) {\n record._nextPrevious = record._next;\n }\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n record.previousIndex = record.currentIndex;\n }\n this._additionsHead = this._additionsTail = null;\n for (record = this._movesHead; record !== null; record = nextRecord) {\n record.previousIndex = record.currentIndex;\n nextRecord = record._nextMoved;\n }\n this._movesHead = this._movesTail = null;\n this._removalsHead = this._removalsTail = null;\n this._identityChangesHead = this._identityChangesTail = null;\n }\n }\n /**\n * This is the core function which handles differences between collections.\n *\n * - `record` is the record which we saw at this position last time. If null then it is a new\n * item.\n * - `item` is the current item in the collection\n * - `index` is the position of the item in the collection\n *\n * @internal\n */\n _mismatch(record, item, itemTrackBy, index) {\n // The previous record after which we will append the current one.\n var previousRecord;\n if (record === null) {\n previousRecord = this._itTail;\n }\n else {\n previousRecord = record._prev;\n // Remove the record from the collection since we know it does not match the item.\n this._remove(record);\n }\n // Attempt to see if we have seen the item before.\n record = this._linkedRecords === null ? null : this._linkedRecords.get(itemTrackBy, index);\n if (record !== null) {\n // We have seen this before, we need to move it forward in the collection.\n // But first we need to check if identity changed, so we can update in view if necessary\n if (!looseIdentical(record.item, item))\n this._addIdentityChange(record, item);\n this._moveAfter(record, previousRecord, index);\n }\n else {\n // Never seen it, check evicted list.\n record = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy);\n if (record !== null) {\n // It is an item which we have evicted earlier: reinsert it back into the list.\n // But first we need to check if identity changed, so we can update in view if necessary\n if (!looseIdentical(record.item, item))\n this._addIdentityChange(record, item);\n this._reinsertAfter(record, previousRecord, index);\n }\n else {\n // It is a new item: add it.\n record =\n this._addAfter(new CollectionChangeRecord(item, itemTrackBy), previousRecord, index);\n }\n }\n return record;\n }\n /**\n * This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)\n *\n * Use case: `[a, a]` => `[b, a, a]`\n *\n * If we did not have this check then the insertion of `b` would:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) leave `a` at index `1` as is. <-- this is wrong!\n * 3) reinsert `a` at index 2. <-- this is wrong!\n *\n * The correct behavior is:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) reinsert `a` at index 1.\n * 3) move `a` at from `1` to `2`.\n *\n *\n * Double check that we have not evicted a duplicate item. We need to check if the item type may\n * have already been removed:\n * The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted\n * at the end. Which will show up as the two 'a's switching position. This is incorrect, since a\n * better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'\n * at the end.\n *\n * @internal\n */\n _verifyReinsertion(record, item, itemTrackBy, index) {\n var reinsertRecord = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy);\n if (reinsertRecord !== null) {\n record = this._reinsertAfter(reinsertRecord, record._prev, index);\n }\n else if (record.currentIndex != index) {\n record.currentIndex = index;\n this._addToMoves(record, index);\n }\n return record;\n }\n /**\n * Get rid of any excess {@link CollectionChangeRecord}s from the previous collection\n *\n * - `record` The first excess {@link CollectionChangeRecord}.\n *\n * @internal\n */\n _truncate(record) {\n // Anything after that needs to be removed;\n while (record !== null) {\n var nextRecord = record._next;\n this._addToRemovals(this._unlink(record));\n record = nextRecord;\n }\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.clear();\n }\n if (this._additionsTail !== null) {\n this._additionsTail._nextAdded = null;\n }\n if (this._movesTail !== null) {\n this._movesTail._nextMoved = null;\n }\n if (this._itTail !== null) {\n this._itTail._next = null;\n }\n if (this._removalsTail !== null) {\n this._removalsTail._nextRemoved = null;\n }\n if (this._identityChangesTail !== null) {\n this._identityChangesTail._nextIdentityChange = null;\n }\n }\n /** @internal */\n _reinsertAfter(record, prevRecord, index) {\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.remove(record);\n }\n var prev = record._prevRemoved;\n var next = record._nextRemoved;\n if (prev === null) {\n this._removalsHead = next;\n }\n else {\n prev._nextRemoved = next;\n }\n if (next === null) {\n this._removalsTail = prev;\n }\n else {\n next._prevRemoved = prev;\n }\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n /** @internal */\n _moveAfter(record, prevRecord, index) {\n this._unlink(record);\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n /** @internal */\n _addAfter(record, prevRecord, index) {\n this._insertAfter(record, prevRecord, index);\n if (this._additionsTail === null) {\n // todo(vicb)\n // assert(this._additionsHead === null);\n this._additionsTail = this._additionsHead = record;\n }\n else {\n // todo(vicb)\n // assert(_additionsTail._nextAdded === null);\n // assert(record._nextAdded === null);\n this._additionsTail = this._additionsTail._nextAdded = record;\n }\n return record;\n }\n /** @internal */\n _insertAfter(record, prevRecord, index) {\n // todo(vicb)\n // assert(record != prevRecord);\n // assert(record._next === null);\n // assert(record._prev === null);\n var next = prevRecord === null ? this._itHead : prevRecord._next;\n // todo(vicb)\n // assert(next != record);\n // assert(prevRecord != record);\n record._next = next;\n record._prev = prevRecord;\n if (next === null) {\n this._itTail = record;\n }\n else {\n next._prev = record;\n }\n if (prevRecord === null) {\n this._itHead = record;\n }\n else {\n prevRecord._next = record;\n }\n if (this._linkedRecords === null) {\n this._linkedRecords = new _DuplicateMap();\n }\n this._linkedRecords.put(record);\n record.currentIndex = index;\n return record;\n }\n /** @internal */\n _remove(record) {\n return this._addToRemovals(this._unlink(record));\n }\n /** @internal */\n _unlink(record) {\n if (this._linkedRecords !== null) {\n this._linkedRecords.remove(record);\n }\n var prev = record._prev;\n var next = record._next;\n // todo(vicb)\n // assert((record._prev = null) === null);\n // assert((record._next = null) === null);\n if (prev === null) {\n this._itHead = next;\n }\n else {\n prev._next = next;\n }\n if (next === null) {\n this._itTail = prev;\n }\n else {\n next._prev = prev;\n }\n return record;\n }\n /** @internal */\n _addToMoves(record, toIndex) {\n // todo(vicb)\n // assert(record._nextMoved === null);\n if (record.previousIndex === toIndex) {\n return record;\n }\n if (this._movesTail === null) {\n // todo(vicb)\n // assert(_movesHead === null);\n this._movesTail = this._movesHead = record;\n }\n else {\n // todo(vicb)\n // assert(_movesTail._nextMoved === null);\n this._movesTail = this._movesTail._nextMoved = record;\n }\n return record;\n }\n /** @internal */\n _addToRemovals(record) {\n if (this._unlinkedRecords === null) {\n this._unlinkedRecords = new _DuplicateMap();\n }\n this._unlinkedRecords.put(record);\n record.currentIndex = null;\n record._nextRemoved = null;\n if (this._removalsTail === null) {\n // todo(vicb)\n // assert(_removalsHead === null);\n this._removalsTail = this._removalsHead = record;\n record._prevRemoved = null;\n }\n else {\n // todo(vicb)\n // assert(_removalsTail._nextRemoved === null);\n // assert(record._nextRemoved === null);\n record._prevRemoved = this._removalsTail;\n this._removalsTail = this._removalsTail._nextRemoved = record;\n }\n return record;\n }\n /** @internal */\n _addIdentityChange(record, item) {\n record.item = item;\n if (this._identityChangesTail === null) {\n this._identityChangesTail = this._identityChangesHead = record;\n }\n else {\n this._identityChangesTail = this._identityChangesTail._nextIdentityChange = record;\n }\n return record;\n }\n toString() {\n var list = [];\n this.forEachItem((record) => list.push(record));\n var previous = [];\n this.forEachPreviousItem((record) => previous.push(record));\n var additions = [];\n this.forEachAddedItem((record) => additions.push(record));\n var moves = [];\n this.forEachMovedItem((record) => moves.push(record));\n var removals = [];\n this.forEachRemovedItem((record) => removals.push(record));\n var identityChanges = [];\n this.forEachIdentityChange((record) => identityChanges.push(record));\n return \"collection: \" + list.join(', ') + \"\\n\" + \"previous: \" + previous.join(', ') + \"\\n\" +\n \"additions: \" + additions.join(', ') + \"\\n\" + \"moves: \" + moves.join(', ') + \"\\n\" +\n \"removals: \" + removals.join(', ') + \"\\n\" + \"identityChanges: \" +\n identityChanges.join(', ') + \"\\n\";\n }\n}\nexport class CollectionChangeRecord {\n constructor(item, trackById) {\n this.item = item;\n this.trackById = trackById;\n this.currentIndex = null;\n this.previousIndex = null;\n /** @internal */\n this._nextPrevious = null;\n /** @internal */\n this._prev = null;\n /** @internal */\n this._next = null;\n /** @internal */\n this._prevDup = null;\n /** @internal */\n this._nextDup = null;\n /** @internal */\n this._prevRemoved = null;\n /** @internal */\n this._nextRemoved = null;\n /** @internal */\n this._nextAdded = null;\n /** @internal */\n this._nextMoved = null;\n /** @internal */\n this._nextIdentityChange = null;\n }\n toString() {\n return this.previousIndex === this.currentIndex ?\n stringify(this.item) :\n stringify(this.item) + '[' + stringify(this.previousIndex) + '->' +\n stringify(this.currentIndex) + ']';\n }\n}\n// A linked list of CollectionChangeRecords with the same CollectionChangeRecord.item\nclass _DuplicateItemRecordList {\n constructor() {\n /** @internal */\n this._head = null;\n /** @internal */\n this._tail = null;\n }\n /**\n * Append the record to the list of duplicates.\n *\n * Note: by design all records in the list of duplicates hold the same value in record.item.\n */\n add(record) {\n if (this._head === null) {\n this._head = this._tail = record;\n record._nextDup = null;\n record._prevDup = null;\n }\n else {\n // todo(vicb)\n // assert(record.item == _head.item ||\n // record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN);\n this._tail._nextDup = record;\n record._prevDup = this._tail;\n record._nextDup = null;\n this._tail = record;\n }\n }\n // Returns a CollectionChangeRecord having CollectionChangeRecord.trackById == trackById and\n // CollectionChangeRecord.currentIndex >= afterIndex\n get(trackById, afterIndex) {\n var record;\n for (record = this._head; record !== null; record = record._nextDup) {\n if ((afterIndex === null || afterIndex < record.currentIndex) &&\n looseIdentical(record.trackById, trackById)) {\n return record;\n }\n }\n return null;\n }\n /**\n * Remove one {@link CollectionChangeRecord} from the list of duplicates.\n *\n * Returns whether the list of duplicates is empty.\n */\n remove(record) {\n // todo(vicb)\n // assert(() {\n // // verify that the record being removed is in the list.\n // for (CollectionChangeRecord cursor = _head; cursor != null; cursor = cursor._nextDup) {\n // if (identical(cursor, record)) return true;\n // }\n // return false;\n //});\n var prev = record._prevDup;\n var next = record._nextDup;\n if (prev === null) {\n this._head = next;\n }\n else {\n prev._nextDup = next;\n }\n if (next === null) {\n this._tail = prev;\n }\n else {\n next._prevDup = prev;\n }\n return this._head === null;\n }\n}\nclass _DuplicateMap {\n constructor() {\n this.map = new Map();\n }\n put(record) {\n // todo(vicb) handle corner cases\n var key = getMapKey(record.trackById);\n var duplicates = this.map.get(key);\n if (!isPresent(duplicates)) {\n duplicates = new _DuplicateItemRecordList();\n this.map.set(key, duplicates);\n }\n duplicates.add(record);\n }\n /**\n * Retrieve the `value` using key. Because the CollectionChangeRecord value may be one which we\n * have already iterated over, we use the afterIndex to pretend it is not there.\n *\n * Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we\n * have any more `a`s needs to return the last `a` not the first or second.\n */\n get(trackById, afterIndex = null) {\n var key = getMapKey(trackById);\n var recordList = this.map.get(key);\n return isBlank(recordList) ? null : recordList.get(trackById, afterIndex);\n }\n /**\n * Removes a {@link CollectionChangeRecord} from the list of duplicates.\n *\n * The list of duplicates also is removed from the map if it gets empty.\n */\n remove(record) {\n var key = getMapKey(record.trackById);\n // todo(vicb)\n // assert(this.map.containsKey(key));\n var recordList = this.map.get(key);\n // Remove the list of duplicates when it gets empty\n if (recordList.remove(record)) {\n this.map.delete(key);\n }\n return record;\n }\n get isEmpty() { return this.map.size === 0; }\n clear() { this.map.clear(); }\n toString() { return '_DuplicateMap(' + stringify(this.map) + ')'; }\n}\n//# sourceMappingURL=default_iterable_differ.js.map","import { isBlank, isPresent } from '../../../src/facade/lang';\nimport { BaseException } from '../../../src/facade/exceptions';\nimport { ListWrapper } from '../../../src/facade/collection';\nimport { Provider, SkipSelfMetadata, OptionalMetadata } from '../../di';\n/**\n * A repository of different Map diffing strategies used by NgClass, NgStyle, and others.\n * @ts2dart_const\n */\nexport class KeyValueDiffers {\n /*@ts2dart_const*/\n constructor(factories) {\n this.factories = factories;\n }\n static create(factories, parent) {\n if (isPresent(parent)) {\n var copied = ListWrapper.clone(parent.factories);\n factories = factories.concat(copied);\n return new KeyValueDiffers(factories);\n }\n else {\n return new KeyValueDiffers(factories);\n }\n }\n /**\n * Takes an array of {@link KeyValueDifferFactory} and returns a provider used to extend the\n * inherited {@link KeyValueDiffers} instance with the provided factories and return a new\n * {@link KeyValueDiffers} instance.\n *\n * The following example shows how to extend an existing list of factories,\n * which will only be applied to the injector for this component and its children.\n * This step is all that's required to make a new {@link KeyValueDiffer} available.\n *\n * ### Example\n *\n * ```\n * @Component({\n * viewProviders: [\n * KeyValueDiffers.extend([new ImmutableMapDiffer()])\n * ]\n * })\n * ```\n */\n static extend(factories) {\n return new Provider(KeyValueDiffers, {\n useFactory: (parent) => {\n if (isBlank(parent)) {\n // Typically would occur when calling KeyValueDiffers.extend inside of dependencies passed\n // to\n // bootstrap(), which would override default pipes instead of extending them.\n throw new BaseException('Cannot extend KeyValueDiffers without a parent injector');\n }\n return KeyValueDiffers.create(factories, parent);\n },\n // Dependency technically isn't optional, but we can provide a better error message this way.\n deps: [[KeyValueDiffers, new SkipSelfMetadata(), new OptionalMetadata()]]\n });\n }\n find(kv) {\n var factory = this.factories.find(f => f.supports(kv));\n if (isPresent(factory)) {\n return factory;\n }\n else {\n throw new BaseException(`Cannot find a differ supporting object '${kv}'`);\n }\n }\n}\n//# sourceMappingURL=keyvalue_differs.js.map","import { MapWrapper, StringMapWrapper } from '../../../src/facade/collection';\nimport { stringify, looseIdentical, isJsObject, isBlank } from '../../../src/facade/lang';\nimport { BaseException } from '../../../src/facade/exceptions';\n/* @ts2dart_const */\nexport class DefaultKeyValueDifferFactory {\n constructor() {\n }\n supports(obj) { return obj instanceof Map || isJsObject(obj); }\n create(cdRef) { return new DefaultKeyValueDiffer(); }\n}\nexport class DefaultKeyValueDiffer {\n constructor() {\n this._records = new Map();\n this._mapHead = null;\n this._previousMapHead = null;\n this._changesHead = null;\n this._changesTail = null;\n this._additionsHead = null;\n this._additionsTail = null;\n this._removalsHead = null;\n this._removalsTail = null;\n }\n get isDirty() {\n return this._additionsHead !== null || this._changesHead !== null ||\n this._removalsHead !== null;\n }\n forEachItem(fn) {\n var record;\n for (record = this._mapHead; record !== null; record = record._next) {\n fn(record);\n }\n }\n forEachPreviousItem(fn) {\n var record;\n for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {\n fn(record);\n }\n }\n forEachChangedItem(fn) {\n var record;\n for (record = this._changesHead; record !== null; record = record._nextChanged) {\n fn(record);\n }\n }\n forEachAddedItem(fn) {\n var record;\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n fn(record);\n }\n }\n forEachRemovedItem(fn) {\n var record;\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n fn(record);\n }\n }\n diff(map) {\n if (isBlank(map))\n map = MapWrapper.createFromPairs([]);\n if (!(map instanceof Map || isJsObject(map))) {\n throw new BaseException(`Error trying to diff '${map}'`);\n }\n if (this.check(map)) {\n return this;\n }\n else {\n return null;\n }\n }\n onDestroy() { }\n check(map) {\n this._reset();\n var records = this._records;\n var oldSeqRecord = this._mapHead;\n var lastOldSeqRecord = null;\n var lastNewSeqRecord = null;\n var seqChanged = false;\n this._forEach(map, (value, key) => {\n var newSeqRecord;\n if (oldSeqRecord !== null && key === oldSeqRecord.key) {\n newSeqRecord = oldSeqRecord;\n if (!looseIdentical(value, oldSeqRecord.currentValue)) {\n oldSeqRecord.previousValue = oldSeqRecord.currentValue;\n oldSeqRecord.currentValue = value;\n this._addToChanges(oldSeqRecord);\n }\n }\n else {\n seqChanged = true;\n if (oldSeqRecord !== null) {\n oldSeqRecord._next = null;\n this._removeFromSeq(lastOldSeqRecord, oldSeqRecord);\n this._addToRemovals(oldSeqRecord);\n }\n if (records.has(key)) {\n newSeqRecord = records.get(key);\n }\n else {\n newSeqRecord = new KeyValueChangeRecord(key);\n records.set(key, newSeqRecord);\n newSeqRecord.currentValue = value;\n this._addToAdditions(newSeqRecord);\n }\n }\n if (seqChanged) {\n if (this._isInRemovals(newSeqRecord)) {\n this._removeFromRemovals(newSeqRecord);\n }\n if (lastNewSeqRecord == null) {\n this._mapHead = newSeqRecord;\n }\n else {\n lastNewSeqRecord._next = newSeqRecord;\n }\n }\n lastOldSeqRecord = oldSeqRecord;\n lastNewSeqRecord = newSeqRecord;\n oldSeqRecord = oldSeqRecord === null ? null : oldSeqRecord._next;\n });\n this._truncate(lastOldSeqRecord, oldSeqRecord);\n return this.isDirty;\n }\n /** @internal */\n _reset() {\n if (this.isDirty) {\n var record;\n // Record the state of the mapping\n for (record = this._previousMapHead = this._mapHead; record !== null; record = record._next) {\n record._nextPrevious = record._next;\n }\n for (record = this._changesHead; record !== null; record = record._nextChanged) {\n record.previousValue = record.currentValue;\n }\n for (record = this._additionsHead; record != null; record = record._nextAdded) {\n record.previousValue = record.currentValue;\n }\n // todo(vicb) once assert is supported\n // assert(() {\n // var r = _changesHead;\n // while (r != null) {\n // var nextRecord = r._nextChanged;\n // r._nextChanged = null;\n // r = nextRecord;\n // }\n //\n // r = _additionsHead;\n // while (r != null) {\n // var nextRecord = r._nextAdded;\n // r._nextAdded = null;\n // r = nextRecord;\n // }\n //\n // r = _removalsHead;\n // while (r != null) {\n // var nextRecord = r._nextRemoved;\n // r._nextRemoved = null;\n // r = nextRecord;\n // }\n //\n // return true;\n //});\n this._changesHead = this._changesTail = null;\n this._additionsHead = this._additionsTail = null;\n this._removalsHead = this._removalsTail = null;\n }\n }\n /** @internal */\n _truncate(lastRecord, record) {\n while (record !== null) {\n if (lastRecord === null) {\n this._mapHead = null;\n }\n else {\n lastRecord._next = null;\n }\n var nextRecord = record._next;\n // todo(vicb) assert\n // assert((() {\n // record._next = null;\n // return true;\n //}));\n this._addToRemovals(record);\n lastRecord = record;\n record = nextRecord;\n }\n for (var rec = this._removalsHead; rec !== null; rec = rec._nextRemoved) {\n rec.previousValue = rec.currentValue;\n rec.currentValue = null;\n this._records.delete(rec.key);\n }\n }\n /** @internal */\n _isInRemovals(record) {\n return record === this._removalsHead || record._nextRemoved !== null ||\n record._prevRemoved !== null;\n }\n /** @internal */\n _addToRemovals(record) {\n // todo(vicb) assert\n // assert(record._next == null);\n // assert(record._nextAdded == null);\n // assert(record._nextChanged == null);\n // assert(record._nextRemoved == null);\n // assert(record._prevRemoved == null);\n if (this._removalsHead === null) {\n this._removalsHead = this._removalsTail = record;\n }\n else {\n this._removalsTail._nextRemoved = record;\n record._prevRemoved = this._removalsTail;\n this._removalsTail = record;\n }\n }\n /** @internal */\n _removeFromSeq(prev, record) {\n var next = record._next;\n if (prev === null) {\n this._mapHead = next;\n }\n else {\n prev._next = next;\n }\n // todo(vicb) assert\n // assert((() {\n // record._next = null;\n // return true;\n //})());\n }\n /** @internal */\n _removeFromRemovals(record) {\n // todo(vicb) assert\n // assert(record._next == null);\n // assert(record._nextAdded == null);\n // assert(record._nextChanged == null);\n var prev = record._prevRemoved;\n var next = record._nextRemoved;\n if (prev === null) {\n this._removalsHead = next;\n }\n else {\n prev._nextRemoved = next;\n }\n if (next === null) {\n this._removalsTail = prev;\n }\n else {\n next._prevRemoved = prev;\n }\n record._prevRemoved = record._nextRemoved = null;\n }\n /** @internal */\n _addToAdditions(record) {\n // todo(vicb): assert\n // assert(record._next == null);\n // assert(record._nextAdded == null);\n // assert(record._nextChanged == null);\n // assert(record._nextRemoved == null);\n // assert(record._prevRemoved == null);\n if (this._additionsHead === null) {\n this._additionsHead = this._additionsTail = record;\n }\n else {\n this._additionsTail._nextAdded = record;\n this._additionsTail = record;\n }\n }\n /** @internal */\n _addToChanges(record) {\n // todo(vicb) assert\n // assert(record._nextAdded == null);\n // assert(record._nextChanged == null);\n // assert(record._nextRemoved == null);\n // assert(record._prevRemoved == null);\n if (this._changesHead === null) {\n this._changesHead = this._changesTail = record;\n }\n else {\n this._changesTail._nextChanged = record;\n this._changesTail = record;\n }\n }\n toString() {\n var items = [];\n var previous = [];\n var changes = [];\n var additions = [];\n var removals = [];\n var record;\n for (record = this._mapHead; record !== null; record = record._next) {\n items.push(stringify(record));\n }\n for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {\n previous.push(stringify(record));\n }\n for (record = this._changesHead; record !== null; record = record._nextChanged) {\n changes.push(stringify(record));\n }\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n additions.push(stringify(record));\n }\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n removals.push(stringify(record));\n }\n return \"map: \" + items.join(', ') + \"\\n\" + \"previous: \" + previous.join(', ') + \"\\n\" +\n \"additions: \" + additions.join(', ') + \"\\n\" + \"changes: \" + changes.join(', ') + \"\\n\" +\n \"removals: \" + removals.join(', ') + \"\\n\";\n }\n /** @internal */\n _forEach(obj, fn) {\n if (obj instanceof Map) {\n obj.forEach(fn);\n }\n else {\n StringMapWrapper.forEach(obj, fn);\n }\n }\n}\nexport class KeyValueChangeRecord {\n constructor(key) {\n this.key = key;\n this.previousValue = null;\n this.currentValue = null;\n /** @internal */\n this._nextPrevious = null;\n /** @internal */\n this._next = null;\n /** @internal */\n this._nextAdded = null;\n /** @internal */\n this._nextRemoved = null;\n /** @internal */\n this._prevRemoved = null;\n /** @internal */\n this._nextChanged = null;\n }\n toString() {\n return looseIdentical(this.previousValue, this.currentValue) ?\n stringify(this.key) :\n (stringify(this.key) + '[' + stringify(this.previousValue) + '->' +\n stringify(this.currentValue) + ']');\n }\n}\n//# sourceMappingURL=default_keyvalue_differ.js.map","export class ChangeDetectorRef {\n}\n//# sourceMappingURL=change_detector_ref.js.map","import { looseIdentical, isPrimitive } from '../../src/facade/lang';\nimport { isListLikeIterable, areIterablesEqual } from '../../src/facade/collection';\nexport { looseIdentical } from '../../src/facade/lang';\nexport var uninitialized = new Object();\nexport function devModeEqual(a, b) {\n if (isListLikeIterable(a) && isListLikeIterable(b)) {\n return areIterablesEqual(a, b, devModeEqual);\n }\n else if (!isListLikeIterable(a) && !isPrimitive(a) && !isListLikeIterable(b) &&\n !isPrimitive(b)) {\n return true;\n }\n else {\n return looseIdentical(a, b);\n }\n}\n/**\n * Indicates that the result of a {@link PipeMetadata} transformation has changed even though the\n * reference\n * has not changed.\n *\n * The wrapped value will be unwrapped by change detection, and the unwrapped value will be stored.\n *\n * Example:\n *\n * ```\n * if (this._latestValue === this._latestReturnedValue) {\n * return this._latestReturnedValue;\n * } else {\n * this._latestReturnedValue = this._latestValue;\n * return WrappedValue.wrap(this._latestValue); // this will force update\n * }\n * ```\n */\nexport class WrappedValue {\n constructor(wrapped) {\n this.wrapped = wrapped;\n }\n static wrap(value) { return new WrappedValue(value); }\n}\n/**\n * Helper class for unwrapping WrappedValue s\n */\nexport class ValueUnwrapper {\n constructor() {\n this.hasWrappedValue = false;\n }\n unwrap(value) {\n if (value instanceof WrappedValue) {\n this.hasWrappedValue = true;\n return value.wrapped;\n }\n return value;\n }\n reset() { this.hasWrappedValue = false; }\n}\n/**\n * Represents a basic change from a previous to a new value.\n */\nexport class SimpleChange {\n constructor(previousValue, currentValue) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() { return this.previousValue === uninitialized; }\n}\n//# sourceMappingURL=change_detection_util.js.map","import { IterableDiffers } from './differs/iterable_differs';\nimport { DefaultIterableDifferFactory } from './differs/default_iterable_differ';\nimport { KeyValueDiffers } from './differs/keyvalue_differs';\nimport { DefaultKeyValueDifferFactory } from './differs/default_keyvalue_differ';\nexport { DefaultKeyValueDifferFactory, KeyValueChangeRecord } from './differs/default_keyvalue_differ';\nexport { DefaultIterableDifferFactory, CollectionChangeRecord } from './differs/default_iterable_differ';\nexport { ChangeDetectionStrategy, CHANGE_DETECTION_STRATEGY_VALUES, ChangeDetectorState, CHANGE_DETECTOR_STATE_VALUES, isDefaultChangeDetectionStrategy } from './constants';\nexport { ChangeDetectorRef } from './change_detector_ref';\nexport { IterableDiffers } from './differs/iterable_differs';\nexport { KeyValueDiffers } from './differs/keyvalue_differs';\nexport { DefaultIterableDiffer } from './differs/default_iterable_differ';\nexport { WrappedValue, ValueUnwrapper, SimpleChange, devModeEqual, looseIdentical, uninitialized } from './change_detection_util';\n/**\n * Structural diffing for `Object`s and `Map`s.\n */\nexport const keyValDiff = \n/*@ts2dart_const*/ [new DefaultKeyValueDifferFactory()];\n/**\n * Structural diffing for `Iterable` types such as `Array`s.\n */\nexport const iterableDiff = \n/*@ts2dart_const*/ [new DefaultIterableDifferFactory()];\nexport const defaultIterableDiffers = new IterableDiffers(iterableDiff);\nexport const defaultKeyValueDiffers = new KeyValueDiffers(keyValDiff);\n//# sourceMappingURL=change_detection.js.map","import { unimplemented } from '../../src/facade/exceptions';\nexport class RenderComponentType {\n constructor(id, templateUrl, slotCount, encapsulation, styles) {\n this.id = id;\n this.templateUrl = templateUrl;\n this.slotCount = slotCount;\n this.encapsulation = encapsulation;\n this.styles = styles;\n }\n}\nexport class RenderDebugInfo {\n get injector() { return unimplemented(); }\n get component() { return unimplemented(); }\n get providerTokens() { return unimplemented(); }\n get references() { return unimplemented(); }\n get context() { return unimplemented(); }\n get source() { return unimplemented(); }\n}\nexport class Renderer {\n}\n/**\n * Injectable service that provides a low-level interface for modifying the UI.\n *\n * Use this service to bypass Angular's templating and make custom UI changes that can't be\n * expressed declaratively. For example if you need to set a property or an attribute whose name is\n * not statically known, use {@link #setElementProperty} or {@link #setElementAttribute}\n * respectively.\n *\n * If you are implementing a custom renderer, you must implement this interface.\n *\n * The default Renderer implementation is `DomRenderer`. Also available is `WebWorkerRenderer`.\n */\nexport class RootRenderer {\n}\n//# sourceMappingURL=api.js.map","import { isBlank, isPresent, looseIdentical } from '../../src/facade/lang';\nimport { ListWrapper, StringMapWrapper } from '../../src/facade/collection';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { AppElement } from './element';\nimport { ExpressionChangedAfterItHasBeenCheckedException } from './exceptions';\nimport { devModeEqual } from '../change_detection/change_detection';\nimport { RootRenderer, RenderComponentType } from '../render/api';\nimport { APP_ID } from '../application_tokens';\nimport { Injectable, Inject } from '../di/decorators';\nimport { uninitialized } from \"../change_detection/change_detection_util\";\nexport class ViewUtils {\n constructor(_renderer, _appId) {\n this._renderer = _renderer;\n this._appId = _appId;\n this._nextCompTypeId = 0;\n }\n /**\n * Used by the generated code\n */\n createRenderComponentType(templateUrl, slotCount, encapsulation, styles) {\n return new RenderComponentType(`${this._appId}-${this._nextCompTypeId++}`, templateUrl, slotCount, encapsulation, styles);\n }\n /** @internal */\n renderComponent(renderComponentType) {\n return this._renderer.renderComponent(renderComponentType);\n }\n}\nViewUtils.decorators = [\n { type: Injectable },\n];\nViewUtils.ctorParameters = [\n { type: RootRenderer, },\n { type: undefined, decorators: [{ type: Inject, args: [APP_ID,] },] },\n];\nexport function flattenNestedViewRenderNodes(nodes) {\n return _flattenNestedViewRenderNodes(nodes, []);\n}\nfunction _flattenNestedViewRenderNodes(nodes, renderNodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if (node instanceof AppElement) {\n var appEl = node;\n renderNodes.push(appEl.nativeElement);\n if (isPresent(appEl.nestedViews)) {\n for (var k = 0; k < appEl.nestedViews.length; k++) {\n _flattenNestedViewRenderNodes(appEl.nestedViews[k].rootNodesOrAppElements, renderNodes);\n }\n }\n }\n else {\n renderNodes.push(node);\n }\n }\n return renderNodes;\n}\nconst EMPTY_ARR = [];\nexport function ensureSlotCount(projectableNodes, expectedSlotCount) {\n var res;\n if (isBlank(projectableNodes)) {\n res = EMPTY_ARR;\n }\n else if (projectableNodes.length < expectedSlotCount) {\n var givenSlotCount = projectableNodes.length;\n res = ListWrapper.createFixedSize(expectedSlotCount);\n for (var i = 0; i < expectedSlotCount; i++) {\n res[i] = (i < givenSlotCount) ? projectableNodes[i] : EMPTY_ARR;\n }\n }\n else {\n res = projectableNodes;\n }\n return res;\n}\nexport const MAX_INTERPOLATION_VALUES = 9;\nexport function interpolate(valueCount, c0, a1, c1, a2, c2, a3, c3, a4, c4, a5, c5, a6, c6, a7, c7, a8, c8, a9, c9) {\n switch (valueCount) {\n case 1:\n return c0 + _toStringWithNull(a1) + c1;\n case 2:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2;\n case 3:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3;\n case 4:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3 + _toStringWithNull(a4) + c4;\n case 5:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5;\n case 6:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) +\n c6;\n case 7:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) +\n c6 + _toStringWithNull(a7) + c7;\n case 8:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) +\n c6 + _toStringWithNull(a7) + c7 + _toStringWithNull(a8) + c8;\n case 9:\n return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) +\n c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) +\n c6 + _toStringWithNull(a7) + c7 + _toStringWithNull(a8) + c8 + _toStringWithNull(a9) +\n c9;\n default:\n throw new BaseException(`Does not support more than 9 expressions`);\n }\n}\nfunction _toStringWithNull(v) {\n return v != null ? v.toString() : '';\n}\nexport function checkBinding(throwOnChange, oldValue, newValue) {\n if (throwOnChange) {\n if (!devModeEqual(oldValue, newValue)) {\n throw new ExpressionChangedAfterItHasBeenCheckedException(oldValue, newValue, null);\n }\n return false;\n }\n else {\n return !looseIdentical(oldValue, newValue);\n }\n}\nexport function arrayLooseIdentical(a, b) {\n if (a.length != b.length)\n return false;\n for (var i = 0; i < a.length; ++i) {\n if (!looseIdentical(a[i], b[i]))\n return false;\n }\n return true;\n}\nexport function mapLooseIdentical(m1, m2) {\n var k1 = StringMapWrapper.keys(m1);\n var k2 = StringMapWrapper.keys(m2);\n if (k1.length != k2.length) {\n return false;\n }\n var key;\n for (var i = 0; i < k1.length; i++) {\n key = k1[i];\n if (!looseIdentical(m1[key], m2[key])) {\n return false;\n }\n }\n return true;\n}\nexport function castByValue(input, value) {\n return input;\n}\nexport const EMPTY_ARRAY = [];\nexport const EMPTY_MAP = {};\nexport function pureProxy1(fn) {\n var result;\n var v0;\n v0 = uninitialized;\n return (p0) => {\n if (!looseIdentical(v0, p0)) {\n v0 = p0;\n result = fn(p0);\n }\n return result;\n };\n}\nexport function pureProxy2(fn) {\n var result;\n var v0, v1;\n v0 = v1 = uninitialized;\n return (p0, p1) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1)) {\n v0 = p0;\n v1 = p1;\n result = fn(p0, p1);\n }\n return result;\n };\n}\nexport function pureProxy3(fn) {\n var result;\n var v0, v1, v2;\n v0 = v1 = v2 = uninitialized;\n return (p0, p1, p2) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n result = fn(p0, p1, p2);\n }\n return result;\n };\n}\nexport function pureProxy4(fn) {\n var result;\n var v0, v1, v2, v3;\n v0 = v1 = v2 = v3 = uninitialized;\n return (p0, p1, p2, p3) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n result = fn(p0, p1, p2, p3);\n }\n return result;\n };\n}\nexport function pureProxy5(fn) {\n var result;\n var v0, v1, v2, v3, v4;\n v0 = v1 = v2 = v3 = v4 = uninitialized;\n return (p0, p1, p2, p3, p4) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3) || !looseIdentical(v4, p4)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n v4 = p4;\n result = fn(p0, p1, p2, p3, p4);\n }\n return result;\n };\n}\nexport function pureProxy6(fn) {\n var result;\n var v0, v1, v2, v3, v4, v5;\n v0 = v1 = v2 = v3 = v4 = v5 = uninitialized;\n return (p0, p1, p2, p3, p4, p5) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3) || !looseIdentical(v4, p4) || !looseIdentical(v5, p5)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n v4 = p4;\n v5 = p5;\n result = fn(p0, p1, p2, p3, p4, p5);\n }\n return result;\n };\n}\nexport function pureProxy7(fn) {\n var result;\n var v0, v1, v2, v3, v4, v5, v6;\n v0 = v1 = v2 = v3 = v4 = v5 = v6 = uninitialized;\n return (p0, p1, p2, p3, p4, p5, p6) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3) || !looseIdentical(v4, p4) || !looseIdentical(v5, p5) ||\n !looseIdentical(v6, p6)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n v4 = p4;\n v5 = p5;\n v6 = p6;\n result = fn(p0, p1, p2, p3, p4, p5, p6);\n }\n return result;\n };\n}\nexport function pureProxy8(fn) {\n var result;\n var v0, v1, v2, v3, v4, v5, v6, v7;\n v0 = v1 = v2 = v3 = v4 = v5 = v6 = v7 = uninitialized;\n return (p0, p1, p2, p3, p4, p5, p6, p7) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3) || !looseIdentical(v4, p4) || !looseIdentical(v5, p5) ||\n !looseIdentical(v6, p6) || !looseIdentical(v7, p7)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n v4 = p4;\n v5 = p5;\n v6 = p6;\n v7 = p7;\n result = fn(p0, p1, p2, p3, p4, p5, p6, p7);\n }\n return result;\n };\n}\nexport function pureProxy9(fn) {\n var result;\n var v0, v1, v2, v3, v4, v5, v6, v7, v8;\n v0 = v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = uninitialized;\n return (p0, p1, p2, p3, p4, p5, p6, p7, p8) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3) || !looseIdentical(v4, p4) || !looseIdentical(v5, p5) ||\n !looseIdentical(v6, p6) || !looseIdentical(v7, p7) || !looseIdentical(v8, p8)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n v4 = p4;\n v5 = p5;\n v6 = p6;\n v7 = p7;\n v8 = p8;\n result = fn(p0, p1, p2, p3, p4, p5, p6, p7, p8);\n }\n return result;\n };\n}\nexport function pureProxy10(fn) {\n var result;\n var v0, v1, v2, v3, v4, v5, v6, v7, v8, v9;\n v0 = v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = uninitialized;\n return (p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) => {\n if (!looseIdentical(v0, p0) || !looseIdentical(v1, p1) || !looseIdentical(v2, p2) ||\n !looseIdentical(v3, p3) || !looseIdentical(v4, p4) || !looseIdentical(v5, p5) ||\n !looseIdentical(v6, p6) || !looseIdentical(v7, p7) || !looseIdentical(v8, p8) ||\n !looseIdentical(v9, p9)) {\n v0 = p0;\n v1 = p1;\n v2 = p2;\n v3 = p3;\n v4 = p4;\n v5 = p5;\n v6 = p6;\n v7 = p7;\n v8 = p8;\n v9 = p9;\n result = fn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);\n }\n return result;\n };\n}\n//# sourceMappingURL=view_utils.js.map","import { isBlank } from '../../src/facade/lang';\nimport { unimplemented } from '../../src/facade/exceptions';\nimport { ViewUtils } from './view_utils';\n/**\n * Represents an instance of a Component created via a {@link ComponentFactory}.\n *\n * `ComponentRef` provides access to the Component Instance as well other objects related to this\n * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}\n * method.\n */\nexport class ComponentRef {\n /**\n * Location of the Host Element of this Component Instance.\n */\n get location() { return unimplemented(); }\n /**\n * The injector on which the component instance exists.\n */\n get injector() { return unimplemented(); }\n /**\n * The instance of the Component.\n */\n get instance() { return unimplemented(); }\n ;\n /**\n * The {@link ViewRef} of the Host View of this Component instance.\n */\n get hostView() { return unimplemented(); }\n ;\n /**\n * The {@link ChangeDetectorRef} of the Component instance.\n */\n get changeDetectorRef() { return unimplemented(); }\n /**\n * The component type.\n */\n get componentType() { return unimplemented(); }\n}\nexport class ComponentRef_ extends ComponentRef {\n constructor(_hostElement, _componentType) {\n super();\n this._hostElement = _hostElement;\n this._componentType = _componentType;\n }\n get location() { return this._hostElement.elementRef; }\n get injector() { return this._hostElement.injector; }\n get instance() { return this._hostElement.component; }\n ;\n get hostView() { return this._hostElement.parentView.ref; }\n ;\n get changeDetectorRef() { return this._hostElement.parentView.ref; }\n ;\n get componentType() { return this._componentType; }\n destroy() { this._hostElement.parentView.destroy(); }\n onDestroy(callback) { this.hostView.onDestroy(callback); }\n}\nconst EMPTY_CONTEXT = new Object();\n/*@ts2dart_const*/\nexport class ComponentFactory {\n constructor(selector, _viewFactory, _componentType) {\n this.selector = selector;\n this._viewFactory = _viewFactory;\n this._componentType = _componentType;\n }\n get componentType() { return this._componentType; }\n /**\n * Creates a new component.\n */\n create(injector, projectableNodes = null, rootSelectorOrNode = null) {\n var vu = injector.get(ViewUtils);\n if (isBlank(projectableNodes)) {\n projectableNodes = [];\n }\n // Note: Host views don't need a declarationAppElement!\n var hostView = this._viewFactory(vu, injector, null);\n var hostElement = hostView.create(EMPTY_CONTEXT, projectableNodes, rootSelectorOrNode);\n return new ComponentRef_(hostElement, this._componentType);\n }\n}\n//# sourceMappingURL=component_factory.js.map","import { isBlank, stringify } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { PromiseWrapper } from '../../src/facade/async';\nimport { reflector } from '../reflection/reflection';\nimport { ComponentFactory } from './component_factory';\nimport { Injectable } from '../di/decorators';\n/**\n * Low-level service for loading {@link ComponentFactory}s, which\n * can later be used to create and render a Component instance.\n */\nexport class ComponentResolver {\n}\nfunction _isComponentFactory(type) {\n return type instanceof ComponentFactory;\n}\nexport class ReflectorComponentResolver extends ComponentResolver {\n resolveComponent(componentType) {\n var metadatas = reflector.annotations(componentType);\n var componentFactory = metadatas.find(_isComponentFactory);\n if (isBlank(componentFactory)) {\n throw new BaseException(`No precompiled component ${stringify(componentType)} found`);\n }\n return PromiseWrapper.resolve(componentFactory);\n }\n clearCache() { }\n}\nReflectorComponentResolver.decorators = [\n { type: Injectable },\n];\n//# sourceMappingURL=component_resolver.js.map","import { print, warn } from './facade/lang';\nimport { Injectable } from './di/decorators';\n// Note: Need to rename warn as in Dart\n// class members and imports can't use the same name.\nlet _warnImpl = warn;\nexport class Console {\n log(message) { print(message); }\n // Note: for reporting errors use `DOM.logError()` as it is platform specific\n warn(message) { _warnImpl(message); }\n}\nConsole.decorators = [\n { type: Injectable },\n];\n//# sourceMappingURL=console.js.map","import { NgZone } from './zone/ng_zone';\nimport { isBlank, isPresent, assertionsEnabled, lockMode, isPromise } from '../src/facade/lang';\nimport { Injector, Injectable } from './di';\nimport { PLATFORM_INITIALIZER, APP_INITIALIZER } from './application_tokens';\nimport { PromiseWrapper, ObservableWrapper } from '../src/facade/async';\nimport { ListWrapper } from '../src/facade/collection';\nimport { TestabilityRegistry, Testability } from './testability/testability';\nimport { ComponentResolver } from './linker/component_resolver';\nimport { BaseException, ExceptionHandler, unimplemented } from '../src/facade/exceptions';\nimport { Console } from './console';\nimport { wtfLeave, wtfCreateScope } from './profile/profile';\n/**\n * Create an Angular zone.\n */\nexport function createNgZone() {\n return new NgZone({ enableLongStackTrace: assertionsEnabled() });\n}\nvar _platform;\nvar _inPlatformCreate = false;\n/**\n * Creates a platform.\n * Platforms have to be eagerly created via this function.\n */\nexport function createPlatform(injector) {\n if (_inPlatformCreate) {\n throw new BaseException('Already creating a platform...');\n }\n if (isPresent(_platform) && !_platform.disposed) {\n throw new BaseException(\"There can be only one platform. Destroy the previous one to create a new one.\");\n }\n lockMode();\n _inPlatformCreate = true;\n try {\n _platform = injector.get(PlatformRef);\n }\n finally {\n _inPlatformCreate = false;\n }\n return _platform;\n}\n/**\n * Checks that there currently is a platform\n * which contains the given token as a provider.\n */\nexport function assertPlatform(requiredToken) {\n var platform = getPlatform();\n if (isBlank(platform)) {\n throw new BaseException('Not platform exists!');\n }\n if (isPresent(platform) && isBlank(platform.injector.get(requiredToken, null))) {\n throw new BaseException('A platform with a different configuration has been created. Please destroy it first.');\n }\n return platform;\n}\n/**\n * Dispose the existing platform.\n */\nexport function disposePlatform() {\n if (isPresent(_platform) && !_platform.disposed) {\n _platform.dispose();\n }\n}\n/**\n * Returns the current platform.\n */\nexport function getPlatform() {\n return isPresent(_platform) && !_platform.disposed ? _platform : null;\n}\n/**\n * Shortcut for ApplicationRef.bootstrap.\n * Requires a platform the be created first.\n */\nexport function coreBootstrap(injector, componentFactory) {\n var appRef = injector.get(ApplicationRef);\n return appRef.bootstrap(componentFactory);\n}\n/**\n * Resolves the componentFactory for the given component,\n * waits for asynchronous initializers and bootstraps the component.\n * Requires a platform the be created first.\n */\nexport function coreLoadAndBootstrap(injector, componentType) {\n var appRef = injector.get(ApplicationRef);\n return appRef.run(() => {\n var componentResolver = injector.get(ComponentResolver);\n return PromiseWrapper\n .all([componentResolver.resolveComponent(componentType), appRef.waitForAsyncInitializers()])\n .then((arr) => appRef.bootstrap(arr[0]));\n });\n}\n/**\n * The Angular platform is the entry point for Angular on a web page. Each page\n * has exactly one platform, and services (such as reflection) which are common\n * to every Angular application running on the page are bound in its scope.\n *\n * A page's platform is initialized implicitly when {@link bootstrap}() is called, or\n * explicitly by calling {@link createPlatform}().\n */\nexport class PlatformRef {\n /**\n * Retrieve the platform {@link Injector}, which is the parent injector for\n * every Angular application on the page and provides singleton providers.\n */\n get injector() { throw unimplemented(); }\n ;\n get disposed() { throw unimplemented(); }\n}\nexport class PlatformRef_ extends PlatformRef {\n constructor(_injector) {\n super();\n this._injector = _injector;\n /** @internal */\n this._applications = [];\n /** @internal */\n this._disposeListeners = [];\n this._disposed = false;\n if (!_inPlatformCreate) {\n throw new BaseException('Platforms have to be created via `createPlatform`!');\n }\n let inits = _injector.get(PLATFORM_INITIALIZER, null);\n if (isPresent(inits))\n inits.forEach(init => init());\n }\n registerDisposeListener(dispose) { this._disposeListeners.push(dispose); }\n get injector() { return this._injector; }\n get disposed() { return this._disposed; }\n addApplication(appRef) { this._applications.push(appRef); }\n dispose() {\n ListWrapper.clone(this._applications).forEach((app) => app.dispose());\n this._disposeListeners.forEach((dispose) => dispose());\n this._disposed = true;\n }\n /** @internal */\n _applicationDisposed(app) { ListWrapper.remove(this._applications, app); }\n}\nPlatformRef_.decorators = [\n { type: Injectable },\n];\nPlatformRef_.ctorParameters = [\n { type: Injector, },\n];\n/**\n * A reference to an Angular application running on a page.\n *\n * For more about Angular applications, see the documentation for {@link bootstrap}.\n */\nexport class ApplicationRef {\n /**\n * Retrieve the application {@link Injector}.\n */\n get injector() { return unimplemented(); }\n ;\n /**\n * Retrieve the application {@link NgZone}.\n */\n get zone() { return unimplemented(); }\n ;\n /**\n * Get a list of component types registered to this application.\n */\n get componentTypes() { return unimplemented(); }\n ;\n}\nexport class ApplicationRef_ extends ApplicationRef {\n constructor(_platform, _zone, _injector) {\n super();\n this._platform = _platform;\n this._zone = _zone;\n this._injector = _injector;\n /** @internal */\n this._bootstrapListeners = [];\n /** @internal */\n this._disposeListeners = [];\n /** @internal */\n this._rootComponents = [];\n /** @internal */\n this._rootComponentTypes = [];\n /** @internal */\n this._changeDetectorRefs = [];\n /** @internal */\n this._runningTick = false;\n /** @internal */\n this._enforceNoNewChanges = false;\n var zone = _injector.get(NgZone);\n this._enforceNoNewChanges = assertionsEnabled();\n zone.run(() => { this._exceptionHandler = _injector.get(ExceptionHandler); });\n this._asyncInitDonePromise = this.run(() => {\n let inits = _injector.get(APP_INITIALIZER, null);\n var asyncInitResults = [];\n var asyncInitDonePromise;\n if (isPresent(inits)) {\n for (var i = 0; i < inits.length; i++) {\n var initResult = inits[i]();\n if (isPromise(initResult)) {\n asyncInitResults.push(initResult);\n }\n }\n }\n if (asyncInitResults.length > 0) {\n asyncInitDonePromise =\n PromiseWrapper.all(asyncInitResults).then((_) => this._asyncInitDone = true);\n this._asyncInitDone = false;\n }\n else {\n this._asyncInitDone = true;\n asyncInitDonePromise = PromiseWrapper.resolve(true);\n }\n return asyncInitDonePromise;\n });\n ObservableWrapper.subscribe(zone.onError, (error) => {\n this._exceptionHandler.call(error.error, error.stackTrace);\n });\n ObservableWrapper.subscribe(this._zone.onMicrotaskEmpty, (_) => { this._zone.run(() => { this.tick(); }); });\n }\n registerBootstrapListener(listener) {\n this._bootstrapListeners.push(listener);\n }\n registerDisposeListener(dispose) { this._disposeListeners.push(dispose); }\n registerChangeDetector(changeDetector) {\n this._changeDetectorRefs.push(changeDetector);\n }\n unregisterChangeDetector(changeDetector) {\n ListWrapper.remove(this._changeDetectorRefs, changeDetector);\n }\n waitForAsyncInitializers() { return this._asyncInitDonePromise; }\n run(callback) {\n var zone = this.injector.get(NgZone);\n var result;\n // Note: Don't use zone.runGuarded as we want to know about\n // the thrown exception!\n // Note: the completer needs to be created outside\n // of `zone.run` as Dart swallows rejected promises\n // via the onError callback of the promise.\n var completer = PromiseWrapper.completer();\n zone.run(() => {\n try {\n result = callback();\n if (isPromise(result)) {\n PromiseWrapper.then(result, (ref) => { completer.resolve(ref); }, (err, stackTrace) => {\n completer.reject(err, stackTrace);\n this._exceptionHandler.call(err, stackTrace);\n });\n }\n }\n catch (e) {\n this._exceptionHandler.call(e, e.stack);\n throw e;\n }\n });\n return isPromise(result) ? completer.promise : result;\n }\n bootstrap(componentFactory) {\n if (!this._asyncInitDone) {\n throw new BaseException('Cannot bootstrap as there are still asynchronous initializers running. Wait for them using waitForAsyncInitializers().');\n }\n return this.run(() => {\n this._rootComponentTypes.push(componentFactory.componentType);\n var compRef = componentFactory.create(this._injector, [], componentFactory.selector);\n compRef.onDestroy(() => { this._unloadComponent(compRef); });\n var testability = compRef.injector.get(Testability, null);\n if (isPresent(testability)) {\n compRef.injector.get(TestabilityRegistry)\n .registerApplication(compRef.location.nativeElement, testability);\n }\n this._loadComponent(compRef);\n let c = this._injector.get(Console);\n if (assertionsEnabled()) {\n c.log(\"Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.\");\n }\n return compRef;\n });\n }\n /** @internal */\n _loadComponent(componentRef) {\n this._changeDetectorRefs.push(componentRef.changeDetectorRef);\n this.tick();\n this._rootComponents.push(componentRef);\n this._bootstrapListeners.forEach((listener) => listener(componentRef));\n }\n /** @internal */\n _unloadComponent(componentRef) {\n if (!ListWrapper.contains(this._rootComponents, componentRef)) {\n return;\n }\n this.unregisterChangeDetector(componentRef.changeDetectorRef);\n ListWrapper.remove(this._rootComponents, componentRef);\n }\n get injector() { return this._injector; }\n get zone() { return this._zone; }\n tick() {\n if (this._runningTick) {\n throw new BaseException(\"ApplicationRef.tick is called recursively\");\n }\n var s = ApplicationRef_._tickScope();\n try {\n this._runningTick = true;\n this._changeDetectorRefs.forEach((detector) => detector.detectChanges());\n if (this._enforceNoNewChanges) {\n this._changeDetectorRefs.forEach((detector) => detector.checkNoChanges());\n }\n }\n finally {\n this._runningTick = false;\n wtfLeave(s);\n }\n }\n dispose() {\n // TODO(alxhub): Dispose of the NgZone.\n ListWrapper.clone(this._rootComponents).forEach((ref) => ref.destroy());\n this._disposeListeners.forEach((dispose) => dispose());\n this._platform._applicationDisposed(this);\n }\n get componentTypes() { return this._rootComponentTypes; }\n}\n/** @internal */\nApplicationRef_._tickScope = wtfCreateScope('ApplicationRef#tick()');\nApplicationRef_.decorators = [\n { type: Injectable },\n];\nApplicationRef_.ctorParameters = [\n { type: PlatformRef_, },\n { type: NgZone, },\n { type: Injector, },\n];\n/**\n * @internal\n */\nexport const PLATFORM_CORE_PROVIDERS = \n/*@ts2dart_const*/ [\n PlatformRef_,\n /*@ts2dart_const*/ (\n /* @ts2dart_Provider */ { provide: PlatformRef, useExisting: PlatformRef_ })\n];\n/**\n * @internal\n */\nexport const APPLICATION_CORE_PROVIDERS = [\n /* @ts2dart_Provider */ { provide: NgZone, useFactory: createNgZone, deps: [] },\n ApplicationRef_,\n /* @ts2dart_Provider */ { provide: ApplicationRef, useExisting: ApplicationRef_ }\n];\n//# sourceMappingURL=application_ref.js.map","import { ListWrapper } from '../../src/facade/collection';\nimport { getSymbolIterator } from '../../src/facade/lang';\nimport { EventEmitter } from '../../src/facade/async';\n/**\n * An unmodifiable list of items that Angular keeps up to date when the state\n * of the application changes.\n *\n * The type of object that {@link QueryMetadata} and {@link ViewQueryMetadata} provide.\n *\n * Implements an iterable interface, therefore it can be used in both ES6\n * javascript `for (var i of items)` loops as well as in Angular templates with\n * `*ngFor=\"let i of myList\"`.\n *\n * Changes can be observed by subscribing to the changes `Observable`.\n *\n * NOTE: In the future this class will implement an `Observable` interface.\n *\n * ### Example ([live demo](http://plnkr.co/edit/RX8sJnQYl9FWuSCWme5z?p=preview))\n * ```typescript\n * @Component({...})\n * class Container {\n * constructor(@Query(Item) items: QueryList<Item>) {\n * items.changes.subscribe(_ => console.log(items.length));\n * }\n * }\n * ```\n */\nexport class QueryList {\n constructor() {\n this._dirty = true;\n this._results = [];\n this._emitter = new EventEmitter();\n }\n get changes() { return this._emitter; }\n get length() { return this._results.length; }\n get first() { return ListWrapper.first(this._results); }\n get last() { return ListWrapper.last(this._results); }\n /**\n * returns a new array with the passed in function applied to each element.\n */\n map(fn) { return this._results.map(fn); }\n /**\n * returns a filtered array.\n */\n filter(fn) { return this._results.filter(fn); }\n /**\n * returns a reduced value.\n */\n reduce(fn, init) { return this._results.reduce(fn, init); }\n /**\n * executes function for each element in a query.\n */\n forEach(fn) { this._results.forEach(fn); }\n /**\n * converts QueryList into an array\n */\n toArray() { return ListWrapper.clone(this._results); }\n [getSymbolIterator()]() { return this._results[getSymbolIterator()](); }\n toString() { return this._results.toString(); }\n /**\n * @internal\n */\n reset(res) {\n this._results = ListWrapper.flatten(res);\n this._dirty = false;\n }\n /** @internal */\n notifyOnChanges() { this._emitter.emit(this); }\n /** internal */\n setDirty() { this._dirty = true; }\n /** internal */\n get dirty() { return this._dirty; }\n}\n//# sourceMappingURL=query_list.js.map","import { ComponentResolver } from './component_resolver';\nimport { isPresent } from '../../src/facade/lang';\nimport { ReflectiveInjector } from '../di/reflective_injector';\nimport { Injectable } from '../di/decorators';\n/**\n * Use ComponentResolver and ViewContainerRef directly.\n *\n * @deprecated\n */\nexport class DynamicComponentLoader {\n}\nexport class DynamicComponentLoader_ extends DynamicComponentLoader {\n constructor(_compiler) {\n super();\n this._compiler = _compiler;\n }\n loadAsRoot(type, overrideSelectorOrNode, injector, onDispose, projectableNodes) {\n return this._compiler.resolveComponent(type).then(componentFactory => {\n var componentRef = componentFactory.create(injector, projectableNodes, isPresent(overrideSelectorOrNode) ? overrideSelectorOrNode : componentFactory.selector);\n if (isPresent(onDispose)) {\n componentRef.onDestroy(onDispose);\n }\n return componentRef;\n });\n }\n loadNextToLocation(type, location, providers = null, projectableNodes = null) {\n return this._compiler.resolveComponent(type).then(componentFactory => {\n var contextInjector = location.parentInjector;\n var childInjector = isPresent(providers) && providers.length > 0 ?\n ReflectiveInjector.fromResolvedProviders(providers, contextInjector) :\n contextInjector;\n return location.createComponent(componentFactory, location.length, childInjector, projectableNodes);\n });\n }\n}\nDynamicComponentLoader_.decorators = [\n { type: Injectable },\n];\nDynamicComponentLoader_.ctorParameters = [\n { type: ComponentResolver, },\n];\n//# sourceMappingURL=dynamic_component_loader.js.map","import { isBlank } from '../facade/lang';\nconst EMPTY_CONTEXT = new Object();\n/**\n * Represents an Embedded Template that can be used to instantiate Embedded Views.\n *\n * You can access a `TemplateRef`, in two ways. Via a directive placed on a `<template>` element (or\n * directive prefixed with `*`) and have the `TemplateRef` for this Embedded View injected into the\n * constructor of the directive using the `TemplateRef` Token. Alternatively you can query for the\n * `TemplateRef` from a Component or a Directive via {@link Query}.\n *\n * To instantiate Embedded Views based on a Template, use\n * {@link ViewContainerRef#createEmbeddedView}, which will create the View and attach it to the\n * View Container.\n */\nexport class TemplateRef {\n /**\n * The location in the View where the Embedded View logically belongs to.\n *\n * The data-binding and injection contexts of Embedded Views created from this `TemplateRef`\n * inherit from the contexts of this location.\n *\n * Typically new Embedded Views are attached to the View Container of this location, but in\n * advanced use-cases, the View can be attached to a different container while keeping the\n * data-binding and injection context from the original location.\n *\n */\n // TODO(i): rename to anchor or location\n get elementRef() { return null; }\n}\nexport class TemplateRef_ extends TemplateRef {\n constructor(_appElement, _viewFactory) {\n super();\n this._appElement = _appElement;\n this._viewFactory = _viewFactory;\n }\n createEmbeddedView(context) {\n var view = this._viewFactory(this._appElement.parentView.viewUtils, this._appElement.parentInjector, this._appElement);\n if (isBlank(context)) {\n context = EMPTY_CONTEXT;\n }\n view.create(context, null, null);\n return view.ref;\n }\n get elementRef() { return this._appElement.elementRef; }\n}\n//# sourceMappingURL=template_ref.js.map","import { unimplemented } from '../../src/facade/exceptions';\nimport { ChangeDetectionStrategy } from '../change_detection/constants';\nexport class ViewRef {\n get destroyed() { return unimplemented(); }\n}\n/**\n * Represents an Angular View.\n *\n * <!-- TODO: move the next two paragraphs to the dev guide -->\n * A View is a fundamental building block of the application UI. It is the smallest grouping of\n * Elements which are created and destroyed together.\n *\n * Properties of elements in a View can change, but the structure (number and order) of elements in\n * a View cannot. Changing the structure of Elements can only be done by inserting, moving or\n * removing nested Views via a {@link ViewContainerRef}. Each View can contain many View Containers.\n * <!-- /TODO -->\n *\n * ### Example\n *\n * Given this template...\n *\n * ```\n * Count: {{items.length}}\n * <ul>\n * <li *ngFor=\"let item of items\">{{item}}</li>\n * </ul>\n * ```\n *\n * ... we have two {@link TemplateRef}s:\n *\n * Outer {@link TemplateRef}:\n * ```\n * Count: {{items.length}}\n * <ul>\n * <template ngFor let-item [ngForOf]=\"items\"></template>\n * </ul>\n * ```\n *\n * Inner {@link TemplateRef}:\n * ```\n * <li>{{item}}</li>\n * ```\n *\n * Notice that the original template is broken down into two separate {@link TemplateRef}s.\n *\n * The outer/inner {@link TemplateRef}s are then assembled into views like so:\n *\n * ```\n * <!-- ViewRef: outer-0 -->\n * Count: 2\n * <ul>\n * <template view-container-ref></template>\n * <!-- ViewRef: inner-1 --><li>first</li><!-- /ViewRef: inner-1 -->\n * <!-- ViewRef: inner-2 --><li>second</li><!-- /ViewRef: inner-2 -->\n * </ul>\n * <!-- /ViewRef: outer-0 -->\n * ```\n */\nexport class EmbeddedViewRef extends ViewRef {\n get context() { return unimplemented(); }\n get rootNodes() { return unimplemented(); }\n ;\n}\nexport class ViewRef_ {\n constructor(_view) {\n this._view = _view;\n this._view = _view;\n }\n get internalView() { return this._view; }\n get rootNodes() { return this._view.flatRootNodes; }\n get context() { return this._view.context; }\n get destroyed() { return this._view.destroyed; }\n markForCheck() { this._view.markPathToRootAsCheckOnce(); }\n detach() { this._view.cdMode = ChangeDetectionStrategy.Detached; }\n detectChanges() { this._view.detectChanges(false); }\n checkNoChanges() { this._view.detectChanges(true); }\n reattach() {\n this._view.cdMode = ChangeDetectionStrategy.CheckAlways;\n this.markForCheck();\n }\n onDestroy(callback) { this._view.disposables.push(callback); }\n destroy() { this._view.destroy(); }\n}\n//# sourceMappingURL=view_ref.js.map","import { isPresent } from '../../src/facade/lang';\nimport { ListWrapper, MapWrapper } from '../../src/facade/collection';\nexport class EventListener {\n constructor(name, callback) {\n this.name = name;\n this.callback = callback;\n }\n ;\n}\nexport class DebugNode {\n constructor(nativeNode, parent, _debugInfo) {\n this._debugInfo = _debugInfo;\n this.nativeNode = nativeNode;\n if (isPresent(parent) && parent instanceof DebugElement) {\n parent.addChild(this);\n }\n else {\n this.parent = null;\n }\n this.listeners = [];\n }\n get injector() { return isPresent(this._debugInfo) ? this._debugInfo.injector : null; }\n get componentInstance() {\n return isPresent(this._debugInfo) ? this._debugInfo.component : null;\n }\n get context() { return isPresent(this._debugInfo) ? this._debugInfo.context : null; }\n get references() {\n return isPresent(this._debugInfo) ? this._debugInfo.references : null;\n }\n get providerTokens() {\n return isPresent(this._debugInfo) ? this._debugInfo.providerTokens : null;\n }\n get source() { return isPresent(this._debugInfo) ? this._debugInfo.source : null; }\n /**\n * Use injector.get(token) instead.\n *\n * @deprecated\n */\n inject(token) { return this.injector.get(token); }\n}\nexport class DebugElement extends DebugNode {\n constructor(nativeNode, parent, _debugInfo) {\n super(nativeNode, parent, _debugInfo);\n this.properties = {};\n this.attributes = {};\n this.childNodes = [];\n this.nativeElement = nativeNode;\n }\n addChild(child) {\n if (isPresent(child)) {\n this.childNodes.push(child);\n child.parent = this;\n }\n }\n removeChild(child) {\n var childIndex = this.childNodes.indexOf(child);\n if (childIndex !== -1) {\n child.parent = null;\n this.childNodes.splice(childIndex, 1);\n }\n }\n insertChildrenAfter(child, newChildren) {\n var siblingIndex = this.childNodes.indexOf(child);\n if (siblingIndex !== -1) {\n var previousChildren = this.childNodes.slice(0, siblingIndex + 1);\n var nextChildren = this.childNodes.slice(siblingIndex + 1);\n this.childNodes =\n ListWrapper.concat(ListWrapper.concat(previousChildren, newChildren), nextChildren);\n for (var i = 0; i < newChildren.length; ++i) {\n var newChild = newChildren[i];\n if (isPresent(newChild.parent)) {\n newChild.parent.removeChild(newChild);\n }\n newChild.parent = this;\n }\n }\n }\n query(predicate) {\n var results = this.queryAll(predicate);\n return results.length > 0 ? results[0] : null;\n }\n queryAll(predicate) {\n var matches = [];\n _queryElementChildren(this, predicate, matches);\n return matches;\n }\n queryAllNodes(predicate) {\n var matches = [];\n _queryNodeChildren(this, predicate, matches);\n return matches;\n }\n get children() {\n var children = [];\n this.childNodes.forEach((node) => {\n if (node instanceof DebugElement) {\n children.push(node);\n }\n });\n return children;\n }\n triggerEventHandler(eventName, eventObj) {\n this.listeners.forEach((listener) => {\n if (listener.name == eventName) {\n listener.callback(eventObj);\n }\n });\n }\n}\nexport function asNativeElements(debugEls) {\n return debugEls.map((el) => el.nativeElement);\n}\nfunction _queryElementChildren(element, predicate, matches) {\n element.childNodes.forEach(node => {\n if (node instanceof DebugElement) {\n if (predicate(node)) {\n matches.push(node);\n }\n _queryElementChildren(node, predicate, matches);\n }\n });\n}\nfunction _queryNodeChildren(parentNode, predicate, matches) {\n if (parentNode instanceof DebugElement) {\n parentNode.childNodes.forEach(node => {\n if (predicate(node)) {\n matches.push(node);\n }\n if (node instanceof DebugElement) {\n _queryNodeChildren(node, predicate, matches);\n }\n });\n }\n}\n// Need to keep the nodes in a global Map so that multiple angular apps are supported.\nvar _nativeNodeToDebugNode = new Map();\nexport function getDebugNode(nativeNode) {\n return _nativeNodeToDebugNode.get(nativeNode);\n}\nexport function getAllDebugNodes() {\n return MapWrapper.values(_nativeNodeToDebugNode);\n}\nexport function indexDebugNode(node) {\n _nativeNodeToDebugNode.set(node.nativeNode, node);\n}\nexport function removeDebugNodeFromIndex(node) {\n _nativeNodeToDebugNode.delete(node.nativeNode);\n}\n//# sourceMappingURL=debug_node.js.map","import { OpaqueToken } from './di';\n/**\n * A token that can be provided when bootstraping an application to make an array of directives\n * available in every component of the application.\n *\n * ### Example\n *\n * ```typescript\n * import {PLATFORM_DIRECTIVES} from '@angular/core';\n * import {OtherDirective} from './myDirectives';\n *\n * @Component({\n * selector: 'my-component',\n * template: `\n * <!-- can use other directive even though the component does not list it in `directives` -->\n * <other-directive></other-directive>\n * `\n * })\n * export class MyComponent {\n * ...\n * }\n *\n * bootstrap(MyComponent, [provide(PLATFORM_DIRECTIVES, {useValue: [OtherDirective], multi:true})]);\n * ```\n */\nexport const PLATFORM_DIRECTIVES = \n/*@ts2dart_const*/ new OpaqueToken(\"Platform Directives\");\n/**\n * A token that can be provided when bootstraping an application to make an array of pipes\n * available in every component of the application.\n *\n * ### Example\n *\n * ```typescript\n * import {PLATFORM_PIPES} from '@angular/core';\n * import {OtherPipe} from './myPipe';\n *\n * @Component({\n * selector: 'my-component',\n * template: `\n * {{123 | other-pipe}}\n * `\n * })\n * export class MyComponent {\n * ...\n * }\n *\n * bootstrap(MyComponent, [provide(PLATFORM_PIPES, {useValue: [OtherPipe], multi:true})]);\n * ```\n */\nexport const PLATFORM_PIPES = new OpaqueToken(\"Platform Pipes\");\n//# sourceMappingURL=platform_directives_and_pipes.js.map","import { Console } from './console';\nimport { Reflector, reflector } from './reflection/reflection';\nimport { ReflectorReader } from './reflection/reflector_reader';\nimport { TestabilityRegistry } from './testability/testability';\nimport { PLATFORM_CORE_PROVIDERS } from './application_ref';\nfunction _reflector() {\n return reflector;\n}\nvar __unused; // prevent missing use Dart warning.\n/**\n * A default set of providers which should be included in any Angular platform.\n */\nexport const PLATFORM_COMMON_PROVIDERS = [\n PLATFORM_CORE_PROVIDERS,\n /*@ts2dart_Provider*/ { provide: Reflector, useFactory: _reflector, deps: [] },\n /*@ts2dart_Provider*/ { provide: ReflectorReader, useExisting: Reflector },\n TestabilityRegistry,\n Console\n];\n//# sourceMappingURL=platform_common_providers.js.map","import { APP_ID_RANDOM_PROVIDER } from './application_tokens';\nimport { APPLICATION_CORE_PROVIDERS } from './application_ref';\nimport { IterableDiffers, defaultIterableDiffers, KeyValueDiffers, defaultKeyValueDiffers } from './change_detection/change_detection';\nimport { ViewUtils } from './linker/view_utils';\nimport { ComponentResolver, ReflectorComponentResolver } from './linker/component_resolver';\nimport { DynamicComponentLoader, DynamicComponentLoader_ } from './linker/dynamic_component_loader';\nlet __unused; // avoid unused import when Type union types are erased\n/**\n * A default set of providers which should be included in any Angular\n * application, regardless of the platform it runs onto.\n */\nexport const APPLICATION_COMMON_PROVIDERS = \n/*@ts2dart_const*/ [\n APPLICATION_CORE_PROVIDERS,\n /* @ts2dart_Provider */ { provide: ComponentResolver, useClass: ReflectorComponentResolver },\n APP_ID_RANDOM_PROVIDER,\n ViewUtils,\n /* @ts2dart_Provider */ { provide: IterableDiffers, useValue: defaultIterableDiffers },\n /* @ts2dart_Provider */ { provide: KeyValueDiffers, useValue: defaultKeyValueDiffers },\n /* @ts2dart_Provider */ { provide: DynamicComponentLoader, useClass: DynamicComponentLoader_ }\n];\n//# sourceMappingURL=application_common_providers.js.map","export var LifecycleHooks;\n(function (LifecycleHooks) {\n LifecycleHooks[LifecycleHooks[\"OnInit\"] = 0] = \"OnInit\";\n LifecycleHooks[LifecycleHooks[\"OnDestroy\"] = 1] = \"OnDestroy\";\n LifecycleHooks[LifecycleHooks[\"DoCheck\"] = 2] = \"DoCheck\";\n LifecycleHooks[LifecycleHooks[\"OnChanges\"] = 3] = \"OnChanges\";\n LifecycleHooks[LifecycleHooks[\"AfterContentInit\"] = 4] = \"AfterContentInit\";\n LifecycleHooks[LifecycleHooks[\"AfterContentChecked\"] = 5] = \"AfterContentChecked\";\n LifecycleHooks[LifecycleHooks[\"AfterViewInit\"] = 6] = \"AfterViewInit\";\n LifecycleHooks[LifecycleHooks[\"AfterViewChecked\"] = 7] = \"AfterViewChecked\";\n})(LifecycleHooks || (LifecycleHooks = {}));\n/**\n * @internal\n */\nexport var LIFECYCLE_HOOKS_VALUES = [\n LifecycleHooks.OnInit,\n LifecycleHooks.OnDestroy,\n LifecycleHooks.DoCheck,\n LifecycleHooks.OnChanges,\n LifecycleHooks.AfterContentInit,\n LifecycleHooks.AfterContentChecked,\n LifecycleHooks.AfterViewInit,\n LifecycleHooks.AfterViewChecked\n];\n//# sourceMappingURL=lifecycle_hooks.js.map","import { isPresent, isBlank } from '../../src/facade/lang';\nimport { StringMapWrapper } from '../../src/facade/collection';\nimport { ViewType } from './view_type';\n/* @ts2dart_const */\nexport class StaticNodeDebugInfo {\n constructor(providerTokens, componentToken, refTokens) {\n this.providerTokens = providerTokens;\n this.componentToken = componentToken;\n this.refTokens = refTokens;\n }\n}\nexport class DebugContext {\n constructor(_view, _nodeIndex, _tplRow, _tplCol) {\n this._view = _view;\n this._nodeIndex = _nodeIndex;\n this._tplRow = _tplRow;\n this._tplCol = _tplCol;\n }\n get _staticNodeInfo() {\n return isPresent(this._nodeIndex) ? this._view.staticNodeDebugInfos[this._nodeIndex] : null;\n }\n get context() { return this._view.context; }\n get component() {\n var staticNodeInfo = this._staticNodeInfo;\n if (isPresent(staticNodeInfo) && isPresent(staticNodeInfo.componentToken)) {\n return this.injector.get(staticNodeInfo.componentToken);\n }\n return null;\n }\n get componentRenderElement() {\n var componentView = this._view;\n while (isPresent(componentView.declarationAppElement) &&\n componentView.type !== ViewType.COMPONENT) {\n componentView = componentView.declarationAppElement.parentView;\n }\n return isPresent(componentView.declarationAppElement) ?\n componentView.declarationAppElement.nativeElement :\n null;\n }\n get injector() { return this._view.injector(this._nodeIndex); }\n get renderNode() {\n if (isPresent(this._nodeIndex) && isPresent(this._view.allNodes)) {\n return this._view.allNodes[this._nodeIndex];\n }\n else {\n return null;\n }\n }\n get providerTokens() {\n var staticNodeInfo = this._staticNodeInfo;\n return isPresent(staticNodeInfo) ? staticNodeInfo.providerTokens : null;\n }\n get source() {\n return `${this._view.componentType.templateUrl}:${this._tplRow}:${this._tplCol}`;\n }\n get references() {\n var varValues = {};\n var staticNodeInfo = this._staticNodeInfo;\n if (isPresent(staticNodeInfo)) {\n var refs = staticNodeInfo.refTokens;\n StringMapWrapper.forEach(refs, (refToken, refName) => {\n var varValue;\n if (isBlank(refToken)) {\n varValue = isPresent(this._view.allNodes) ? this._view.allNodes[this._nodeIndex] : null;\n }\n else {\n varValue = this._view.injectorGet(refToken, this._nodeIndex, null);\n }\n varValues[refName] = varValue;\n });\n }\n return varValues;\n }\n}\n//# sourceMappingURL=debug_context.js.map","import { Injector, THROW_IF_NOT_FOUND } from '../di/injector';\nconst _UNDEFINED = new Object();\nexport class ElementInjector extends Injector {\n constructor(_view, _nodeIndex) {\n super();\n this._view = _view;\n this._nodeIndex = _nodeIndex;\n }\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n var result = _UNDEFINED;\n if (result === _UNDEFINED) {\n result = this._view.injectorGet(token, this._nodeIndex, _UNDEFINED);\n }\n if (result === _UNDEFINED) {\n result = this._view.parentInjector.get(token, notFoundValue);\n }\n return result;\n }\n}\n//# sourceMappingURL=element_injector.js.map","import { ListWrapper } from '../../src/facade/collection';\nimport { AppElement } from './element';\nimport { isPresent } from '../../src/facade/lang';\nimport { ObservableWrapper } from '../../src/facade/async';\nimport { ViewRef_ } from './view_ref';\nimport { ViewType } from './view_type';\nimport { flattenNestedViewRenderNodes, ensureSlotCount } from './view_utils';\nimport { ChangeDetectionStrategy, ChangeDetectorState } from '../change_detection/change_detection';\nimport { wtfCreateScope, wtfLeave } from '../profile/profile';\nimport { ExpressionChangedAfterItHasBeenCheckedException, ViewDestroyedException, ViewWrappedException } from './exceptions';\nimport { DebugContext } from './debug_context';\nimport { ElementInjector } from './element_injector';\nvar _scope_check = wtfCreateScope(`AppView#check(ascii id)`);\n/**\n * Cost of making objects: http://jsperf.com/instantiate-size-of-object\n *\n */\nexport class AppView {\n constructor(clazz, componentType, type, viewUtils, parentInjector, declarationAppElement, cdMode) {\n this.clazz = clazz;\n this.componentType = componentType;\n this.type = type;\n this.viewUtils = viewUtils;\n this.parentInjector = parentInjector;\n this.declarationAppElement = declarationAppElement;\n this.cdMode = cdMode;\n this.contentChildren = [];\n this.viewChildren = [];\n this.viewContainerElement = null;\n // The names of the below fields must be kept in sync with codegen_name_util.ts or\n // change detection will fail.\n this.cdState = ChangeDetectorState.NeverChecked;\n this.destroyed = false;\n this.ref = new ViewRef_(this);\n if (type === ViewType.COMPONENT || type === ViewType.HOST) {\n this.renderer = viewUtils.renderComponent(componentType);\n }\n else {\n this.renderer = declarationAppElement.parentView.renderer;\n }\n }\n create(context, givenProjectableNodes, rootSelectorOrNode) {\n this.context = context;\n var projectableNodes;\n switch (this.type) {\n case ViewType.COMPONENT:\n projectableNodes = ensureSlotCount(givenProjectableNodes, this.componentType.slotCount);\n break;\n case ViewType.EMBEDDED:\n projectableNodes = this.declarationAppElement.parentView.projectableNodes;\n break;\n case ViewType.HOST:\n // Note: Don't ensure the slot count for the projectableNodes as we store\n // them only for the contained component view (which will later check the slot count...)\n projectableNodes = givenProjectableNodes;\n break;\n }\n this._hasExternalHostElement = isPresent(rootSelectorOrNode);\n this.projectableNodes = projectableNodes;\n return this.createInternal(rootSelectorOrNode);\n }\n /**\n * Overwritten by implementations.\n * Returns the AppElement for the host element for ViewType.HOST.\n */\n createInternal(rootSelectorOrNode) { return null; }\n init(rootNodesOrAppElements, allNodes, disposables, subscriptions) {\n this.rootNodesOrAppElements = rootNodesOrAppElements;\n this.allNodes = allNodes;\n this.disposables = disposables;\n this.subscriptions = subscriptions;\n if (this.type === ViewType.COMPONENT) {\n // Note: the render nodes have been attached to their host element\n // in the ViewFactory already.\n this.declarationAppElement.parentView.viewChildren.push(this);\n this.dirtyParentQueriesInternal();\n }\n }\n selectOrCreateHostElement(elementName, rootSelectorOrNode, debugInfo) {\n var hostElement;\n if (isPresent(rootSelectorOrNode)) {\n hostElement = this.renderer.selectRootElement(rootSelectorOrNode, debugInfo);\n }\n else {\n hostElement = this.renderer.createElement(null, elementName, debugInfo);\n }\n return hostElement;\n }\n injectorGet(token, nodeIndex, notFoundResult) {\n return this.injectorGetInternal(token, nodeIndex, notFoundResult);\n }\n /**\n * Overwritten by implementations\n */\n injectorGetInternal(token, nodeIndex, notFoundResult) {\n return notFoundResult;\n }\n injector(nodeIndex) {\n if (isPresent(nodeIndex)) {\n return new ElementInjector(this, nodeIndex);\n }\n else {\n return this.parentInjector;\n }\n }\n destroy() {\n if (this._hasExternalHostElement) {\n this.renderer.detachView(this.flatRootNodes);\n }\n else if (isPresent(this.viewContainerElement)) {\n this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));\n }\n this._destroyRecurse();\n }\n _destroyRecurse() {\n if (this.destroyed) {\n return;\n }\n var children = this.contentChildren;\n for (var i = 0; i < children.length; i++) {\n children[i]._destroyRecurse();\n }\n children = this.viewChildren;\n for (var i = 0; i < children.length; i++) {\n children[i]._destroyRecurse();\n }\n this.destroyLocal();\n this.destroyed = true;\n }\n destroyLocal() {\n var hostElement = this.type === ViewType.COMPONENT ? this.declarationAppElement.nativeElement : null;\n for (var i = 0; i < this.disposables.length; i++) {\n this.disposables[i]();\n }\n for (var i = 0; i < this.subscriptions.length; i++) {\n ObservableWrapper.dispose(this.subscriptions[i]);\n }\n this.destroyInternal();\n if (this._hasExternalHostElement) {\n this.renderer.detachView(this.flatRootNodes);\n }\n else if (isPresent(this.viewContainerElement)) {\n this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));\n }\n else {\n this.dirtyParentQueriesInternal();\n }\n this.renderer.destroyView(hostElement, this.allNodes);\n }\n /**\n * Overwritten by implementations\n */\n destroyInternal() { }\n get changeDetectorRef() { return this.ref; }\n get parent() {\n return isPresent(this.declarationAppElement) ? this.declarationAppElement.parentView : null;\n }\n get flatRootNodes() { return flattenNestedViewRenderNodes(this.rootNodesOrAppElements); }\n get lastRootNode() {\n var lastNode = this.rootNodesOrAppElements.length > 0 ?\n this.rootNodesOrAppElements[this.rootNodesOrAppElements.length - 1] :\n null;\n return _findLastRenderNode(lastNode);\n }\n /**\n * Overwritten by implementations\n */\n dirtyParentQueriesInternal() { }\n detectChanges(throwOnChange) {\n var s = _scope_check(this.clazz);\n if (this.cdMode === ChangeDetectionStrategy.Detached ||\n this.cdMode === ChangeDetectionStrategy.Checked ||\n this.cdState === ChangeDetectorState.Errored)\n return;\n if (this.destroyed) {\n this.throwDestroyedError('detectChanges');\n }\n this.detectChangesInternal(throwOnChange);\n if (this.cdMode === ChangeDetectionStrategy.CheckOnce)\n this.cdMode = ChangeDetectionStrategy.Checked;\n this.cdState = ChangeDetectorState.CheckedBefore;\n wtfLeave(s);\n }\n /**\n * Overwritten by implementations\n */\n detectChangesInternal(throwOnChange) {\n this.detectContentChildrenChanges(throwOnChange);\n this.detectViewChildrenChanges(throwOnChange);\n }\n detectContentChildrenChanges(throwOnChange) {\n for (var i = 0; i < this.contentChildren.length; ++i) {\n this.contentChildren[i].detectChanges(throwOnChange);\n }\n }\n detectViewChildrenChanges(throwOnChange) {\n for (var i = 0; i < this.viewChildren.length; ++i) {\n this.viewChildren[i].detectChanges(throwOnChange);\n }\n }\n addToContentChildren(renderAppElement) {\n renderAppElement.parentView.contentChildren.push(this);\n this.viewContainerElement = renderAppElement;\n this.dirtyParentQueriesInternal();\n }\n removeFromContentChildren(renderAppElement) {\n ListWrapper.remove(renderAppElement.parentView.contentChildren, this);\n this.dirtyParentQueriesInternal();\n this.viewContainerElement = null;\n }\n markAsCheckOnce() { this.cdMode = ChangeDetectionStrategy.CheckOnce; }\n markPathToRootAsCheckOnce() {\n let c = this;\n while (isPresent(c) && c.cdMode !== ChangeDetectionStrategy.Detached) {\n if (c.cdMode === ChangeDetectionStrategy.Checked) {\n c.cdMode = ChangeDetectionStrategy.CheckOnce;\n }\n let parentEl = c.type === ViewType.COMPONENT ? c.declarationAppElement : c.viewContainerElement;\n c = isPresent(parentEl) ? parentEl.parentView : null;\n }\n }\n eventHandler(cb) { return cb; }\n throwDestroyedError(details) { throw new ViewDestroyedException(details); }\n}\nexport class DebugAppView extends AppView {\n constructor(clazz, componentType, type, viewUtils, parentInjector, declarationAppElement, cdMode, staticNodeDebugInfos) {\n super(clazz, componentType, type, viewUtils, parentInjector, declarationAppElement, cdMode);\n this.staticNodeDebugInfos = staticNodeDebugInfos;\n this._currentDebugContext = null;\n }\n create(context, givenProjectableNodes, rootSelectorOrNode) {\n this._resetDebug();\n try {\n return super.create(context, givenProjectableNodes, rootSelectorOrNode);\n }\n catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n injectorGet(token, nodeIndex, notFoundResult) {\n this._resetDebug();\n try {\n return super.injectorGet(token, nodeIndex, notFoundResult);\n }\n catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n destroyLocal() {\n this._resetDebug();\n try {\n super.destroyLocal();\n }\n catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n detectChanges(throwOnChange) {\n this._resetDebug();\n try {\n super.detectChanges(throwOnChange);\n }\n catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n _resetDebug() { this._currentDebugContext = null; }\n debug(nodeIndex, rowNum, colNum) {\n return this._currentDebugContext = new DebugContext(this, nodeIndex, rowNum, colNum);\n }\n _rethrowWithContext(e, stack) {\n if (!(e instanceof ViewWrappedException)) {\n if (!(e instanceof ExpressionChangedAfterItHasBeenCheckedException)) {\n this.cdState = ChangeDetectorState.Errored;\n }\n if (isPresent(this._currentDebugContext)) {\n throw new ViewWrappedException(e, stack, this._currentDebugContext);\n }\n }\n }\n eventHandler(cb) {\n var superHandler = super.eventHandler(cb);\n return (event) => {\n this._resetDebug();\n try {\n return superHandler(event);\n }\n catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n };\n }\n}\nfunction _findLastRenderNode(node) {\n var lastNode;\n if (node instanceof AppElement) {\n var appEl = node;\n lastNode = appEl.nativeElement;\n if (isPresent(appEl.nestedViews)) {\n // Note: Views might have no root nodes at all!\n for (var i = appEl.nestedViews.length - 1; i >= 0; i--) {\n var nestedView = appEl.nestedViews[i];\n if (nestedView.rootNodesOrAppElements.length > 0) {\n lastNode = _findLastRenderNode(nestedView.rootNodesOrAppElements[nestedView.rootNodesOrAppElements.length - 1]);\n }\n }\n }\n }\n else {\n lastNode = node;\n }\n return lastNode;\n}\n//# sourceMappingURL=view.js.map","/**\n* This is here because DART requires it. It is noop in JS.\n*/\nexport function wtfInit() { }\n//# sourceMappingURL=wtf_init.js.map","import { isPresent } from '../../src/facade/lang';\nimport { DebugNode, DebugElement, EventListener, getDebugNode, indexDebugNode, removeDebugNodeFromIndex } from './debug_node';\nexport class DebugDomRootRenderer {\n constructor(_delegate) {\n this._delegate = _delegate;\n }\n renderComponent(componentProto) {\n return new DebugDomRenderer(this._delegate.renderComponent(componentProto));\n }\n}\nexport class DebugDomRenderer {\n constructor(_delegate) {\n this._delegate = _delegate;\n }\n selectRootElement(selectorOrNode, debugInfo) {\n var nativeEl = this._delegate.selectRootElement(selectorOrNode, debugInfo);\n var debugEl = new DebugElement(nativeEl, null, debugInfo);\n indexDebugNode(debugEl);\n return nativeEl;\n }\n createElement(parentElement, name, debugInfo) {\n var nativeEl = this._delegate.createElement(parentElement, name, debugInfo);\n var debugEl = new DebugElement(nativeEl, getDebugNode(parentElement), debugInfo);\n debugEl.name = name;\n indexDebugNode(debugEl);\n return nativeEl;\n }\n createViewRoot(hostElement) { return this._delegate.createViewRoot(hostElement); }\n createTemplateAnchor(parentElement, debugInfo) {\n var comment = this._delegate.createTemplateAnchor(parentElement, debugInfo);\n var debugEl = new DebugNode(comment, getDebugNode(parentElement), debugInfo);\n indexDebugNode(debugEl);\n return comment;\n }\n createText(parentElement, value, debugInfo) {\n var text = this._delegate.createText(parentElement, value, debugInfo);\n var debugEl = new DebugNode(text, getDebugNode(parentElement), debugInfo);\n indexDebugNode(debugEl);\n return text;\n }\n projectNodes(parentElement, nodes) {\n var debugParent = getDebugNode(parentElement);\n if (isPresent(debugParent) && debugParent instanceof DebugElement) {\n let debugElement = debugParent;\n nodes.forEach((node) => { debugElement.addChild(getDebugNode(node)); });\n }\n this._delegate.projectNodes(parentElement, nodes);\n }\n attachViewAfter(node, viewRootNodes) {\n var debugNode = getDebugNode(node);\n if (isPresent(debugNode)) {\n var debugParent = debugNode.parent;\n if (viewRootNodes.length > 0 && isPresent(debugParent)) {\n var debugViewRootNodes = [];\n viewRootNodes.forEach((rootNode) => debugViewRootNodes.push(getDebugNode(rootNode)));\n debugParent.insertChildrenAfter(debugNode, debugViewRootNodes);\n }\n }\n this._delegate.attachViewAfter(node, viewRootNodes);\n }\n detachView(viewRootNodes) {\n viewRootNodes.forEach((node) => {\n var debugNode = getDebugNode(node);\n if (isPresent(debugNode) && isPresent(debugNode.parent)) {\n debugNode.parent.removeChild(debugNode);\n }\n });\n this._delegate.detachView(viewRootNodes);\n }\n destroyView(hostElement, viewAllNodes) {\n viewAllNodes.forEach((node) => { removeDebugNodeFromIndex(getDebugNode(node)); });\n this._delegate.destroyView(hostElement, viewAllNodes);\n }\n listen(renderElement, name, callback) {\n var debugEl = getDebugNode(renderElement);\n if (isPresent(debugEl)) {\n debugEl.listeners.push(new EventListener(name, callback));\n }\n return this._delegate.listen(renderElement, name, callback);\n }\n listenGlobal(target, name, callback) {\n return this._delegate.listenGlobal(target, name, callback);\n }\n setElementProperty(renderElement, propertyName, propertyValue) {\n var debugEl = getDebugNode(renderElement);\n if (isPresent(debugEl) && debugEl instanceof DebugElement) {\n debugEl.properties[propertyName] = propertyValue;\n }\n this._delegate.setElementProperty(renderElement, propertyName, propertyValue);\n }\n setElementAttribute(renderElement, attributeName, attributeValue) {\n var debugEl = getDebugNode(renderElement);\n if (isPresent(debugEl) && debugEl instanceof DebugElement) {\n debugEl.attributes[attributeName] = attributeValue;\n }\n this._delegate.setElementAttribute(renderElement, attributeName, attributeValue);\n }\n setBindingDebugInfo(renderElement, propertyName, propertyValue) {\n this._delegate.setBindingDebugInfo(renderElement, propertyName, propertyValue);\n }\n setElementClass(renderElement, className, isAdd) {\n this._delegate.setElementClass(renderElement, className, isAdd);\n }\n setElementStyle(renderElement, styleName, styleValue) {\n this._delegate.setElementStyle(renderElement, styleName, styleValue);\n }\n invokeElementMethod(renderElement, methodName, args) {\n this._delegate.invokeElementMethod(renderElement, methodName, args);\n }\n setText(renderNode, text) { this._delegate.setText(renderNode, text); }\n}\n//# sourceMappingURL=debug_renderer.js.map","import * as constants from './src/change_detection/constants';\nimport * as reflective_provider from './src/di/reflective_provider';\nimport * as lifecycle_hooks from './src/metadata/lifecycle_hooks';\nimport * as reflector_reader from './src/reflection/reflector_reader';\nimport * as component_resolver from './src/linker/component_resolver';\nimport * as element from './src/linker/element';\nimport * as view from './src/linker/view';\nimport * as view_type from './src/linker/view_type';\nimport * as view_utils from './src/linker/view_utils';\nimport * as metadata_view from './src/metadata/view';\nimport * as debug_context from './src/linker/debug_context';\nimport * as change_detection_util from './src/change_detection/change_detection_util';\nimport * as api from './src/render/api';\nimport * as template_ref from './src/linker/template_ref';\nimport * as wtf_init from './src/profile/wtf_init';\nimport * as reflection_capabilities from './src/reflection/reflection_capabilities';\nimport * as decorators from './src/util/decorators';\nimport * as debug from './src/debug/debug_renderer';\nimport * as provider_util from './src/di/provider_util';\nimport * as console from './src/console';\nexport var __core_private__ = {\n isDefaultChangeDetectionStrategy: constants.isDefaultChangeDetectionStrategy,\n ChangeDetectorState: constants.ChangeDetectorState,\n CHANGE_DETECTION_STRATEGY_VALUES: constants.CHANGE_DETECTION_STRATEGY_VALUES,\n constructDependencies: reflective_provider.constructDependencies,\n LifecycleHooks: lifecycle_hooks.LifecycleHooks,\n LIFECYCLE_HOOKS_VALUES: lifecycle_hooks.LIFECYCLE_HOOKS_VALUES,\n ReflectorReader: reflector_reader.ReflectorReader,\n ReflectorComponentResolver: component_resolver.ReflectorComponentResolver,\n AppElement: element.AppElement,\n AppView: view.AppView,\n DebugAppView: view.DebugAppView,\n ViewType: view_type.ViewType,\n MAX_INTERPOLATION_VALUES: view_utils.MAX_INTERPOLATION_VALUES,\n checkBinding: view_utils.checkBinding,\n flattenNestedViewRenderNodes: view_utils.flattenNestedViewRenderNodes,\n interpolate: view_utils.interpolate,\n ViewUtils: view_utils.ViewUtils,\n VIEW_ENCAPSULATION_VALUES: metadata_view.VIEW_ENCAPSULATION_VALUES,\n DebugContext: debug_context.DebugContext,\n StaticNodeDebugInfo: debug_context.StaticNodeDebugInfo,\n devModeEqual: change_detection_util.devModeEqual,\n uninitialized: change_detection_util.uninitialized,\n ValueUnwrapper: change_detection_util.ValueUnwrapper,\n RenderDebugInfo: api.RenderDebugInfo,\n TemplateRef_: template_ref.TemplateRef_,\n wtfInit: wtf_init.wtfInit,\n ReflectionCapabilities: reflection_capabilities.ReflectionCapabilities,\n makeDecorator: decorators.makeDecorator,\n DebugDomRootRenderer: debug.DebugDomRootRenderer,\n createProvider: provider_util.createProvider,\n isProviderLiteral: provider_util.isProviderLiteral,\n EMPTY_ARRAY: view_utils.EMPTY_ARRAY,\n EMPTY_MAP: view_utils.EMPTY_MAP,\n pureProxy1: view_utils.pureProxy1,\n pureProxy2: view_utils.pureProxy2,\n pureProxy3: view_utils.pureProxy3,\n pureProxy4: view_utils.pureProxy4,\n pureProxy5: view_utils.pureProxy5,\n pureProxy6: view_utils.pureProxy6,\n pureProxy7: view_utils.pureProxy7,\n pureProxy8: view_utils.pureProxy8,\n pureProxy9: view_utils.pureProxy9,\n pureProxy10: view_utils.pureProxy10,\n castByValue: view_utils.castByValue,\n Console: console.Console,\n};\n//# sourceMappingURL=private_export.js.map"],"names":["_global","ChangeDetectionStrategy","ViewEncapsulation","global","Map","toPromise","PromiseObservable","Subject","impl.detectWTF","impl.createScope","impl.leave","impl.startTimeRange","impl.endTimeRange","EMPTY_CONTEXT","console.Console","view_utils.castByValue","view_utils.pureProxy10","view_utils.pureProxy9","view_utils.pureProxy8","view_utils.pureProxy7","view_utils.pureProxy6","view_utils.pureProxy5","view_utils.pureProxy4","view_utils.pureProxy3","view_utils.pureProxy2","view_utils.pureProxy1","view_utils.EMPTY_MAP","view_utils.EMPTY_ARRAY","provider_util.isProviderLiteral","provider_util.createProvider","debug.DebugDomRootRenderer","decorators.makeDecorator","reflection_capabilities.ReflectionCapabilities","wtf_init.wtfInit","template_ref.TemplateRef_","api.RenderDebugInfo","change_detection_util.ValueUnwrapper","change_detection_util.uninitialized","change_detection_util.devModeEqual","debug_context.StaticNodeDebugInfo","debug_context.DebugContext","metadata_view.VIEW_ENCAPSULATION_VALUES","view_utils.ViewUtils","view_utils.interpolate","view_utils.flattenNestedViewRenderNodes","view_utils.checkBinding","view_utils.MAX_INTERPOLATION_VALUES","view_type.ViewType","view.DebugAppView","view.AppView","element.AppElement","component_resolver.ReflectorComponentResolver","reflector_reader.ReflectorReader","lifecycle_hooks.LIFECYCLE_HOOKS_VALUES","lifecycle_hooks.LifecycleHooks","reflective_provider.constructDependencies","constants.CHANGE_DETECTION_STRATEGY_VALUES","constants.ChangeDetectorState","constants.isDefaultChangeDetectionStrategy"],"mappings":"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AAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,E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EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,SAAS,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AACxD,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA,IAAI,IAAI,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/D,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,SAAS,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC7D,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,KAAK,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;AACrD,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,eAAe,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;AACxE,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,YAAY,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAClE,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,YAAY,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAClE,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAO,IAAI,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAC5D,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAA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"}