@angular/core 0.0.0-6 → 2.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/{core.umd.js → bundles/core.umd.js} +6500 -4671
  2. package/bundles/core.umd.min.js +6 -0
  3. package/esm/index.d.ts +5 -4
  4. package/esm/index.js +9 -8
  5. package/esm/index.js.map +1 -1
  6. package/esm/private_export.d.ts +102 -10
  7. package/esm/private_export.js +41 -9
  8. package/esm/private_export.js.map +1 -1
  9. package/esm/private_export.metadata.json +1 -1
  10. package/esm/src/animation/active_animation_players_map.d.ts +11 -0
  11. package/esm/src/animation/active_animation_players_map.js +47 -0
  12. package/esm/src/animation/active_animation_players_map.js.map +1 -0
  13. package/esm/src/animation/animation_constants.d.ts +4 -0
  14. package/esm/src/animation/animation_constants.js +5 -0
  15. package/esm/src/animation/animation_constants.js.map +1 -0
  16. package/esm/src/animation/animation_constants.metadata.json +1 -0
  17. package/esm/src/animation/animation_driver.d.ts +9 -0
  18. package/esm/src/animation/animation_driver.js +9 -0
  19. package/esm/src/animation/animation_driver.js.map +1 -0
  20. package/esm/src/animation/animation_group_player.d.ts +18 -0
  21. package/esm/src/animation/animation_group_player.js +60 -0
  22. package/esm/src/animation/animation_group_player.js.map +1 -0
  23. package/esm/src/animation/animation_keyframe.d.ts +6 -0
  24. package/esm/src/animation/animation_keyframe.js +7 -0
  25. package/esm/src/animation/animation_keyframe.js.map +1 -0
  26. package/esm/src/animation/animation_player.d.ts +26 -0
  27. package/esm/src/animation/animation_player.js +30 -0
  28. package/esm/src/animation/animation_player.js.map +1 -0
  29. package/esm/src/animation/animation_sequence_player.d.ts +21 -0
  30. package/esm/src/animation/animation_sequence_player.js +64 -0
  31. package/esm/src/animation/animation_sequence_player.js.map +1 -0
  32. package/esm/src/animation/animation_style_util.d.ts +32 -0
  33. package/esm/src/animation/animation_style_util.js +91 -0
  34. package/esm/src/animation/animation_style_util.js.map +1 -0
  35. package/esm/src/animation/animation_style_util.metadata.json +1 -0
  36. package/esm/src/animation/animation_styles.d.ts +8 -0
  37. package/esm/src/animation/animation_styles.js +6 -0
  38. package/esm/src/animation/animation_styles.js.map +1 -0
  39. package/esm/src/animation/metadata.d.ts +511 -0
  40. package/esm/src/animation/metadata.js +565 -0
  41. package/esm/src/animation/metadata.js.map +1 -0
  42. package/esm/src/animation/metadata.metadata.json +1 -0
  43. package/esm/src/application_common_providers.d.ts +1 -0
  44. package/esm/src/application_common_providers.js +5 -4
  45. package/esm/src/application_common_providers.js.map +1 -1
  46. package/esm/src/application_common_providers.metadata.json +1 -1
  47. package/esm/src/application_ref.d.ts +17 -41
  48. package/esm/src/application_ref.js +32 -23
  49. package/esm/src/application_ref.js.map +1 -1
  50. package/esm/src/application_ref.metadata.json +1 -1
  51. package/esm/src/application_tokens.d.ts +6 -1
  52. package/esm/src/application_tokens.js +9 -4
  53. package/esm/src/application_tokens.js.map +1 -1
  54. package/esm/src/application_tokens.metadata.json +1 -1
  55. package/esm/src/change_detection/change_detection.d.ts +9 -8
  56. package/esm/src/change_detection/change_detection.js +7 -7
  57. package/esm/src/change_detection/change_detection.js.map +1 -1
  58. package/esm/src/change_detection/change_detection.metadata.json +1 -1
  59. package/esm/src/change_detection/change_detection_util.d.ts +3 -1
  60. package/esm/src/change_detection/change_detection_util.js +6 -5
  61. package/esm/src/change_detection/change_detection_util.js.map +1 -1
  62. package/esm/src/change_detection/change_detection_util.metadata.json +1 -1
  63. package/esm/src/change_detection/change_detector_ref.d.ts +3 -0
  64. package/esm/src/change_detection/change_detector_ref.js +3 -0
  65. package/esm/src/change_detection/change_detector_ref.js.map +1 -1
  66. package/esm/src/change_detection/constants.d.ts +1 -0
  67. package/esm/src/change_detection/constants.js +4 -3
  68. package/esm/src/change_detection/constants.js.map +1 -1
  69. package/esm/src/change_detection/constants.metadata.json +1 -1
  70. package/esm/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  71. package/esm/src/change_detection/differs/default_iterable_differ.js +25 -18
  72. package/esm/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  73. package/esm/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  74. package/esm/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  75. package/esm/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  76. package/esm/src/change_detection/differs/iterable_differs.d.ts +4 -1
  77. package/esm/src/change_detection/differs/iterable_differs.js +5 -4
  78. package/esm/src/change_detection/differs/iterable_differs.js.map +1 -1
  79. package/esm/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  80. package/esm/src/change_detection/differs/keyvalue_differs.js +5 -4
  81. package/esm/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  82. package/esm/src/change_detection/pipe_transform.js.map +1 -1
  83. package/esm/src/change_detection.d.ts +1 -1
  84. package/esm/src/change_detection.js +5 -5
  85. package/esm/src/change_detection.js.map +1 -1
  86. package/esm/src/console.js +2 -1
  87. package/esm/src/console.js.map +1 -1
  88. package/esm/src/console.metadata.json +1 -1
  89. package/esm/src/debug/debug_node.d.ts +20 -2
  90. package/esm/src/debug/debug_node.js +16 -2
  91. package/esm/src/debug/debug_node.js.map +1 -1
  92. package/esm/src/debug/debug_node.metadata.json +1 -0
  93. package/esm/src/debug/debug_renderer.d.ts +10 -6
  94. package/esm/src/debug/debug_renderer.js +13 -2
  95. package/esm/src/debug/debug_renderer.js.map +1 -1
  96. package/esm/src/di/decorators.d.ts +13 -1
  97. package/esm/src/di/decorators.js +7 -1
  98. package/esm/src/di/decorators.js.map +1 -1
  99. package/esm/src/di/decorators.metadata.json +1 -1
  100. package/esm/src/di/forward_ref.d.ts +3 -1
  101. package/esm/src/di/forward_ref.js +3 -1
  102. package/esm/src/di/forward_ref.js.map +1 -1
  103. package/esm/src/di/injector.d.ts +4 -1
  104. package/esm/src/di/injector.js +5 -2
  105. package/esm/src/di/injector.js.map +1 -1
  106. package/esm/src/di/injector.metadata.json +1 -1
  107. package/esm/src/di/metadata.d.ts +8 -1
  108. package/esm/src/di/metadata.js +10 -3
  109. package/esm/src/di/metadata.js.map +1 -1
  110. package/esm/src/di/opaque_token.d.ts +2 -1
  111. package/esm/src/di/opaque_token.js +22 -21
  112. package/esm/src/di/opaque_token.js.map +1 -1
  113. package/esm/src/di/provider.d.ts +11 -10
  114. package/esm/src/di/provider.js +17 -14
  115. package/esm/src/di/provider.js.map +1 -1
  116. package/esm/src/di/provider.metadata.json +1 -0
  117. package/esm/src/di/provider_util.js.map +1 -1
  118. package/esm/src/di/provider_util.metadata.json +1 -0
  119. package/esm/src/di/reflective_exceptions.d.ts +11 -16
  120. package/esm/src/di/reflective_exceptions.js +28 -22
  121. package/esm/src/di/reflective_exceptions.js.map +1 -1
  122. package/esm/src/di/reflective_injector.d.ts +3 -33
  123. package/esm/src/di/reflective_injector.js +10 -7
  124. package/esm/src/di/reflective_injector.js.map +1 -1
  125. package/esm/src/di/reflective_key.d.ts +1 -8
  126. package/esm/src/di/reflective_key.js +3 -2
  127. package/esm/src/di/reflective_key.js.map +1 -1
  128. package/esm/src/di/reflective_provider.d.ts +2 -1
  129. package/esm/src/di/reflective_provider.js +6 -5
  130. package/esm/src/di/reflective_provider.js.map +1 -1
  131. package/esm/src/di/reflective_provider.metadata.json +1 -0
  132. package/esm/src/di.d.ts +2 -2
  133. package/esm/src/di.js +6 -6
  134. package/esm/src/di.js.map +1 -1
  135. package/esm/src/facade/async.d.ts +11 -4
  136. package/esm/src/facade/async.js +25 -15
  137. package/esm/src/facade/async.js.map +1 -1
  138. package/esm/src/facade/base_wrapped_exception.js +4 -4
  139. package/esm/src/facade/base_wrapped_exception.js.map +1 -1
  140. package/esm/src/facade/collection.js +1 -1
  141. package/esm/src/facade/collection.js.map +1 -1
  142. package/esm/src/facade/collection.metadata.json +1 -1
  143. package/esm/src/facade/exception_handler.d.ts +2 -11
  144. package/esm/src/facade/exception_handler.js +8 -7
  145. package/esm/src/facade/exception_handler.js.map +1 -1
  146. package/esm/src/facade/exceptions.d.ts +4 -0
  147. package/esm/src/facade/exceptions.js +6 -2
  148. package/esm/src/facade/exceptions.js.map +1 -1
  149. package/esm/src/facade/exceptions.metadata.json +1 -0
  150. package/esm/src/facade/lang.d.ts +6 -4
  151. package/esm/src/facade/lang.js +12 -11
  152. package/esm/src/facade/lang.js.map +1 -1
  153. package/esm/src/facade/lang.metadata.json +1 -1
  154. package/esm/src/facade/math.d.ts +2 -0
  155. package/esm/src/facade/math.js +4 -0
  156. package/esm/src/facade/math.js.map +1 -0
  157. package/esm/src/facade/math.metadata.json +1 -0
  158. package/esm/src/facade/promise.js.map +1 -1
  159. package/esm/src/linker/component_factory.d.ts +5 -4
  160. package/esm/src/linker/component_factory.js +7 -3
  161. package/esm/src/linker/component_factory.js.map +1 -1
  162. package/esm/src/linker/component_resolver.d.ts +5 -4
  163. package/esm/src/linker/component_resolver.js +12 -7
  164. package/esm/src/linker/component_resolver.js.map +1 -1
  165. package/esm/src/linker/component_resolver.metadata.json +1 -1
  166. package/esm/src/linker/debug_context.js +5 -4
  167. package/esm/src/linker/debug_context.js.map +1 -1
  168. package/esm/src/linker/dynamic_component_loader.d.ts +5 -6
  169. package/esm/src/linker/dynamic_component_loader.js +5 -3
  170. package/esm/src/linker/dynamic_component_loader.js.map +1 -1
  171. package/esm/src/linker/dynamic_component_loader.metadata.json +1 -1
  172. package/esm/src/linker/element.d.ts +3 -3
  173. package/esm/src/linker/element.js +5 -5
  174. package/esm/src/linker/element.js.map +1 -1
  175. package/esm/src/linker/element_injector.js.map +1 -1
  176. package/esm/src/linker/element_ref.d.ts +1 -0
  177. package/esm/src/linker/element_ref.js +5 -5
  178. package/esm/src/linker/element_ref.js.map +1 -1
  179. package/esm/src/linker/exceptions.d.ts +4 -1
  180. package/esm/src/linker/exceptions.js +4 -1
  181. package/esm/src/linker/exceptions.js.map +1 -1
  182. package/esm/src/linker/query_list.d.ts +3 -10
  183. package/esm/src/linker/query_list.js +8 -7
  184. package/esm/src/linker/query_list.js.map +1 -1
  185. package/esm/src/linker/systemjs_component_resolver.d.ts +21 -0
  186. package/esm/src/linker/systemjs_component_resolver.js +44 -0
  187. package/esm/src/linker/systemjs_component_resolver.js.map +1 -0
  188. package/esm/src/linker/template_ref.d.ts +2 -1
  189. package/esm/src/linker/template_ref.js +1 -0
  190. package/esm/src/linker/template_ref.js.map +1 -1
  191. package/esm/src/linker/view.d.ts +12 -1
  192. package/esm/src/linker/view.js +62 -16
  193. package/esm/src/linker/view.js.map +1 -1
  194. package/esm/src/linker/view_container_ref.d.ts +2 -10
  195. package/esm/src/linker/view_container_ref.js +4 -3
  196. package/esm/src/linker/view_container_ref.js.map +1 -1
  197. package/esm/src/linker/view_ref.d.ts +5 -1
  198. package/esm/src/linker/view_ref.js +6 -2
  199. package/esm/src/linker/view_ref.js.map +1 -1
  200. package/esm/src/linker/view_type.js.map +1 -1
  201. package/esm/src/linker/view_utils.d.ts +4 -4
  202. package/esm/src/linker/view_utils.js +25 -22
  203. package/esm/src/linker/view_utils.js.map +1 -1
  204. package/esm/src/linker/view_utils.metadata.json +1 -1
  205. package/esm/src/linker.d.ts +5 -4
  206. package/esm/src/linker.js +5 -4
  207. package/esm/src/linker.js.map +1 -1
  208. package/esm/src/metadata/di.d.ts +8 -1
  209. package/esm/src/metadata/di.js +10 -3
  210. package/esm/src/metadata/di.js.map +1 -1
  211. package/esm/src/metadata/directives.d.ts +104 -20
  212. package/esm/src/metadata/directives.js +25 -19
  213. package/esm/src/metadata/directives.js.map +1 -1
  214. package/esm/src/metadata/lifecycle_hooks.d.ts +46 -31
  215. package/esm/src/metadata/lifecycle_hooks.js +464 -10
  216. package/esm/src/metadata/lifecycle_hooks.js.map +1 -1
  217. package/esm/src/metadata/lifecycle_hooks.metadata.json +1 -1
  218. package/esm/src/metadata/view.d.ts +6 -2
  219. package/esm/src/metadata/view.js +3 -1
  220. package/esm/src/metadata/view.js.map +1 -1
  221. package/esm/src/metadata/view.metadata.json +1 -1
  222. package/esm/src/metadata.d.ts +49 -15
  223. package/esm/src/metadata.js +35 -10
  224. package/esm/src/metadata.js.map +1 -1
  225. package/esm/src/metadata.metadata.json +1 -1
  226. package/esm/src/platform_common_providers.d.ts +1 -0
  227. package/esm/src/platform_common_providers.js +3 -3
  228. package/esm/src/platform_common_providers.js.map +1 -1
  229. package/esm/src/platform_common_providers.metadata.json +1 -1
  230. package/esm/src/platform_directives_and_pipes.d.ts +48 -45
  231. package/esm/src/platform_directives_and_pipes.js +50 -47
  232. package/esm/src/platform_directives_and_pipes.js.map +1 -1
  233. package/esm/src/platform_directives_and_pipes.metadata.json +1 -1
  234. package/esm/src/profile/profile.d.ts +5 -1
  235. package/esm/src/profile/profile.js +4 -0
  236. package/esm/src/profile/profile.js.map +1 -1
  237. package/esm/src/profile/profile.metadata.json +1 -1
  238. package/esm/src/profile/wtf_impl.js +1 -1
  239. package/esm/src/profile/wtf_impl.js.map +1 -1
  240. package/esm/src/profile/wtf_impl.metadata.json +1 -0
  241. package/esm/src/profile/wtf_init.js +2 -2
  242. package/esm/src/profile/wtf_init.js.map +1 -1
  243. package/esm/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  244. package/esm/src/reflection/platform_reflection_capabilities.js.map +1 -1
  245. package/esm/src/reflection/reflection.d.ts +1 -1
  246. package/esm/src/reflection/reflection.js +2 -2
  247. package/esm/src/reflection/reflection.js.map +1 -1
  248. package/esm/src/reflection/reflection.metadata.json +1 -1
  249. package/esm/src/reflection/reflection_capabilities.d.ts +4 -5
  250. package/esm/src/reflection/reflection_capabilities.js +22 -10
  251. package/esm/src/reflection/reflection_capabilities.js.map +1 -1
  252. package/esm/src/reflection/reflector.d.ts +8 -20
  253. package/esm/src/reflection/reflector.js +13 -3
  254. package/esm/src/reflection/reflector.js.map +1 -1
  255. package/esm/src/reflection/reflector_reader.js +3 -3
  256. package/esm/src/reflection/reflector_reader.js.map +1 -1
  257. package/esm/src/reflection/types.js.map +1 -1
  258. package/esm/src/render/api.d.ts +17 -6
  259. package/esm/src/render/api.js +8 -1
  260. package/esm/src/render/api.js.map +1 -1
  261. package/esm/src/render.d.ts +1 -1
  262. package/esm/src/render.js +1 -1
  263. package/esm/src/render.js.map +1 -1
  264. package/esm/src/security.d.ts +22 -0
  265. package/esm/src/security.js +23 -0
  266. package/esm/src/security.js.map +1 -0
  267. package/esm/src/testability/testability.d.ts +3 -19
  268. package/esm/src/testability/testability.js +10 -5
  269. package/esm/src/testability/testability.js.map +1 -1
  270. package/esm/src/testability/testability.metadata.json +1 -1
  271. package/esm/src/util/decorators.d.ts +2 -1
  272. package/esm/src/util/decorators.js +10 -9
  273. package/esm/src/util/decorators.js.map +1 -1
  274. package/esm/src/util.js.map +1 -1
  275. package/esm/src/zone/ng_zone.d.ts +6 -17
  276. package/esm/src/zone/ng_zone.js +7 -6
  277. package/esm/src/zone/ng_zone.js.map +1 -1
  278. package/esm/src/zone/ng_zone_impl.d.ts +1 -4
  279. package/esm/src/zone/ng_zone_impl.js +3 -2
  280. package/esm/src/zone/ng_zone_impl.js.map +1 -1
  281. package/esm/src/zone.js.map +1 -1
  282. package/esm/testing/async.js +20 -22
  283. package/esm/testing/async.js.map +1 -1
  284. package/esm/testing/async.metadata.json +1 -0
  285. package/esm/testing/async_test_completer.js.map +1 -1
  286. package/esm/testing/fake_async.d.ts +4 -1
  287. package/esm/testing/fake_async.js +9 -2
  288. package/esm/testing/fake_async.js.map +1 -1
  289. package/esm/testing/lang_utils.js +1 -1
  290. package/esm/testing/lang_utils.js.map +1 -1
  291. package/esm/testing/lang_utils.metadata.json +1 -0
  292. package/esm/testing/logger.js +5 -3
  293. package/esm/testing/logger.js.map +1 -1
  294. package/esm/testing/logger.metadata.json +1 -1
  295. package/esm/testing/mock_application_ref.d.ts +1 -1
  296. package/esm/testing/mock_application_ref.js +1 -0
  297. package/esm/testing/mock_application_ref.js.map +1 -1
  298. package/esm/testing/mock_application_ref.metadata.json +1 -1
  299. package/esm/testing/ng_zone_mock.d.ts +0 -1
  300. package/esm/testing/ng_zone_mock.js +2 -1
  301. package/esm/testing/ng_zone_mock.js.map +1 -1
  302. package/esm/testing/ng_zone_mock.metadata.json +1 -1
  303. package/esm/testing/regexp.js +1 -1
  304. package/esm/testing/regexp.js.map +1 -1
  305. package/esm/testing/regexp.metadata.json +1 -0
  306. package/esm/testing/test_injector.d.ts +6 -12
  307. package/esm/testing/test_injector.js +4 -10
  308. package/esm/testing/test_injector.js.map +1 -1
  309. package/esm/testing/test_injector.metadata.json +1 -0
  310. package/esm/testing/testing.d.ts +2 -2
  311. package/esm/testing/testing.js +2 -2
  312. package/esm/testing/testing.js.map +1 -1
  313. package/esm/testing/testing.metadata.json +1 -1
  314. package/esm/testing.js.map +1 -1
  315. package/index.d.ts +5 -4
  316. package/index.js +10 -8
  317. package/index.js.map +1 -1
  318. package/package.json +5 -1
  319. package/private_export.d.ts +102 -10
  320. package/private_export.js +41 -9
  321. package/private_export.js.map +1 -1
  322. package/private_export.metadata.json +1 -1
  323. package/src/animation/active_animation_players_map.d.ts +11 -0
  324. package/src/animation/active_animation_players_map.js +54 -0
  325. package/src/animation/active_animation_players_map.js.map +1 -0
  326. package/src/animation/animation_constants.d.ts +4 -0
  327. package/src/animation/animation_constants.js +6 -0
  328. package/src/animation/animation_constants.js.map +1 -0
  329. package/src/animation/animation_constants.metadata.json +1 -0
  330. package/src/animation/animation_driver.d.ts +9 -0
  331. package/src/animation/animation_driver.js +25 -0
  332. package/src/animation/animation_driver.js.map +1 -0
  333. package/src/animation/animation_group_player.d.ts +18 -0
  334. package/src/animation/animation_group_player.js +64 -0
  335. package/src/animation/animation_group_player.js.map +1 -0
  336. package/src/animation/animation_keyframe.d.ts +6 -0
  337. package/src/animation/animation_keyframe.js +10 -0
  338. package/src/animation/animation_keyframe.js.map +1 -0
  339. package/src/animation/animation_player.d.ts +26 -0
  340. package/src/animation/animation_player.js +42 -0
  341. package/src/animation/animation_player.js.map +1 -0
  342. package/src/animation/animation_sequence_player.d.ts +21 -0
  343. package/src/animation/animation_sequence_player.js +69 -0
  344. package/src/animation/animation_sequence_player.js.map +1 -0
  345. package/src/animation/animation_style_util.d.ts +32 -0
  346. package/src/animation/animation_style_util.js +99 -0
  347. package/src/animation/animation_style_util.js.map +1 -0
  348. package/src/animation/animation_style_util.metadata.json +1 -0
  349. package/src/animation/animation_styles.d.ts +8 -0
  350. package/src/animation/animation_styles.js +9 -0
  351. package/src/animation/animation_styles.js.map +1 -0
  352. package/src/animation/metadata.d.ts +511 -0
  353. package/src/animation/metadata.js +627 -0
  354. package/src/animation/metadata.js.map +1 -0
  355. package/src/animation/metadata.metadata.json +1 -0
  356. package/src/application_common_providers.d.ts +1 -0
  357. package/src/application_common_providers.js +4 -3
  358. package/src/application_common_providers.js.map +1 -1
  359. package/src/application_common_providers.metadata.json +1 -1
  360. package/src/application_ref.d.ts +17 -41
  361. package/src/application_ref.js +30 -21
  362. package/src/application_ref.js.map +1 -1
  363. package/src/application_ref.metadata.json +1 -1
  364. package/src/application_tokens.d.ts +6 -1
  365. package/src/application_tokens.js +9 -4
  366. package/src/application_tokens.js.map +1 -1
  367. package/src/application_tokens.metadata.json +1 -1
  368. package/src/change_detection/change_detection.d.ts +9 -8
  369. package/src/change_detection/change_detection.js +21 -21
  370. package/src/change_detection/change_detection.js.map +1 -1
  371. package/src/change_detection/change_detection.metadata.json +1 -1
  372. package/src/change_detection/change_detection_util.d.ts +3 -1
  373. package/src/change_detection/change_detection_util.js +6 -5
  374. package/src/change_detection/change_detection_util.js.map +1 -1
  375. package/src/change_detection/change_detection_util.metadata.json +1 -1
  376. package/src/change_detection/change_detector_ref.d.ts +3 -0
  377. package/src/change_detection/change_detector_ref.js +3 -0
  378. package/src/change_detection/change_detector_ref.js.map +1 -1
  379. package/src/change_detection/constants.d.ts +1 -0
  380. package/src/change_detection/constants.js +4 -3
  381. package/src/change_detection/constants.js.map +1 -1
  382. package/src/change_detection/constants.metadata.json +1 -1
  383. package/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
  384. package/src/change_detection/differs/default_iterable_differ.js +25 -18
  385. package/src/change_detection/differs/default_iterable_differ.js.map +1 -1
  386. package/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
  387. package/src/change_detection/differs/default_keyvalue_differ.js +13 -8
  388. package/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
  389. package/src/change_detection/differs/iterable_differs.d.ts +4 -1
  390. package/src/change_detection/differs/iterable_differs.js +4 -3
  391. package/src/change_detection/differs/iterable_differs.js.map +1 -1
  392. package/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
  393. package/src/change_detection/differs/keyvalue_differs.js +4 -3
  394. package/src/change_detection/differs/keyvalue_differs.js.map +1 -1
  395. package/src/change_detection/pipe_transform.js.map +1 -1
  396. package/src/change_detection.d.ts +1 -1
  397. package/src/change_detection.js +9 -9
  398. package/src/change_detection.js.map +1 -1
  399. package/src/console.js +2 -1
  400. package/src/console.js.map +1 -1
  401. package/src/console.metadata.json +1 -1
  402. package/src/debug/debug_node.d.ts +20 -2
  403. package/src/debug/debug_node.js +16 -2
  404. package/src/debug/debug_node.js.map +1 -1
  405. package/src/debug/debug_node.metadata.json +1 -0
  406. package/src/debug/debug_renderer.d.ts +10 -6
  407. package/src/debug/debug_renderer.js +12 -1
  408. package/src/debug/debug_renderer.js.map +1 -1
  409. package/src/di/decorators.d.ts +13 -1
  410. package/src/di/decorators.js +7 -1
  411. package/src/di/decorators.js.map +1 -1
  412. package/src/di/decorators.metadata.json +1 -1
  413. package/src/di/forward_ref.d.ts +3 -1
  414. package/src/di/forward_ref.js +3 -1
  415. package/src/di/forward_ref.js.map +1 -1
  416. package/src/di/injector.d.ts +4 -1
  417. package/src/di/injector.js +5 -2
  418. package/src/di/injector.js.map +1 -1
  419. package/src/di/injector.metadata.json +1 -1
  420. package/src/di/metadata.d.ts +8 -1
  421. package/src/di/metadata.js +10 -3
  422. package/src/di/metadata.js.map +1 -1
  423. package/src/di/opaque_token.d.ts +2 -1
  424. package/src/di/opaque_token.js +22 -21
  425. package/src/di/opaque_token.js.map +1 -1
  426. package/src/di/provider.d.ts +11 -10
  427. package/src/di/provider.js +17 -14
  428. package/src/di/provider.js.map +1 -1
  429. package/src/di/provider.metadata.json +1 -0
  430. package/src/di/provider_util.js.map +1 -1
  431. package/src/di/provider_util.metadata.json +1 -0
  432. package/src/di/reflective_exceptions.d.ts +11 -16
  433. package/src/di/reflective_exceptions.js +28 -22
  434. package/src/di/reflective_exceptions.js.map +1 -1
  435. package/src/di/reflective_injector.d.ts +3 -33
  436. package/src/di/reflective_injector.js +9 -6
  437. package/src/di/reflective_injector.js.map +1 -1
  438. package/src/di/reflective_key.d.ts +1 -8
  439. package/src/di/reflective_key.js +3 -2
  440. package/src/di/reflective_key.js.map +1 -1
  441. package/src/di/reflective_provider.d.ts +2 -1
  442. package/src/di/reflective_provider.js +6 -5
  443. package/src/di/reflective_provider.js.map +1 -1
  444. package/src/di/reflective_provider.metadata.json +1 -0
  445. package/src/di.d.ts +2 -2
  446. package/src/di.js +7 -9
  447. package/src/di.js.map +1 -1
  448. package/src/facade/async.d.ts +11 -4
  449. package/src/facade/async.js +27 -17
  450. package/src/facade/async.js.map +1 -1
  451. package/src/facade/base_wrapped_exception.js +4 -4
  452. package/src/facade/base_wrapped_exception.js.map +1 -1
  453. package/src/facade/collection.js.map +1 -1
  454. package/src/facade/collection.metadata.json +1 -1
  455. package/src/facade/exception_handler.d.ts +2 -11
  456. package/src/facade/exception_handler.js +8 -7
  457. package/src/facade/exception_handler.js.map +1 -1
  458. package/src/facade/exceptions.d.ts +4 -0
  459. package/src/facade/exceptions.js +6 -2
  460. package/src/facade/exceptions.js.map +1 -1
  461. package/src/facade/exceptions.metadata.json +1 -0
  462. package/src/facade/lang.d.ts +6 -4
  463. package/src/facade/lang.js +12 -11
  464. package/src/facade/lang.js.map +1 -1
  465. package/src/facade/lang.metadata.json +1 -1
  466. package/src/facade/math.d.ts +2 -0
  467. package/src/facade/math.js +5 -0
  468. package/src/facade/math.js.map +1 -0
  469. package/src/facade/math.metadata.json +1 -0
  470. package/src/facade/promise.js.map +1 -1
  471. package/src/linker/component_factory.d.ts +5 -4
  472. package/src/linker/component_factory.js +7 -3
  473. package/src/linker/component_factory.js.map +1 -1
  474. package/src/linker/component_resolver.d.ts +5 -4
  475. package/src/linker/component_resolver.js +12 -7
  476. package/src/linker/component_resolver.js.map +1 -1
  477. package/src/linker/component_resolver.metadata.json +1 -1
  478. package/src/linker/debug_context.js +5 -4
  479. package/src/linker/debug_context.js.map +1 -1
  480. package/src/linker/dynamic_component_loader.d.ts +5 -6
  481. package/src/linker/dynamic_component_loader.js +5 -3
  482. package/src/linker/dynamic_component_loader.js.map +1 -1
  483. package/src/linker/dynamic_component_loader.metadata.json +1 -1
  484. package/src/linker/element.d.ts +3 -3
  485. package/src/linker/element.js +5 -5
  486. package/src/linker/element.js.map +1 -1
  487. package/src/linker/element_injector.js.map +1 -1
  488. package/src/linker/element_ref.d.ts +1 -0
  489. package/src/linker/element_ref.js +5 -5
  490. package/src/linker/element_ref.js.map +1 -1
  491. package/src/linker/exceptions.d.ts +4 -1
  492. package/src/linker/exceptions.js +4 -1
  493. package/src/linker/exceptions.js.map +1 -1
  494. package/src/linker/query_list.d.ts +3 -10
  495. package/src/linker/query_list.js +8 -7
  496. package/src/linker/query_list.js.map +1 -1
  497. package/src/linker/systemjs_component_resolver.d.ts +21 -0
  498. package/src/linker/systemjs_component_resolver.js +52 -0
  499. package/src/linker/systemjs_component_resolver.js.map +1 -0
  500. package/src/linker/template_ref.d.ts +2 -1
  501. package/src/linker/template_ref.js +1 -0
  502. package/src/linker/template_ref.js.map +1 -1
  503. package/src/linker/view.d.ts +12 -1
  504. package/src/linker/view.js +65 -15
  505. package/src/linker/view.js.map +1 -1
  506. package/src/linker/view_container_ref.d.ts +2 -10
  507. package/src/linker/view_container_ref.js +4 -3
  508. package/src/linker/view_container_ref.js.map +1 -1
  509. package/src/linker/view_ref.d.ts +5 -1
  510. package/src/linker/view_ref.js +6 -2
  511. package/src/linker/view_ref.js.map +1 -1
  512. package/src/linker/view_type.js.map +1 -1
  513. package/src/linker/view_utils.d.ts +4 -4
  514. package/src/linker/view_utils.js +25 -22
  515. package/src/linker/view_utils.js.map +1 -1
  516. package/src/linker/view_utils.metadata.json +1 -1
  517. package/src/linker.d.ts +5 -4
  518. package/src/linker.js +12 -9
  519. package/src/linker.js.map +1 -1
  520. package/src/metadata/di.d.ts +8 -1
  521. package/src/metadata/di.js +10 -3
  522. package/src/metadata/di.js.map +1 -1
  523. package/src/metadata/directives.d.ts +104 -20
  524. package/src/metadata/directives.js +25 -27
  525. package/src/metadata/directives.js.map +1 -1
  526. package/src/metadata/lifecycle_hooks.d.ts +46 -31
  527. package/src/metadata/lifecycle_hooks.js +496 -10
  528. package/src/metadata/lifecycle_hooks.js.map +1 -1
  529. package/src/metadata/lifecycle_hooks.metadata.json +1 -1
  530. package/src/metadata/view.d.ts +6 -2
  531. package/src/metadata/view.js +3 -1
  532. package/src/metadata/view.js.map +1 -1
  533. package/src/metadata/view.metadata.json +1 -1
  534. package/src/metadata.d.ts +49 -15
  535. package/src/metadata.js +70 -37
  536. package/src/metadata.js.map +1 -1
  537. package/src/metadata.metadata.json +1 -1
  538. package/src/platform_common_providers.d.ts +1 -0
  539. package/src/platform_common_providers.js +3 -3
  540. package/src/platform_common_providers.js.map +1 -1
  541. package/src/platform_common_providers.metadata.json +1 -1
  542. package/src/platform_directives_and_pipes.d.ts +48 -45
  543. package/src/platform_directives_and_pipes.js +50 -47
  544. package/src/platform_directives_and_pipes.js.map +1 -1
  545. package/src/platform_directives_and_pipes.metadata.json +1 -1
  546. package/src/profile/profile.d.ts +5 -1
  547. package/src/profile/profile.js +5 -3
  548. package/src/profile/profile.js.map +1 -1
  549. package/src/profile/profile.metadata.json +1 -1
  550. package/src/profile/wtf_impl.js +1 -1
  551. package/src/profile/wtf_impl.js.map +1 -1
  552. package/src/profile/wtf_impl.metadata.json +1 -0
  553. package/src/profile/wtf_init.js +2 -2
  554. package/src/profile/wtf_init.js.map +1 -1
  555. package/src/reflection/platform_reflection_capabilities.d.ts +4 -3
  556. package/src/reflection/platform_reflection_capabilities.js.map +1 -1
  557. package/src/reflection/reflection.d.ts +1 -1
  558. package/src/reflection/reflection.js +2 -2
  559. package/src/reflection/reflection.js.map +1 -1
  560. package/src/reflection/reflection.metadata.json +1 -1
  561. package/src/reflection/reflection_capabilities.d.ts +4 -5
  562. package/src/reflection/reflection_capabilities.js +24 -10
  563. package/src/reflection/reflection_capabilities.js.map +1 -1
  564. package/src/reflection/reflector.d.ts +8 -20
  565. package/src/reflection/reflector.js +13 -3
  566. package/src/reflection/reflector.js.map +1 -1
  567. package/src/reflection/reflector_reader.js +3 -3
  568. package/src/reflection/reflector_reader.js.map +1 -1
  569. package/src/reflection/types.js.map +1 -1
  570. package/src/render/api.d.ts +17 -6
  571. package/src/render/api.js +8 -1
  572. package/src/render/api.js.map +1 -1
  573. package/src/render.d.ts +1 -1
  574. package/src/render.js +2 -2
  575. package/src/render.js.map +1 -1
  576. package/src/security.d.ts +22 -0
  577. package/src/security.js +28 -0
  578. package/src/security.js.map +1 -0
  579. package/src/testability/testability.d.ts +3 -19
  580. package/src/testability/testability.js +10 -5
  581. package/src/testability/testability.js.map +1 -1
  582. package/src/testability/testability.metadata.json +1 -1
  583. package/src/util/decorators.d.ts +2 -1
  584. package/src/util/decorators.js +10 -9
  585. package/src/util/decorators.js.map +1 -1
  586. package/src/util.js.map +1 -1
  587. package/src/zone/ng_zone.d.ts +6 -17
  588. package/src/zone/ng_zone.js +11 -6
  589. package/src/zone/ng_zone.js.map +1 -1
  590. package/src/zone/ng_zone_impl.d.ts +1 -4
  591. package/src/zone/ng_zone_impl.js +3 -2
  592. package/src/zone/ng_zone_impl.js.map +1 -1
  593. package/src/zone.js.map +1 -1
  594. package/testing/async.js +20 -22
  595. package/testing/async.js.map +1 -1
  596. package/testing/async.metadata.json +1 -0
  597. package/testing/async_test_completer.js.map +1 -1
  598. package/testing/fake_async.d.ts +4 -1
  599. package/testing/fake_async.js +10 -2
  600. package/testing/fake_async.js.map +1 -1
  601. package/testing/lang_utils.js +1 -1
  602. package/testing/lang_utils.js.map +1 -1
  603. package/testing/lang_utils.metadata.json +1 -0
  604. package/testing/logger.js +5 -3
  605. package/testing/logger.js.map +1 -1
  606. package/testing/logger.metadata.json +1 -1
  607. package/testing/mock_application_ref.d.ts +1 -1
  608. package/testing/mock_application_ref.js +1 -0
  609. package/testing/mock_application_ref.js.map +1 -1
  610. package/testing/mock_application_ref.metadata.json +1 -1
  611. package/testing/ng_zone_mock.d.ts +0 -1
  612. package/testing/ng_zone_mock.js +2 -1
  613. package/testing/ng_zone_mock.js.map +1 -1
  614. package/testing/ng_zone_mock.metadata.json +1 -1
  615. package/testing/regexp.js +1 -1
  616. package/testing/regexp.js.map +1 -1
  617. package/testing/regexp.metadata.json +1 -0
  618. package/testing/test_injector.d.ts +6 -12
  619. package/testing/test_injector.js +3 -9
  620. package/testing/test_injector.js.map +1 -1
  621. package/testing/test_injector.metadata.json +1 -0
  622. package/testing/testing.d.ts +2 -2
  623. package/testing/testing.js +5 -5
  624. package/testing/testing.js.map +1 -1
  625. package/testing/testing.metadata.json +1 -1
  626. package/testing.js.map +1 -1
  627. package/esm/core.umd.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export { looseIdentical } from '../../src/facade/lang';
1
+ export { looseIdentical } from '../facade/lang';
2
2
  export declare var uninitialized: Object;
3
3
  export declare function devModeEqual(a: any, b: any): boolean;
4
4
  /**
@@ -18,6 +18,7 @@ export declare function devModeEqual(a: any, b: any): boolean;
18
18
  * return WrappedValue.wrap(this._latestValue); // this will force update
19
19
  * }
20
20
  * ```
21
+ * @stable
21
22
  */
22
23
  export declare class WrappedValue {
23
24
  wrapped: any;
@@ -34,6 +35,7 @@ export declare class ValueUnwrapper {
34
35
  }
35
36
  /**
36
37
  * Represents a basic change from a previous to a new value.
38
+ * @stable
37
39
  */
38
40
  export declare class SimpleChange {
39
41
  previousValue: any;
@@ -1,13 +1,12 @@
1
- import { looseIdentical, isPrimitive } from '../../src/facade/lang';
2
- import { isListLikeIterable, areIterablesEqual } from '../../src/facade/collection';
3
- export { looseIdentical } from '../../src/facade/lang';
1
+ import { areIterablesEqual, isListLikeIterable } from '../facade/collection';
2
+ import { isPrimitive, looseIdentical } from '../facade/lang';
3
+ export { looseIdentical } from '../facade/lang';
4
4
  export var uninitialized = new Object();
5
5
  export function devModeEqual(a, b) {
6
6
  if (isListLikeIterable(a) && isListLikeIterable(b)) {
7
7
  return areIterablesEqual(a, b, devModeEqual);
8
8
  }
9
- else if (!isListLikeIterable(a) && !isPrimitive(a) && !isListLikeIterable(b) &&
10
- !isPrimitive(b)) {
9
+ else if (!isListLikeIterable(a) && !isPrimitive(a) && !isListLikeIterable(b) && !isPrimitive(b)) {
11
10
  return true;
12
11
  }
13
12
  else {
@@ -31,6 +30,7 @@ export function devModeEqual(a, b) {
31
30
  * return WrappedValue.wrap(this._latestValue); // this will force update
32
31
  * }
33
32
  * ```
33
+ * @stable
34
34
  */
35
35
  export class WrappedValue {
36
36
  constructor(wrapped) {
@@ -56,6 +56,7 @@ export class ValueUnwrapper {
56
56
  }
57
57
  /**
58
58
  * Represents a basic change from a previous to a new value.
59
+ * @stable
59
60
  */
60
61
  export class SimpleChange {
61
62
  constructor(previousValue, currentValue) {
@@ -1 +1 @@
1
- {"version":3,"file":"change_detection_util.js","sourceRoot":"/Users/iminar/Dev/angular/modules/@angular/core/","sources":["src/change_detection/change_detection_util.ts"],"names":[],"mappings":"OAIS,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,uBAAuB;OAC5D,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,6BAA6B;AAEjF,SAAQ,cAAc,QAAO,uBAAuB,CAAC;AACrD,OAAO,IAAI,aAAa,GAA8B,IAAI,MAAM,EAAE,CAAC;AAEnE,6BAA6B,CAAM,EAAE,CAAM;IACzC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE/C,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC;IAEd,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE,YAAmB,OAAY;QAAZ,YAAO,GAAP,OAAO,CAAK;IAAG,CAAC;IAEnC,OAAO,IAAI,CAAC,KAAU,IAAkB,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH;IAAA;QACS,oBAAe,GAAG,KAAK,CAAC;IAWjC,CAAC;IATC,MAAM,CAAC,KAAU;QACf,EAAE,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,KAAK,KAAK,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH;IACE,YAAmB,aAAkB,EAAS,YAAiB;QAA5C,kBAAa,GAAb,aAAa,CAAK;QAAS,iBAAY,GAAZ,YAAY,CAAK;IAAG,CAAC;IAEnE;;OAEG;IACH,aAAa,KAAc,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC,CAAC;AAC3E,CAAC;AAAA"}
1
+ {"version":3,"file":"change_detection_util.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/change_detection/change_detection_util.ts"],"names":[],"mappings":"OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,sBAAsB;OACnE,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,gBAAgB;AAE1D,SAAQ,cAAc,QAAO,gBAAgB,CAAC;AAE9C,OAAO,IAAI,aAAa,GAA8B,IAAI,MAAM,EAAE,CAAC;AAEnE,6BAA6B,CAAM,EAAE,CAAM;IACzC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE/C,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CACN,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC;IAEd,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH;IACE,YAAmB,OAAY;QAAZ,YAAO,GAAP,OAAO,CAAK;IAAG,CAAC;IAEnC,OAAO,IAAI,CAAC,KAAU,IAAkB,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH;IAAA;QACS,oBAAe,GAAG,KAAK,CAAC;IAWjC,CAAC;IATC,MAAM,CAAC,KAAU;QACf,EAAE,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,KAAK,KAAK,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH;IACE,YAAmB,aAAkB,EAAS,YAAiB;QAA5C,kBAAa,GAAb,aAAa,CAAK;QAAS,iBAAY,GAAZ,YAAY,CAAK;IAAG,CAAC;IAEnE;;OAEG;IACH,aAAa,KAAc,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC,CAAC;AAC3E,CAAC;AAAA","sourcesContent":["import {areIterablesEqual, isListLikeIterable} from '../facade/collection';\nimport {isPrimitive, looseIdentical} from '../facade/lang';\n\nexport {looseIdentical} from '../facade/lang';\n\nexport var uninitialized: Object = /*@ts2dart_const*/ new Object();\n\nexport function devModeEqual(a: any, b: any): boolean {\n if (isListLikeIterable(a) && isListLikeIterable(b)) {\n return areIterablesEqual(a, b, devModeEqual);\n\n } else if (\n !isListLikeIterable(a) && !isPrimitive(a) && !isListLikeIterable(b) && !isPrimitive(b)) {\n return true;\n\n } else {\n return looseIdentical(a, b);\n }\n}\n\n/**\n * Indicates that the result of a {@link PipeMetadata} transformation has changed even though the\n * reference\n * has not changed.\n *\n * The wrapped value will be unwrapped by change detection, and the unwrapped value will be stored.\n *\n * Example:\n *\n * ```\n * if (this._latestValue === this._latestReturnedValue) {\n * return this._latestReturnedValue;\n * } else {\n * this._latestReturnedValue = this._latestValue;\n * return WrappedValue.wrap(this._latestValue); // this will force update\n * }\n * ```\n * @stable\n */\nexport class WrappedValue {\n constructor(public wrapped: any) {}\n\n static wrap(value: any): WrappedValue { return new WrappedValue(value); }\n}\n\n/**\n * Helper class for unwrapping WrappedValue s\n */\nexport class ValueUnwrapper {\n public hasWrappedValue = false;\n\n unwrap(value: any): any {\n if (value instanceof WrappedValue) {\n this.hasWrappedValue = true;\n return value.wrapped;\n }\n return value;\n }\n\n reset() { this.hasWrappedValue = false; }\n}\n\n/**\n * Represents a basic change from a previous to a new value.\n * @stable\n */\nexport class SimpleChange {\n constructor(public previousValue: any, public currentValue: any) {}\n\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange(): boolean { return this.previousValue === uninitialized; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","metadata":{"uninitialized":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}}}}
1
+ {"__symbolic":"module","version":1,"metadata":{"uninitialized":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Object"}}}}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @stable
3
+ */
1
4
  export declare abstract class ChangeDetectorRef {
2
5
  /**
3
6
  * Marks all {@link ChangeDetectionStrategy#OnPush} ancestors as to be checked.
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @stable
3
+ */
1
4
  export class ChangeDetectorRef {
2
5
  }
3
6
  //# sourceMappingURL=change_detector_ref.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"change_detector_ref.js","sourceRoot":"/Users/iminar/Dev/angular/modules/@angular/core/","sources":["src/change_detection/change_detector_ref.ts"],"names":[],"mappings":"AAIE;AA+LF,CAAC;AAAA"}
1
+ {"version":3,"file":"change_detector_ref.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/change_detection/change_detector_ref.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;AA+LA,CAAC;AAAA","sourcesContent":["/**\n * @stable\n */\nexport abstract class ChangeDetectorRef {\n /**\n * Marks all {@link ChangeDetectionStrategy#OnPush} ancestors as to be checked.\n *\n * <!-- TODO: Add a link to a chapter on OnPush components -->\n *\n * ### Example ([live demo](http://plnkr.co/edit/GC512b?p=preview))\n *\n * ```typescript\n * @Component({\n * selector: 'cmp',\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * template: `Number of ticks: {{numberOfTicks}}`\n * })\n * class Cmp {\n * numberOfTicks = 0;\n *\n * constructor(ref: ChangeDetectorRef) {\n * setInterval(() => {\n * this.numberOfTicks ++\n * // the following is required, otherwise the view will not be updated\n * this.ref.markForCheck();\n * }, 1000);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * template: `\n * <cmp><cmp>\n * `,\n * directives: [Cmp]\n * })\n * class App {\n * }\n *\n * bootstrap(App);\n * ```\n */\n abstract markForCheck(): void;\n\n /**\n * Detaches the change detector from the change detector tree.\n *\n * The detached change detector will not be checked until it is reattached.\n *\n * This can also be used in combination with {@link ChangeDetectorRef#detectChanges} to implement\n * local change\n * detection checks.\n *\n * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\n * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\n *\n * ### Example\n *\n * The following example defines a component with a large list of readonly data.\n * Imagine the data changes constantly, many times per second. For performance reasons,\n * we want to check and update the list every five seconds. We can do that by detaching\n * the component's change detector and doing a local check every five seconds.\n *\n * ```typescript\n * class DataProvider {\n * // in a real application the returned data will be different every time\n * get data() {\n * return [1,2,3,4,5];\n * }\n * }\n *\n * @Component({\n * selector: 'giant-list',\n * template: `\n * <li *ngFor=\"let d of dataProvider.data\">Data {{d}}</lig>\n * `,\n * directives: [NgFor]\n * })\n * class GiantList {\n * constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {\n * ref.detach();\n * setInterval(() => {\n * this.ref.detectChanges();\n * }, 5000);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * providers: [DataProvider],\n * template: `\n * <giant-list><giant-list>\n * `,\n * directives: [GiantList]\n * })\n * class App {\n * }\n *\n * bootstrap(App);\n * ```\n */\n abstract detach(): void;\n\n /**\n * Checks the change detector and its children.\n *\n * This can also be used in combination with {@link ChangeDetectorRef#detach} to implement local\n * change detection\n * checks.\n *\n * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\n * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\n *\n * ### Example\n *\n * The following example defines a component with a large list of readonly data.\n * Imagine, the data changes constantly, many times per second. For performance reasons,\n * we want to check and update the list every five seconds.\n *\n * We can do that by detaching the component's change detector and doing a local change detection\n * check\n * every five seconds.\n *\n * See {@link ChangeDetectorRef#detach} for more information.\n */\n abstract detectChanges(): void;\n\n /**\n * Checks the change detector and its children, and throws if any changes are detected.\n *\n * This is used in development mode to verify that running change detection doesn't introduce\n * other changes.\n */\n abstract checkNoChanges(): void;\n\n /**\n * Reattach the change detector to the change detector tree.\n *\n * This also marks OnPush ancestors as to be checked. This reattached change detector will be\n * checked during the next change detection run.\n *\n * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\n *\n * ### Example ([live demo](http://plnkr.co/edit/aUhZha?p=preview))\n *\n * The following example creates a component displaying `live` data. The component will detach\n * its change detector from the main change detector tree when the component's live property\n * is set to false.\n *\n * ```typescript\n * class DataProvider {\n * data = 1;\n *\n * constructor() {\n * setInterval(() => {\n * this.data = this.data * 2;\n * }, 500);\n * }\n * }\n *\n * @Component({\n * selector: 'live-data',\n * inputs: ['live'],\n * template: `Data: {{dataProvider.data}}`\n * })\n * class LiveData {\n * constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {}\n *\n * set live(value) {\n * if (value)\n * this.ref.reattach();\n * else\n * this.ref.detach();\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * providers: [DataProvider],\n * template: `\n * Live Update: <input type=\"checkbox\" [(ngModel)]=\"live\">\n * <live-data [live]=\"live\"><live-data>\n * `,\n * directives: [LiveData, FORM_DIRECTIVES]\n * })\n * class App {\n * live = true;\n * }\n *\n * bootstrap(App);\n * ```\n */\n abstract reattach(): void;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -22,6 +22,7 @@ export declare enum ChangeDetectorState {
22
22
  /**
23
23
  * Describes within the change detector which strategy will be used the next time change
24
24
  * detection is triggered.
25
+ * @stable
25
26
  */
26
27
  export declare enum ChangeDetectionStrategy {
27
28
  /**
@@ -1,4 +1,4 @@
1
- import { isBlank } from '../../src/facade/lang';
1
+ import { isBlank } from '../facade/lang';
2
2
  /**
3
3
  * Describes the current state of the change detector.
4
4
  */
@@ -24,6 +24,7 @@ export var ChangeDetectorState;
24
24
  /**
25
25
  * Describes within the change detector which strategy will be used the next time change
26
26
  * detection is triggered.
27
+ * @stable
27
28
  */
28
29
  export var ChangeDetectionStrategy;
29
30
  (function (ChangeDetectionStrategy) {
@@ -65,7 +66,7 @@ export var CHANGE_DETECTION_STRATEGY_VALUES = [
65
66
  ChangeDetectionStrategy.CheckAlways,
66
67
  ChangeDetectionStrategy.Detached,
67
68
  ChangeDetectionStrategy.OnPush,
68
- ChangeDetectionStrategy.Default
69
+ ChangeDetectionStrategy.Default,
69
70
  ];
70
71
  /**
71
72
  * List of possible {@link ChangeDetectorState} values.
@@ -73,7 +74,7 @@ export var CHANGE_DETECTION_STRATEGY_VALUES = [
73
74
  export var CHANGE_DETECTOR_STATE_VALUES = [
74
75
  ChangeDetectorState.NeverChecked,
75
76
  ChangeDetectorState.CheckedBefore,
76
- ChangeDetectorState.Errored
77
+ ChangeDetectorState.Errored,
77
78
  ];
78
79
  export function isDefaultChangeDetectionStrategy(changeDetectionStrategy) {
79
80
  return isBlank(changeDetectionStrategy) ||
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"/Users/iminar/Dev/angular/modules/@angular/core/","sources":["src/change_detection/constants.ts"],"names":[],"mappings":"OAIS,EAAC,OAAO,EAAC,MAAM,uBAAuB;AAE/C;;GAEG;AACH,WAAY,mBAmBX;AAnBD,WAAY,mBAAmB;IAC7B;;;OAGG;IACH,6EAAY,CAAA;IAEZ;;;OAGG;IACH,+EAAa,CAAA;IAEb;;;;OAIG;IACH,mEAAO,CAAA;AACT,CAAC,EAnBW,mBAAmB,KAAnB,mBAAmB,QAmB9B;AAGD;;;GAGG;AACH,WAAY,uBAkCX;AAlCD,WAAY,uBAAuB;IACjC;;;OAGG;IACH,+EAAS,CAAA;IAET;;;OAGG;IACH,2EAAO,CAAA;IAEP;;;OAGG;IACH,mFAAW,CAAA;IAEX;;;OAGG;IACH,6EAAQ,CAAA;IAER;;OAEG;IACH,yEAAM,CAAA;IAEN;;OAEG;IACH,2EAAO,CAAA;AACT,CAAC,EAlCW,uBAAuB,KAAvB,uBAAuB,QAkClC;AAED;;GAEG;AACH,OAAO,IAAI,gCAAgC,GAAG;IAC5C,uBAAuB,CAAC,SAAS;IACjC,uBAAuB,CAAC,OAAO;IAC/B,uBAAuB,CAAC,WAAW;IACnC,uBAAuB,CAAC,QAAQ;IAChC,uBAAuB,CAAC,MAAM;IAC9B,uBAAuB,CAAC,OAAO;CAChC,CAAC;AAEF;;GAEG;AACH,OAAO,IAAI,4BAA4B,GAAG;IACxC,mBAAmB,CAAC,YAAY;IAChC,mBAAmB,CAAC,aAAa;IACjC,mBAAmB,CAAC,OAAO;CAC5B,CAAC;AAEF,iDACI,uBAAgD;IAClD,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAChC,uBAAuB,KAAK,uBAAuB,CAAC,OAAO,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/change_detection/constants.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB;AAEtC;;GAEG;AACH,WAAY,mBAmBX;AAnBD,WAAY,mBAAmB;IAC7B;;;OAGG;IACH,6EAAY,CAAA;IAEZ;;;OAGG;IACH,+EAAa,CAAA;IAEb;;;;OAIG;IACH,mEAAO,CAAA;AACT,CAAC,EAnBW,mBAAmB,KAAnB,mBAAmB,QAmB9B;AAGD;;;;GAIG;AACH,WAAY,uBAkCX;AAlCD,WAAY,uBAAuB;IACjC;;;OAGG;IACH,+EAAS,CAAA;IAET;;;OAGG;IACH,2EAAO,CAAA;IAEP;;;OAGG;IACH,mFAAW,CAAA;IAEX;;;OAGG;IACH,6EAAQ,CAAA;IAER;;OAEG;IACH,yEAAM,CAAA;IAEN;;OAEG;IACH,2EAAO,CAAA;AACT,CAAC,EAlCW,uBAAuB,KAAvB,uBAAuB,QAkClC;AAED;;GAEG;AACH,OAAO,IAAI,gCAAgC,GAAG;IAC5C,uBAAuB,CAAC,SAAS;IACjC,uBAAuB,CAAC,OAAO;IAC/B,uBAAuB,CAAC,WAAW;IACnC,uBAAuB,CAAC,QAAQ;IAChC,uBAAuB,CAAC,MAAM;IAC9B,uBAAuB,CAAC,OAAO;CAChC,CAAC;AAEF;;GAEG;AACH,OAAO,IAAI,4BAA4B,GAAG;IACxC,mBAAmB,CAAC,YAAY;IAChC,mBAAmB,CAAC,aAAa;IACjC,mBAAmB,CAAC,OAAO;CAC5B,CAAC;AAEF,iDAAiD,uBAAgD;IAE/F,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACnC,uBAAuB,KAAK,uBAAuB,CAAC,OAAO,CAAC;AAClE,CAAC","sourcesContent":["import {isBlank} from '../facade/lang';\n\n/**\n * Describes the current state of the change detector.\n */\nexport enum ChangeDetectorState {\n /**\n * `NeverChecked` means that the change detector has not been checked yet, and\n * initialization methods should be called during detection.\n */\n NeverChecked,\n\n /**\n * `CheckedBefore` means that the change detector has successfully completed at least\n * one detection previously.\n */\n CheckedBefore,\n\n /**\n * `Errored` means that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state will no longer detect changes.\n */\n Errored,\n}\n\n\n/**\n * Describes within the change detector which strategy will be used the next time change\n * detection is triggered.\n * @stable\n */\nexport enum ChangeDetectionStrategy {\n /**\n * `CheckedOnce` means that after calling detectChanges the mode of the change detector\n * will become `Checked`.\n */\n CheckOnce,\n\n /**\n * `Checked` means that the change detector should be skipped until its mode changes to\n * `CheckOnce`.\n */\n Checked,\n\n /**\n * `CheckAlways` means that after calling detectChanges the mode of the change detector\n * will remain `CheckAlways`.\n */\n CheckAlways,\n\n /**\n * `Detached` means that the change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n Detached,\n\n /**\n * `OnPush` means that the change detector's mode will be set to `CheckOnce` during hydration.\n */\n OnPush,\n\n /**\n * `Default` means that the change detector's mode will be set to `CheckAlways` during hydration.\n */\n Default,\n}\n\n/**\n * List of possible {@link ChangeDetectionStrategy} values.\n */\nexport var CHANGE_DETECTION_STRATEGY_VALUES = [\n ChangeDetectionStrategy.CheckOnce,\n ChangeDetectionStrategy.Checked,\n ChangeDetectionStrategy.CheckAlways,\n ChangeDetectionStrategy.Detached,\n ChangeDetectionStrategy.OnPush,\n ChangeDetectionStrategy.Default,\n];\n\n/**\n * List of possible {@link ChangeDetectorState} values.\n */\nexport var CHANGE_DETECTOR_STATE_VALUES = [\n ChangeDetectorState.NeverChecked,\n ChangeDetectorState.CheckedBefore,\n ChangeDetectorState.Errored,\n];\n\nexport function isDefaultChangeDetectionStrategy(changeDetectionStrategy: ChangeDetectionStrategy):\n boolean {\n return isBlank(changeDetectionStrategy) ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","metadata":{"CHANGE_DETECTION_STRATEGY_VALUES":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"CheckOnce"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Checked"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"CheckAlways"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Detached"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"OnPush"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Default"}],"CHANGE_DETECTOR_STATE_VALUES":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectorState"},"member":"NeverChecked"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectorState"},"member":"CheckedBefore"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectorState"},"member":"Errored"}]}}
1
+ {"__symbolic":"module","version":1,"metadata":{"CHANGE_DETECTION_STRATEGY_VALUES":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"CheckOnce"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Checked"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"CheckAlways"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Detached"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"OnPush"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Default"}],"CHANGE_DETECTOR_STATE_VALUES":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectorState"},"member":"NeverChecked"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectorState"},"member":"CheckedBefore"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectorState"},"member":"Errored"}],"isDefaultChangeDetectionStrategy":{"__symbolic":"function","parameters":["changeDetectionStrategy"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../facade/lang","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"changeDetectionStrategy"}]},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"changeDetectionStrategy"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ChangeDetectionStrategy"},"member":"Default"}}}}}}
@@ -5,6 +5,9 @@ export declare class DefaultIterableDifferFactory implements IterableDifferFacto
5
5
  supports(obj: Object): boolean;
6
6
  create(cdRef: ChangeDetectorRef, trackByFn?: TrackByFn): DefaultIterableDiffer;
7
7
  }
8
+ /**
9
+ * @stable
10
+ */
8
11
  export declare class DefaultIterableDiffer implements IterableDiffer {
9
12
  private _trackByFn;
10
13
  private _length;
@@ -35,107 +38,16 @@ export declare class DefaultIterableDiffer implements IterableDiffer {
35
38
  onDestroy(): void;
36
39
  check(collection: any): boolean;
37
40
  readonly isDirty: boolean;
38
- /**
39
- * Reset the state of the change objects to show no changes. This means set previousKey to
40
- * currentKey, and clear all of the queues (additions, moves, removals).
41
- * Set the previousIndexes of moved and added items to their currentIndexes
42
- * Reset the list of additions, moves and removals
43
- *
44
- * @internal
45
- */
46
- _reset(): void;
47
- /**
48
- * This is the core function which handles differences between collections.
49
- *
50
- * - `record` is the record which we saw at this position last time. If null then it is a new
51
- * item.
52
- * - `item` is the current item in the collection
53
- * - `index` is the position of the item in the collection
54
- *
55
- * @internal
56
- */
57
- _mismatch(record: CollectionChangeRecord, item: any, itemTrackBy: any, index: number): CollectionChangeRecord;
58
- /**
59
- * This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)
60
- *
61
- * Use case: `[a, a]` => `[b, a, a]`
62
- *
63
- * If we did not have this check then the insertion of `b` would:
64
- * 1) evict first `a`
65
- * 2) insert `b` at `0` index.
66
- * 3) leave `a` at index `1` as is. <-- this is wrong!
67
- * 3) reinsert `a` at index 2. <-- this is wrong!
68
- *
69
- * The correct behavior is:
70
- * 1) evict first `a`
71
- * 2) insert `b` at `0` index.
72
- * 3) reinsert `a` at index 1.
73
- * 3) move `a` at from `1` to `2`.
74
- *
75
- *
76
- * Double check that we have not evicted a duplicate item. We need to check if the item type may
77
- * have already been removed:
78
- * The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted
79
- * at the end. Which will show up as the two 'a's switching position. This is incorrect, since a
80
- * better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'
81
- * at the end.
82
- *
83
- * @internal
84
- */
85
- _verifyReinsertion(record: CollectionChangeRecord, item: any, itemTrackBy: any, index: number): CollectionChangeRecord;
86
- /**
87
- * Get rid of any excess {@link CollectionChangeRecord}s from the previous collection
88
- *
89
- * - `record` The first excess {@link CollectionChangeRecord}.
90
- *
91
- * @internal
92
- */
93
- _truncate(record: CollectionChangeRecord): void;
94
- /** @internal */
95
- _reinsertAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number): CollectionChangeRecord;
96
- /** @internal */
97
- _moveAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number): CollectionChangeRecord;
98
- /** @internal */
99
- _addAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number): CollectionChangeRecord;
100
- /** @internal */
101
- _insertAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number): CollectionChangeRecord;
102
- /** @internal */
103
- _remove(record: CollectionChangeRecord): CollectionChangeRecord;
104
- /** @internal */
105
- _unlink(record: CollectionChangeRecord): CollectionChangeRecord;
106
- /** @internal */
107
- _addToMoves(record: CollectionChangeRecord, toIndex: number): CollectionChangeRecord;
108
- /** @internal */
109
- _addToRemovals(record: CollectionChangeRecord): CollectionChangeRecord;
110
- /** @internal */
111
- _addIdentityChange(record: CollectionChangeRecord, item: any): CollectionChangeRecord;
112
41
  toString(): string;
113
42
  }
43
+ /**
44
+ * @stable
45
+ */
114
46
  export declare class CollectionChangeRecord {
115
47
  item: any;
116
48
  trackById: any;
117
49
  currentIndex: number;
118
50
  previousIndex: number;
119
- /** @internal */
120
- _nextPrevious: CollectionChangeRecord;
121
- /** @internal */
122
- _prev: CollectionChangeRecord;
123
- /** @internal */
124
- _next: CollectionChangeRecord;
125
- /** @internal */
126
- _prevDup: CollectionChangeRecord;
127
- /** @internal */
128
- _nextDup: CollectionChangeRecord;
129
- /** @internal */
130
- _prevRemoved: CollectionChangeRecord;
131
- /** @internal */
132
- _nextRemoved: CollectionChangeRecord;
133
- /** @internal */
134
- _nextAdded: CollectionChangeRecord;
135
- /** @internal */
136
- _nextMoved: CollectionChangeRecord;
137
- /** @internal */
138
- _nextIdentityChange: CollectionChangeRecord;
139
51
  constructor(item: any, trackById: any);
140
52
  toString(): string;
141
53
  }
@@ -1,6 +1,6 @@
1
- import { BaseException } from '../../../src/facade/exceptions';
2
- import { isListLikeIterable, iterateListLike } from '../../../src/facade/collection';
3
- import { isBlank, isPresent, stringify, getMapKey, looseIdentical, isArray } from '../../../src/facade/lang';
1
+ import { isListLikeIterable, iterateListLike } from '../../facade/collection';
2
+ import { BaseException } from '../../facade/exceptions';
3
+ import { getMapKey, isArray, isBlank, isPresent, looseIdentical, stringify } from '../../facade/lang';
4
4
  /* @ts2dart_const */
5
5
  export class DefaultIterableDifferFactory {
6
6
  constructor() {
@@ -11,6 +11,9 @@ export class DefaultIterableDifferFactory {
11
11
  }
12
12
  }
13
13
  var trackByIdentity = (index, item) => item;
14
+ /**
15
+ * @stable
16
+ */
14
17
  export class DefaultIterableDiffer {
15
18
  constructor(_trackByFn) {
16
19
  this._trackByFn = _trackByFn;
@@ -117,7 +120,7 @@ export class DefaultIterableDiffer {
117
120
  }
118
121
  else {
119
122
  index = 0;
120
- iterateListLike(collection, (item) => {
123
+ iterateListLike(collection, (item /** TODO #9100 */) => {
121
124
  itemTrackBy = this._trackByFn(index, item);
122
125
  if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {
123
126
  record = this._mismatch(record, item, itemTrackBy, index);
@@ -454,23 +457,28 @@ export class DefaultIterableDiffer {
454
457
  }
455
458
  toString() {
456
459
  var list = [];
457
- this.forEachItem((record) => list.push(record));
460
+ this.forEachItem((record /** TODO #9100 */) => list.push(record));
458
461
  var previous = [];
459
- this.forEachPreviousItem((record) => previous.push(record));
462
+ this.forEachPreviousItem((record /** TODO #9100 */) => previous.push(record));
460
463
  var additions = [];
461
- this.forEachAddedItem((record) => additions.push(record));
464
+ this.forEachAddedItem((record /** TODO #9100 */) => additions.push(record));
462
465
  var moves = [];
463
- this.forEachMovedItem((record) => moves.push(record));
466
+ this.forEachMovedItem((record /** TODO #9100 */) => moves.push(record));
464
467
  var removals = [];
465
- this.forEachRemovedItem((record) => removals.push(record));
468
+ this.forEachRemovedItem((record /** TODO #9100 */) => removals.push(record));
466
469
  var identityChanges = [];
467
- this.forEachIdentityChange((record) => identityChanges.push(record));
468
- return "collection: " + list.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" +
469
- "additions: " + additions.join(', ') + "\n" + "moves: " + moves.join(', ') + "\n" +
470
- "removals: " + removals.join(', ') + "\n" + "identityChanges: " +
471
- identityChanges.join(', ') + "\n";
470
+ this.forEachIdentityChange((record /** TODO #9100 */) => identityChanges.push(record));
471
+ return 'collection: ' + list.join(', ') + '\n' +
472
+ 'previous: ' + previous.join(', ') + '\n' +
473
+ 'additions: ' + additions.join(', ') + '\n' +
474
+ 'moves: ' + moves.join(', ') + '\n' +
475
+ 'removals: ' + removals.join(', ') + '\n' +
476
+ 'identityChanges: ' + identityChanges.join(', ') + '\n';
472
477
  }
473
478
  }
479
+ /**
480
+ * @stable
481
+ */
474
482
  export class CollectionChangeRecord {
475
483
  constructor(item, trackById) {
476
484
  this.item = item;
@@ -499,10 +507,9 @@ export class CollectionChangeRecord {
499
507
  this._nextIdentityChange = null;
500
508
  }
501
509
  toString() {
502
- return this.previousIndex === this.currentIndex ?
503
- stringify(this.item) :
504
- stringify(this.item) + '[' + stringify(this.previousIndex) + '->' +
505
- stringify(this.currentIndex) + ']';
510
+ return this.previousIndex === this.currentIndex ? stringify(this.item) :
511
+ stringify(this.item) + '[' +
512
+ stringify(this.previousIndex) + '->' + stringify(this.currentIndex) + ']';
506
513
  }
507
514
  }
508
515
  // A linked list of CollectionChangeRecords with the same CollectionChangeRecord.item
@@ -1 +1 @@
1
- {"version":3,"file":"default_iterable_differ.js","sourceRoot":"/Users/iminar/Dev/angular/modules/@angular/core/","sources":["src/change_detection/differs/default_iterable_differ.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default_iterable_differ.js","sourceRoot":"","sources":["../../../../../../../modules/@angular/core/src/change_detection/differs/default_iterable_differ.ts"],"names":[],"mappings":"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","sourcesContent":["import {isListLikeIterable, iterateListLike} from '../../facade/collection';\nimport {BaseException} from '../../facade/exceptions';\nimport {getMapKey, isArray, isBlank, isPresent, looseIdentical, stringify} from '../../facade/lang';\nimport {ChangeDetectorRef} from '../change_detector_ref';\n\nimport {IterableDiffer, IterableDifferFactory, TrackByFn} from './iterable_differs';\n\n\n/* @ts2dart_const */\nexport class DefaultIterableDifferFactory implements IterableDifferFactory {\n constructor() {}\n supports(obj: Object): boolean { return isListLikeIterable(obj); }\n create(cdRef: ChangeDetectorRef, trackByFn?: TrackByFn): DefaultIterableDiffer {\n return new DefaultIterableDiffer(trackByFn);\n }\n}\n\nvar trackByIdentity = (index: number, item: any) => item;\n\n/**\n * @stable\n */\nexport class DefaultIterableDiffer implements IterableDiffer {\n private _length: number = null;\n private _collection: any /** TODO #9100 */ = null;\n // Keeps track of the used records at any point in time (during & across `_check()` calls)\n private _linkedRecords: _DuplicateMap = null;\n // Keeps track of the removed records at any point in time during `_check()` calls.\n private _unlinkedRecords: _DuplicateMap = null;\n private _previousItHead: CollectionChangeRecord = null;\n private _itHead: CollectionChangeRecord = null;\n private _itTail: CollectionChangeRecord = null;\n private _additionsHead: CollectionChangeRecord = null;\n private _additionsTail: CollectionChangeRecord = null;\n private _movesHead: CollectionChangeRecord = null;\n private _movesTail: CollectionChangeRecord = null;\n private _removalsHead: CollectionChangeRecord = null;\n private _removalsTail: CollectionChangeRecord = null;\n // Keeps track of records where custom track by is the same, but item identity has changed\n private _identityChangesHead: CollectionChangeRecord = null;\n private _identityChangesTail: CollectionChangeRecord = null;\n\n constructor(private _trackByFn?: TrackByFn) {\n this._trackByFn = isPresent(this._trackByFn) ? this._trackByFn : trackByIdentity;\n }\n\n get collection() { return this._collection; }\n\n get length(): number { return this._length; }\n\n forEachItem(fn: Function) {\n var record: CollectionChangeRecord;\n for (record = this._itHead; record !== null; record = record._next) {\n fn(record);\n }\n }\n\n forEachPreviousItem(fn: Function) {\n var record: CollectionChangeRecord;\n for (record = this._previousItHead; record !== null; record = record._nextPrevious) {\n fn(record);\n }\n }\n\n forEachAddedItem(fn: Function) {\n var record: CollectionChangeRecord;\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n fn(record);\n }\n }\n\n forEachMovedItem(fn: Function) {\n var record: CollectionChangeRecord;\n for (record = this._movesHead; record !== null; record = record._nextMoved) {\n fn(record);\n }\n }\n\n forEachRemovedItem(fn: Function) {\n var record: CollectionChangeRecord;\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n fn(record);\n }\n }\n\n forEachIdentityChange(fn: Function) {\n var record: CollectionChangeRecord;\n for (record = this._identityChangesHead; record !== null; record = record._nextIdentityChange) {\n fn(record);\n }\n }\n\n diff(collection: any): DefaultIterableDiffer {\n if (isBlank(collection)) collection = [];\n if (!isListLikeIterable(collection)) {\n throw new BaseException(`Error trying to diff '${collection}'`);\n }\n\n if (this.check(collection)) {\n return this;\n } else {\n return null;\n }\n }\n\n onDestroy() {}\n\n // todo(vicb): optim for UnmodifiableListView (frozen arrays)\n check(collection: any): boolean {\n this._reset();\n\n var record: CollectionChangeRecord = this._itHead;\n var mayBeDirty: boolean = false;\n var index: number;\n var item: any /** TODO #9100 */;\n var itemTrackBy: any /** TODO #9100 */;\n if (isArray(collection)) {\n var list = collection;\n this._length = collection.length;\n\n for (index = 0; index < this._length; index++) {\n item = list[index];\n itemTrackBy = this._trackByFn(index, item);\n if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {\n record = this._mismatch(record, item, itemTrackBy, index);\n mayBeDirty = true;\n } else {\n if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, itemTrackBy, index);\n }\n if (!looseIdentical(record.item, item)) this._addIdentityChange(record, item);\n }\n\n record = record._next;\n }\n } else {\n index = 0;\n iterateListLike(collection, (item: any /** TODO #9100 */) => {\n itemTrackBy = this._trackByFn(index, item);\n if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {\n record = this._mismatch(record, item, itemTrackBy, index);\n mayBeDirty = true;\n } else {\n if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, itemTrackBy, index);\n }\n if (!looseIdentical(record.item, item)) this._addIdentityChange(record, item);\n }\n record = record._next;\n index++;\n });\n this._length = index;\n }\n\n this._truncate(record);\n this._collection = collection;\n return this.isDirty;\n }\n\n /* CollectionChanges is considered dirty if it has any additions, moves, removals, or identity\n * changes.\n */\n get isDirty(): boolean {\n return this._additionsHead !== null || this._movesHead !== null ||\n this._removalsHead !== null || this._identityChangesHead !== null;\n }\n\n /**\n * Reset the state of the change objects to show no changes. This means set previousKey to\n * currentKey, and clear all of the queues (additions, moves, removals).\n * Set the previousIndexes of moved and added items to their currentIndexes\n * Reset the list of additions, moves and removals\n *\n * @internal\n */\n _reset() {\n if (this.isDirty) {\n var record: CollectionChangeRecord;\n var nextRecord: CollectionChangeRecord;\n\n for (record = this._previousItHead = this._itHead; record !== null; record = record._next) {\n record._nextPrevious = record._next;\n }\n\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n record.previousIndex = record.currentIndex;\n }\n this._additionsHead = this._additionsTail = null;\n\n for (record = this._movesHead; record !== null; record = nextRecord) {\n record.previousIndex = record.currentIndex;\n nextRecord = record._nextMoved;\n }\n this._movesHead = this._movesTail = null;\n this._removalsHead = this._removalsTail = null;\n this._identityChangesHead = this._identityChangesTail = null;\n\n // todo(vicb) when assert gets supported\n // assert(!this.isDirty);\n }\n }\n\n /**\n * This is the core function which handles differences between collections.\n *\n * - `record` is the record which we saw at this position last time. If null then it is a new\n * item.\n * - `item` is the current item in the collection\n * - `index` is the position of the item in the collection\n *\n * @internal\n */\n _mismatch(record: CollectionChangeRecord, item: any, itemTrackBy: any, index: number):\n CollectionChangeRecord {\n // The previous record after which we will append the current one.\n var previousRecord: CollectionChangeRecord;\n\n if (record === null) {\n previousRecord = this._itTail;\n } else {\n previousRecord = record._prev;\n // Remove the record from the collection since we know it does not match the item.\n this._remove(record);\n }\n\n // Attempt to see if we have seen the item before.\n record = this._linkedRecords === null ? null : this._linkedRecords.get(itemTrackBy, index);\n if (record !== null) {\n // We have seen this before, we need to move it forward in the collection.\n // But first we need to check if identity changed, so we can update in view if necessary\n if (!looseIdentical(record.item, item)) this._addIdentityChange(record, item);\n\n this._moveAfter(record, previousRecord, index);\n } else {\n // Never seen it, check evicted list.\n record = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy);\n if (record !== null) {\n // It is an item which we have evicted earlier: reinsert it back into the list.\n // But first we need to check if identity changed, so we can update in view if necessary\n if (!looseIdentical(record.item, item)) this._addIdentityChange(record, item);\n\n this._reinsertAfter(record, previousRecord, index);\n } else {\n // It is a new item: add it.\n record =\n this._addAfter(new CollectionChangeRecord(item, itemTrackBy), previousRecord, index);\n }\n }\n return record;\n }\n\n /**\n * This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)\n *\n * Use case: `[a, a]` => `[b, a, a]`\n *\n * If we did not have this check then the insertion of `b` would:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) leave `a` at index `1` as is. <-- this is wrong!\n * 3) reinsert `a` at index 2. <-- this is wrong!\n *\n * The correct behavior is:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) reinsert `a` at index 1.\n * 3) move `a` at from `1` to `2`.\n *\n *\n * Double check that we have not evicted a duplicate item. We need to check if the item type may\n * have already been removed:\n * The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted\n * at the end. Which will show up as the two 'a's switching position. This is incorrect, since a\n * better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'\n * at the end.\n *\n * @internal\n */\n _verifyReinsertion(record: CollectionChangeRecord, item: any, itemTrackBy: any, index: number):\n CollectionChangeRecord {\n var reinsertRecord: CollectionChangeRecord =\n this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy);\n if (reinsertRecord !== null) {\n record = this._reinsertAfter(reinsertRecord, record._prev, index);\n } else if (record.currentIndex != index) {\n record.currentIndex = index;\n this._addToMoves(record, index);\n }\n return record;\n }\n\n /**\n * Get rid of any excess {@link CollectionChangeRecord}s from the previous collection\n *\n * - `record` The first excess {@link CollectionChangeRecord}.\n *\n * @internal\n */\n _truncate(record: CollectionChangeRecord) {\n // Anything after that needs to be removed;\n while (record !== null) {\n var nextRecord: CollectionChangeRecord = record._next;\n this._addToRemovals(this._unlink(record));\n record = nextRecord;\n }\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.clear();\n }\n\n if (this._additionsTail !== null) {\n this._additionsTail._nextAdded = null;\n }\n if (this._movesTail !== null) {\n this._movesTail._nextMoved = null;\n }\n if (this._itTail !== null) {\n this._itTail._next = null;\n }\n if (this._removalsTail !== null) {\n this._removalsTail._nextRemoved = null;\n }\n if (this._identityChangesTail !== null) {\n this._identityChangesTail._nextIdentityChange = null;\n }\n }\n\n /** @internal */\n _reinsertAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number):\n CollectionChangeRecord {\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.remove(record);\n }\n var prev = record._prevRemoved;\n var next = record._nextRemoved;\n\n if (prev === null) {\n this._removalsHead = next;\n } else {\n prev._nextRemoved = next;\n }\n if (next === null) {\n this._removalsTail = prev;\n } else {\n next._prevRemoved = prev;\n }\n\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n\n /** @internal */\n _moveAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number):\n CollectionChangeRecord {\n this._unlink(record);\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n\n /** @internal */\n _addAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number):\n CollectionChangeRecord {\n this._insertAfter(record, prevRecord, index);\n\n if (this._additionsTail === null) {\n // todo(vicb)\n // assert(this._additionsHead === null);\n this._additionsTail = this._additionsHead = record;\n } else {\n // todo(vicb)\n // assert(_additionsTail._nextAdded === null);\n // assert(record._nextAdded === null);\n this._additionsTail = this._additionsTail._nextAdded = record;\n }\n return record;\n }\n\n /** @internal */\n _insertAfter(record: CollectionChangeRecord, prevRecord: CollectionChangeRecord, index: number):\n CollectionChangeRecord {\n // todo(vicb)\n // assert(record != prevRecord);\n // assert(record._next === null);\n // assert(record._prev === null);\n\n var next: CollectionChangeRecord = prevRecord === null ? this._itHead : prevRecord._next;\n // todo(vicb)\n // assert(next != record);\n // assert(prevRecord != record);\n record._next = next;\n record._prev = prevRecord;\n if (next === null) {\n this._itTail = record;\n } else {\n next._prev = record;\n }\n if (prevRecord === null) {\n this._itHead = record;\n } else {\n prevRecord._next = record;\n }\n\n if (this._linkedRecords === null) {\n this._linkedRecords = new _DuplicateMap();\n }\n this._linkedRecords.put(record);\n\n record.currentIndex = index;\n return record;\n }\n\n /** @internal */\n _remove(record: CollectionChangeRecord): CollectionChangeRecord {\n return this._addToRemovals(this._unlink(record));\n }\n\n /** @internal */\n _unlink(record: CollectionChangeRecord): CollectionChangeRecord {\n if (this._linkedRecords !== null) {\n this._linkedRecords.remove(record);\n }\n\n var prev = record._prev;\n var next = record._next;\n\n // todo(vicb)\n // assert((record._prev = null) === null);\n // assert((record._next = null) === null);\n\n if (prev === null) {\n this._itHead = next;\n } else {\n prev._next = next;\n }\n if (next === null) {\n this._itTail = prev;\n } else {\n next._prev = prev;\n }\n\n return record;\n }\n\n /** @internal */\n _addToMoves(record: CollectionChangeRecord, toIndex: number): CollectionChangeRecord {\n // todo(vicb)\n // assert(record._nextMoved === null);\n\n if (record.previousIndex === toIndex) {\n return record;\n }\n\n if (this._movesTail === null) {\n // todo(vicb)\n // assert(_movesHead === null);\n this._movesTail = this._movesHead = record;\n } else {\n // todo(vicb)\n // assert(_movesTail._nextMoved === null);\n this._movesTail = this._movesTail._nextMoved = record;\n }\n\n return record;\n }\n\n /** @internal */\n _addToRemovals(record: CollectionChangeRecord): CollectionChangeRecord {\n if (this._unlinkedRecords === null) {\n this._unlinkedRecords = new _DuplicateMap();\n }\n this._unlinkedRecords.put(record);\n record.currentIndex = null;\n record._nextRemoved = null;\n\n if (this._removalsTail === null) {\n // todo(vicb)\n // assert(_removalsHead === null);\n this._removalsTail = this._removalsHead = record;\n record._prevRemoved = null;\n } else {\n // todo(vicb)\n // assert(_removalsTail._nextRemoved === null);\n // assert(record._nextRemoved === null);\n record._prevRemoved = this._removalsTail;\n this._removalsTail = this._removalsTail._nextRemoved = record;\n }\n return record;\n }\n\n /** @internal */\n _addIdentityChange(record: CollectionChangeRecord, item: any) {\n record.item = item;\n if (this._identityChangesTail === null) {\n this._identityChangesTail = this._identityChangesHead = record;\n } else {\n this._identityChangesTail = this._identityChangesTail._nextIdentityChange = record;\n }\n return record;\n }\n\n\n toString(): string {\n var list: any[] /** TODO #9100 */ = [];\n this.forEachItem((record: any /** TODO #9100 */) => list.push(record));\n\n var previous: any[] /** TODO #9100 */ = [];\n this.forEachPreviousItem((record: any /** TODO #9100 */) => previous.push(record));\n\n var additions: any[] /** TODO #9100 */ = [];\n this.forEachAddedItem((record: any /** TODO #9100 */) => additions.push(record));\n\n var moves: any[] /** TODO #9100 */ = [];\n this.forEachMovedItem((record: any /** TODO #9100 */) => moves.push(record));\n\n var removals: any[] /** TODO #9100 */ = [];\n this.forEachRemovedItem((record: any /** TODO #9100 */) => removals.push(record));\n\n var identityChanges: any[] /** TODO #9100 */ = [];\n this.forEachIdentityChange((record: any /** TODO #9100 */) => identityChanges.push(record));\n\n return 'collection: ' + list.join(', ') + '\\n' +\n 'previous: ' + previous.join(', ') + '\\n' +\n 'additions: ' + additions.join(', ') + '\\n' +\n 'moves: ' + moves.join(', ') + '\\n' +\n 'removals: ' + removals.join(', ') + '\\n' +\n 'identityChanges: ' + identityChanges.join(', ') + '\\n';\n }\n}\n\n/**\n * @stable\n */\nexport class CollectionChangeRecord {\n currentIndex: number = null;\n previousIndex: number = null;\n\n /** @internal */\n _nextPrevious: CollectionChangeRecord = null;\n /** @internal */\n _prev: CollectionChangeRecord = null;\n /** @internal */\n _next: CollectionChangeRecord = null;\n /** @internal */\n _prevDup: CollectionChangeRecord = null;\n /** @internal */\n _nextDup: CollectionChangeRecord = null;\n /** @internal */\n _prevRemoved: CollectionChangeRecord = null;\n /** @internal */\n _nextRemoved: CollectionChangeRecord = null;\n /** @internal */\n _nextAdded: CollectionChangeRecord = null;\n /** @internal */\n _nextMoved: CollectionChangeRecord = null;\n /** @internal */\n _nextIdentityChange: CollectionChangeRecord = null;\n\n\n constructor(public item: any, public trackById: any) {}\n\n toString(): string {\n return this.previousIndex === this.currentIndex ? stringify(this.item) :\n stringify(this.item) + '[' +\n stringify(this.previousIndex) + '->' + stringify(this.currentIndex) + ']';\n }\n}\n\n// A linked list of CollectionChangeRecords with the same CollectionChangeRecord.item\nclass _DuplicateItemRecordList {\n /** @internal */\n _head: CollectionChangeRecord = null;\n /** @internal */\n _tail: CollectionChangeRecord = null;\n\n /**\n * Append the record to the list of duplicates.\n *\n * Note: by design all records in the list of duplicates hold the same value in record.item.\n */\n add(record: CollectionChangeRecord): void {\n if (this._head === null) {\n this._head = this._tail = record;\n record._nextDup = null;\n record._prevDup = null;\n } else {\n // todo(vicb)\n // assert(record.item == _head.item ||\n // record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN);\n this._tail._nextDup = record;\n record._prevDup = this._tail;\n record._nextDup = null;\n this._tail = record;\n }\n }\n\n // Returns a CollectionChangeRecord having CollectionChangeRecord.trackById == trackById and\n // CollectionChangeRecord.currentIndex >= afterIndex\n get(trackById: any, afterIndex: number): CollectionChangeRecord {\n var record: CollectionChangeRecord;\n for (record = this._head; record !== null; record = record._nextDup) {\n if ((afterIndex === null || afterIndex < record.currentIndex) &&\n looseIdentical(record.trackById, trackById)) {\n return record;\n }\n }\n return null;\n }\n\n /**\n * Remove one {@link CollectionChangeRecord} from the list of duplicates.\n *\n * Returns whether the list of duplicates is empty.\n */\n remove(record: CollectionChangeRecord): boolean {\n // todo(vicb)\n // assert(() {\n // // verify that the record being removed is in the list.\n // for (CollectionChangeRecord cursor = _head; cursor != null; cursor = cursor._nextDup) {\n // if (identical(cursor, record)) return true;\n // }\n // return false;\n //});\n\n var prev: CollectionChangeRecord = record._prevDup;\n var next: CollectionChangeRecord = record._nextDup;\n if (prev === null) {\n this._head = next;\n } else {\n prev._nextDup = next;\n }\n if (next === null) {\n this._tail = prev;\n } else {\n next._prevDup = prev;\n }\n return this._head === null;\n }\n}\n\nclass _DuplicateMap {\n map = new Map<any, _DuplicateItemRecordList>();\n\n put(record: CollectionChangeRecord) {\n // todo(vicb) handle corner cases\n var key = getMapKey(record.trackById);\n\n var duplicates = this.map.get(key);\n if (!isPresent(duplicates)) {\n duplicates = new _DuplicateItemRecordList();\n this.map.set(key, duplicates);\n }\n duplicates.add(record);\n }\n\n /**\n * Retrieve the `value` using key. Because the CollectionChangeRecord value may be one which we\n * have already iterated over, we use the afterIndex to pretend it is not there.\n *\n * Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we\n * have any more `a`s needs to return the last `a` not the first or second.\n */\n get(trackById: any, afterIndex: number = null): CollectionChangeRecord {\n var key = getMapKey(trackById);\n\n var recordList = this.map.get(key);\n return isBlank(recordList) ? null : recordList.get(trackById, afterIndex);\n }\n\n /**\n * Removes a {@link CollectionChangeRecord} from the list of duplicates.\n *\n * The list of duplicates also is removed from the map if it gets empty.\n */\n remove(record: CollectionChangeRecord): CollectionChangeRecord {\n var key = getMapKey(record.trackById);\n // todo(vicb)\n // assert(this.map.containsKey(key));\n var recordList: _DuplicateItemRecordList = this.map.get(key);\n // Remove the list of duplicates when it gets empty\n if (recordList.remove(record)) {\n this.map.delete(key);\n }\n return record;\n }\n\n get isEmpty(): boolean { return this.map.size === 0; }\n\n clear() { this.map.clear(); }\n\n toString(): string { return '_DuplicateMap(' + stringify(this.map) + ')'; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -24,42 +24,15 @@ export declare class DefaultKeyValueDiffer implements KeyValueDiffer {
24
24
  diff(map: Map<any, any>): any;
25
25
  onDestroy(): void;
26
26
  check(map: Map<any, any>): boolean;
27
- /** @internal */
28
- _reset(): void;
29
- /** @internal */
30
- _truncate(lastRecord: KeyValueChangeRecord, record: KeyValueChangeRecord): void;
31
- /** @internal */
32
- _isInRemovals(record: KeyValueChangeRecord): boolean;
33
- /** @internal */
34
- _addToRemovals(record: KeyValueChangeRecord): void;
35
- /** @internal */
36
- _removeFromSeq(prev: KeyValueChangeRecord, record: KeyValueChangeRecord): void;
37
- /** @internal */
38
- _removeFromRemovals(record: KeyValueChangeRecord): void;
39
- /** @internal */
40
- _addToAdditions(record: KeyValueChangeRecord): void;
41
- /** @internal */
42
- _addToChanges(record: KeyValueChangeRecord): void;
43
27
  toString(): string;
44
- /** @internal */
45
- _forEach(obj: any, fn: Function): void;
46
28
  }
29
+ /**
30
+ * @stable
31
+ */
47
32
  export declare class KeyValueChangeRecord {
48
33
  key: any;
49
34
  previousValue: any;
50
35
  currentValue: any;
51
- /** @internal */
52
- _nextPrevious: KeyValueChangeRecord;
53
- /** @internal */
54
- _next: KeyValueChangeRecord;
55
- /** @internal */
56
- _nextAdded: KeyValueChangeRecord;
57
- /** @internal */
58
- _nextRemoved: KeyValueChangeRecord;
59
- /** @internal */
60
- _prevRemoved: KeyValueChangeRecord;
61
- /** @internal */
62
- _nextChanged: KeyValueChangeRecord;
63
36
  constructor(key: any);
64
37
  toString(): string;
65
38
  }
@@ -1,6 +1,6 @@
1
- import { MapWrapper, StringMapWrapper } from '../../../src/facade/collection';
2
- import { stringify, looseIdentical, isJsObject, isBlank } from '../../../src/facade/lang';
3
- import { BaseException } from '../../../src/facade/exceptions';
1
+ import { MapWrapper, StringMapWrapper } from '../../facade/collection';
2
+ import { BaseException } from '../../facade/exceptions';
3
+ import { isBlank, isJsObject, looseIdentical, stringify } from '../../facade/lang';
4
4
  /* @ts2dart_const */
5
5
  export class DefaultKeyValueDifferFactory {
6
6
  constructor() {
@@ -75,7 +75,7 @@ export class DefaultKeyValueDiffer {
75
75
  var lastOldSeqRecord = null;
76
76
  var lastNewSeqRecord = null;
77
77
  var seqChanged = false;
78
- this._forEach(map, (value, key) => {
78
+ this._forEach(map, (value /** TODO #9100 */, key /** TODO #9100 */) => {
79
79
  var newSeqRecord;
80
80
  if (oldSeqRecord !== null && key === oldSeqRecord.key) {
81
81
  newSeqRecord = oldSeqRecord;
@@ -301,12 +301,14 @@ export class DefaultKeyValueDiffer {
301
301
  for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
302
302
  removals.push(stringify(record));
303
303
  }
304
- return "map: " + items.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" +
305
- "additions: " + additions.join(', ') + "\n" + "changes: " + changes.join(', ') + "\n" +
306
- "removals: " + removals.join(', ') + "\n";
304
+ return 'map: ' + items.join(', ') + '\n' +
305
+ 'previous: ' + previous.join(', ') + '\n' +
306
+ 'additions: ' + additions.join(', ') + '\n' +
307
+ 'changes: ' + changes.join(', ') + '\n' +
308
+ 'removals: ' + removals.join(', ') + '\n';
307
309
  }
308
310
  /** @internal */
309
- _forEach(obj, fn) {
311
+ _forEach(obj /** TODO #9100 */, fn) {
310
312
  if (obj instanceof Map) {
311
313
  obj.forEach(fn);
312
314
  }
@@ -315,6 +317,9 @@ export class DefaultKeyValueDiffer {
315
317
  }
316
318
  }
317
319
  }
320
+ /**
321
+ * @stable
322
+ */
318
323
  export class KeyValueChangeRecord {
319
324
  constructor(key) {
320
325
  this.key = key;