@angular/core 2.0.0-rc.1 → 2.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/{core.umd.js → bundles/core.umd.js} +6402 -4606
  2. package/bundles/core.umd.min.js +6 -0
  3. package/esm/index.d.ts +5 -4
  4. package/esm/index.js +9 -8
  5. package/esm/index.js.map +1 -1
  6. package/esm/private_export.d.ts +96 -11
  7. package/esm/private_export.js +39 -10
  8. package/esm/private_export.js.map +1 -1
  9. package/esm/private_export.metadata.json +1 -1
  10. package/esm/src/animation/active_animation_players_map.d.ts +11 -0
  11. package/esm/src/animation/active_animation_players_map.js +47 -0
  12. package/esm/src/animation/active_animation_players_map.js.map +1 -0
  13. package/esm/src/animation/animation_constants.d.ts +4 -0
  14. package/esm/src/animation/animation_constants.js +5 -0
  15. package/esm/src/animation/animation_constants.js.map +1 -0
  16. package/esm/src/animation/animation_constants.metadata.json +1 -0
  17. package/esm/src/animation/animation_driver.d.ts +9 -0
  18. package/esm/src/animation/animation_driver.js +9 -0
  19. package/esm/src/animation/animation_driver.js.map +1 -0
  20. package/esm/src/animation/animation_group_player.d.ts +18 -0
  21. package/esm/src/animation/animation_group_player.js +60 -0
  22. package/esm/src/animation/animation_group_player.js.map +1 -0
  23. package/esm/src/animation/animation_keyframe.d.ts +6 -0
  24. package/esm/src/animation/animation_keyframe.js +7 -0
  25. package/esm/src/animation/animation_keyframe.js.map +1 -0
  26. package/esm/src/animation/animation_player.d.ts +26 -0
  27. package/esm/src/animation/animation_player.js +30 -0
  28. package/esm/src/animation/animation_player.js.map +1 -0
  29. package/esm/src/animation/animation_sequence_player.d.ts +21 -0
  30. package/esm/src/animation/animation_sequence_player.js +64 -0
  31. package/esm/src/animation/animation_sequence_player.js.map +1 -0
  32. package/esm/src/animation/animation_style_util.d.ts +32 -0
  33. package/esm/src/animation/animation_style_util.js +91 -0
  34. package/esm/src/animation/animation_style_util.js.map +1 -0
  35. package/esm/src/animation/animation_style_util.metadata.json +1 -0
  36. package/esm/src/animation/animation_styles.d.ts +8 -0
  37. package/esm/src/animation/animation_styles.js +6 -0
  38. package/esm/src/animation/animation_styles.js.map +1 -0
  39. package/esm/src/animation/metadata.d.ts +511 -0
  40. package/esm/src/animation/metadata.js +565 -0
  41. package/esm/src/animation/metadata.js.map +1 -0
  42. package/esm/src/animation/metadata.metadata.json +1 -0
  43. package/esm/src/application_common_providers.d.ts +1 -0
  44. package/esm/src/application_common_providers.js +5 -4
  45. package/esm/src/application_common_providers.js.map +1 -1
  46. package/esm/src/application_common_providers.metadata.json +1 -1
  47. package/esm/src/application_ref.d.ts +17 -41
  48. package/esm/src/application_ref.js +32 -23
  49. package/esm/src/application_ref.js.map +1 -1
  50. package/esm/src/application_ref.metadata.json +1 -1
  51. package/esm/src/application_tokens.d.ts +6 -1
  52. package/esm/src/application_tokens.js +9 -4
  53. package/esm/src/application_tokens.js.map +1 -1
  54. package/esm/src/application_tokens.metadata.json +1 -1
  55. package/esm/src/change_detection/change_detection.d.ts +9 -8
  56. package/esm/src/change_detection/change_detection.js +7 -7
  57. package/esm/src/change_detection/change_detection.js.map +1 -1
  58. package/esm/src/change_detection/change_detection.metadata.json +1 -1
  59. package/esm/src/change_detection/change_detection_util.d.ts +3 -1
  60. package/esm/src/change_detection/change_detection_util.js +6 -5
  61. package/esm/src/change_detection/change_detection_util.js.map +1 -1
  62. package/esm/src/change_detection/change_detection_util.metadata.json +1 -1
  63. package/esm/src/change_detection/change_detector_ref.d.ts +3 -0
  64. package/esm/src/change_detection/change_detector_ref.js +3 -0
  65. package/esm/src/change_detection/change_detector_ref.js.map +1 -1
  66. package/esm/src/change_detection/constants.d.ts +1 -0
  67. package/esm/src/change_detection/constants.js +4 -3
  68. package/esm/src/change_detection/constants.js.map +1 -1
  69. package/esm/src/change_detection/constants.metadata.json +1 -1
  70. package/esm/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  71. package/esm/src/change_detection/differs/default_iterable_differ.js +25 -18
  72. package/esm/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  73. package/esm/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  74. package/esm/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  75. package/esm/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  76. package/esm/src/change_detection/differs/iterable_differs.d.ts +4 -1
  77. package/esm/src/change_detection/differs/iterable_differs.js +5 -4
  78. package/esm/src/change_detection/differs/iterable_differs.js.map +1 -1
  79. package/esm/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  80. package/esm/src/change_detection/differs/keyvalue_differs.js +5 -4
  81. package/esm/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  82. package/esm/src/change_detection/pipe_transform.js.map +1 -1
  83. package/esm/src/change_detection.d.ts +1 -1
  84. package/esm/src/change_detection.js +5 -5
  85. package/esm/src/change_detection.js.map +1 -1
  86. package/esm/src/console.js +2 -1
  87. package/esm/src/console.js.map +1 -1
  88. package/esm/src/console.metadata.json +1 -1
  89. package/esm/src/debug/debug_node.d.ts +20 -2
  90. package/esm/src/debug/debug_node.js +16 -2
  91. package/esm/src/debug/debug_node.js.map +1 -1
  92. package/esm/src/debug/debug_node.metadata.json +1 -0
  93. package/esm/src/debug/debug_renderer.d.ts +10 -6
  94. package/esm/src/debug/debug_renderer.js +13 -2
  95. package/esm/src/debug/debug_renderer.js.map +1 -1
  96. package/esm/src/di/decorators.d.ts +13 -1
  97. package/esm/src/di/decorators.js +7 -1
  98. package/esm/src/di/decorators.js.map +1 -1
  99. package/esm/src/di/decorators.metadata.json +1 -1
  100. package/esm/src/di/forward_ref.d.ts +3 -1
  101. package/esm/src/di/forward_ref.js +3 -1
  102. package/esm/src/di/forward_ref.js.map +1 -1
  103. package/esm/src/di/injector.d.ts +4 -1
  104. package/esm/src/di/injector.js +5 -2
  105. package/esm/src/di/injector.js.map +1 -1
  106. package/esm/src/di/injector.metadata.json +1 -1
  107. package/esm/src/di/metadata.d.ts +8 -1
  108. package/esm/src/di/metadata.js +10 -3
  109. package/esm/src/di/metadata.js.map +1 -1
  110. package/esm/src/di/opaque_token.d.ts +2 -1
  111. package/esm/src/di/opaque_token.js +22 -21
  112. package/esm/src/di/opaque_token.js.map +1 -1
  113. package/esm/src/di/provider.d.ts +11 -10
  114. package/esm/src/di/provider.js +17 -14
  115. package/esm/src/di/provider.js.map +1 -1
  116. package/esm/src/di/provider.metadata.json +1 -0
  117. package/esm/src/di/provider_util.js.map +1 -1
  118. package/esm/src/di/provider_util.metadata.json +1 -0
  119. package/esm/src/di/reflective_exceptions.d.ts +11 -16
  120. package/esm/src/di/reflective_exceptions.js +28 -22
  121. package/esm/src/di/reflective_exceptions.js.map +1 -1
  122. package/esm/src/di/reflective_injector.d.ts +3 -33
  123. package/esm/src/di/reflective_injector.js +10 -7
  124. package/esm/src/di/reflective_injector.js.map +1 -1
  125. package/esm/src/di/reflective_key.d.ts +1 -8
  126. package/esm/src/di/reflective_key.js +3 -2
  127. package/esm/src/di/reflective_key.js.map +1 -1
  128. package/esm/src/di/reflective_provider.d.ts +2 -1
  129. package/esm/src/di/reflective_provider.js +6 -5
  130. package/esm/src/di/reflective_provider.js.map +1 -1
  131. package/esm/src/di/reflective_provider.metadata.json +1 -0
  132. package/esm/src/di.d.ts +2 -2
  133. package/esm/src/di.js +6 -6
  134. package/esm/src/di.js.map +1 -1
  135. package/esm/src/facade/async.d.ts +11 -4
  136. package/esm/src/facade/async.js +25 -15
  137. package/esm/src/facade/async.js.map +1 -1
  138. package/esm/src/facade/base_wrapped_exception.js +4 -4
  139. package/esm/src/facade/base_wrapped_exception.js.map +1 -1
  140. package/esm/src/facade/collection.js +1 -1
  141. package/esm/src/facade/collection.js.map +1 -1
  142. package/esm/src/facade/collection.metadata.json +1 -1
  143. package/esm/src/facade/exception_handler.d.ts +2 -11
  144. package/esm/src/facade/exception_handler.js +8 -7
  145. package/esm/src/facade/exception_handler.js.map +1 -1
  146. package/esm/src/facade/exceptions.d.ts +4 -0
  147. package/esm/src/facade/exceptions.js +6 -2
  148. package/esm/src/facade/exceptions.js.map +1 -1
  149. package/esm/src/facade/exceptions.metadata.json +1 -0
  150. package/esm/src/facade/lang.d.ts +6 -4
  151. package/esm/src/facade/lang.js +12 -11
  152. package/esm/src/facade/lang.js.map +1 -1
  153. package/esm/src/facade/lang.metadata.json +1 -1
  154. package/esm/src/facade/math.d.ts +2 -0
  155. package/esm/src/facade/math.js +4 -0
  156. package/esm/src/facade/math.js.map +1 -0
  157. package/esm/src/facade/math.metadata.json +1 -0
  158. package/esm/src/facade/promise.js.map +1 -1
  159. package/esm/src/linker/component_factory.d.ts +5 -4
  160. package/esm/src/linker/component_factory.js +7 -3
  161. package/esm/src/linker/component_factory.js.map +1 -1
  162. package/esm/src/linker/component_resolver.d.ts +5 -4
  163. package/esm/src/linker/component_resolver.js +12 -7
  164. package/esm/src/linker/component_resolver.js.map +1 -1
  165. package/esm/src/linker/component_resolver.metadata.json +1 -1
  166. package/esm/src/linker/debug_context.js +5 -4
  167. package/esm/src/linker/debug_context.js.map +1 -1
  168. package/esm/src/linker/dynamic_component_loader.d.ts +5 -6
  169. package/esm/src/linker/dynamic_component_loader.js +5 -3
  170. package/esm/src/linker/dynamic_component_loader.js.map +1 -1
  171. package/esm/src/linker/dynamic_component_loader.metadata.json +1 -1
  172. package/esm/src/linker/element.d.ts +3 -3
  173. package/esm/src/linker/element.js +5 -5
  174. package/esm/src/linker/element.js.map +1 -1
  175. package/esm/src/linker/element_injector.js.map +1 -1
  176. package/esm/src/linker/element_ref.d.ts +1 -0
  177. package/esm/src/linker/element_ref.js +5 -5
  178. package/esm/src/linker/element_ref.js.map +1 -1
  179. package/esm/src/linker/exceptions.d.ts +4 -1
  180. package/esm/src/linker/exceptions.js +4 -1
  181. package/esm/src/linker/exceptions.js.map +1 -1
  182. package/esm/src/linker/query_list.d.ts +3 -10
  183. package/esm/src/linker/query_list.js +8 -7
  184. package/esm/src/linker/query_list.js.map +1 -1
  185. package/esm/src/linker/systemjs_component_resolver.d.ts +21 -0
  186. package/esm/src/linker/systemjs_component_resolver.js +44 -0
  187. package/esm/src/linker/systemjs_component_resolver.js.map +1 -0
  188. package/esm/src/linker/template_ref.d.ts +2 -1
  189. package/esm/src/linker/template_ref.js +1 -0
  190. package/esm/src/linker/template_ref.js.map +1 -1
  191. package/esm/src/linker/view.d.ts +12 -1
  192. package/esm/src/linker/view.js +62 -16
  193. package/esm/src/linker/view.js.map +1 -1
  194. package/esm/src/linker/view_container_ref.d.ts +2 -10
  195. package/esm/src/linker/view_container_ref.js +4 -3
  196. package/esm/src/linker/view_container_ref.js.map +1 -1
  197. package/esm/src/linker/view_ref.d.ts +5 -1
  198. package/esm/src/linker/view_ref.js +6 -2
  199. package/esm/src/linker/view_ref.js.map +1 -1
  200. package/esm/src/linker/view_type.js.map +1 -1
  201. package/esm/src/linker/view_utils.d.ts +2 -4
  202. package/esm/src/linker/view_utils.js +21 -21
  203. package/esm/src/linker/view_utils.js.map +1 -1
  204. package/esm/src/linker/view_utils.metadata.json +1 -1
  205. package/esm/src/linker.d.ts +5 -4
  206. package/esm/src/linker.js +5 -4
  207. package/esm/src/linker.js.map +1 -1
  208. package/esm/src/metadata/di.d.ts +8 -1
  209. package/esm/src/metadata/di.js +10 -3
  210. package/esm/src/metadata/di.js.map +1 -1
  211. package/esm/src/metadata/directives.d.ts +104 -20
  212. package/esm/src/metadata/directives.js +25 -19
  213. package/esm/src/metadata/directives.js.map +1 -1
  214. package/esm/src/metadata/lifecycle_hooks.d.ts +46 -31
  215. package/esm/src/metadata/lifecycle_hooks.js +464 -10
  216. package/esm/src/metadata/lifecycle_hooks.js.map +1 -1
  217. package/esm/src/metadata/lifecycle_hooks.metadata.json +1 -1
  218. package/esm/src/metadata/view.d.ts +6 -2
  219. package/esm/src/metadata/view.js +3 -1
  220. package/esm/src/metadata/view.js.map +1 -1
  221. package/esm/src/metadata/view.metadata.json +1 -1
  222. package/esm/src/metadata.d.ts +49 -15
  223. package/esm/src/metadata.js +35 -10
  224. package/esm/src/metadata.js.map +1 -1
  225. package/esm/src/metadata.metadata.json +1 -1
  226. package/esm/src/platform_common_providers.d.ts +1 -0
  227. package/esm/src/platform_common_providers.js +3 -3
  228. package/esm/src/platform_common_providers.js.map +1 -1
  229. package/esm/src/platform_common_providers.metadata.json +1 -1
  230. package/esm/src/platform_directives_and_pipes.d.ts +48 -45
  231. package/esm/src/platform_directives_and_pipes.js +50 -47
  232. package/esm/src/platform_directives_and_pipes.js.map +1 -1
  233. package/esm/src/platform_directives_and_pipes.metadata.json +1 -1
  234. package/esm/src/profile/profile.d.ts +5 -1
  235. package/esm/src/profile/profile.js +4 -0
  236. package/esm/src/profile/profile.js.map +1 -1
  237. package/esm/src/profile/profile.metadata.json +1 -1
  238. package/esm/src/profile/wtf_impl.js +1 -1
  239. package/esm/src/profile/wtf_impl.js.map +1 -1
  240. package/esm/src/profile/wtf_impl.metadata.json +1 -0
  241. package/esm/src/profile/wtf_init.js +2 -2
  242. package/esm/src/profile/wtf_init.js.map +1 -1
  243. package/esm/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  244. package/esm/src/reflection/platform_reflection_capabilities.js.map +1 -1
  245. package/esm/src/reflection/reflection.d.ts +1 -1
  246. package/esm/src/reflection/reflection.js +2 -2
  247. package/esm/src/reflection/reflection.js.map +1 -1
  248. package/esm/src/reflection/reflection.metadata.json +1 -1
  249. package/esm/src/reflection/reflection_capabilities.d.ts +4 -5
  250. package/esm/src/reflection/reflection_capabilities.js +22 -10
  251. package/esm/src/reflection/reflection_capabilities.js.map +1 -1
  252. package/esm/src/reflection/reflector.d.ts +8 -20
  253. package/esm/src/reflection/reflector.js +13 -3
  254. package/esm/src/reflection/reflector.js.map +1 -1
  255. package/esm/src/reflection/reflector_reader.js +3 -3
  256. package/esm/src/reflection/reflector_reader.js.map +1 -1
  257. package/esm/src/reflection/types.js.map +1 -1
  258. package/esm/src/render/api.d.ts +17 -6
  259. package/esm/src/render/api.js +8 -1
  260. package/esm/src/render/api.js.map +1 -1
  261. package/esm/src/render.d.ts +1 -1
  262. package/esm/src/render.js +1 -1
  263. package/esm/src/render.js.map +1 -1
  264. package/esm/src/security.js +6 -6
  265. package/esm/src/security.js.map +1 -1
  266. package/esm/src/testability/testability.d.ts +3 -19
  267. package/esm/src/testability/testability.js +10 -5
  268. package/esm/src/testability/testability.js.map +1 -1
  269. package/esm/src/testability/testability.metadata.json +1 -1
  270. package/esm/src/util/decorators.d.ts +2 -1
  271. package/esm/src/util/decorators.js +10 -9
  272. package/esm/src/util/decorators.js.map +1 -1
  273. package/esm/src/util.js.map +1 -1
  274. package/esm/src/zone/ng_zone.d.ts +6 -17
  275. package/esm/src/zone/ng_zone.js +7 -6
  276. package/esm/src/zone/ng_zone.js.map +1 -1
  277. package/esm/src/zone/ng_zone_impl.d.ts +1 -4
  278. package/esm/src/zone/ng_zone_impl.js +3 -2
  279. package/esm/src/zone/ng_zone_impl.js.map +1 -1
  280. package/esm/src/zone.js.map +1 -1
  281. package/esm/testing/async.js +20 -22
  282. package/esm/testing/async.js.map +1 -1
  283. package/esm/testing/async.metadata.json +1 -0
  284. package/esm/testing/async_test_completer.js.map +1 -1
  285. package/esm/testing/fake_async.d.ts +4 -1
  286. package/esm/testing/fake_async.js +9 -2
  287. package/esm/testing/fake_async.js.map +1 -1
  288. package/esm/testing/lang_utils.js +1 -1
  289. package/esm/testing/lang_utils.js.map +1 -1
  290. package/esm/testing/lang_utils.metadata.json +1 -0
  291. package/esm/testing/logger.js +5 -3
  292. package/esm/testing/logger.js.map +1 -1
  293. package/esm/testing/logger.metadata.json +1 -1
  294. package/esm/testing/mock_application_ref.d.ts +1 -1
  295. package/esm/testing/mock_application_ref.js +1 -0
  296. package/esm/testing/mock_application_ref.js.map +1 -1
  297. package/esm/testing/mock_application_ref.metadata.json +1 -1
  298. package/esm/testing/ng_zone_mock.d.ts +0 -1
  299. package/esm/testing/ng_zone_mock.js +2 -1
  300. package/esm/testing/ng_zone_mock.js.map +1 -1
  301. package/esm/testing/ng_zone_mock.metadata.json +1 -1
  302. package/esm/testing/regexp.js +1 -1
  303. package/esm/testing/regexp.js.map +1 -1
  304. package/esm/testing/regexp.metadata.json +1 -0
  305. package/esm/testing/test_injector.d.ts +6 -12
  306. package/esm/testing/test_injector.js +4 -10
  307. package/esm/testing/test_injector.js.map +1 -1
  308. package/esm/testing/test_injector.metadata.json +1 -0
  309. package/esm/testing/testing.d.ts +2 -2
  310. package/esm/testing/testing.js +2 -2
  311. package/esm/testing/testing.js.map +1 -1
  312. package/esm/testing/testing.metadata.json +1 -1
  313. package/esm/testing.js.map +1 -1
  314. package/index.d.ts +5 -4
  315. package/index.js +10 -8
  316. package/index.js.map +1 -1
  317. package/package.json +5 -1
  318. package/private_export.d.ts +96 -11
  319. package/private_export.js +39 -10
  320. package/private_export.js.map +1 -1
  321. package/private_export.metadata.json +1 -1
  322. package/src/animation/active_animation_players_map.d.ts +11 -0
  323. package/src/animation/active_animation_players_map.js +54 -0
  324. package/src/animation/active_animation_players_map.js.map +1 -0
  325. package/src/animation/animation_constants.d.ts +4 -0
  326. package/src/animation/animation_constants.js +6 -0
  327. package/src/animation/animation_constants.js.map +1 -0
  328. package/src/animation/animation_constants.metadata.json +1 -0
  329. package/src/animation/animation_driver.d.ts +9 -0
  330. package/src/animation/animation_driver.js +25 -0
  331. package/src/animation/animation_driver.js.map +1 -0
  332. package/src/animation/animation_group_player.d.ts +18 -0
  333. package/src/animation/animation_group_player.js +64 -0
  334. package/src/animation/animation_group_player.js.map +1 -0
  335. package/src/animation/animation_keyframe.d.ts +6 -0
  336. package/src/animation/animation_keyframe.js +10 -0
  337. package/src/animation/animation_keyframe.js.map +1 -0
  338. package/src/animation/animation_player.d.ts +26 -0
  339. package/src/animation/animation_player.js +42 -0
  340. package/src/animation/animation_player.js.map +1 -0
  341. package/src/animation/animation_sequence_player.d.ts +21 -0
  342. package/src/animation/animation_sequence_player.js +69 -0
  343. package/src/animation/animation_sequence_player.js.map +1 -0
  344. package/src/animation/animation_style_util.d.ts +32 -0
  345. package/src/animation/animation_style_util.js +99 -0
  346. package/src/animation/animation_style_util.js.map +1 -0
  347. package/src/animation/animation_style_util.metadata.json +1 -0
  348. package/src/animation/animation_styles.d.ts +8 -0
  349. package/src/animation/animation_styles.js +9 -0
  350. package/src/animation/animation_styles.js.map +1 -0
  351. package/src/animation/metadata.d.ts +511 -0
  352. package/src/animation/metadata.js +627 -0
  353. package/src/animation/metadata.js.map +1 -0
  354. package/src/animation/metadata.metadata.json +1 -0
  355. package/src/application_common_providers.d.ts +1 -0
  356. package/src/application_common_providers.js +4 -3
  357. package/src/application_common_providers.js.map +1 -1
  358. package/src/application_common_providers.metadata.json +1 -1
  359. package/src/application_ref.d.ts +17 -41
  360. package/src/application_ref.js +30 -21
  361. package/src/application_ref.js.map +1 -1
  362. package/src/application_ref.metadata.json +1 -1
  363. package/src/application_tokens.d.ts +6 -1
  364. package/src/application_tokens.js +9 -4
  365. package/src/application_tokens.js.map +1 -1
  366. package/src/application_tokens.metadata.json +1 -1
  367. package/src/change_detection/change_detection.d.ts +9 -8
  368. package/src/change_detection/change_detection.js +21 -21
  369. package/src/change_detection/change_detection.js.map +1 -1
  370. package/src/change_detection/change_detection.metadata.json +1 -1
  371. package/src/change_detection/change_detection_util.d.ts +3 -1
  372. package/src/change_detection/change_detection_util.js +6 -5
  373. package/src/change_detection/change_detection_util.js.map +1 -1
  374. package/src/change_detection/change_detection_util.metadata.json +1 -1
  375. package/src/change_detection/change_detector_ref.d.ts +3 -0
  376. package/src/change_detection/change_detector_ref.js +3 -0
  377. package/src/change_detection/change_detector_ref.js.map +1 -1
  378. package/src/change_detection/constants.d.ts +1 -0
  379. package/src/change_detection/constants.js +4 -3
  380. package/src/change_detection/constants.js.map +1 -1
  381. package/src/change_detection/constants.metadata.json +1 -1
  382. package/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  383. package/src/change_detection/differs/default_iterable_differ.js +25 -18
  384. package/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  385. package/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  386. package/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  387. package/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  388. package/src/change_detection/differs/iterable_differs.d.ts +4 -1
  389. package/src/change_detection/differs/iterable_differs.js +4 -3
  390. package/src/change_detection/differs/iterable_differs.js.map +1 -1
  391. package/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  392. package/src/change_detection/differs/keyvalue_differs.js +4 -3
  393. package/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  394. package/src/change_detection/pipe_transform.js.map +1 -1
  395. package/src/change_detection.d.ts +1 -1
  396. package/src/change_detection.js +9 -9
  397. package/src/change_detection.js.map +1 -1
  398. package/src/console.js +2 -1
  399. package/src/console.js.map +1 -1
  400. package/src/console.metadata.json +1 -1
  401. package/src/debug/debug_node.d.ts +20 -2
  402. package/src/debug/debug_node.js +16 -2
  403. package/src/debug/debug_node.js.map +1 -1
  404. package/src/debug/debug_node.metadata.json +1 -0
  405. package/src/debug/debug_renderer.d.ts +10 -6
  406. package/src/debug/debug_renderer.js +12 -1
  407. package/src/debug/debug_renderer.js.map +1 -1
  408. package/src/di/decorators.d.ts +13 -1
  409. package/src/di/decorators.js +7 -1
  410. package/src/di/decorators.js.map +1 -1
  411. package/src/di/decorators.metadata.json +1 -1
  412. package/src/di/forward_ref.d.ts +3 -1
  413. package/src/di/forward_ref.js +3 -1
  414. package/src/di/forward_ref.js.map +1 -1
  415. package/src/di/injector.d.ts +4 -1
  416. package/src/di/injector.js +5 -2
  417. package/src/di/injector.js.map +1 -1
  418. package/src/di/injector.metadata.json +1 -1
  419. package/src/di/metadata.d.ts +8 -1
  420. package/src/di/metadata.js +10 -3
  421. package/src/di/metadata.js.map +1 -1
  422. package/src/di/opaque_token.d.ts +2 -1
  423. package/src/di/opaque_token.js +22 -21
  424. package/src/di/opaque_token.js.map +1 -1
  425. package/src/di/provider.d.ts +11 -10
  426. package/src/di/provider.js +17 -14
  427. package/src/di/provider.js.map +1 -1
  428. package/src/di/provider.metadata.json +1 -0
  429. package/src/di/provider_util.js.map +1 -1
  430. package/src/di/provider_util.metadata.json +1 -0
  431. package/src/di/reflective_exceptions.d.ts +11 -16
  432. package/src/di/reflective_exceptions.js +28 -22
  433. package/src/di/reflective_exceptions.js.map +1 -1
  434. package/src/di/reflective_injector.d.ts +3 -33
  435. package/src/di/reflective_injector.js +9 -6
  436. package/src/di/reflective_injector.js.map +1 -1
  437. package/src/di/reflective_key.d.ts +1 -8
  438. package/src/di/reflective_key.js +3 -2
  439. package/src/di/reflective_key.js.map +1 -1
  440. package/src/di/reflective_provider.d.ts +2 -1
  441. package/src/di/reflective_provider.js +6 -5
  442. package/src/di/reflective_provider.js.map +1 -1
  443. package/src/di/reflective_provider.metadata.json +1 -0
  444. package/src/di.d.ts +2 -2
  445. package/src/di.js +7 -9
  446. package/src/di.js.map +1 -1
  447. package/src/facade/async.d.ts +11 -4
  448. package/src/facade/async.js +27 -17
  449. package/src/facade/async.js.map +1 -1
  450. package/src/facade/base_wrapped_exception.js +4 -4
  451. package/src/facade/base_wrapped_exception.js.map +1 -1
  452. package/src/facade/collection.js.map +1 -1
  453. package/src/facade/collection.metadata.json +1 -1
  454. package/src/facade/exception_handler.d.ts +2 -11
  455. package/src/facade/exception_handler.js +8 -7
  456. package/src/facade/exception_handler.js.map +1 -1
  457. package/src/facade/exceptions.d.ts +4 -0
  458. package/src/facade/exceptions.js +6 -2
  459. package/src/facade/exceptions.js.map +1 -1
  460. package/src/facade/exceptions.metadata.json +1 -0
  461. package/src/facade/lang.d.ts +6 -4
  462. package/src/facade/lang.js +12 -11
  463. package/src/facade/lang.js.map +1 -1
  464. package/src/facade/lang.metadata.json +1 -1
  465. package/src/facade/math.d.ts +2 -0
  466. package/src/facade/math.js +5 -0
  467. package/src/facade/math.js.map +1 -0
  468. package/src/facade/math.metadata.json +1 -0
  469. package/src/facade/promise.js.map +1 -1
  470. package/src/linker/component_factory.d.ts +5 -4
  471. package/src/linker/component_factory.js +7 -3
  472. package/src/linker/component_factory.js.map +1 -1
  473. package/src/linker/component_resolver.d.ts +5 -4
  474. package/src/linker/component_resolver.js +12 -7
  475. package/src/linker/component_resolver.js.map +1 -1
  476. package/src/linker/component_resolver.metadata.json +1 -1
  477. package/src/linker/debug_context.js +5 -4
  478. package/src/linker/debug_context.js.map +1 -1
  479. package/src/linker/dynamic_component_loader.d.ts +5 -6
  480. package/src/linker/dynamic_component_loader.js +5 -3
  481. package/src/linker/dynamic_component_loader.js.map +1 -1
  482. package/src/linker/dynamic_component_loader.metadata.json +1 -1
  483. package/src/linker/element.d.ts +3 -3
  484. package/src/linker/element.js +5 -5
  485. package/src/linker/element.js.map +1 -1
  486. package/src/linker/element_injector.js.map +1 -1
  487. package/src/linker/element_ref.d.ts +1 -0
  488. package/src/linker/element_ref.js +5 -5
  489. package/src/linker/element_ref.js.map +1 -1
  490. package/src/linker/exceptions.d.ts +4 -1
  491. package/src/linker/exceptions.js +4 -1
  492. package/src/linker/exceptions.js.map +1 -1
  493. package/src/linker/query_list.d.ts +3 -10
  494. package/src/linker/query_list.js +8 -7
  495. package/src/linker/query_list.js.map +1 -1
  496. package/src/linker/systemjs_component_resolver.d.ts +21 -0
  497. package/src/linker/systemjs_component_resolver.js +52 -0
  498. package/src/linker/systemjs_component_resolver.js.map +1 -0
  499. package/src/linker/template_ref.d.ts +2 -1
  500. package/src/linker/template_ref.js +1 -0
  501. package/src/linker/template_ref.js.map +1 -1
  502. package/src/linker/view.d.ts +12 -1
  503. package/src/linker/view.js +65 -15
  504. package/src/linker/view.js.map +1 -1
  505. package/src/linker/view_container_ref.d.ts +2 -10
  506. package/src/linker/view_container_ref.js +4 -3
  507. package/src/linker/view_container_ref.js.map +1 -1
  508. package/src/linker/view_ref.d.ts +5 -1
  509. package/src/linker/view_ref.js +6 -2
  510. package/src/linker/view_ref.js.map +1 -1
  511. package/src/linker/view_type.js.map +1 -1
  512. package/src/linker/view_utils.d.ts +2 -4
  513. package/src/linker/view_utils.js +21 -21
  514. package/src/linker/view_utils.js.map +1 -1
  515. package/src/linker/view_utils.metadata.json +1 -1
  516. package/src/linker.d.ts +5 -4
  517. package/src/linker.js +12 -9
  518. package/src/linker.js.map +1 -1
  519. package/src/metadata/di.d.ts +8 -1
  520. package/src/metadata/di.js +10 -3
  521. package/src/metadata/di.js.map +1 -1
  522. package/src/metadata/directives.d.ts +104 -20
  523. package/src/metadata/directives.js +25 -27
  524. package/src/metadata/directives.js.map +1 -1
  525. package/src/metadata/lifecycle_hooks.d.ts +46 -31
  526. package/src/metadata/lifecycle_hooks.js +496 -10
  527. package/src/metadata/lifecycle_hooks.js.map +1 -1
  528. package/src/metadata/lifecycle_hooks.metadata.json +1 -1
  529. package/src/metadata/view.d.ts +6 -2
  530. package/src/metadata/view.js +3 -1
  531. package/src/metadata/view.js.map +1 -1
  532. package/src/metadata/view.metadata.json +1 -1
  533. package/src/metadata.d.ts +49 -15
  534. package/src/metadata.js +70 -37
  535. package/src/metadata.js.map +1 -1
  536. package/src/metadata.metadata.json +1 -1
  537. package/src/platform_common_providers.d.ts +1 -0
  538. package/src/platform_common_providers.js +3 -3
  539. package/src/platform_common_providers.js.map +1 -1
  540. package/src/platform_common_providers.metadata.json +1 -1
  541. package/src/platform_directives_and_pipes.d.ts +48 -45
  542. package/src/platform_directives_and_pipes.js +50 -47
  543. package/src/platform_directives_and_pipes.js.map +1 -1
  544. package/src/platform_directives_and_pipes.metadata.json +1 -1
  545. package/src/profile/profile.d.ts +5 -1
  546. package/src/profile/profile.js +5 -3
  547. package/src/profile/profile.js.map +1 -1
  548. package/src/profile/profile.metadata.json +1 -1
  549. package/src/profile/wtf_impl.js +1 -1
  550. package/src/profile/wtf_impl.js.map +1 -1
  551. package/src/profile/wtf_impl.metadata.json +1 -0
  552. package/src/profile/wtf_init.js +2 -2
  553. package/src/profile/wtf_init.js.map +1 -1
  554. package/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  555. package/src/reflection/platform_reflection_capabilities.js.map +1 -1
  556. package/src/reflection/reflection.d.ts +1 -1
  557. package/src/reflection/reflection.js +2 -2
  558. package/src/reflection/reflection.js.map +1 -1
  559. package/src/reflection/reflection.metadata.json +1 -1
  560. package/src/reflection/reflection_capabilities.d.ts +4 -5
  561. package/src/reflection/reflection_capabilities.js +24 -10
  562. package/src/reflection/reflection_capabilities.js.map +1 -1
  563. package/src/reflection/reflector.d.ts +8 -20
  564. package/src/reflection/reflector.js +13 -3
  565. package/src/reflection/reflector.js.map +1 -1
  566. package/src/reflection/reflector_reader.js +3 -3
  567. package/src/reflection/reflector_reader.js.map +1 -1
  568. package/src/reflection/types.js.map +1 -1
  569. package/src/render/api.d.ts +17 -6
  570. package/src/render/api.js +8 -1
  571. package/src/render/api.js.map +1 -1
  572. package/src/render.d.ts +1 -1
  573. package/src/render.js +2 -2
  574. package/src/render.js.map +1 -1
  575. package/src/security.js +6 -6
  576. package/src/security.js.map +1 -1
  577. package/src/testability/testability.d.ts +3 -19
  578. package/src/testability/testability.js +10 -5
  579. package/src/testability/testability.js.map +1 -1
  580. package/src/testability/testability.metadata.json +1 -1
  581. package/src/util/decorators.d.ts +2 -1
  582. package/src/util/decorators.js +10 -9
  583. package/src/util/decorators.js.map +1 -1
  584. package/src/util.js.map +1 -1
  585. package/src/zone/ng_zone.d.ts +6 -17
  586. package/src/zone/ng_zone.js +11 -6
  587. package/src/zone/ng_zone.js.map +1 -1
  588. package/src/zone/ng_zone_impl.d.ts +1 -4
  589. package/src/zone/ng_zone_impl.js +3 -2
  590. package/src/zone/ng_zone_impl.js.map +1 -1
  591. package/src/zone.js.map +1 -1
  592. package/testing/async.js +20 -22
  593. package/testing/async.js.map +1 -1
  594. package/testing/async.metadata.json +1 -0
  595. package/testing/async_test_completer.js.map +1 -1
  596. package/testing/fake_async.d.ts +4 -1
  597. package/testing/fake_async.js +10 -2
  598. package/testing/fake_async.js.map +1 -1
  599. package/testing/lang_utils.js +1 -1
  600. package/testing/lang_utils.js.map +1 -1
  601. package/testing/lang_utils.metadata.json +1 -0
  602. package/testing/logger.js +5 -3
  603. package/testing/logger.js.map +1 -1
  604. package/testing/logger.metadata.json +1 -1
  605. package/testing/mock_application_ref.d.ts +1 -1
  606. package/testing/mock_application_ref.js +1 -0
  607. package/testing/mock_application_ref.js.map +1 -1
  608. package/testing/mock_application_ref.metadata.json +1 -1
  609. package/testing/ng_zone_mock.d.ts +0 -1
  610. package/testing/ng_zone_mock.js +2 -1
  611. package/testing/ng_zone_mock.js.map +1 -1
  612. package/testing/ng_zone_mock.metadata.json +1 -1
  613. package/testing/regexp.js +1 -1
  614. package/testing/regexp.js.map +1 -1
  615. package/testing/regexp.metadata.json +1 -0
  616. package/testing/test_injector.d.ts +6 -12
  617. package/testing/test_injector.js +3 -9
  618. package/testing/test_injector.js.map +1 -1
  619. package/testing/test_injector.metadata.json +1 -0
  620. package/testing/testing.d.ts +2 -2
  621. package/testing/testing.js +5 -5
  622. package/testing/testing.js.map +1 -1
  623. package/testing/testing.metadata.json +1 -1
  624. package/testing.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"template_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/template_ref.ts"],"names":[],"mappings":"OAIS,EAAC,OAAO,EAAC,MAAM,gBAAgB;AAMxC,MAAM,aAAa,GAAsB,IAAI,MAAM,EAAE,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH;IACE;;;;;;;;;;OAUG;IACH,wCAAwC;IACxC,IAAI,UAAU,KAAiB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAG/C,CAAC;AAED,kCAAqC,WAAW;IAC9C,YAAoB,WAAuB,EAAU,YAAsB;QAAI,OAAO,CAAC;QAAnE,gBAAW,GAAX,WAAW,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAU;IAAa,CAAC;IAEzF,kBAAkB,CAAC,OAAU;QAC3B,IAAI,IAAI,GAAe,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EACrC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5F,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,GAAQ,aAAa,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,KAAiB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AACtE,CAAC;AAAA","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {isBlank} from '../facade/lang';\nimport {ElementRef} from './element_ref';\nimport {AppElement} from './element';\nimport {AppView} from './view';\nimport {EmbeddedViewRef} from './view_ref';\n\nconst EMPTY_CONTEXT = /*@ts2dart_const*/ new Object();\n\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 abstract class TemplateRef<C> {\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(): ElementRef { return null; }\n\n abstract createEmbeddedView(context: C): EmbeddedViewRef<C>;\n}\n\nexport class TemplateRef_<C> extends TemplateRef<C> {\n constructor(private _appElement: AppElement, private _viewFactory: Function) { super(); }\n\n createEmbeddedView(context: C): EmbeddedViewRef<C> {\n var view: AppView<C> = this._viewFactory(this._appElement.parentView.viewUtils,\n this._appElement.parentInjector, this._appElement);\n if (isBlank(context)) {\n context = <any>EMPTY_CONTEXT;\n }\n view.create(context, null, null);\n return view.ref;\n }\n\n get elementRef(): ElementRef { return this._appElement.elementRef; }\n}\n"]}
1
+ {"version":3,"file":"template_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/template_ref.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB;AAOtC,MAAM,aAAa,GAAsB,IAAI,MAAM,EAAE,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH;IACE;;;;;;;;;;OAUG;IACH,wCAAwC;IACxC,IAAI,UAAU,KAAiB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAG/C,CAAC;AAED,kCAAqC,WAAW;IAC9C,YAAoB,WAAuB,EAAU,YAAsB;QAAI,OAAO,CAAC;QAAnE,gBAAW,GAAX,WAAW,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAU;IAAa,CAAC;IAEzF,kBAAkB,CAAC,OAAU;QAC3B,IAAI,IAAI,GAAe,IAAI,CAAC,YAAY,CACpC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,GAAQ,aAAa,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,KAAiB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AACtE,CAAC;AAAA","sourcesContent":["import {isBlank} from '../facade/lang';\n\nimport {AppElement} from './element';\nimport {ElementRef} from './element_ref';\nimport {AppView} from './view';\nimport {EmbeddedViewRef} from './view_ref';\n\nconst EMPTY_CONTEXT = /*@ts2dart_const*/ new Object();\n\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 * @stable\n */\nexport abstract class TemplateRef<C> {\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(): ElementRef { return null; }\n\n abstract createEmbeddedView(context: C): EmbeddedViewRef<C>;\n}\n\nexport class TemplateRef_<C> extends TemplateRef<C> {\n constructor(private _appElement: AppElement, private _viewFactory: Function) { super(); }\n\n createEmbeddedView(context: C): EmbeddedViewRef<C> {\n var view: AppView<C> = this._viewFactory(\n this._appElement.parentView.viewUtils, this._appElement.parentInjector, this._appElement);\n if (isBlank(context)) {\n context = <any>EMPTY_CONTEXT;\n }\n view.create(context, null, null);\n return view.ref;\n }\n\n get elementRef(): ElementRef { return this._appElement.elementRef; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,11 +1,13 @@
1
+ import { RenderComponentType, RenderDebugInfo, Renderer } from '../render/api';
1
2
  import { AppElement } from './element';
2
- import { Renderer, RenderComponentType, RenderDebugInfo } from '../render/api';
3
3
  import { ViewRef_ } from './view_ref';
4
4
  import { ViewType } from './view_type';
5
5
  import { ViewUtils } from './view_utils';
6
6
  import { ChangeDetectorRef, ChangeDetectionStrategy, ChangeDetectorState } from '../change_detection/change_detection';
7
7
  import { StaticNodeDebugInfo, DebugContext } from './debug_context';
8
8
  import { Injector } from '../di/injector';
9
+ import { AnimationPlayer } from '../animation/animation_player';
10
+ import { ActiveAnimationPlayersMap } from '../animation/active_animation_players_map';
9
11
  /**
10
12
  * Cost of making objects: http://jsperf.com/instantiate-size-of-object
11
13
  *
@@ -31,8 +33,11 @@ export declare abstract class AppView<T> {
31
33
  destroyed: boolean;
32
34
  renderer: Renderer;
33
35
  private _hasExternalHostElement;
36
+ activeAnimationPlayers: ActiveAnimationPlayersMap;
34
37
  context: T;
35
38
  constructor(clazz: any, componentType: RenderComponentType, type: ViewType, viewUtils: ViewUtils, parentInjector: Injector, declarationAppElement: AppElement, cdMode: ChangeDetectionStrategy);
39
+ cancelActiveAnimation(element: any, animationName: string, removeAllAnimations?: boolean): void;
40
+ registerAndStartAnimation(element: any, animationName: string, player: AnimationPlayer): void;
36
41
  create(context: T, givenProjectableNodes: Array<any | any[]>, rootSelectorOrNode: string | any): AppElement;
37
42
  /**
38
43
  * Overwritten by implementations.
@@ -54,6 +59,11 @@ export declare abstract class AppView<T> {
54
59
  * Overwritten by implementations
55
60
  */
56
61
  destroyInternal(): void;
62
+ /**
63
+ * Overwritten by implementations
64
+ */
65
+ detachInternal(): void;
66
+ detach(): void;
57
67
  readonly changeDetectorRef: ChangeDetectorRef;
58
68
  readonly parent: AppView<any>;
59
69
  readonly flatRootNodes: any[];
@@ -82,6 +92,7 @@ export declare class DebugAppView<T> extends AppView<T> {
82
92
  constructor(clazz: any, componentType: RenderComponentType, type: ViewType, viewUtils: ViewUtils, parentInjector: Injector, declarationAppElement: AppElement, cdMode: ChangeDetectionStrategy, staticNodeDebugInfos: StaticNodeDebugInfo[]);
83
93
  create(context: T, givenProjectableNodes: Array<any | any[]>, rootSelectorOrNode: string | any): AppElement;
84
94
  injectorGet(token: any, nodeIndex: number, notFoundResult: any): any;
95
+ detach(): void;
85
96
  destroyLocal(): void;
86
97
  detectChanges(throwOnChange: boolean): void;
87
98
  private _resetDebug();
@@ -1,15 +1,17 @@
1
- import { ListWrapper } from '../../src/facade/collection';
1
+ import { ObservableWrapper } from '../facade/async';
2
+ import { ListWrapper } from '../facade/collection';
3
+ import { isPresent } from '../facade/lang';
2
4
  import { AppElement } from './element';
3
- import { isPresent } from '../../src/facade/lang';
4
- import { ObservableWrapper } from '../../src/facade/async';
5
5
  import { ViewRef_ } from './view_ref';
6
6
  import { ViewType } from './view_type';
7
- import { flattenNestedViewRenderNodes, ensureSlotCount } from './view_utils';
7
+ import { ensureSlotCount, flattenNestedViewRenderNodes } from './view_utils';
8
8
  import { ChangeDetectionStrategy, ChangeDetectorState } from '../change_detection/change_detection';
9
9
  import { wtfCreateScope, wtfLeave } from '../profile/profile';
10
10
  import { ExpressionChangedAfterItHasBeenCheckedException, ViewDestroyedException, ViewWrappedException } from './exceptions';
11
11
  import { DebugContext } from './debug_context';
12
12
  import { ElementInjector } from './element_injector';
13
+ import { AnimationGroupPlayer } from '../animation/animation_group_player';
14
+ import { ActiveAnimationPlayersMap } from '../animation/active_animation_players_map';
13
15
  var _scope_check = wtfCreateScope(`AppView#check(ascii id)`);
14
16
  /**
15
17
  * Cost of making objects: http://jsperf.com/instantiate-size-of-object
@@ -31,6 +33,7 @@ export class AppView {
31
33
  // change detection will fail.
32
34
  this.cdState = ChangeDetectorState.NeverChecked;
33
35
  this.destroyed = false;
36
+ this.activeAnimationPlayers = new ActiveAnimationPlayersMap();
34
37
  this.ref = new ViewRef_(this);
35
38
  if (type === ViewType.COMPONENT || type === ViewType.HOST) {
36
39
  this.renderer = viewUtils.renderComponent(componentType);
@@ -39,6 +42,22 @@ export class AppView {
39
42
  this.renderer = declarationAppElement.parentView.renderer;
40
43
  }
41
44
  }
45
+ cancelActiveAnimation(element, animationName, removeAllAnimations = false) {
46
+ if (removeAllAnimations) {
47
+ this.activeAnimationPlayers.findAllPlayersByElement(element).forEach(player => player.destroy());
48
+ }
49
+ else {
50
+ var player = this.activeAnimationPlayers.find(element, animationName);
51
+ if (isPresent(player)) {
52
+ player.destroy();
53
+ }
54
+ }
55
+ }
56
+ registerAndStartAnimation(element, animationName, player) {
57
+ this.activeAnimationPlayers.set(element, animationName, player);
58
+ player.onDone(() => { this.activeAnimationPlayers.remove(element, animationName); });
59
+ player.play();
60
+ }
42
61
  create(context, givenProjectableNodes, rootSelectorOrNode) {
43
62
  this.context = context;
44
63
  var projectableNodes;
@@ -136,21 +155,33 @@ export class AppView {
136
155
  ObservableWrapper.dispose(this.subscriptions[i]);
137
156
  }
138
157
  this.destroyInternal();
139
- if (this._hasExternalHostElement) {
140
- this.renderer.detachView(this.flatRootNodes);
141
- }
142
- else if (isPresent(this.viewContainerElement)) {
143
- this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));
158
+ this.dirtyParentQueriesInternal();
159
+ if (this.activeAnimationPlayers.length == 0) {
160
+ this.renderer.destroyView(hostElement, this.allNodes);
144
161
  }
145
162
  else {
146
- this.dirtyParentQueriesInternal();
163
+ var player = new AnimationGroupPlayer(this.activeAnimationPlayers.getAllPlayers());
164
+ player.onDone(() => { this.renderer.destroyView(hostElement, this.allNodes); });
147
165
  }
148
- this.renderer.destroyView(hostElement, this.allNodes);
149
166
  }
150
167
  /**
151
168
  * Overwritten by implementations
152
169
  */
153
170
  destroyInternal() { }
171
+ /**
172
+ * Overwritten by implementations
173
+ */
174
+ detachInternal() { }
175
+ detach() {
176
+ this.detachInternal();
177
+ if (this.activeAnimationPlayers.length == 0) {
178
+ this.renderer.detachView(this.flatRootNodes);
179
+ }
180
+ else {
181
+ var player = new AnimationGroupPlayer(this.activeAnimationPlayers.getAllPlayers());
182
+ player.onDone(() => { this.renderer.detachView(this.flatRootNodes); });
183
+ }
184
+ }
154
185
  get changeDetectorRef() { return this.ref; }
155
186
  get parent() {
156
187
  return isPresent(this.declarationAppElement) ? this.declarationAppElement.parentView : null;
@@ -168,8 +199,7 @@ export class AppView {
168
199
  dirtyParentQueriesInternal() { }
169
200
  detectChanges(throwOnChange) {
170
201
  var s = _scope_check(this.clazz);
171
- if (this.cdMode === ChangeDetectionStrategy.Detached ||
172
- this.cdMode === ChangeDetectionStrategy.Checked ||
202
+ if (this.cdMode === ChangeDetectionStrategy.Checked ||
173
203
  this.cdState === ChangeDetectorState.Errored)
174
204
  return;
175
205
  if (this.destroyed) {
@@ -190,12 +220,18 @@ export class AppView {
190
220
  }
191
221
  detectContentChildrenChanges(throwOnChange) {
192
222
  for (var i = 0; i < this.contentChildren.length; ++i) {
193
- this.contentChildren[i].detectChanges(throwOnChange);
223
+ var child = this.contentChildren[i];
224
+ if (child.cdMode === ChangeDetectionStrategy.Detached)
225
+ continue;
226
+ child.detectChanges(throwOnChange);
194
227
  }
195
228
  }
196
229
  detectViewChildrenChanges(throwOnChange) {
197
230
  for (var i = 0; i < this.viewChildren.length; ++i) {
198
- this.viewChildren[i].detectChanges(throwOnChange);
231
+ var child = this.viewChildren[i];
232
+ if (child.cdMode === ChangeDetectionStrategy.Detached)
233
+ continue;
234
+ child.detectChanges(throwOnChange);
199
235
  }
200
236
  }
201
237
  addToContentChildren(renderAppElement) {
@@ -248,6 +284,16 @@ export class DebugAppView extends AppView {
248
284
  throw e;
249
285
  }
250
286
  }
287
+ detach() {
288
+ this._resetDebug();
289
+ try {
290
+ super.detach();
291
+ }
292
+ catch (e) {
293
+ this._rethrowWithContext(e, e.stack);
294
+ throw e;
295
+ }
296
+ }
251
297
  destroyLocal() {
252
298
  this._resetDebug();
253
299
  try {
@@ -284,7 +330,7 @@ export class DebugAppView extends AppView {
284
330
  }
285
331
  eventHandler(cb) {
286
332
  var superHandler = super.eventHandler(cb);
287
- return (event) => {
333
+ return (event /** TODO #9100 */) => {
288
334
  this._resetDebug();
289
335
  try {
290
336
  return superHandler(event);
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view.ts"],"names":[],"mappings":"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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {\n ListWrapper,\n StringMapWrapper,\n} from '../../src/facade/collection';\n\nimport {AppElement} from './element';\nimport {\n assertionsEnabled,\n isPresent,\n isBlank,\n Type,\n isArray,\n isNumber,\n stringify,\n isPrimitive,\n isString\n} from '../../src/facade/lang';\n\nimport {ObservableWrapper} from '../../src/facade/async';\nimport {Renderer, RootRenderer, RenderComponentType, RenderDebugInfo} from '../render/api';\nimport {ViewRef_} from './view_ref';\n\nimport {ViewType} from './view_type';\nimport {\n ViewUtils,\n flattenNestedViewRenderNodes,\n ensureSlotCount,\n arrayLooseIdentical,\n mapLooseIdentical\n} from './view_utils';\nimport {\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n ChangeDetectorState,\n} from '../change_detection/change_detection';\nimport {wtfCreateScope, wtfLeave, WtfScopeFn} from '../profile/profile';\nimport {\n ExpressionChangedAfterItHasBeenCheckedException,\n ViewDestroyedException,\n ViewWrappedException\n} from './exceptions';\nimport {StaticNodeDebugInfo, DebugContext} from './debug_context';\nimport {ElementInjector} from './element_injector';\nimport {Injector} from '../di/injector';\n\nvar _scope_check: WtfScopeFn = wtfCreateScope(`AppView#check(ascii id)`);\n\n/**\n * Cost of making objects: http://jsperf.com/instantiate-size-of-object\n *\n */\nexport abstract class AppView<T> {\n ref: ViewRef_<T>;\n rootNodesOrAppElements: any[];\n allNodes: any[];\n disposables: Function[];\n subscriptions: any[];\n contentChildren: AppView<any>[] = [];\n viewChildren: AppView<any>[] = [];\n viewContainerElement: AppElement = null;\n\n // The names of the below fields must be kept in sync with codegen_name_util.ts or\n // change detection will fail.\n cdState: ChangeDetectorState = ChangeDetectorState.NeverChecked;\n\n projectableNodes: Array<any | any[]>;\n\n destroyed: boolean = false;\n\n renderer: Renderer;\n\n private _hasExternalHostElement: boolean;\n\n public context: T;\n\n constructor(public clazz: any, public componentType: RenderComponentType, public type: ViewType,\n public viewUtils: ViewUtils, public parentInjector: Injector,\n public declarationAppElement: AppElement, public cdMode: ChangeDetectionStrategy) {\n this.ref = new ViewRef_(this);\n if (type === ViewType.COMPONENT || type === ViewType.HOST) {\n this.renderer = viewUtils.renderComponent(componentType);\n } else {\n this.renderer = declarationAppElement.parentView.renderer;\n }\n }\n\n create(context: T, givenProjectableNodes: Array<any | any[]>,\n rootSelectorOrNode: string | any): AppElement {\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 /**\n * Overwritten by implementations.\n * Returns the AppElement for the host element for ViewType.HOST.\n */\n createInternal(rootSelectorOrNode: string | any): AppElement { return null; }\n\n init(rootNodesOrAppElements: any[], allNodes: any[], disposables: Function[],\n subscriptions: any[]) {\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\n selectOrCreateHostElement(elementName: string, rootSelectorOrNode: string | any,\n debugInfo: RenderDebugInfo): any {\n var hostElement;\n if (isPresent(rootSelectorOrNode)) {\n hostElement = this.renderer.selectRootElement(rootSelectorOrNode, debugInfo);\n } else {\n hostElement = this.renderer.createElement(null, elementName, debugInfo);\n }\n return hostElement;\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult: any): any {\n return this.injectorGetInternal(token, nodeIndex, notFoundResult);\n }\n\n /**\n * Overwritten by implementations\n */\n injectorGetInternal(token: any, nodeIndex: number, notFoundResult: any): any {\n return notFoundResult;\n }\n\n injector(nodeIndex: number): Injector {\n if (isPresent(nodeIndex)) {\n return new ElementInjector(this, nodeIndex);\n } else {\n return this.parentInjector;\n }\n }\n\n destroy() {\n if (this._hasExternalHostElement) {\n this.renderer.detachView(this.flatRootNodes);\n } else if (isPresent(this.viewContainerElement)) {\n this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));\n }\n this._destroyRecurse();\n }\n\n private _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\n this.destroyed = true;\n }\n\n destroyLocal() {\n var hostElement =\n 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 } else if (isPresent(this.viewContainerElement)) {\n this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));\n } else {\n this.dirtyParentQueriesInternal();\n }\n this.renderer.destroyView(hostElement, this.allNodes);\n }\n\n /**\n * Overwritten by implementations\n */\n destroyInternal(): void {}\n\n get changeDetectorRef(): ChangeDetectorRef { return this.ref; }\n\n get parent(): AppView<any> {\n return isPresent(this.declarationAppElement) ? this.declarationAppElement.parentView : null;\n }\n\n get flatRootNodes(): any[] { return flattenNestedViewRenderNodes(this.rootNodesOrAppElements); }\n\n get lastRootNode(): any {\n var lastNode = this.rootNodesOrAppElements.length > 0 ?\n this.rootNodesOrAppElements[this.rootNodesOrAppElements.length - 1] :\n null;\n return _findLastRenderNode(lastNode);\n }\n\n /**\n * Overwritten by implementations\n */\n dirtyParentQueriesInternal(): void {}\n\n detectChanges(throwOnChange: boolean): void {\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\n this.cdState = ChangeDetectorState.CheckedBefore;\n wtfLeave(s);\n }\n\n /**\n * Overwritten by implementations\n */\n detectChangesInternal(throwOnChange: boolean): void {\n this.detectContentChildrenChanges(throwOnChange);\n this.detectViewChildrenChanges(throwOnChange);\n }\n\n detectContentChildrenChanges(throwOnChange: boolean) {\n for (var i = 0; i < this.contentChildren.length; ++i) {\n this.contentChildren[i].detectChanges(throwOnChange);\n }\n }\n\n detectViewChildrenChanges(throwOnChange: boolean) {\n for (var i = 0; i < this.viewChildren.length; ++i) {\n this.viewChildren[i].detectChanges(throwOnChange);\n }\n }\n\n addToContentChildren(renderAppElement: AppElement): void {\n renderAppElement.parentView.contentChildren.push(this);\n this.viewContainerElement = renderAppElement;\n this.dirtyParentQueriesInternal();\n }\n\n removeFromContentChildren(renderAppElement: AppElement): void {\n ListWrapper.remove(renderAppElement.parentView.contentChildren, this);\n this.dirtyParentQueriesInternal();\n this.viewContainerElement = null;\n }\n\n markAsCheckOnce(): void { this.cdMode = ChangeDetectionStrategy.CheckOnce; }\n\n markPathToRootAsCheckOnce(): void {\n let c: AppView<any> = this;\n while (isPresent(c) && c.cdMode !== ChangeDetectionStrategy.Detached) {\n if (c.cdMode === ChangeDetectionStrategy.Checked) {\n c.cdMode = ChangeDetectionStrategy.CheckOnce;\n }\n let parentEl =\n c.type === ViewType.COMPONENT ? c.declarationAppElement : c.viewContainerElement;\n c = isPresent(parentEl) ? parentEl.parentView : null;\n }\n }\n\n eventHandler(cb: Function): Function { return cb; }\n\n throwDestroyedError(details: string): void { throw new ViewDestroyedException(details); }\n}\n\nexport class DebugAppView<T> extends AppView<T> {\n private _currentDebugContext: DebugContext = null;\n\n constructor(clazz: any, componentType: RenderComponentType, type: ViewType, viewUtils: ViewUtils,\n parentInjector: Injector, declarationAppElement: AppElement,\n cdMode: ChangeDetectionStrategy, public staticNodeDebugInfos: StaticNodeDebugInfo[]) {\n super(clazz, componentType, type, viewUtils, parentInjector, declarationAppElement, cdMode);\n }\n\n create(context: T, givenProjectableNodes: Array<any | any[]>,\n rootSelectorOrNode: string | any): AppElement {\n this._resetDebug();\n try {\n return super.create(context, givenProjectableNodes, rootSelectorOrNode);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult: any): any {\n this._resetDebug();\n try {\n return super.injectorGet(token, nodeIndex, notFoundResult);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n destroyLocal() {\n this._resetDebug();\n try {\n super.destroyLocal();\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n detectChanges(throwOnChange: boolean): void {\n this._resetDebug();\n try {\n super.detectChanges(throwOnChange);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n private _resetDebug() { this._currentDebugContext = null; }\n\n debug(nodeIndex: number, rowNum: number, colNum: number): DebugContext {\n return this._currentDebugContext = new DebugContext(this, nodeIndex, rowNum, colNum);\n }\n\n private _rethrowWithContext(e: any, stack: any) {\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\n eventHandler(cb: Function): Function {\n var superHandler = super.eventHandler(cb);\n return (event) => {\n this._resetDebug();\n try {\n return superHandler(event);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n };\n }\n}\n\nfunction _findLastRenderNode(node: any): any {\n var lastNode;\n if (node instanceof AppElement) {\n var appEl = <AppElement>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(\n nestedView.rootNodesOrAppElements[nestedView.rootNodesOrAppElements.length - 1]);\n }\n }\n }\n } else {\n lastNode = node;\n }\n return lastNode;\n}\n"]}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view.ts"],"names":[],"mappings":"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","sourcesContent":["import {ObservableWrapper} from '../facade/async';\nimport {ListWrapper, Map, MapWrapper, StringMapWrapper} from '../facade/collection';\nimport {Type, assertionsEnabled, isArray, isBlank, isNumber, isPresent, isPrimitive, isString, stringify} from '../facade/lang';\nimport {RenderComponentType, RenderDebugInfo, Renderer, RootRenderer} from '../render/api';\n\nimport {AppElement} from './element';\nimport {ViewRef_} from './view_ref';\nimport {ViewType} from './view_type';\nimport {ViewUtils, arrayLooseIdentical, ensureSlotCount, flattenNestedViewRenderNodes, mapLooseIdentical} from './view_utils';\n\nimport {ChangeDetectorRef, ChangeDetectionStrategy, ChangeDetectorState,} from '../change_detection/change_detection';\nimport {wtfCreateScope, wtfLeave, WtfScopeFn} from '../profile/profile';\nimport {ExpressionChangedAfterItHasBeenCheckedException, ViewDestroyedException, ViewWrappedException} from './exceptions';\nimport {StaticNodeDebugInfo, DebugContext} from './debug_context';\nimport {ElementInjector} from './element_injector';\nimport {Injector} from '../di/injector';\n\nimport {AUTO_STYLE} from '../animation/metadata';\nimport {AnimationPlayer} from '../animation/animation_player';\nimport {AnimationGroupPlayer} from '../animation/animation_group_player';\nimport {AnimationKeyframe} from '../animation/animation_keyframe';\nimport {AnimationStyles} from '../animation/animation_styles';\nimport {AnimationDriver} from '../animation/animation_driver';\nimport {ActiveAnimationPlayersMap} from '../animation/active_animation_players_map';\n\nvar _scope_check: WtfScopeFn = wtfCreateScope(`AppView#check(ascii id)`);\n\n/**\n * Cost of making objects: http://jsperf.com/instantiate-size-of-object\n *\n */\nexport abstract class AppView<T> {\n ref: ViewRef_<T>;\n rootNodesOrAppElements: any[];\n allNodes: any[];\n disposables: Function[];\n subscriptions: any[];\n contentChildren: AppView<any>[] = [];\n viewChildren: AppView<any>[] = [];\n viewContainerElement: AppElement = null;\n\n // The names of the below fields must be kept in sync with codegen_name_util.ts or\n // change detection will fail.\n cdState: ChangeDetectorState = ChangeDetectorState.NeverChecked;\n\n projectableNodes: Array<any|any[]>;\n\n destroyed: boolean = false;\n\n renderer: Renderer;\n\n private _hasExternalHostElement: boolean;\n\n public activeAnimationPlayers = new ActiveAnimationPlayersMap();\n\n public context: T;\n\n constructor(\n public clazz: any, public componentType: RenderComponentType, public type: ViewType,\n public viewUtils: ViewUtils, public parentInjector: Injector,\n public declarationAppElement: AppElement, public cdMode: ChangeDetectionStrategy) {\n this.ref = new ViewRef_(this);\n if (type === ViewType.COMPONENT || type === ViewType.HOST) {\n this.renderer = viewUtils.renderComponent(componentType);\n } else {\n this.renderer = declarationAppElement.parentView.renderer;\n }\n }\n\n cancelActiveAnimation(element: any, animationName: string, removeAllAnimations: boolean = false) {\n if (removeAllAnimations) {\n this.activeAnimationPlayers.findAllPlayersByElement(element).forEach(\n player => player.destroy());\n } else {\n var player = this.activeAnimationPlayers.find(element, animationName);\n if (isPresent(player)) {\n player.destroy();\n }\n }\n }\n\n registerAndStartAnimation(element: any, animationName: string, player: AnimationPlayer): void {\n this.activeAnimationPlayers.set(element, animationName, player);\n player.onDone(() => { this.activeAnimationPlayers.remove(element, animationName); });\n player.play();\n }\n\n create(context: T, givenProjectableNodes: Array<any|any[]>, rootSelectorOrNode: string|any):\n AppElement {\n this.context = context;\n var projectableNodes: any /** TODO #9100 */;\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 /**\n * Overwritten by implementations.\n * Returns the AppElement for the host element for ViewType.HOST.\n */\n createInternal(rootSelectorOrNode: string|any): AppElement { return null; }\n\n init(\n rootNodesOrAppElements: any[], allNodes: any[], disposables: Function[],\n subscriptions: any[]) {\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\n selectOrCreateHostElement(\n elementName: string, rootSelectorOrNode: string|any, debugInfo: RenderDebugInfo): any {\n var hostElement: any /** TODO #9100 */;\n if (isPresent(rootSelectorOrNode)) {\n hostElement = this.renderer.selectRootElement(rootSelectorOrNode, debugInfo);\n } else {\n hostElement = this.renderer.createElement(null, elementName, debugInfo);\n }\n return hostElement;\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult: any): any {\n return this.injectorGetInternal(token, nodeIndex, notFoundResult);\n }\n\n /**\n * Overwritten by implementations\n */\n injectorGetInternal(token: any, nodeIndex: number, notFoundResult: any): any {\n return notFoundResult;\n }\n\n injector(nodeIndex: number): Injector {\n if (isPresent(nodeIndex)) {\n return new ElementInjector(this, nodeIndex);\n } else {\n return this.parentInjector;\n }\n }\n\n destroy() {\n if (this._hasExternalHostElement) {\n this.renderer.detachView(this.flatRootNodes);\n } else if (isPresent(this.viewContainerElement)) {\n this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));\n }\n this._destroyRecurse();\n }\n\n private _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\n this.destroyed = true;\n }\n\n destroyLocal() {\n var hostElement =\n 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 this.dirtyParentQueriesInternal();\n\n if (this.activeAnimationPlayers.length == 0) {\n this.renderer.destroyView(hostElement, this.allNodes);\n } else {\n var player = new AnimationGroupPlayer(this.activeAnimationPlayers.getAllPlayers());\n player.onDone(() => { this.renderer.destroyView(hostElement, this.allNodes); });\n }\n }\n\n /**\n * Overwritten by implementations\n */\n destroyInternal(): void {}\n\n /**\n * Overwritten by implementations\n */\n detachInternal(): void {}\n\n detach(): void {\n this.detachInternal();\n if (this.activeAnimationPlayers.length == 0) {\n this.renderer.detachView(this.flatRootNodes);\n } else {\n var player = new AnimationGroupPlayer(this.activeAnimationPlayers.getAllPlayers());\n player.onDone(() => { this.renderer.detachView(this.flatRootNodes); });\n }\n }\n\n get changeDetectorRef(): ChangeDetectorRef { return this.ref; }\n\n get parent(): AppView<any> {\n return isPresent(this.declarationAppElement) ? this.declarationAppElement.parentView : null;\n }\n\n get flatRootNodes(): any[] { return flattenNestedViewRenderNodes(this.rootNodesOrAppElements); }\n\n get lastRootNode(): any {\n var lastNode = this.rootNodesOrAppElements.length > 0 ?\n this.rootNodesOrAppElements[this.rootNodesOrAppElements.length - 1] :\n null;\n return _findLastRenderNode(lastNode);\n }\n\n /**\n * Overwritten by implementations\n */\n dirtyParentQueriesInternal(): void {}\n\n detectChanges(throwOnChange: boolean): void {\n var s = _scope_check(this.clazz);\n if (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\n this.cdState = ChangeDetectorState.CheckedBefore;\n wtfLeave(s);\n }\n\n /**\n * Overwritten by implementations\n */\n detectChangesInternal(throwOnChange: boolean): void {\n this.detectContentChildrenChanges(throwOnChange);\n this.detectViewChildrenChanges(throwOnChange);\n }\n\n detectContentChildrenChanges(throwOnChange: boolean) {\n for (var i = 0; i < this.contentChildren.length; ++i) {\n var child = this.contentChildren[i];\n if (child.cdMode === ChangeDetectionStrategy.Detached) continue;\n child.detectChanges(throwOnChange);\n }\n }\n\n detectViewChildrenChanges(throwOnChange: boolean) {\n for (var i = 0; i < this.viewChildren.length; ++i) {\n var child = this.viewChildren[i];\n if (child.cdMode === ChangeDetectionStrategy.Detached) continue;\n child.detectChanges(throwOnChange);\n }\n }\n\n addToContentChildren(renderAppElement: AppElement): void {\n renderAppElement.parentView.contentChildren.push(this);\n this.viewContainerElement = renderAppElement;\n this.dirtyParentQueriesInternal();\n }\n\n removeFromContentChildren(renderAppElement: AppElement): void {\n ListWrapper.remove(renderAppElement.parentView.contentChildren, this);\n this.dirtyParentQueriesInternal();\n this.viewContainerElement = null;\n }\n\n markAsCheckOnce(): void { this.cdMode = ChangeDetectionStrategy.CheckOnce; }\n\n markPathToRootAsCheckOnce(): void {\n let c: AppView<any> = this;\n while (isPresent(c) && c.cdMode !== ChangeDetectionStrategy.Detached) {\n if (c.cdMode === ChangeDetectionStrategy.Checked) {\n c.cdMode = ChangeDetectionStrategy.CheckOnce;\n }\n let parentEl =\n c.type === ViewType.COMPONENT ? c.declarationAppElement : c.viewContainerElement;\n c = isPresent(parentEl) ? parentEl.parentView : null;\n }\n }\n\n eventHandler(cb: Function): Function { return cb; }\n\n throwDestroyedError(details: string): void { throw new ViewDestroyedException(details); }\n}\n\nexport class DebugAppView<T> extends AppView<T> {\n private _currentDebugContext: DebugContext = null;\n\n constructor(\n clazz: any, componentType: RenderComponentType, type: ViewType, viewUtils: ViewUtils,\n parentInjector: Injector, declarationAppElement: AppElement, cdMode: ChangeDetectionStrategy,\n public staticNodeDebugInfos: StaticNodeDebugInfo[]) {\n super(clazz, componentType, type, viewUtils, parentInjector, declarationAppElement, cdMode);\n }\n\n create(context: T, givenProjectableNodes: Array<any|any[]>, rootSelectorOrNode: string|any):\n AppElement {\n this._resetDebug();\n try {\n return super.create(context, givenProjectableNodes, rootSelectorOrNode);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult: any): any {\n this._resetDebug();\n try {\n return super.injectorGet(token, nodeIndex, notFoundResult);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n detach(): void {\n this._resetDebug();\n try {\n super.detach();\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n destroyLocal() {\n this._resetDebug();\n try {\n super.destroyLocal();\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n detectChanges(throwOnChange: boolean): void {\n this._resetDebug();\n try {\n super.detectChanges(throwOnChange);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n }\n\n private _resetDebug() { this._currentDebugContext = null; }\n\n debug(nodeIndex: number, rowNum: number, colNum: number): DebugContext {\n return this._currentDebugContext = new DebugContext(this, nodeIndex, rowNum, colNum);\n }\n\n private _rethrowWithContext(e: any, stack: any) {\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\n eventHandler(cb: Function): Function {\n var superHandler = super.eventHandler(cb);\n return (event: any /** TODO #9100 */) => {\n this._resetDebug();\n try {\n return superHandler(event);\n } catch (e) {\n this._rethrowWithContext(e, e.stack);\n throw e;\n }\n };\n }\n}\n\nfunction _findLastRenderNode(node: any): any {\n var lastNode: any /** TODO #9100 */;\n if (node instanceof AppElement) {\n var appEl = <AppElement>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(\n nestedView.rootNodesOrAppElements[nestedView.rootNodesOrAppElements.length - 1]);\n }\n }\n }\n } else {\n lastNode = node;\n }\n return lastNode;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,10 +1,9 @@
1
1
  import { Injector } from '../di/injector';
2
- import { WtfScopeFn } from '../profile/profile';
2
+ import { ComponentFactory, ComponentRef } from './component_factory';
3
3
  import { AppElement } from './element';
4
4
  import { ElementRef } from './element_ref';
5
5
  import { TemplateRef } from './template_ref';
6
6
  import { EmbeddedViewRef, ViewRef } from './view_ref';
7
- import { ComponentFactory, ComponentRef } from './component_factory';
8
7
  /**
9
8
  * Represents a container where one or more Views can be attached.
10
9
  *
@@ -21,6 +20,7 @@ import { ComponentFactory, ComponentRef } from './component_factory';
21
20
  *
22
21
  * To access a `ViewContainerRef` of an Element, you can either place a {@link Directive} injected
23
22
  * with `ViewContainerRef` on the Element, or you obtain it via a {@link ViewChild} query.
23
+ * @stable
24
24
  */
25
25
  export declare abstract class ViewContainerRef {
26
26
  /**
@@ -100,18 +100,10 @@ export declare class ViewContainerRef_ implements ViewContainerRef {
100
100
  readonly injector: Injector;
101
101
  readonly parentInjector: Injector;
102
102
  createEmbeddedView<C>(templateRef: TemplateRef<C>, context?: C, index?: number): EmbeddedViewRef<C>;
103
- /** @internal */
104
- _createComponentInContainerScope: WtfScopeFn;
105
103
  createComponent<C>(componentFactory: ComponentFactory<C>, index?: number, injector?: Injector, projectableNodes?: any[][]): ComponentRef<C>;
106
- /** @internal */
107
- _insertScope: WtfScopeFn;
108
104
  insert(viewRef: ViewRef, index?: number): ViewRef;
109
105
  indexOf(viewRef: ViewRef): number;
110
- /** @internal */
111
- _removeScope: WtfScopeFn;
112
106
  remove(index?: number): void;
113
- /** @internal */
114
- _detachScope: WtfScopeFn;
115
107
  detach(index?: number): ViewRef;
116
108
  clear(): void;
117
109
  }
@@ -1,6 +1,6 @@
1
- import { ListWrapper } from '../../src/facade/collection';
2
- import { unimplemented } from '../../src/facade/exceptions';
3
- import { isPresent } from '../../src/facade/lang';
1
+ import { ListWrapper } from '../facade/collection';
2
+ import { unimplemented } from '../facade/exceptions';
3
+ import { isPresent } from '../facade/lang';
4
4
  import { wtfCreateScope, wtfLeave } from '../profile/profile';
5
5
  /**
6
6
  * Represents a container where one or more Views can be attached.
@@ -18,6 +18,7 @@ import { wtfCreateScope, wtfLeave } from '../profile/profile';
18
18
  *
19
19
  * To access a `ViewContainerRef` of an Element, you can either place a {@link Directive} injected
20
20
  * with `ViewContainerRef` on the Element, or you obtain it via a {@link ViewChild} query.
21
+ * @stable
21
22
  */
22
23
  export class ViewContainerRef {
23
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"view_container_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view_container_ref.ts"],"names":[],"mappings":"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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {ListWrapper} from '../../src/facade/collection';\nimport {unimplemented} from '../../src/facade/exceptions';\nimport {Injector} from '../di/injector';\nimport {isPresent} from '../../src/facade/lang';\nimport {wtfCreateScope, wtfLeave, WtfScopeFn} from '../profile/profile';\n\nimport {AppElement} from './element';\n\nimport {ElementRef} from './element_ref';\nimport {TemplateRef} from './template_ref';\nimport {EmbeddedViewRef, ViewRef, ViewRef_} from './view_ref';\nimport {ComponentFactory, ComponentRef} from './component_factory';\n\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 abstract 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(): ElementRef { return <ElementRef>unimplemented(); }\n\n get injector(): Injector { return <Injector>unimplemented(); }\n\n get parentInjector(): Injector { return <Injector>unimplemented(); }\n\n /**\n * Destroys all Views in this container.\n */\n abstract clear(): void;\n\n /**\n * Returns the {@link ViewRef} for the View located in this container at the specified index.\n */\n abstract get(index: number): ViewRef;\n\n /**\n * Returns the number of Views currently attached to this container.\n */\n get length(): number { return <number>unimplemented(); };\n\n /**\n * Instantiates an Embedded View based on the {@link TemplateRef `templateRef`} and inserts it\n * into this container at the specified `index`.\n *\n * If `index` is not specified, the new View will be inserted as the last View in the container.\n *\n * Returns the {@link ViewRef} for the newly created View.\n */\n abstract createEmbeddedView<C>(templateRef: TemplateRef<C>, context?: C,\n index?: number): EmbeddedViewRef<C>;\n\n /**\n * Instantiates a single {@link Component} and inserts its Host View into this container at the\n * specified `index`.\n *\n * The component is instantiated using its {@link ComponentFactory} which can be\n * obtained via {@link ComponentResolver#resolveComponent}.\n *\n * If `index` is not specified, the new View will be inserted as the last View in the container.\n *\n * You can optionally specify the {@link Injector} that will be used as parent for the Component.\n *\n * Returns the {@link ComponentRef} of the Host View created for the newly instantiated Component.\n */\n abstract createComponent<C>(componentFactory: ComponentFactory<C>, index?: number,\n injector?: Injector, projectableNodes?: any[][]): ComponentRef<C>;\n\n /**\n * Inserts a View identified by a {@link ViewRef} into the container at the specified `index`.\n *\n * If `index` is not specified, the new View will be inserted as the last View in the container.\n *\n * Returns the inserted {@link ViewRef}.\n */\n abstract insert(viewRef: ViewRef, index?: number): ViewRef;\n\n /**\n * Returns the index of the View, specified via {@link ViewRef}, within the current container or\n * `-1` if this container doesn't contain the View.\n */\n abstract indexOf(viewRef: ViewRef): number;\n\n /**\n * Destroys a View attached to this container at the specified `index`.\n *\n * If `index` is not specified, the last View in the container will be removed.\n */\n abstract remove(index?: number): void;\n\n /**\n * Use along with {@link #insert} to move a View within the current container.\n *\n * If the `index` param is omitted, the last {@link ViewRef} is detached.\n */\n abstract detach(index?: number): ViewRef;\n}\n\nexport class ViewContainerRef_ implements ViewContainerRef {\n constructor(private _element: AppElement) {}\n\n get(index: number): ViewRef { return this._element.nestedViews[index].ref; }\n get length(): number {\n var views = this._element.nestedViews;\n return isPresent(views) ? views.length : 0;\n }\n\n get element(): ElementRef { return this._element.elementRef; }\n\n get injector(): Injector { return this._element.injector; }\n\n get parentInjector(): Injector { return this._element.parentInjector; }\n\n // TODO(rado): profile and decide whether bounds checks should be added\n // to the methods below.\n createEmbeddedView<C>(templateRef: TemplateRef<C>, context: C = null,\n index: number = -1): EmbeddedViewRef<C> {\n var viewRef: EmbeddedViewRef<any> = templateRef.createEmbeddedView(context);\n this.insert(viewRef, index);\n return viewRef;\n }\n\n /** @internal */\n _createComponentInContainerScope: WtfScopeFn =\n wtfCreateScope('ViewContainerRef#createComponent()');\n\n createComponent<C>(componentFactory: ComponentFactory<C>, index: number = -1,\n injector: Injector = null, projectableNodes: any[][] = null): ComponentRef<C> {\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\n /** @internal */\n _insertScope = wtfCreateScope('ViewContainerRef#insert()');\n\n // TODO(i): refactor insert+remove into move\n insert(viewRef: ViewRef, index: number = -1): ViewRef {\n var s = this._insertScope();\n if (index == -1) index = this.length;\n var viewRef_ = <ViewRef_<any>>viewRef;\n this._element.attachView(viewRef_.internalView, index);\n return wtfLeave(s, viewRef_);\n }\n\n indexOf(viewRef: ViewRef): number {\n return ListWrapper.indexOf(this._element.nestedViews, (<ViewRef_<any>>viewRef).internalView);\n }\n\n /** @internal */\n _removeScope = wtfCreateScope('ViewContainerRef#remove()');\n\n // TODO(i): rename to destroy\n remove(index: number = -1): void {\n var s = this._removeScope();\n if (index == -1) 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\n /** @internal */\n _detachScope = wtfCreateScope('ViewContainerRef#detach()');\n\n // TODO(i): refactor insert+remove into move\n detach(index: number = -1): ViewRef {\n var s = this._detachScope();\n if (index == -1) index = this.length - 1;\n var view = this._element.detachView(index);\n return wtfLeave(s, view.ref);\n }\n\n clear() {\n for (var i = this.length - 1; i >= 0; i--) {\n this.remove(i);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"view_container_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view_container_ref.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injector} from '../di/injector';\nimport {ListWrapper} from '../facade/collection';\nimport {unimplemented} from '../facade/exceptions';\nimport {isPresent} from '../facade/lang';\nimport {WtfScopeFn, wtfCreateScope, wtfLeave} from '../profile/profile';\n\nimport {ComponentFactory, ComponentRef} from './component_factory';\nimport {AppElement} from './element';\nimport {ElementRef} from './element_ref';\nimport {TemplateRef} from './template_ref';\nimport {EmbeddedViewRef, ViewRef, ViewRef_} from './view_ref';\n\n\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 * @stable\n */\nexport abstract 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(): ElementRef { return <ElementRef>unimplemented(); }\n\n get injector(): Injector { return <Injector>unimplemented(); }\n\n get parentInjector(): Injector { return <Injector>unimplemented(); }\n\n /**\n * Destroys all Views in this container.\n */\n abstract clear(): void;\n\n /**\n * Returns the {@link ViewRef} for the View located in this container at the specified index.\n */\n abstract get(index: number): ViewRef;\n\n /**\n * Returns the number of Views currently attached to this container.\n */\n get length(): number { return <number>unimplemented(); };\n\n /**\n * Instantiates an Embedded View based on the {@link TemplateRef `templateRef`} and inserts it\n * into this container at the specified `index`.\n *\n * If `index` is not specified, the new View will be inserted as the last View in the container.\n *\n * Returns the {@link ViewRef} for the newly created View.\n */\n abstract createEmbeddedView<C>(templateRef: TemplateRef<C>, context?: C, index?: number):\n EmbeddedViewRef<C>;\n\n /**\n * Instantiates a single {@link Component} and inserts its Host View into this container at the\n * specified `index`.\n *\n * The component is instantiated using its {@link ComponentFactory} which can be\n * obtained via {@link ComponentResolver#resolveComponent}.\n *\n * If `index` is not specified, the new View will be inserted as the last View in the container.\n *\n * You can optionally specify the {@link Injector} that will be used as parent for the Component.\n *\n * Returns the {@link ComponentRef} of the Host View created for the newly instantiated Component.\n */\n abstract createComponent<C>(\n componentFactory: ComponentFactory<C>, index?: number, injector?: Injector,\n projectableNodes?: any[][]): ComponentRef<C>;\n\n /**\n * Inserts a View identified by a {@link ViewRef} into the container at the specified `index`.\n *\n * If `index` is not specified, the new View will be inserted as the last View in the container.\n *\n * Returns the inserted {@link ViewRef}.\n */\n abstract insert(viewRef: ViewRef, index?: number): ViewRef;\n\n /**\n * Returns the index of the View, specified via {@link ViewRef}, within the current container or\n * `-1` if this container doesn't contain the View.\n */\n abstract indexOf(viewRef: ViewRef): number;\n\n /**\n * Destroys a View attached to this container at the specified `index`.\n *\n * If `index` is not specified, the last View in the container will be removed.\n */\n abstract remove(index?: number): void;\n\n /**\n * Use along with {@link #insert} to move a View within the current container.\n *\n * If the `index` param is omitted, the last {@link ViewRef} is detached.\n */\n abstract detach(index?: number): ViewRef;\n}\n\nexport class ViewContainerRef_ implements ViewContainerRef {\n constructor(private _element: AppElement) {}\n\n get(index: number): ViewRef { return this._element.nestedViews[index].ref; }\n get length(): number {\n var views = this._element.nestedViews;\n return isPresent(views) ? views.length : 0;\n }\n\n get element(): ElementRef { return this._element.elementRef; }\n\n get injector(): Injector { return this._element.injector; }\n\n get parentInjector(): Injector { return this._element.parentInjector; }\n\n // TODO(rado): profile and decide whether bounds checks should be added\n // to the methods below.\n createEmbeddedView<C>(templateRef: TemplateRef<C>, context: C = null, index: number = -1):\n EmbeddedViewRef<C> {\n var viewRef: EmbeddedViewRef<any> = templateRef.createEmbeddedView(context);\n this.insert(viewRef, index);\n return viewRef;\n }\n\n /** @internal */\n _createComponentInContainerScope: WtfScopeFn =\n wtfCreateScope('ViewContainerRef#createComponent()');\n\n createComponent<C>(\n componentFactory: ComponentFactory<C>, index: number = -1, injector: Injector = null,\n projectableNodes: any[][] = null): ComponentRef<C> {\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\n /** @internal */\n _insertScope = wtfCreateScope('ViewContainerRef#insert()');\n\n // TODO(i): refactor insert+remove into move\n insert(viewRef: ViewRef, index: number = -1): ViewRef {\n var s = this._insertScope();\n if (index == -1) index = this.length;\n var viewRef_ = <ViewRef_<any>>viewRef;\n this._element.attachView(viewRef_.internalView, index);\n return wtfLeave(s, viewRef_);\n }\n\n indexOf(viewRef: ViewRef): number {\n return ListWrapper.indexOf(this._element.nestedViews, (<ViewRef_<any>>viewRef).internalView);\n }\n\n /** @internal */\n _removeScope = wtfCreateScope('ViewContainerRef#remove()');\n\n // TODO(i): rename to destroy\n remove(index: number = -1): void {\n var s = this._removeScope();\n if (index == -1) 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\n /** @internal */\n _detachScope = wtfCreateScope('ViewContainerRef#detach()');\n\n // TODO(i): refactor insert+remove into move\n detach(index: number = -1): ViewRef {\n var s = this._detachScope();\n if (index == -1) index = this.length - 1;\n var view = this._element.detachView(index);\n return wtfLeave(s, view.ref);\n }\n\n clear() {\n for (var i = this.length - 1; i >= 0; i--) {\n this.remove(i);\n }\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,5 +1,8 @@
1
1
  import { ChangeDetectorRef } from '../change_detection/change_detector_ref';
2
2
  import { AppView } from './view';
3
+ /**
4
+ * @stable
5
+ */
3
6
  export declare abstract class ViewRef {
4
7
  readonly destroyed: boolean;
5
8
  abstract onDestroy(callback: Function): any;
@@ -27,7 +30,7 @@ export declare abstract class ViewRef {
27
30
  * </ul>
28
31
  * ```
29
32
  *
30
- * ... we have two {@link TemplateRef}s:
33
+ * We have two {@link TemplateRef}s:
31
34
  *
32
35
  * Outer {@link TemplateRef}:
33
36
  * ```
@@ -56,6 +59,7 @@ export declare abstract class ViewRef {
56
59
  * </ul>
57
60
  * <!-- /ViewRef: outer-0 -->
58
61
  * ```
62
+ * @experimental
59
63
  */
60
64
  export declare abstract class EmbeddedViewRef<C> extends ViewRef {
61
65
  readonly context: C;
@@ -1,5 +1,8 @@
1
- import { unimplemented } from '../../src/facade/exceptions';
2
1
  import { ChangeDetectionStrategy } from '../change_detection/constants';
2
+ import { unimplemented } from '../facade/exceptions';
3
+ /**
4
+ * @stable
5
+ */
3
6
  export class ViewRef {
4
7
  get destroyed() { return unimplemented(); }
5
8
  }
@@ -26,7 +29,7 @@ export class ViewRef {
26
29
  * </ul>
27
30
  * ```
28
31
  *
29
- * ... we have two {@link TemplateRef}s:
32
+ * We have two {@link TemplateRef}s:
30
33
  *
31
34
  * Outer {@link TemplateRef}:
32
35
  * ```
@@ -55,6 +58,7 @@ export class ViewRef {
55
58
  * </ul>
56
59
  * <!-- /ViewRef: outer-0 -->
57
60
  * ```
61
+ * @experimental
58
62
  */
59
63
  export class EmbeddedViewRef extends ViewRef {
60
64
  get context() { return unimplemented(); }
@@ -1 +1 @@
1
- {"version":3,"file":"view_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view_ref.ts"],"names":[],"mappings":"OAIS,EAAC,aAAa,EAAC,MAAM,6BAA6B;OAGpD,EAAC,uBAAuB,EAAC,MAAM,+BAA+B;AAErE;IACE,IAAI,SAAS,KAAc,MAAM,CAAU,aAAa,EAAE,CAAC,CAAC,CAAC;AAG/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qCAAiD,OAAO;IACtD,IAAI,OAAO,KAAQ,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAY,MAAM,CAAQ,aAAa,EAAE,CAAC,CAAC,CAAC;;AAM3D,CAAC;AAED;IACE,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAAC,CAAC;IAE9D,IAAI,YAAY,KAAiB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAErD,IAAI,SAAS,KAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAE3D,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,YAAY,KAAW,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAW,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,aAAa,KAAW,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1D,cAAc,KAAW,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1D,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,QAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExE,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAAA","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {unimplemented} from '../../src/facade/exceptions';\nimport {ChangeDetectorRef} from '../change_detection/change_detector_ref';\nimport {AppView} from './view';\nimport {ChangeDetectionStrategy} from '../change_detection/constants';\n\nexport abstract class ViewRef {\n get destroyed(): boolean { return <boolean>unimplemented(); }\n\n abstract onDestroy(callback: Function);\n}\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 abstract class EmbeddedViewRef<C> extends ViewRef {\n get context(): C { return unimplemented(); }\n\n get rootNodes(): any[] { return <any[]>unimplemented(); };\n\n /**\n * Destroys the view and all of the data structures associated with it.\n */\n abstract destroy();\n}\n\nexport class ViewRef_<C> implements EmbeddedViewRef<C>, ChangeDetectorRef {\n constructor(private _view: AppView<C>) { this._view = _view; }\n\n get internalView(): AppView<C> { return this._view; }\n\n get rootNodes(): any[] { return this._view.flatRootNodes; }\n\n get context() { return this._view.context; }\n\n get destroyed(): boolean { return this._view.destroyed; }\n\n markForCheck(): void { this._view.markPathToRootAsCheckOnce(); }\n detach(): void { this._view.cdMode = ChangeDetectionStrategy.Detached; }\n detectChanges(): void { this._view.detectChanges(false); }\n checkNoChanges(): void { this._view.detectChanges(true); }\n reattach(): void {\n this._view.cdMode = ChangeDetectionStrategy.CheckAlways;\n this.markForCheck();\n }\n\n onDestroy(callback: Function) { this._view.disposables.push(callback); }\n\n destroy() { this._view.destroy(); }\n}\n"]}
1
+ {"version":3,"file":"view_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view_ref.ts"],"names":[],"mappings":"OACO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B;OAC9D,EAAC,aAAa,EAAC,MAAM,sBAAsB;AAKlD;;GAEG;AACH;IACE,IAAI,SAAS,KAAc,MAAM,CAAU,aAAa,EAAE,CAAC,CAAC,CAAC;AAG/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qCAAiD,OAAO;IACtD,IAAI,OAAO,KAAQ,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAY,MAAM,CAAQ,aAAa,EAAE,CAAC,CAAC,CAAC;;AAM3D,CAAC;AAED;IACE,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAAC,CAAC;IAE9D,IAAI,YAAY,KAAiB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAErD,IAAI,SAAS,KAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAE3D,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,YAAY,KAAW,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAW,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,aAAa,KAAW,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1D,cAAc,KAAW,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1D,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,QAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExE,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAAA","sourcesContent":["import {ChangeDetectorRef} from '../change_detection/change_detector_ref';\nimport {ChangeDetectionStrategy} from '../change_detection/constants';\nimport {unimplemented} from '../facade/exceptions';\n\nimport {AppView} from './view';\n\n\n/**\n * @stable\n */\nexport abstract class ViewRef {\n get destroyed(): boolean { return <boolean>unimplemented(); }\n\n abstract onDestroy(callback: Function): any /** TODO #9100 */;\n}\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 * @experimental\n */\nexport abstract class EmbeddedViewRef<C> extends ViewRef {\n get context(): C { return unimplemented(); }\n\n get rootNodes(): any[] { return <any[]>unimplemented(); };\n\n /**\n * Destroys the view and all of the data structures associated with it.\n */\n abstract destroy(): any /** TODO #9100 */;\n}\n\nexport class ViewRef_<C> implements EmbeddedViewRef<C>, ChangeDetectorRef {\n constructor(private _view: AppView<C>) { this._view = _view; }\n\n get internalView(): AppView<C> { return this._view; }\n\n get rootNodes(): any[] { return this._view.flatRootNodes; }\n\n get context() { return this._view.context; }\n\n get destroyed(): boolean { return this._view.destroyed; }\n\n markForCheck(): void { this._view.markPathToRootAsCheckOnce(); }\n detach(): void { this._view.cdMode = ChangeDetectionStrategy.Detached; }\n detectChanges(): void { this._view.detectChanges(false); }\n checkNoChanges(): void { this._view.detectChanges(true); }\n reattach(): void {\n this._view.cdMode = ChangeDetectionStrategy.CheckAlways;\n this.markForCheck();\n }\n\n onDestroy(callback: Function) { this._view.disposables.push(callback); }\n\n destroy() { this._view.destroy(); }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"view_type.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view_type.ts"],"names":[],"mappings":"AAIE,WAAY,QAUb;AAVC,WAAY,QAAQ;IACpB,wEAAwE;IACxE,4BAA4B;IAC5B,uCAAI,CAAA;IACJ,4BAA4B;IAC5B,oCAAoC;IACpC,iDAAS,CAAA;IACT,qEAAqE;IACrE,6BAA6B;IAC7B,+CAAQ,CAAA;AACV,CAAC,EAVa,QAAQ,KAAR,QAAQ,QAUrB","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n export enum ViewType {\n // A view that contains the host element with bound component directive.\n // Contains a COMPONENT view\n HOST,\n // The view of the component\n // Can contain 0 to n EMBEDDED views\n COMPONENT,\n // A view that is embedded into another View via a <template> element\n // inside of a COMPONENT view\n EMBEDDED\n}\n"]}
1
+ {"version":3,"file":"view_type.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/linker/view_type.ts"],"names":[],"mappings":"AAAA,WAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,wEAAwE;IACxE,4BAA4B;IAC5B,uCAAI,CAAA;IACJ,4BAA4B;IAC5B,oCAAoC;IACpC,iDAAS,CAAA;IACT,qEAAqE;IACrE,6BAA6B;IAC7B,+CAAQ,CAAA;AACV,CAAC,EAVW,QAAQ,KAAR,QAAQ,QAUnB","sourcesContent":["export enum ViewType {\n // A view that contains the host element with bound component directive.\n // Contains a COMPONENT view\n HOST,\n // The view of the component\n // Can contain 0 to n EMBEDDED views\n COMPONENT,\n // A view that is embedded into another View via a <template> element\n // inside of a COMPONENT view\n EMBEDDED\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { SanitizationService } from '../security';
2
- import { RootRenderer, RenderComponentType, Renderer } from '../render/api';
3
1
  import { ViewEncapsulation } from '../metadata/view';
2
+ import { RenderComponentType, RootRenderer } from '../render/api';
3
+ import { SanitizationService } from '../security';
4
4
  export declare class ViewUtils {
5
5
  private _renderer;
6
6
  private _appId;
@@ -11,8 +11,6 @@ export declare class ViewUtils {
11
11
  * Used by the generated code
12
12
  */
13
13
  createRenderComponentType(templateUrl: string, slotCount: number, encapsulation: ViewEncapsulation, styles: Array<string | any[]>): RenderComponentType;
14
- /** @internal */
15
- renderComponent(renderComponentType: RenderComponentType): Renderer;
16
14
  }
17
15
  export declare function flattenNestedViewRenderNodes(nodes: any[]): any[];
18
16
  export declare function ensureSlotCount(projectableNodes: any[][], expectedSlotCount: number): any[][];