@angular/platform-browser 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 (546) hide show
  1. package/bundles/platform-browser.umd.js +4685 -0
  2. package/bundles/platform-browser.umd.min.js +4 -0
  3. package/core_private.d.ts +27 -1
  4. package/core_private.js +16 -0
  5. package/core_private.js.map +1 -1
  6. package/core_private.metadata.json +1 -1
  7. package/esm/core_private.d.ts +27 -1
  8. package/esm/core_private.js +16 -0
  9. package/esm/core_private.js.map +1 -1
  10. package/esm/core_private.metadata.json +1 -1
  11. package/esm/index.d.ts +22 -1
  12. package/esm/index.js +25 -1
  13. package/esm/index.js.map +1 -1
  14. package/esm/index.metadata.json +1 -0
  15. package/esm/private_export.d.ts +21 -21
  16. package/esm/private_export.js +11 -21
  17. package/esm/private_export.js.map +1 -1
  18. package/esm/private_export.metadata.json +1 -0
  19. package/esm/src/browser/browser_adapter.d.ts +6 -0
  20. package/esm/src/browser/browser_adapter.js +146 -76
  21. package/esm/src/browser/browser_adapter.js.map +1 -1
  22. package/esm/src/browser/generic_browser_adapter.js +4 -4
  23. package/esm/src/browser/generic_browser_adapter.js.map +1 -1
  24. package/esm/src/browser/location/browser_platform_location.d.ts +1 -5
  25. package/esm/src/browser/location/browser_platform_location.js +16 -3
  26. package/esm/src/browser/location/browser_platform_location.js.map +1 -1
  27. package/esm/src/browser/location/browser_platform_location.metadata.json +1 -1
  28. package/esm/src/browser/location/history.d.ts +1 -0
  29. package/esm/src/browser/location/history.js +4 -0
  30. package/esm/src/browser/location/history.js.map +1 -0
  31. package/esm/src/browser/location/history.metadata.json +1 -0
  32. package/esm/src/browser/testability.d.ts +1 -1
  33. package/esm/src/browser/testability.js +7 -5
  34. package/esm/src/browser/testability.js.map +1 -1
  35. package/esm/src/browser/title.d.ts +2 -0
  36. package/esm/src/browser/title.js +2 -0
  37. package/esm/src/browser/title.js.map +1 -1
  38. package/esm/src/browser/tools/common_tools.js +2 -2
  39. package/esm/src/browser/tools/common_tools.js.map +1 -1
  40. package/esm/src/browser/tools/tools.d.ts +1 -1
  41. package/esm/src/browser/tools/tools.js +2 -1
  42. package/esm/src/browser/tools/tools.js.map +1 -1
  43. package/esm/src/browser.d.ts +15 -0
  44. package/esm/src/browser.js +76 -0
  45. package/esm/src/browser.js.map +1 -0
  46. package/esm/src/browser.metadata.json +1 -0
  47. package/esm/src/dom/debug/by.d.ts +2 -2
  48. package/esm/src/dom/debug/by.js +1 -1
  49. package/esm/src/dom/debug/by.js.map +1 -1
  50. package/esm/src/dom/debug/ng_probe.js +10 -19
  51. package/esm/src/dom/debug/ng_probe.js.map +1 -1
  52. package/esm/src/dom/debug/ng_probe.metadata.json +1 -1
  53. package/esm/src/dom/dom_adapter.d.ts +7 -5
  54. package/esm/src/dom/dom_adapter.js +1 -1
  55. package/esm/src/dom/dom_adapter.js.map +1 -1
  56. package/esm/src/dom/dom_adapter.metadata.json +1 -0
  57. package/esm/src/dom/dom_animate_player.d.ts +9 -0
  58. package/esm/src/dom/dom_animate_player.js +1 -0
  59. package/esm/src/dom/dom_animate_player.js.map +1 -0
  60. package/esm/src/dom/dom_renderer.d.ts +9 -19
  61. package/esm/src/dom/dom_renderer.js +29 -61
  62. package/esm/src/dom/dom_renderer.js.map +1 -1
  63. package/esm/src/dom/dom_renderer.metadata.json +1 -1
  64. package/esm/src/dom/dom_tokens.js.map +1 -1
  65. package/esm/src/dom/dom_tokens.metadata.json +1 -1
  66. package/esm/src/dom/events/dom_events.js +3 -2
  67. package/esm/src/dom/events/dom_events.js.map +1 -1
  68. package/esm/src/dom/events/dom_events.metadata.json +1 -1
  69. package/esm/src/dom/events/event_manager.d.ts +1 -3
  70. package/esm/src/dom/events/event_manager.js +9 -8
  71. package/esm/src/dom/events/event_manager.js.map +1 -1
  72. package/esm/src/dom/events/event_manager.metadata.json +1 -1
  73. package/esm/src/dom/events/hammer_common.js +1 -1
  74. package/esm/src/dom/events/hammer_common.js.map +1 -1
  75. package/esm/src/dom/events/hammer_gestures.js +10 -6
  76. package/esm/src/dom/events/hammer_gestures.js.map +1 -1
  77. package/esm/src/dom/events/hammer_gestures.metadata.json +1 -1
  78. package/esm/src/dom/events/key_events.d.ts +0 -2
  79. package/esm/src/dom/events/key_events.js +5 -3
  80. package/esm/src/dom/events/key_events.js.map +1 -1
  81. package/esm/src/dom/events/key_events.metadata.json +1 -1
  82. package/esm/src/dom/shared_styles_host.d.ts +0 -6
  83. package/esm/src/dom/shared_styles_host.js +5 -1
  84. package/esm/src/dom/shared_styles_host.js.map +1 -1
  85. package/esm/src/dom/shared_styles_host.metadata.json +1 -1
  86. package/esm/src/dom/util.js +3 -3
  87. package/esm/src/dom/util.js.map +1 -1
  88. package/esm/src/dom/util.metadata.json +1 -0
  89. package/esm/src/dom/web_animations_driver.d.ts +4 -0
  90. package/esm/src/dom/web_animations_driver.js +118 -0
  91. package/esm/src/dom/web_animations_driver.js.map +1 -0
  92. package/esm/src/dom/web_animations_player.d.ts +20 -0
  93. package/esm/src/dom/web_animations_player.js +42 -0
  94. package/esm/src/dom/web_animations_player.js.map +1 -0
  95. package/esm/src/facade/async.d.ts +90 -0
  96. package/esm/src/facade/async.js +137 -0
  97. package/esm/src/facade/async.js.map +1 -0
  98. package/esm/src/facade/base_wrapped_exception.js +4 -4
  99. package/esm/src/facade/base_wrapped_exception.js.map +1 -1
  100. package/esm/src/facade/browser.js +2 -2
  101. package/esm/src/facade/browser.js.map +1 -1
  102. package/esm/src/facade/browser.metadata.json +1 -1
  103. package/esm/src/facade/collection.js +1 -1
  104. package/esm/src/facade/collection.js.map +1 -1
  105. package/esm/src/facade/collection.metadata.json +1 -1
  106. package/esm/src/facade/exception_handler.d.ts +2 -11
  107. package/esm/src/facade/exception_handler.js +8 -7
  108. package/esm/src/facade/exception_handler.js.map +1 -1
  109. package/esm/src/facade/exceptions.d.ts +4 -0
  110. package/esm/src/facade/exceptions.js +6 -2
  111. package/esm/src/facade/exceptions.js.map +1 -1
  112. package/esm/src/facade/exceptions.metadata.json +1 -0
  113. package/esm/src/facade/lang.d.ts +6 -4
  114. package/esm/src/facade/lang.js +12 -11
  115. package/esm/src/facade/lang.js.map +1 -1
  116. package/esm/src/facade/lang.metadata.json +1 -1
  117. package/esm/src/facade/promise.d.ts +17 -0
  118. package/esm/src/facade/promise.js +41 -0
  119. package/esm/src/facade/promise.js.map +1 -0
  120. package/esm/src/security/dom_sanitization_service.d.ts +98 -0
  121. package/esm/src/security/dom_sanitization_service.js +108 -0
  122. package/esm/src/security/dom_sanitization_service.js.map +1 -0
  123. package/esm/src/security/dom_sanitization_service.metadata.json +1 -0
  124. package/esm/src/security/html_sanitizer.d.ts +5 -0
  125. package/esm/src/security/html_sanitizer.js +233 -0
  126. package/esm/src/security/html_sanitizer.js.map +1 -0
  127. package/esm/src/security/style_sanitizer.d.ts +5 -0
  128. package/esm/src/security/style_sanitizer.js +81 -0
  129. package/esm/src/security/style_sanitizer.js.map +1 -0
  130. package/esm/src/security/url_sanitizer.d.ts +1 -0
  131. package/esm/src/security/url_sanitizer.js +40 -0
  132. package/esm/src/security/url_sanitizer.js.map +1 -0
  133. package/esm/src/web_workers/shared/api.d.ts +2 -0
  134. package/esm/src/web_workers/shared/api.js +3 -0
  135. package/esm/src/web_workers/shared/api.js.map +1 -0
  136. package/esm/src/web_workers/shared/api.metadata.json +1 -0
  137. package/esm/src/web_workers/shared/client_message_broker.d.ts +51 -0
  138. package/esm/src/web_workers/shared/client_message_broker.js +156 -0
  139. package/esm/src/web_workers/shared/client_message_broker.js.map +1 -0
  140. package/esm/src/web_workers/shared/client_message_broker.metadata.json +1 -0
  141. package/esm/src/web_workers/shared/message_bus.d.ts +82 -0
  142. package/esm/src/web_workers/shared/message_bus.js +10 -0
  143. package/esm/src/web_workers/shared/message_bus.js.map +1 -0
  144. package/esm/src/web_workers/shared/messaging_api.d.ts +7 -0
  145. package/esm/src/web_workers/shared/messaging_api.js +8 -0
  146. package/esm/src/web_workers/shared/messaging_api.js.map +1 -0
  147. package/esm/src/web_workers/shared/messaging_api.metadata.json +1 -0
  148. package/esm/src/web_workers/shared/post_message_bus.d.ts +41 -0
  149. package/esm/src/web_workers/shared/post_message_bus.js +133 -0
  150. package/esm/src/web_workers/shared/post_message_bus.js.map +1 -0
  151. package/esm/src/web_workers/shared/post_message_bus.metadata.json +1 -0
  152. package/esm/src/web_workers/shared/render_store.d.ts +11 -0
  153. package/esm/src/web_workers/shared/render_store.js +40 -0
  154. package/esm/src/web_workers/shared/render_store.js.map +1 -0
  155. package/esm/src/web_workers/shared/render_store.metadata.json +1 -0
  156. package/esm/src/web_workers/shared/serialized_types.d.ts +12 -0
  157. package/esm/src/web_workers/shared/serialized_types.js +16 -0
  158. package/esm/src/web_workers/shared/serialized_types.js.map +1 -0
  159. package/esm/src/web_workers/shared/serializer.d.ts +18 -0
  160. package/esm/src/web_workers/shared/serializer.js +110 -0
  161. package/esm/src/web_workers/shared/serializer.js.map +1 -0
  162. package/esm/src/web_workers/shared/serializer.metadata.json +1 -0
  163. package/esm/src/web_workers/shared/service_message_broker.d.ts +48 -0
  164. package/esm/src/web_workers/shared/service_message_broker.js +88 -0
  165. package/esm/src/web_workers/shared/service_message_broker.js.map +1 -0
  166. package/esm/src/web_workers/shared/service_message_broker.metadata.json +1 -0
  167. package/esm/src/web_workers/ui/event_dispatcher.d.ts +8 -0
  168. package/esm/src/web_workers/ui/event_dispatcher.js +104 -0
  169. package/esm/src/web_workers/ui/event_dispatcher.js.map +1 -0
  170. package/esm/src/web_workers/ui/event_serializer.d.ts +15 -0
  171. package/esm/src/web_workers/ui/event_serializer.js +53 -0
  172. package/esm/src/web_workers/ui/event_serializer.js.map +1 -0
  173. package/esm/src/web_workers/ui/event_serializer.metadata.json +1 -0
  174. package/esm/src/web_workers/ui/location_providers.d.ts +14 -0
  175. package/esm/src/web_workers/ui/location_providers.js +19 -0
  176. package/esm/src/web_workers/ui/location_providers.js.map +1 -0
  177. package/esm/src/web_workers/ui/location_providers.metadata.json +1 -0
  178. package/esm/src/web_workers/ui/platform_location.d.ts +16 -0
  179. package/esm/src/web_workers/ui/platform_location.js +49 -0
  180. package/esm/src/web_workers/ui/platform_location.js.map +1 -0
  181. package/esm/src/web_workers/ui/platform_location.metadata.json +1 -0
  182. package/esm/src/web_workers/ui/renderer.d.ts +35 -0
  183. package/esm/src/web_workers/ui/renderer.js +122 -0
  184. package/esm/src/web_workers/ui/renderer.js.map +1 -0
  185. package/esm/src/web_workers/ui/renderer.metadata.json +1 -0
  186. package/esm/src/web_workers/worker/event_deserializer.d.ts +5 -0
  187. package/esm/src/web_workers/worker/event_deserializer.js +6 -0
  188. package/esm/src/web_workers/worker/event_deserializer.js.map +1 -0
  189. package/esm/src/web_workers/worker/event_deserializer.metadata.json +1 -0
  190. package/esm/src/web_workers/worker/location_providers.d.ts +17 -0
  191. package/esm/src/web_workers/worker/location_providers.js +20 -0
  192. package/esm/src/web_workers/worker/location_providers.js.map +1 -0
  193. package/esm/src/web_workers/worker/location_providers.metadata.json +1 -0
  194. package/esm/src/web_workers/worker/platform_location.d.ts +23 -0
  195. package/esm/src/web_workers/worker/platform_location.js +111 -0
  196. package/esm/src/web_workers/worker/platform_location.js.map +1 -0
  197. package/esm/src/web_workers/worker/platform_location.metadata.json +1 -0
  198. package/esm/src/web_workers/worker/renderer.d.ts +55 -0
  199. package/esm/src/web_workers/worker/renderer.js +227 -0
  200. package/esm/src/web_workers/worker/renderer.js.map +1 -0
  201. package/esm/src/web_workers/worker/renderer.metadata.json +1 -0
  202. package/esm/src/web_workers/worker/worker_adapter.d.ts +132 -0
  203. package/esm/src/web_workers/worker/worker_adapter.js +192 -0
  204. package/esm/src/web_workers/worker/worker_adapter.js.map +1 -0
  205. package/esm/src/worker_app.d.ts +13 -0
  206. package/esm/src/worker_app.js +68 -0
  207. package/esm/src/worker_app.js.map +1 -0
  208. package/esm/src/worker_app.metadata.json +1 -0
  209. package/esm/src/worker_render.d.ts +35 -0
  210. package/esm/src/worker_render.js +147 -0
  211. package/esm/src/worker_render.js.map +1 -0
  212. package/esm/src/worker_render.metadata.json +1 -0
  213. package/esm/testing/browser.d.ts +8 -0
  214. package/esm/testing/browser.js +38 -0
  215. package/esm/testing/browser.js.map +1 -0
  216. package/esm/testing/browser.metadata.json +1 -0
  217. package/esm/testing/browser_util.d.ts +1 -0
  218. package/esm/testing/browser_util.js +11 -6
  219. package/esm/testing/browser_util.js.map +1 -1
  220. package/esm/testing/browser_util.metadata.json +1 -1
  221. package/esm/testing/e2e_util.d.ts +4 -0
  222. package/esm/testing/e2e_util.js +21 -0
  223. package/esm/testing/e2e_util.js.map +1 -0
  224. package/esm/testing/e2e_util.metadata.json +1 -0
  225. package/esm/testing/matchers.js +24 -22
  226. package/esm/testing/matchers.js.map +1 -1
  227. package/esm/testing/matchers.metadata.json +1 -1
  228. package/esm/testing.d.ts +1 -2
  229. package/esm/testing.js +1 -2
  230. package/esm/testing.js.map +1 -1
  231. package/esm/testing_e2e.d.ts +1 -0
  232. package/esm/testing_e2e.js +2 -0
  233. package/esm/testing_e2e.js.map +1 -0
  234. package/index.d.ts +22 -1
  235. package/index.js +50 -1
  236. package/index.js.map +1 -1
  237. package/index.metadata.json +1 -0
  238. package/package.json +8 -4
  239. package/private_export.d.ts +21 -21
  240. package/private_export.js +11 -21
  241. package/private_export.js.map +1 -1
  242. package/private_export.metadata.json +1 -0
  243. package/src/browser/browser_adapter.d.ts +6 -0
  244. package/src/browser/browser_adapter.js +144 -76
  245. package/src/browser/browser_adapter.js.map +1 -1
  246. package/src/browser/generic_browser_adapter.js +4 -4
  247. package/src/browser/generic_browser_adapter.js.map +1 -1
  248. package/src/browser/location/browser_platform_location.d.ts +1 -5
  249. package/src/browser/location/browser_platform_location.js +16 -3
  250. package/src/browser/location/browser_platform_location.js.map +1 -1
  251. package/src/browser/location/browser_platform_location.metadata.json +1 -1
  252. package/src/browser/location/history.d.ts +1 -0
  253. package/src/browser/location/history.js +6 -0
  254. package/src/browser/location/history.js.map +1 -0
  255. package/src/browser/location/history.metadata.json +1 -0
  256. package/src/browser/testability.d.ts +1 -1
  257. package/src/browser/testability.js +7 -5
  258. package/src/browser/testability.js.map +1 -1
  259. package/src/browser/title.d.ts +2 -0
  260. package/src/browser/title.js +2 -0
  261. package/src/browser/title.js.map +1 -1
  262. package/src/browser/tools/common_tools.js +2 -2
  263. package/src/browser/tools/common_tools.js.map +1 -1
  264. package/src/browser/tools/tools.d.ts +1 -1
  265. package/src/browser/tools/tools.js +2 -1
  266. package/src/browser/tools/tools.js.map +1 -1
  267. package/src/browser.d.ts +15 -0
  268. package/src/browser.js +78 -0
  269. package/src/browser.js.map +1 -0
  270. package/src/browser.metadata.json +1 -0
  271. package/src/dom/debug/by.d.ts +2 -2
  272. package/src/dom/debug/by.js +1 -1
  273. package/src/dom/debug/by.js.map +1 -1
  274. package/src/dom/debug/ng_probe.js +9 -18
  275. package/src/dom/debug/ng_probe.js.map +1 -1
  276. package/src/dom/debug/ng_probe.metadata.json +1 -1
  277. package/src/dom/dom_adapter.d.ts +7 -5
  278. package/src/dom/dom_adapter.js +1 -1
  279. package/src/dom/dom_adapter.js.map +1 -1
  280. package/src/dom/dom_adapter.metadata.json +1 -0
  281. package/src/dom/dom_animate_player.d.ts +9 -0
  282. package/src/dom/dom_animate_player.js +2 -0
  283. package/src/dom/dom_animate_player.js.map +1 -0
  284. package/src/dom/dom_renderer.d.ts +9 -19
  285. package/src/dom/dom_renderer.js +29 -61
  286. package/src/dom/dom_renderer.js.map +1 -1
  287. package/src/dom/dom_renderer.metadata.json +1 -1
  288. package/src/dom/dom_tokens.js.map +1 -1
  289. package/src/dom/dom_tokens.metadata.json +1 -1
  290. package/src/dom/events/dom_events.js +3 -2
  291. package/src/dom/events/dom_events.js.map +1 -1
  292. package/src/dom/events/dom_events.metadata.json +1 -1
  293. package/src/dom/events/event_manager.d.ts +1 -3
  294. package/src/dom/events/event_manager.js +8 -7
  295. package/src/dom/events/event_manager.js.map +1 -1
  296. package/src/dom/events/event_manager.metadata.json +1 -1
  297. package/src/dom/events/hammer_common.js +1 -1
  298. package/src/dom/events/hammer_common.js.map +1 -1
  299. package/src/dom/events/hammer_gestures.js +9 -5
  300. package/src/dom/events/hammer_gestures.js.map +1 -1
  301. package/src/dom/events/hammer_gestures.metadata.json +1 -1
  302. package/src/dom/events/key_events.d.ts +0 -2
  303. package/src/dom/events/key_events.js +5 -3
  304. package/src/dom/events/key_events.js.map +1 -1
  305. package/src/dom/events/key_events.metadata.json +1 -1
  306. package/src/dom/shared_styles_host.d.ts +0 -6
  307. package/src/dom/shared_styles_host.js +5 -1
  308. package/src/dom/shared_styles_host.js.map +1 -1
  309. package/src/dom/shared_styles_host.metadata.json +1 -1
  310. package/src/dom/util.js +3 -3
  311. package/src/dom/util.js.map +1 -1
  312. package/src/dom/util.metadata.json +1 -0
  313. package/src/dom/web_animations_driver.d.ts +4 -0
  314. package/src/dom/web_animations_driver.js +123 -0
  315. package/src/dom/web_animations_driver.js.map +1 -0
  316. package/src/dom/web_animations_player.d.ts +20 -0
  317. package/src/dom/web_animations_player.js +46 -0
  318. package/src/dom/web_animations_player.js.map +1 -0
  319. package/src/facade/async.d.ts +90 -0
  320. package/src/facade/async.js +160 -0
  321. package/src/facade/async.js.map +1 -0
  322. package/src/facade/base_wrapped_exception.js +4 -4
  323. package/src/facade/base_wrapped_exception.js.map +1 -1
  324. package/src/facade/browser.js +2 -2
  325. package/src/facade/browser.js.map +1 -1
  326. package/src/facade/browser.metadata.json +1 -1
  327. package/src/facade/collection.js.map +1 -1
  328. package/src/facade/collection.metadata.json +1 -1
  329. package/src/facade/exception_handler.d.ts +2 -11
  330. package/src/facade/exception_handler.js +8 -7
  331. package/src/facade/exception_handler.js.map +1 -1
  332. package/src/facade/exceptions.d.ts +4 -0
  333. package/src/facade/exceptions.js +6 -2
  334. package/src/facade/exceptions.js.map +1 -1
  335. package/src/facade/exceptions.metadata.json +1 -0
  336. package/src/facade/lang.d.ts +6 -4
  337. package/src/facade/lang.js +12 -11
  338. package/src/facade/lang.js.map +1 -1
  339. package/src/facade/lang.metadata.json +1 -1
  340. package/src/facade/promise.d.ts +17 -0
  341. package/src/facade/promise.js +49 -0
  342. package/src/facade/promise.js.map +1 -0
  343. package/src/security/dom_sanitization_service.d.ts +98 -0
  344. package/src/security/dom_sanitization_service.js +150 -0
  345. package/src/security/dom_sanitization_service.js.map +1 -0
  346. package/src/security/dom_sanitization_service.metadata.json +1 -0
  347. package/src/security/html_sanitizer.d.ts +5 -0
  348. package/src/security/html_sanitizer.js +246 -0
  349. package/src/security/html_sanitizer.js.map +1 -0
  350. package/src/security/style_sanitizer.d.ts +5 -0
  351. package/src/security/style_sanitizer.js +83 -0
  352. package/src/security/style_sanitizer.js.map +1 -0
  353. package/src/security/url_sanitizer.d.ts +1 -0
  354. package/src/security/url_sanitizer.js +42 -0
  355. package/src/security/url_sanitizer.js.map +1 -0
  356. package/src/web_workers/shared/api.d.ts +2 -0
  357. package/src/web_workers/shared/api.js +4 -0
  358. package/src/web_workers/shared/api.js.map +1 -0
  359. package/src/web_workers/shared/api.metadata.json +1 -0
  360. package/src/web_workers/shared/client_message_broker.d.ts +51 -0
  361. package/src/web_workers/shared/client_message_broker.js +184 -0
  362. package/src/web_workers/shared/client_message_broker.js.map +1 -0
  363. package/src/web_workers/shared/client_message_broker.metadata.json +1 -0
  364. package/src/web_workers/shared/message_bus.d.ts +82 -0
  365. package/src/web_workers/shared/message_bus.js +15 -0
  366. package/src/web_workers/shared/message_bus.js.map +1 -0
  367. package/src/web_workers/shared/messaging_api.d.ts +7 -0
  368. package/src/web_workers/shared/messaging_api.js +9 -0
  369. package/src/web_workers/shared/messaging_api.js.map +1 -0
  370. package/src/web_workers/shared/messaging_api.metadata.json +1 -0
  371. package/src/web_workers/shared/post_message_bus.d.ts +41 -0
  372. package/src/web_workers/shared/post_message_bus.js +147 -0
  373. package/src/web_workers/shared/post_message_bus.js.map +1 -0
  374. package/src/web_workers/shared/post_message_bus.metadata.json +1 -0
  375. package/src/web_workers/shared/render_store.d.ts +11 -0
  376. package/src/web_workers/shared/render_store.js +43 -0
  377. package/src/web_workers/shared/render_store.js.map +1 -0
  378. package/src/web_workers/shared/render_store.metadata.json +1 -0
  379. package/src/web_workers/shared/serialized_types.d.ts +12 -0
  380. package/src/web_workers/shared/serialized_types.js +19 -0
  381. package/src/web_workers/shared/serialized_types.js.map +1 -0
  382. package/src/web_workers/shared/serializer.d.ts +18 -0
  383. package/src/web_workers/shared/serializer.js +119 -0
  384. package/src/web_workers/shared/serializer.js.map +1 -0
  385. package/src/web_workers/shared/serializer.metadata.json +1 -0
  386. package/src/web_workers/shared/service_message_broker.d.ts +48 -0
  387. package/src/web_workers/shared/service_message_broker.js +114 -0
  388. package/src/web_workers/shared/service_message_broker.js.map +1 -0
  389. package/src/web_workers/shared/service_message_broker.metadata.json +1 -0
  390. package/src/web_workers/ui/event_dispatcher.d.ts +8 -0
  391. package/src/web_workers/ui/event_dispatcher.js +107 -0
  392. package/src/web_workers/ui/event_dispatcher.js.map +1 -0
  393. package/src/web_workers/ui/event_serializer.d.ts +15 -0
  394. package/src/web_workers/ui/event_serializer.js +59 -0
  395. package/src/web_workers/ui/event_serializer.js.map +1 -0
  396. package/src/web_workers/ui/event_serializer.metadata.json +1 -0
  397. package/src/web_workers/ui/location_providers.d.ts +14 -0
  398. package/src/web_workers/ui/location_providers.js +20 -0
  399. package/src/web_workers/ui/location_providers.js.map +1 -0
  400. package/src/web_workers/ui/location_providers.metadata.json +1 -0
  401. package/src/web_workers/ui/platform_location.d.ts +16 -0
  402. package/src/web_workers/ui/platform_location.js +52 -0
  403. package/src/web_workers/ui/platform_location.js.map +1 -0
  404. package/src/web_workers/ui/platform_location.metadata.json +1 -0
  405. package/src/web_workers/ui/renderer.d.ts +35 -0
  406. package/src/web_workers/ui/renderer.js +131 -0
  407. package/src/web_workers/ui/renderer.js.map +1 -0
  408. package/src/web_workers/ui/renderer.metadata.json +1 -0
  409. package/src/web_workers/worker/event_deserializer.d.ts +5 -0
  410. package/src/web_workers/worker/event_deserializer.js +8 -0
  411. package/src/web_workers/worker/event_deserializer.js.map +1 -0
  412. package/src/web_workers/worker/event_deserializer.metadata.json +1 -0
  413. package/src/web_workers/worker/location_providers.d.ts +17 -0
  414. package/src/web_workers/worker/location_providers.js +21 -0
  415. package/src/web_workers/worker/location_providers.js.map +1 -0
  416. package/src/web_workers/worker/location_providers.metadata.json +1 -0
  417. package/src/web_workers/worker/platform_location.d.ts +23 -0
  418. package/src/web_workers/worker/platform_location.js +134 -0
  419. package/src/web_workers/worker/platform_location.js.map +1 -0
  420. package/src/web_workers/worker/platform_location.metadata.json +1 -0
  421. package/src/web_workers/worker/renderer.d.ts +55 -0
  422. package/src/web_workers/worker/renderer.js +241 -0
  423. package/src/web_workers/worker/renderer.js.map +1 -0
  424. package/src/web_workers/worker/renderer.metadata.json +1 -0
  425. package/src/web_workers/worker/worker_adapter.d.ts +132 -0
  426. package/src/web_workers/worker/worker_adapter.js +208 -0
  427. package/src/web_workers/worker/worker_adapter.js.map +1 -0
  428. package/src/worker_app.d.ts +13 -0
  429. package/src/worker_app.js +71 -0
  430. package/src/worker_app.js.map +1 -0
  431. package/src/worker_app.metadata.json +1 -0
  432. package/src/worker_render.d.ts +35 -0
  433. package/src/worker_render.js +153 -0
  434. package/src/worker_render.js.map +1 -0
  435. package/src/worker_render.metadata.json +1 -0
  436. package/testing/browser.d.ts +8 -0
  437. package/testing/browser.js +39 -0
  438. package/testing/browser.js.map +1 -0
  439. package/testing/browser.metadata.json +1 -0
  440. package/testing/browser_util.d.ts +1 -0
  441. package/testing/browser_util.js +14 -5
  442. package/testing/browser_util.js.map +1 -1
  443. package/testing/browser_util.metadata.json +1 -1
  444. package/testing/e2e_util.d.ts +4 -0
  445. package/testing/e2e_util.js +24 -0
  446. package/testing/e2e_util.js.map +1 -0
  447. package/testing/e2e_util.metadata.json +1 -0
  448. package/testing/matchers.js +24 -22
  449. package/testing/matchers.js.map +1 -1
  450. package/testing/matchers.metadata.json +1 -1
  451. package/testing.d.ts +1 -2
  452. package/testing.js +1 -2
  453. package/testing.js.map +1 -1
  454. package/testing_e2e.d.ts +1 -0
  455. package/testing_e2e.js +6 -0
  456. package/testing_e2e.js.map +1 -0
  457. package/esm/platform-browser.umd.js.map +0 -1
  458. package/esm/src/animate/animation.d.ts +0 -82
  459. package/esm/src/animate/animation.js +0 -173
  460. package/esm/src/animate/animation.js.map +0 -1
  461. package/esm/src/animate/animation_builder.d.ts +0 -15
  462. package/esm/src/animate/animation_builder.js +0 -24
  463. package/esm/src/animate/animation_builder.js.map +0 -1
  464. package/esm/src/animate/animation_builder.metadata.json +0 -1
  465. package/esm/src/animate/browser_details.d.ts +0 -10
  466. package/esm/src/animate/browser_details.js +0 -60
  467. package/esm/src/animate/browser_details.js.map +0 -1
  468. package/esm/src/animate/browser_details.metadata.json +0 -1
  469. package/esm/src/animate/css_animation_builder.d.ts +0 -66
  470. package/esm/src/animate/css_animation_builder.js +0 -84
  471. package/esm/src/animate/css_animation_builder.js.map +0 -1
  472. package/esm/src/animate/css_animation_options.d.ts +0 -20
  473. package/esm/src/animate/css_animation_options.js +0 -11
  474. package/esm/src/animate/css_animation_options.js.map +0 -1
  475. package/esm/src/browser_common.d.ts +0 -20
  476. package/esm/src/browser_common.js +0 -76
  477. package/esm/src/browser_common.js.map +0 -1
  478. package/esm/src/browser_common.metadata.json +0 -1
  479. package/esm/src/facade/math.d.ts +0 -2
  480. package/esm/src/facade/math.js +0 -4
  481. package/esm/src/facade/math.js.map +0 -1
  482. package/esm/src/facade/math.metadata.json +0 -1
  483. package/esm/src/platform_browser.d.ts +0 -9
  484. package/esm/src/platform_browser.js +0 -17
  485. package/esm/src/platform_browser.js.map +0 -1
  486. package/esm/src/platform_browser_static.d.ts +0 -16
  487. package/esm/src/platform_browser_static.js +0 -32
  488. package/esm/src/platform_browser_static.js.map +0 -1
  489. package/esm/src/platform_browser_static.metadata.json +0 -1
  490. package/esm/testing/animation_builder_mock.d.ts +0 -6
  491. package/esm/testing/animation_builder_mock.js +0 -35
  492. package/esm/testing/animation_builder_mock.js.map +0 -1
  493. package/esm/testing/animation_builder_mock.metadata.json +0 -1
  494. package/esm/testing/browser_static.d.ts +0 -10
  495. package/esm/testing/browser_static.js +0 -53
  496. package/esm/testing/browser_static.js.map +0 -1
  497. package/esm/testing/browser_static.metadata.json +0 -1
  498. package/esm/testing/dom_test_component_renderer.d.ts +0 -9
  499. package/esm/testing/dom_test_component_renderer.js +0 -27
  500. package/esm/testing/dom_test_component_renderer.js.map +0 -1
  501. package/esm/testing/dom_test_component_renderer.metadata.json +0 -1
  502. package/platform-browser.umd.js +0 -2488
  503. package/src/animate/animation.d.ts +0 -82
  504. package/src/animate/animation.js +0 -183
  505. package/src/animate/animation.js.map +0 -1
  506. package/src/animate/animation_builder.d.ts +0 -15
  507. package/src/animate/animation_builder.js +0 -27
  508. package/src/animate/animation_builder.js.map +0 -1
  509. package/src/animate/animation_builder.metadata.json +0 -1
  510. package/src/animate/browser_details.d.ts +0 -10
  511. package/src/animate/browser_details.js +0 -66
  512. package/src/animate/browser_details.js.map +0 -1
  513. package/src/animate/browser_details.metadata.json +0 -1
  514. package/src/animate/css_animation_builder.d.ts +0 -66
  515. package/src/animate/css_animation_builder.js +0 -87
  516. package/src/animate/css_animation_builder.js.map +0 -1
  517. package/src/animate/css_animation_options.d.ts +0 -20
  518. package/src/animate/css_animation_options.js +0 -14
  519. package/src/animate/css_animation_options.js.map +0 -1
  520. package/src/browser_common.d.ts +0 -20
  521. package/src/browser_common.js +0 -85
  522. package/src/browser_common.js.map +0 -1
  523. package/src/browser_common.metadata.json +0 -1
  524. package/src/facade/math.d.ts +0 -2
  525. package/src/facade/math.js +0 -5
  526. package/src/facade/math.js.map +0 -1
  527. package/src/facade/math.metadata.json +0 -1
  528. package/src/platform_browser.d.ts +0 -9
  529. package/src/platform_browser.js +0 -39
  530. package/src/platform_browser.js.map +0 -1
  531. package/src/platform_browser_static.d.ts +0 -16
  532. package/src/platform_browser_static.js +0 -42
  533. package/src/platform_browser_static.js.map +0 -1
  534. package/src/platform_browser_static.metadata.json +0 -1
  535. package/testing/animation_builder_mock.d.ts +0 -6
  536. package/testing/animation_builder_mock.js +0 -53
  537. package/testing/animation_builder_mock.js.map +0 -1
  538. package/testing/animation_builder_mock.metadata.json +0 -1
  539. package/testing/browser_static.d.ts +0 -10
  540. package/testing/browser_static.js +0 -55
  541. package/testing/browser_static.js.map +0 -1
  542. package/testing/browser_static.metadata.json +0 -1
  543. package/testing/dom_test_component_renderer.d.ts +0 -9
  544. package/testing/dom_test_component_renderer.js +0 -36
  545. package/testing/dom_test_component_renderer.js.map +0 -1
  546. package/testing/dom_test_component_renderer.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform-browser.umd.js","sources":["src/facade/lang.js","core_private.js","src/facade/collection.js","src/dom/dom_adapter.js","src/browser/generic_browser_adapter.js","src/browser/browser_adapter.js","src/browser/testability.js","src/dom/dom_tokens.js","src/facade/exceptions.js","src/dom/events/event_manager.js","src/animate/css_animation_options.js","src/facade/math.js","src/dom/util.js","src/animate/animation.js","src/animate/css_animation_builder.js","src/animate/browser_details.js","src/animate/animation_builder.js","src/dom/shared_styles_host.js","src/dom/dom_renderer.js","src/dom/events/key_events.js","src/dom/debug/ng_probe.js","src/dom/events/dom_events.js","src/dom/events/hammer_common.js","src/dom/events/hammer_gestures.js","src/browser/title.js","src/facade/browser.js","src/browser/tools/common_tools.js","src/browser/tools/tools.js","src/dom/debug/by.js","src/browser_common.js","private_export.js","src/browser/location/browser_platform_location.js","src/platform_browser_static.js","src/platform_browser.js"],"sourcesContent":["var globalScope;\nif (typeof window === 'undefined') {\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492\n globalScope = self;\n }\n else {\n globalScope = global;\n }\n}\nelse {\n globalScope = window;\n}\nexport function scheduleMicroTask(fn) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\nexport const IS_DART = false;\n// Need to declare a new variable for global here since TypeScript\n// exports the original value of the symbol.\nvar _global = globalScope;\nexport { _global as global };\nexport var Type = Function;\nexport function getTypeNameForDebugging(type) {\n if (type['name']) {\n return type['name'];\n }\n return typeof type;\n}\nexport var Math = _global.Math;\nexport var Date = _global.Date;\nvar _devMode = true;\nvar _modeLocked = false;\nexport function lockMode() {\n _modeLocked = true;\n}\n/**\n * Disable Angular's development mode, which turns off assertions and other\n * checks within the framework.\n *\n * One important assertion this disables verifies that a change detection pass\n * does not result in additional changes to any bindings (also known as\n * unidirectional data flow).\n */\nexport function enableProdMode() {\n if (_modeLocked) {\n // Cannot use BaseException as that ends up importing from facade/lang.\n throw 'Cannot enable prod mode after platform setup.';\n }\n _devMode = false;\n}\nexport function assertionsEnabled() {\n return _devMode;\n}\n// TODO: remove calls to assert in production environment\n// Note: Can't just export this and import in in other files\n// as `assert` is a reserved keyword in Dart\n_global.assert = function assert(condition) {\n // TODO: to be fixed properly via #2830, noop for now\n};\nexport function isPresent(obj) {\n return obj !== undefined && obj !== null;\n}\nexport function isBlank(obj) {\n return obj === undefined || obj === null;\n}\nexport function isBoolean(obj) {\n return typeof obj === \"boolean\";\n}\nexport function isNumber(obj) {\n return typeof obj === \"number\";\n}\nexport function isString(obj) {\n return typeof obj === \"string\";\n}\nexport function isFunction(obj) {\n return typeof obj === \"function\";\n}\nexport function isType(obj) {\n return isFunction(obj);\n}\nexport function isStringMap(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\nexport function isStrictStringMap(obj) {\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\nexport function isPromise(obj) {\n return obj instanceof _global.Promise;\n}\nexport function isArray(obj) {\n return Array.isArray(obj);\n}\nexport function isDate(obj) {\n return obj instanceof Date && !isNaN(obj.valueOf());\n}\nexport function noop() { }\nexport function stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (token === undefined || token === null) {\n return '' + token;\n }\n if (token.name) {\n return token.name;\n }\n if (token.overriddenName) {\n return token.overriddenName;\n }\n var res = token.toString();\n var newLineIndex = res.indexOf(\"\\n\");\n return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);\n}\n// serialize / deserialize enum exist only for consistency with dart API\n// enums in typescript don't need to be serialized\nexport function serializeEnum(val) {\n return val;\n}\nexport function deserializeEnum(val, values) {\n return val;\n}\nexport function resolveEnumToken(enumValue, val) {\n return enumValue[val];\n}\nexport class StringWrapper {\n static fromCharCode(code) { return String.fromCharCode(code); }\n static charCodeAt(s, index) { return s.charCodeAt(index); }\n static split(s, regExp) { return s.split(regExp); }\n static equals(s, s2) { return s === s2; }\n static stripLeft(s, charVal) {\n if (s && s.length) {\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n if (s[i] != charVal)\n break;\n pos++;\n }\n s = s.substring(pos);\n }\n return s;\n }\n static stripRight(s, charVal) {\n if (s && s.length) {\n var pos = s.length;\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] != charVal)\n break;\n pos--;\n }\n s = s.substring(0, pos);\n }\n return s;\n }\n static replace(s, from, replace) {\n return s.replace(from, replace);\n }\n static replaceAll(s, from, replace) {\n return s.replace(from, replace);\n }\n static slice(s, from = 0, to = null) {\n return s.slice(from, to === null ? undefined : to);\n }\n static replaceAllMapped(s, from, cb) {\n return s.replace(from, function (...matches) {\n // Remove offset & string from the result array\n matches.splice(-2, 2);\n // The callback receives match, p1, ..., pn\n return cb(matches);\n });\n }\n static contains(s, substr) { return s.indexOf(substr) != -1; }\n static compare(a, b) {\n if (a < b) {\n return -1;\n }\n else if (a > b) {\n return 1;\n }\n else {\n return 0;\n }\n }\n}\nexport class StringJoiner {\n constructor(parts = []) {\n this.parts = parts;\n }\n add(part) { this.parts.push(part); }\n toString() { return this.parts.join(\"\"); }\n}\nexport class NumberParseError extends Error {\n constructor(message) {\n super();\n this.message = message;\n }\n toString() { return this.message; }\n}\nexport class NumberWrapper {\n static toFixed(n, fractionDigits) { return n.toFixed(fractionDigits); }\n static equal(a, b) { return a === b; }\n static parseIntAutoRadix(text) {\n var result = parseInt(text);\n if (isNaN(result)) {\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text);\n }\n return result;\n }\n static parseInt(text, radix) {\n if (radix == 10) {\n if (/^(\\-|\\+)?[0-9]+$/.test(text)) {\n return parseInt(text, radix);\n }\n }\n else if (radix == 16) {\n if (/^(\\-|\\+)?[0-9ABCDEFabcdef]+$/.test(text)) {\n return parseInt(text, radix);\n }\n }\n else {\n var result = parseInt(text, radix);\n if (!isNaN(result)) {\n return result;\n }\n }\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text + \" in base \" +\n radix);\n }\n // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.\n static parseFloat(text) { return parseFloat(text); }\n static get NaN() { return NaN; }\n static isNaN(value) { return isNaN(value); }\n static isInteger(value) { return Number.isInteger(value); }\n}\nexport var RegExp = _global.RegExp;\nexport class RegExpWrapper {\n static create(regExpStr, flags = '') {\n flags = flags.replace(/g/g, '');\n return new _global.RegExp(regExpStr, flags + 'g');\n }\n static firstMatch(regExp, input) {\n // Reset multimatch regex state\n regExp.lastIndex = 0;\n return regExp.exec(input);\n }\n static test(regExp, input) {\n regExp.lastIndex = 0;\n return regExp.test(input);\n }\n static matcher(regExp, input) {\n // Reset regex state for the case\n // someone did not loop over all matches\n // last time.\n regExp.lastIndex = 0;\n return { re: regExp, input: input };\n }\n static replaceAll(regExp, input, replace) {\n let c = regExp.exec(input);\n let res = '';\n regExp.lastIndex = 0;\n let prev = 0;\n while (c) {\n res += input.substring(prev, c.index);\n res += replace(c);\n prev = c.index + c[0].length;\n regExp.lastIndex = prev;\n c = regExp.exec(input);\n }\n res += input.substring(prev);\n return res;\n }\n}\nexport class RegExpMatcherWrapper {\n static next(matcher) {\n return matcher.re.exec(matcher.input);\n }\n}\nexport class FunctionWrapper {\n static apply(fn, posArgs) { return fn.apply(null, posArgs); }\n}\n// JS has NaN !== NaN\nexport function looseIdentical(a, b) {\n return a === b || typeof a === \"number\" && typeof b === \"number\" && isNaN(a) && isNaN(b);\n}\n// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)\n// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map\nexport function getMapKey(value) {\n return value;\n}\nexport function normalizeBlank(obj) {\n return isBlank(obj) ? null : obj;\n}\nexport function normalizeBool(obj) {\n return isBlank(obj) ? false : obj;\n}\nexport function isJsObject(o) {\n return o !== null && (typeof o === \"function\" || typeof o === \"object\");\n}\nexport function print(obj) {\n console.log(obj);\n}\nexport function warn(obj) {\n console.warn(obj);\n}\n// Can't be all uppercase as our transpiler would think it is a special directive...\nexport class Json {\n static parse(s) { return _global.JSON.parse(s); }\n static stringify(data) {\n // Dart doesn't take 3 arguments\n return _global.JSON.stringify(data, null, 2);\n }\n}\nexport class DateWrapper {\n static create(year, month = 1, day = 1, hour = 0, minutes = 0, seconds = 0, milliseconds = 0) {\n return new Date(year, month - 1, day, hour, minutes, seconds, milliseconds);\n }\n static fromISOString(str) { return new Date(str); }\n static fromMillis(ms) { return new Date(ms); }\n static toMillis(date) { return date.getTime(); }\n static now() { return new Date(); }\n static toJson(date) { return date.toJSON(); }\n}\nexport function setValueOnPath(global, path, value) {\n var parts = path.split('.');\n var obj = global;\n while (parts.length > 1) {\n var name = parts.shift();\n if (obj.hasOwnProperty(name) && isPresent(obj[name])) {\n obj = obj[name];\n }\n else {\n obj = obj[name] = {};\n }\n }\n if (obj === undefined || obj === null) {\n obj = {};\n }\n obj[parts.shift()] = value;\n}\nvar _symbolIterator = null;\nexport function getSymbolIterator() {\n if (isBlank(_symbolIterator)) {\n if (isPresent(globalScope.Symbol) && isPresent(Symbol.iterator)) {\n _symbolIterator = Symbol.iterator;\n }\n else {\n // es6-shim specific logic\n var keys = Object.getOwnPropertyNames(Map.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (key !== 'entries' && key !== 'size' &&\n Map.prototype[key] === Map.prototype['entries']) {\n _symbolIterator = key;\n }\n }\n }\n }\n return _symbolIterator;\n}\nexport function evalExpression(sourceUrl, expr, declarations, vars) {\n var fnBody = `${declarations}\\nreturn ${expr}\\n//# sourceURL=${sourceUrl}`;\n var fnArgNames = [];\n var fnArgValues = [];\n for (var argName in vars) {\n fnArgNames.push(argName);\n fnArgValues.push(vars[argName]);\n }\n return new Function(...fnArgNames.concat(fnBody))(...fnArgValues);\n}\nexport function isPrimitive(obj) {\n return !isJsObject(obj);\n}\nexport function hasConstructor(value, type) {\n return value.constructor === type;\n}\nexport function bitWiseOr(values) {\n return values.reduce((a, b) => { return a | b; });\n}\nexport function bitWiseAnd(values) {\n return values.reduce((a, b) => { return a & b; });\n}\nexport function escape(s) {\n return _global.encodeURI(s);\n}\n//# sourceMappingURL=lang.js.map","import { __core_private__ as r } from '@angular/core';\nexport var RenderDebugInfo = r.RenderDebugInfo;\nexport var wtfInit = r.wtfInit;\nexport var ReflectionCapabilities = r.ReflectionCapabilities;\nexport var VIEW_ENCAPSULATION_VALUES = r.VIEW_ENCAPSULATION_VALUES;\nexport var DebugDomRootRenderer = r.DebugDomRootRenderer;\n//# sourceMappingURL=core_private.js.map","import { isJsObject, global, isPresent, isBlank, isArray, getSymbolIterator } from './lang';\nexport var Map = global.Map;\nexport var Set = global.Set;\n// Safari and Internet Explorer do not support the iterable parameter to the\n// Map constructor. We work around that by manually adding the items.\nvar createMapFromPairs = (function () {\n try {\n if (new Map([[1, 2]]).size === 1) {\n return function createMapFromPairs(pairs) { return new Map(pairs); };\n }\n }\n catch (e) {\n }\n return function createMapAndPopulateFromPairs(pairs) {\n var map = new Map();\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n map.set(pair[0], pair[1]);\n }\n return map;\n };\n})();\nvar createMapFromMap = (function () {\n try {\n if (new Map(new Map())) {\n return function createMapFromMap(m) { return new Map(m); };\n }\n }\n catch (e) {\n }\n return function createMapAndPopulateFromMap(m) {\n var map = new Map();\n m.forEach((v, k) => { map.set(k, v); });\n return map;\n };\n})();\nvar _clearValues = (function () {\n if ((new Map()).keys().next) {\n return function _clearValues(m) {\n var keyIterator = m.keys();\n var k;\n while (!((k = keyIterator.next()).done)) {\n m.set(k.value, null);\n }\n };\n }\n else {\n return function _clearValuesWithForeEach(m) {\n m.forEach((v, k) => { m.set(k, null); });\n };\n }\n})();\n// Safari doesn't implement MapIterator.next(), which is used is Traceur's polyfill of Array.from\n// TODO(mlaval): remove the work around once we have a working polyfill of Array.from\nvar _arrayFromMap = (function () {\n try {\n if ((new Map()).values().next) {\n return function createArrayFromMap(m, getValues) {\n return getValues ? Array.from(m.values()) : Array.from(m.keys());\n };\n }\n }\n catch (e) {\n }\n return function createArrayFromMapWithForeach(m, getValues) {\n var res = ListWrapper.createFixedSize(m.size), i = 0;\n m.forEach((v, k) => {\n res[i] = getValues ? v : k;\n i++;\n });\n return res;\n };\n})();\nexport class MapWrapper {\n static clone(m) { return createMapFromMap(m); }\n static createFromStringMap(stringMap) {\n var result = new Map();\n for (var prop in stringMap) {\n result.set(prop, stringMap[prop]);\n }\n return result;\n }\n static toStringMap(m) {\n var r = {};\n m.forEach((v, k) => r[k] = v);\n return r;\n }\n static createFromPairs(pairs) { return createMapFromPairs(pairs); }\n static clearValues(m) { _clearValues(m); }\n static iterable(m) { return m; }\n static keys(m) { return _arrayFromMap(m, false); }\n static values(m) { return _arrayFromMap(m, true); }\n}\n/**\n * Wraps Javascript Objects\n */\nexport class StringMapWrapper {\n static create() {\n // Note: We are not using Object.create(null) here due to\n // performance!\n // http://jsperf.com/ng2-object-create-null\n return {};\n }\n static contains(map, key) {\n return map.hasOwnProperty(key);\n }\n static get(map, key) {\n return map.hasOwnProperty(key) ? map[key] : undefined;\n }\n static set(map, key, value) { map[key] = value; }\n static keys(map) { return Object.keys(map); }\n static values(map) {\n return Object.keys(map).reduce((r, a) => {\n r.push(map[a]);\n return r;\n }, []);\n }\n static isEmpty(map) {\n for (var prop in map) {\n return false;\n }\n return true;\n }\n static delete(map, key) { delete map[key]; }\n static forEach(map, callback) {\n for (var prop in map) {\n if (map.hasOwnProperty(prop)) {\n callback(map[prop], prop);\n }\n }\n }\n static merge(m1, m2) {\n var m = {};\n for (var attr in m1) {\n if (m1.hasOwnProperty(attr)) {\n m[attr] = m1[attr];\n }\n }\n for (var attr in m2) {\n if (m2.hasOwnProperty(attr)) {\n m[attr] = m2[attr];\n }\n }\n return m;\n }\n static equals(m1, m2) {\n var k1 = Object.keys(m1);\n var k2 = Object.keys(m2);\n if (k1.length != k2.length) {\n return false;\n }\n var key;\n for (var i = 0; i < k1.length; i++) {\n key = k1[i];\n if (m1[key] !== m2[key]) {\n return false;\n }\n }\n return true;\n }\n}\nexport class ListWrapper {\n // JS has no way to express a statically fixed size list, but dart does so we\n // keep both methods.\n static createFixedSize(size) { return new Array(size); }\n static createGrowableSize(size) { return new Array(size); }\n static clone(array) { return array.slice(0); }\n static forEachWithIndex(array, fn) {\n for (var i = 0; i < array.length; i++) {\n fn(array[i], i);\n }\n }\n static first(array) {\n if (!array)\n return null;\n return array[0];\n }\n static last(array) {\n if (!array || array.length == 0)\n return null;\n return array[array.length - 1];\n }\n static indexOf(array, value, startIndex = 0) {\n return array.indexOf(value, startIndex);\n }\n static contains(list, el) { return list.indexOf(el) !== -1; }\n static reversed(array) {\n var a = ListWrapper.clone(array);\n return a.reverse();\n }\n static concat(a, b) { return a.concat(b); }\n static insert(list, index, value) { list.splice(index, 0, value); }\n static removeAt(list, index) {\n var res = list[index];\n list.splice(index, 1);\n return res;\n }\n static removeAll(list, items) {\n for (var i = 0; i < items.length; ++i) {\n var index = list.indexOf(items[i]);\n list.splice(index, 1);\n }\n }\n static remove(list, el) {\n var index = list.indexOf(el);\n if (index > -1) {\n list.splice(index, 1);\n return true;\n }\n return false;\n }\n static clear(list) { list.length = 0; }\n static isEmpty(list) { return list.length == 0; }\n static fill(list, value, start = 0, end = null) {\n list.fill(value, start, end === null ? list.length : end);\n }\n static equals(a, b) {\n if (a.length != b.length)\n return false;\n for (var i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n }\n static slice(l, from = 0, to = null) {\n return l.slice(from, to === null ? undefined : to);\n }\n static splice(l, from, length) { return l.splice(from, length); }\n static sort(l, compareFn) {\n if (isPresent(compareFn)) {\n l.sort(compareFn);\n }\n else {\n l.sort();\n }\n }\n static toString(l) { return l.toString(); }\n static toJSON(l) { return JSON.stringify(l); }\n static maximum(list, predicate) {\n if (list.length == 0) {\n return null;\n }\n var solution = null;\n var maxValue = -Infinity;\n for (var index = 0; index < list.length; index++) {\n var candidate = list[index];\n if (isBlank(candidate)) {\n continue;\n }\n var candidateValue = predicate(candidate);\n if (candidateValue > maxValue) {\n solution = candidate;\n maxValue = candidateValue;\n }\n }\n return solution;\n }\n static flatten(list) {\n var target = [];\n _flattenArray(list, target);\n return target;\n }\n static addAll(list, source) {\n for (var i = 0; i < source.length; i++) {\n list.push(source[i]);\n }\n }\n}\nfunction _flattenArray(source, target) {\n if (isPresent(source)) {\n for (var i = 0; i < source.length; i++) {\n var item = source[i];\n if (isArray(item)) {\n _flattenArray(item, target);\n }\n else {\n target.push(item);\n }\n }\n }\n return target;\n}\nexport function isListLikeIterable(obj) {\n if (!isJsObject(obj))\n return false;\n return isArray(obj) ||\n (!(obj instanceof Map) &&\n getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop\n}\nexport function areIterablesEqual(a, b, comparator) {\n var iterator1 = a[getSymbolIterator()]();\n var iterator2 = b[getSymbolIterator()]();\n while (true) {\n let item1 = iterator1.next();\n let item2 = iterator2.next();\n if (item1.done && item2.done)\n return true;\n if (item1.done || item2.done)\n return false;\n if (!comparator(item1.value, item2.value))\n return false;\n }\n}\nexport function iterateListLike(obj, fn) {\n if (isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n fn(obj[i]);\n }\n }\n else {\n var iterator = obj[getSymbolIterator()]();\n var item;\n while (!((item = iterator.next()).done)) {\n fn(item.value);\n }\n }\n}\n// Safari and Internet Explorer do not support the iterable parameter to the\n// Set constructor. We work around that by manually adding the items.\nvar createSetFromList = (function () {\n var test = new Set([1, 2, 3]);\n if (test.size === 3) {\n return function createSetFromList(lst) { return new Set(lst); };\n }\n else {\n return function createSetAndPopulateFromList(lst) {\n var res = new Set(lst);\n if (res.size !== lst.length) {\n for (var i = 0; i < lst.length; i++) {\n res.add(lst[i]);\n }\n }\n return res;\n };\n }\n})();\nexport class SetWrapper {\n static createFromList(lst) { return createSetFromList(lst); }\n static has(s, key) { return s.has(key); }\n static delete(m, k) { m.delete(k); }\n}\n//# sourceMappingURL=collection.js.map","import { isBlank } from '../../src/facade/lang';\nvar _DOM = null;\nexport function getDOM() {\n return _DOM;\n}\nexport function setDOM(adapter) {\n _DOM = adapter;\n}\nexport function setRootDomAdapter(adapter) {\n if (isBlank(_DOM)) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n */\nexport class DomAdapter {\n constructor() {\n this.xhrType = null;\n }\n /** @deprecated */\n getXHR() { return this.xhrType; }\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap() { return this._attrToPropMap; }\n ;\n set attrToPropMap(value) { this._attrToPropMap = value; }\n ;\n}\n//# sourceMappingURL=dom_adapter.js.map","import { StringMapWrapper } from '../../src/facade/collection';\nimport { isPresent, isFunction } from '../../src/facade/lang';\nimport { DomAdapter } from '../dom/dom_adapter';\n/**\n * Provides DOM operations in any browser environment.\n */\nexport class GenericBrowserDomAdapter extends DomAdapter {\n constructor() {\n super();\n this._animationPrefix = null;\n this._transitionEnd = null;\n try {\n var element = this.createElement('div', this.defaultDoc());\n if (isPresent(this.getStyle(element, 'animationName'))) {\n this._animationPrefix = '';\n }\n else {\n var domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n for (var i = 0; i < domPrefixes.length; i++) {\n if (isPresent(this.getStyle(element, domPrefixes[i] + 'AnimationName'))) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n var transEndEventNames = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n StringMapWrapper.forEach(transEndEventNames, (value, key) => {\n if (isPresent(this.getStyle(element, key))) {\n this._transitionEnd = value;\n }\n });\n }\n catch (e) {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n getDistributedNodes(el) { return el.getDistributedNodes(); }\n resolveAndSetHref(el, baseUrl, href) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents() { return true; }\n supportsNativeShadowDOM() {\n return isFunction(this.defaultDoc().body.createShadowRoot);\n }\n getAnimationPrefix() {\n return isPresent(this._animationPrefix) ? this._animationPrefix : \"\";\n }\n getTransitionEnd() { return isPresent(this._transitionEnd) ? this._transitionEnd : \"\"; }\n supportsAnimation() {\n return isPresent(this._animationPrefix) && isPresent(this._transitionEnd);\n }\n}\n//# sourceMappingURL=generic_browser_adapter.js.map","import { ListWrapper } from '../../src/facade/collection';\nimport { isBlank, isPresent, global, setValueOnPath, DateWrapper } from '../../src/facade/lang';\nimport { GenericBrowserDomAdapter } from './generic_browser_adapter';\nimport { setRootDomAdapter } from '../dom/dom_adapter';\nvar _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex'\n};\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nvar _keyMap = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nvar _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n */\n/* tslint:disable:requireParameterType */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml) { throw new Error(\"parse not implemented\"); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element, name) { return name in element; }\n setProperty(el, name, value) { el[name] = value; }\n getProperty(el, name) { return el[name]; }\n invoke(el, methodName, args) {\n el[methodName].apply(el, args);\n }\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error) {\n if (window.console.error) {\n window.console.error(error);\n }\n else {\n window.console.log(error);\n }\n }\n log(error) { window.console.log(error); }\n logGroup(error) {\n if (window.console.group) {\n window.console.group(error);\n this.logError(error);\n }\n else {\n window.console.log(error);\n }\n }\n logGroupEnd() {\n if (window.console.groupEnd) {\n window.console.groupEnd();\n }\n }\n get attrToPropMap() { return _attrToPropMap; }\n query(selector) { return document.querySelector(selector); }\n querySelector(el, selector) { return el.querySelector(selector); }\n querySelectorAll(el, selector) { return el.querySelectorAll(selector); }\n on(el, evt, listener) { el.addEventListener(evt, listener, false); }\n onAndCancel(el, evt, listener) {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el, evt) { el.dispatchEvent(evt); }\n createMouseEvent(eventType) {\n var evt = document.createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType) {\n var evt = document.createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt) {\n return evt.defaultPrevented || isPresent(evt.returnValue) && !evt.returnValue;\n }\n getInnerHTML(el) { return el.innerHTML; }\n getOuterHTML(el) { return el.outerHTML; }\n nodeName(node) { return node.nodeName; }\n nodeValue(node) { return node.nodeValue; }\n type(node) { return node.type; }\n content(node) {\n if (this.hasProperty(node, \"content\")) {\n return node.content;\n }\n else {\n return node;\n }\n }\n firstChild(el) { return el.firstChild; }\n nextSibling(el) { return el.nextSibling; }\n parentElement(el) { return el.parentNode; }\n childNodes(el) { return el.childNodes; }\n childNodesAsList(el) {\n var childNodes = el.childNodes;\n var res = ListWrapper.createFixedSize(childNodes.length);\n for (var i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el, node) { el.appendChild(node); }\n removeChild(el, node) { el.removeChild(node); }\n replaceChild(el, newChild, oldChild) { el.replaceChild(newChild, oldChild); }\n remove(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(el, node) { el.parentNode.insertBefore(node, el); }\n insertAllBefore(el, nodes) { nodes.forEach(n => el.parentNode.insertBefore(n, el)); }\n insertAfter(el, node) { el.parentNode.insertBefore(node, el.nextSibling); }\n setInnerHTML(el, value) { el.innerHTML = value; }\n getText(el) { return el.textContent; }\n // TODO(vicb): removed Element type because it does not support StyleElement\n setText(el, value) { el.textContent = value; }\n getValue(el) { return el.value; }\n setValue(el, value) { el.value = value; }\n getChecked(el) { return el.checked; }\n setChecked(el, value) { el.checked = value; }\n createComment(text) { return document.createComment(text); }\n createTemplate(html) {\n var t = document.createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName, doc = document) { return doc.createElement(tagName); }\n createElementNS(ns, tagName, doc = document) { return doc.createElementNS(ns, tagName); }\n createTextNode(text, doc = document) { return doc.createTextNode(text); }\n createScriptTag(attrName, attrValue, doc = document) {\n var el = doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css, doc = document) {\n var style = doc.createElement('style');\n this.appendChild(style, this.createTextNode(css));\n return style;\n }\n createShadowRoot(el) { return el.createShadowRoot(); }\n getShadowRoot(el) { return el.shadowRoot; }\n getHost(el) { return el.host; }\n clone(node) { return node.cloneNode(true); }\n getElementsByClassName(element, name) {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element, name) {\n return element.getElementsByTagName(name);\n }\n classList(element) { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element, className) { element.classList.add(className); }\n removeClass(element, className) { element.classList.remove(className); }\n hasClass(element, className) { return element.classList.contains(className); }\n setStyle(element, styleName, styleValue) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element, stylename) { element.style[stylename] = null; }\n getStyle(element, stylename) { return element.style[stylename]; }\n hasStyle(element, styleName, styleValue = null) {\n var value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element) { return element.tagName; }\n attributeMap(element) {\n var res = new Map();\n var elAttrs = element.attributes;\n for (var i = 0; i < elAttrs.length; i++) {\n var attrib = elAttrs[i];\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element, attribute) { return element.hasAttribute(attribute); }\n hasAttributeNS(element, ns, attribute) {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element, attribute) { return element.getAttribute(attribute); }\n getAttributeNS(element, ns, name) {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element, name, value) { element.setAttribute(name, value); }\n setAttributeNS(element, ns, name, value) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element, attribute) { element.removeAttribute(attribute); }\n removeAttributeNS(element, ns, name) { element.removeAttributeNS(ns, name); }\n templateAwareRoot(el) { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument() {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n defaultDoc() { return document; }\n getBoundingClientRect(el) {\n try {\n return el.getBoundingClientRect();\n }\n catch (e) {\n return { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 };\n }\n }\n getTitle() { return document.title; }\n setTitle(newTitle) { document.title = newTitle || ''; }\n elementMatches(n, selector) {\n var matches = false;\n if (n instanceof HTMLElement) {\n if (n.matches) {\n matches = n.matches(selector);\n }\n else if (n.msMatchesSelector) {\n matches = n.msMatchesSelector(selector);\n }\n else if (n.webkitMatchesSelector) {\n matches = n.webkitMatchesSelector(selector);\n }\n }\n return matches;\n }\n isTemplateElement(el) {\n return el instanceof HTMLElement && el.nodeName == \"TEMPLATE\";\n }\n isTextNode(node) { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node) { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node) { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node) { return node instanceof HTMLElement && isPresent(node.shadowRoot); }\n isShadowRoot(node) { return node instanceof DocumentFragment; }\n importIntoDoc(node) {\n var toImport = node;\n if (this.isTemplateElement(node)) {\n toImport = this.content(node);\n }\n return document.importNode(toImport, true);\n }\n adoptNode(node) { return document.adoptNode(node); }\n getHref(el) { return el.href; }\n getEventKey(event) {\n var key = event.key;\n if (isBlank(key)) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari\n // cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (isBlank(key)) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = _chromeNumKeyPadMap[key];\n }\n }\n }\n if (_keyMap.hasOwnProperty(key)) {\n key = _keyMap[key];\n }\n return key;\n }\n getGlobalEventTarget(target) {\n if (target == \"window\") {\n return window;\n }\n else if (target == \"document\") {\n return document;\n }\n else if (target == \"body\") {\n return document.body;\n }\n }\n getHistory() { return window.history; }\n getLocation() { return window.location; }\n getBaseHref() {\n var href = getBaseElementHref();\n if (isBlank(href)) {\n return null;\n }\n return relativePath(href);\n }\n resetBaseElement() { baseElement = null; }\n getUserAgent() { return window.navigator.userAgent; }\n setData(element, name, value) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element, name) { return this.getAttribute(element, 'data-' + name); }\n getComputedStyle(element) { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n setGlobalVar(path, value) { setValueOnPath(global, path, value); }\n requestAnimationFrame(callback) { return window.requestAnimationFrame(callback); }\n cancelAnimationFrame(id) { window.cancelAnimationFrame(id); }\n performanceNow() {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n if (isPresent(window.performance) && isPresent(window.performance.now)) {\n return window.performance.now();\n }\n else {\n return DateWrapper.toMillis(DateWrapper.now());\n }\n }\n}\nvar baseElement = null;\nfunction getBaseElementHref() {\n if (isBlank(baseElement)) {\n baseElement = document.querySelector('base');\n if (isBlank(baseElement)) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n// based on urlUtils.js in AngularJS 1\nvar urlParsingNode = null;\nfunction relativePath(url) {\n if (isBlank(urlParsingNode)) {\n urlParsingNode = document.createElement(\"a\");\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n//# sourceMappingURL=browser_adapter.js.map","import { setTestabilityGetter } from '@angular/core';\nimport { ListWrapper } from '../../src/facade/collection';\nimport { global, isPresent } from '../../src/facade/lang';\nimport { getDOM } from '../dom/dom_adapter';\nclass PublicTestability {\n constructor(testability) {\n this._testability = testability;\n }\n isStable() { return this._testability.isStable(); }\n whenStable(callback) { this._testability.whenStable(callback); }\n findBindings(using, provider, exactMatch) {\n return this.findProviders(using, provider, exactMatch);\n }\n findProviders(using, provider, exactMatch) {\n return this._testability.findBindings(using, provider, exactMatch);\n }\n}\nexport class BrowserGetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n addToWindow(registry) {\n global.getAngularTestability = (elem, findInAncestors = true) => {\n var testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return new PublicTestability(testability);\n };\n global.getAllAngularTestabilities = () => {\n var testabilities = registry.getAllTestabilities();\n return testabilities.map((testability) => { return new PublicTestability(testability); });\n };\n global.getAllAngularRootElements = () => registry.getAllRootElements();\n var whenAllStable = (callback) => {\n var testabilities = global.getAllAngularTestabilities();\n var count = testabilities.length;\n var didWork = false;\n var decrement = function (didWork_) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function (testability) { testability.whenStable(decrement); });\n };\n if (!global.frameworkStabilizers) {\n global.frameworkStabilizers = ListWrapper.createGrowableSize(0);\n }\n global.frameworkStabilizers.push(whenAllStable);\n }\n findTestabilityInTree(registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n var t = registry.getTestability(elem);\n if (isPresent(t)) {\n return t;\n }\n else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n//# sourceMappingURL=testability.js.map","import { OpaqueToken } from '@angular/core';\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n */\nexport const DOCUMENT = new OpaqueToken('DocumentToken');\n//# sourceMappingURL=dom_tokens.js.map","import { BaseWrappedException } from './base_wrapped_exception';\nimport { ExceptionHandler } from './exception_handler';\nexport { ExceptionHandler } from './exception_handler';\nexport class BaseException extends Error {\n constructor(message = \"--\") {\n super(message);\n this.message = message;\n this.stack = (new Error(message)).stack;\n }\n toString() { return this.message; }\n}\n/**\n * Wraps an exception and provides additional context or information.\n */\nexport class WrappedException extends BaseWrappedException {\n constructor(_wrapperMessage, _originalException, _originalStack, _context) {\n super(_wrapperMessage);\n this._wrapperMessage = _wrapperMessage;\n this._originalException = _originalException;\n this._originalStack = _originalStack;\n this._context = _context;\n this._wrapperStack = (new Error(_wrapperMessage)).stack;\n }\n get wrapperMessage() { return this._wrapperMessage; }\n get wrapperStack() { return this._wrapperStack; }\n get originalException() { return this._originalException; }\n get originalStack() { return this._originalStack; }\n get context() { return this._context; }\n get message() { return ExceptionHandler.exceptionToString(this); }\n toString() { return this.message; }\n}\nexport function makeTypeError(message) {\n return new TypeError(message);\n}\nexport function unimplemented() {\n throw new BaseException('unimplemented');\n}\n//# sourceMappingURL=exceptions.js.map","import { Injectable, Inject, OpaqueToken, NgZone } from '@angular/core';\nimport { BaseException } from '../../../src/facade/exceptions';\nimport { ListWrapper } from '../../../src/facade/collection';\nexport const EVENT_MANAGER_PLUGINS = \n/*@ts2dart_const*/ new OpaqueToken(\"EventManagerPlugins\");\nexport class EventManager {\n constructor(plugins, _zone) {\n this._zone = _zone;\n plugins.forEach(p => p.manager = this);\n this._plugins = ListWrapper.reversed(plugins);\n }\n addEventListener(element, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n addGlobalEventListener(target, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n getZone() { return this._zone; }\n /** @internal */\n _findPluginFor(eventName) {\n var plugins = this._plugins;\n for (var i = 0; i < plugins.length; i++) {\n var plugin = plugins[i];\n if (plugin.supports(eventName)) {\n return plugin;\n }\n }\n throw new BaseException(`No event manager plugin found for event ${eventName}`);\n }\n}\nEventManager.decorators = [\n { type: Injectable },\n];\nEventManager.ctorParameters = [\n { type: undefined, decorators: [{ type: Inject, args: [EVENT_MANAGER_PLUGINS,] },] },\n { type: NgZone, },\n];\nexport class EventManagerPlugin {\n // That is equivalent to having supporting $event.target\n supports(eventName) { return false; }\n addEventListener(element, eventName, handler) {\n throw \"not implemented\";\n }\n addGlobalEventListener(element, eventName, handler) {\n throw \"not implemented\";\n }\n}\n//# sourceMappingURL=event_manager.js.map","export class CssAnimationOptions {\n constructor() {\n /** classes to be added to the element */\n this.classesToAdd = [];\n /** classes to be removed from the element */\n this.classesToRemove = [];\n /** classes to be added for the duration of the animation */\n this.animationClasses = [];\n }\n}\n//# sourceMappingURL=css_animation_options.js.map","import { global } from './lang';\nexport var Math = global.Math;\nexport var NaN = typeof NaN;\n//# sourceMappingURL=math.js.map","import { StringWrapper } from '../../src/facade/lang';\nvar CAMEL_CASE_REGEXP = /([A-Z])/g;\nvar DASH_CASE_REGEXP = /-([a-z])/g;\nexport function camelCaseToDashCase(input) {\n return StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP, (m) => { return '-' + m[1].toLowerCase(); });\n}\nexport function dashCaseToCamelCase(input) {\n return StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP, (m) => { return m[1].toUpperCase(); });\n}\n//# sourceMappingURL=util.js.map","import { DateWrapper, StringWrapper, RegExpWrapper, NumberWrapper, isPresent } from '../../src/facade/lang';\nimport { Math } from '../../src/facade/math';\nimport { StringMapWrapper } from '../../src/facade/collection';\nimport { camelCaseToDashCase } from '../dom/util';\nimport { getDOM } from '../dom/dom_adapter';\nexport class Animation {\n /**\n * Stores the start time and starts the animation\n * @param element\n * @param data\n * @param browserDetails\n */\n constructor(element, data, browserDetails) {\n this.element = element;\n this.data = data;\n this.browserDetails = browserDetails;\n /** functions to be called upon completion */\n this.callbacks = [];\n /** functions for removing event listeners */\n this.eventClearFunctions = [];\n /** flag used to track whether or not the animation has finished */\n this.completed = false;\n this._stringPrefix = '';\n this.startTime = DateWrapper.toMillis(DateWrapper.now());\n this._stringPrefix = getDOM().getAnimationPrefix();\n this.setup();\n this.wait((timestamp) => this.start());\n }\n /** total amount of time that the animation should take including delay */\n get totalTime() {\n let delay = this.computedDelay != null ? this.computedDelay : 0;\n let duration = this.computedDuration != null ? this.computedDuration : 0;\n return delay + duration;\n }\n wait(callback) {\n // Firefox requires 2 frames for some reason\n this.browserDetails.raf(callback, 2);\n }\n /**\n * Sets up the initial styles before the animation is started\n */\n setup() {\n if (this.data.fromStyles != null)\n this.applyStyles(this.data.fromStyles);\n if (this.data.duration != null)\n this.applyStyles({ 'transitionDuration': this.data.duration.toString() + 'ms' });\n if (this.data.delay != null)\n this.applyStyles({ 'transitionDelay': this.data.delay.toString() + 'ms' });\n }\n /**\n * After the initial setup has occurred, this method adds the animation styles\n */\n start() {\n this.addClasses(this.data.classesToAdd);\n this.addClasses(this.data.animationClasses);\n this.removeClasses(this.data.classesToRemove);\n if (this.data.toStyles != null)\n this.applyStyles(this.data.toStyles);\n var computedStyles = getDOM().getComputedStyle(this.element);\n this.computedDelay =\n Math.max(this.parseDurationString(computedStyles.getPropertyValue(this._stringPrefix + 'transition-delay')), this.parseDurationString(this.element.style.getPropertyValue(this._stringPrefix + 'transition-delay')));\n this.computedDuration = Math.max(this.parseDurationString(computedStyles.getPropertyValue(this._stringPrefix + 'transition-duration')), this.parseDurationString(this.element.style.getPropertyValue(this._stringPrefix + 'transition-duration')));\n this.addEvents();\n }\n /**\n * Applies the provided styles to the element\n * @param styles\n */\n applyStyles(styles) {\n StringMapWrapper.forEach(styles, (value, key) => {\n var dashCaseKey = camelCaseToDashCase(key);\n if (isPresent(getDOM().getStyle(this.element, dashCaseKey))) {\n getDOM().setStyle(this.element, dashCaseKey, value.toString());\n }\n else {\n getDOM().setStyle(this.element, this._stringPrefix + dashCaseKey, value.toString());\n }\n });\n }\n /**\n * Adds the provided classes to the element\n * @param classes\n */\n addClasses(classes) {\n for (let i = 0, len = classes.length; i < len; i++)\n getDOM().addClass(this.element, classes[i]);\n }\n /**\n * Removes the provided classes from the element\n * @param classes\n */\n removeClasses(classes) {\n for (let i = 0, len = classes.length; i < len; i++)\n getDOM().removeClass(this.element, classes[i]);\n }\n /**\n * Adds events to track when animations have finished\n */\n addEvents() {\n if (this.totalTime > 0) {\n this.eventClearFunctions.push(getDOM().onAndCancel(this.element, getDOM().getTransitionEnd(), (event) => this.handleAnimationEvent(event)));\n }\n else {\n this.handleAnimationCompleted();\n }\n }\n handleAnimationEvent(event) {\n let elapsedTime = Math.round(event.elapsedTime * 1000);\n if (!this.browserDetails.elapsedTimeIncludesDelay)\n elapsedTime += this.computedDelay;\n event.stopPropagation();\n if (elapsedTime >= this.totalTime)\n this.handleAnimationCompleted();\n }\n /**\n * Runs all animation callbacks and removes temporary classes\n */\n handleAnimationCompleted() {\n this.removeClasses(this.data.animationClasses);\n this.callbacks.forEach(callback => callback());\n this.callbacks = [];\n this.eventClearFunctions.forEach(fn => fn());\n this.eventClearFunctions = [];\n this.completed = true;\n }\n /**\n * Adds animation callbacks to be called upon completion\n * @param callback\n * @returns {Animation}\n */\n onComplete(callback) {\n if (this.completed) {\n callback();\n }\n else {\n this.callbacks.push(callback);\n }\n return this;\n }\n /**\n * Converts the duration string to the number of milliseconds\n * @param duration\n * @returns {number}\n */\n parseDurationString(duration) {\n var maxValue = 0;\n // duration must have at least 2 characters to be valid. (number + type)\n if (duration == null || duration.length < 2) {\n return maxValue;\n }\n else if (duration.substring(duration.length - 2) == 'ms') {\n let value = NumberWrapper.parseInt(this.stripLetters(duration), 10);\n if (value > maxValue)\n maxValue = value;\n }\n else if (duration.substring(duration.length - 1) == 's') {\n let ms = NumberWrapper.parseFloat(this.stripLetters(duration)) * 1000;\n let value = Math.floor(ms);\n if (value > maxValue)\n maxValue = value;\n }\n return maxValue;\n }\n /**\n * Strips the letters from the duration string\n * @param str\n * @returns {string}\n */\n stripLetters(str) {\n return StringWrapper.replaceAll(str, RegExpWrapper.create('[^0-9]+$', ''), '');\n }\n}\n//# sourceMappingURL=animation.js.map","import { CssAnimationOptions } from './css_animation_options';\nimport { Animation } from './animation';\nexport class CssAnimationBuilder {\n /**\n * Accepts public properties for CssAnimationBuilder\n */\n constructor(browserDetails) {\n this.browserDetails = browserDetails;\n /** @type {CssAnimationOptions} */\n this.data = new CssAnimationOptions();\n }\n /**\n * Adds a temporary class that will be removed at the end of the animation\n * @param className\n */\n addAnimationClass(className) {\n this.data.animationClasses.push(className);\n return this;\n }\n /**\n * Adds a class that will remain on the element after the animation has finished\n * @param className\n */\n addClass(className) {\n this.data.classesToAdd.push(className);\n return this;\n }\n /**\n * Removes a class from the element\n * @param className\n */\n removeClass(className) {\n this.data.classesToRemove.push(className);\n return this;\n }\n /**\n * Sets the animation duration (and overrides any defined through CSS)\n * @param duration\n */\n setDuration(duration) {\n this.data.duration = duration;\n return this;\n }\n /**\n * Sets the animation delay (and overrides any defined through CSS)\n * @param delay\n */\n setDelay(delay) {\n this.data.delay = delay;\n return this;\n }\n /**\n * Sets styles for both the initial state and the destination state\n * @param from\n * @param to\n */\n setStyles(from, to) {\n return this.setFromStyles(from).setToStyles(to);\n }\n /**\n * Sets the initial styles for the animation\n * @param from\n */\n setFromStyles(from) {\n this.data.fromStyles = from;\n return this;\n }\n /**\n * Sets the destination styles for the animation\n * @param to\n */\n setToStyles(to) {\n this.data.toStyles = to;\n return this;\n }\n /**\n * Starts the animation and returns a promise\n * @param element\n */\n start(element) {\n return new Animation(element, this.data, this.browserDetails);\n }\n}\n//# sourceMappingURL=css_animation_builder.js.map","import { Injectable } from '@angular/core';\nimport { Math } from '../../src/facade/math';\nimport { getDOM } from '../dom/dom_adapter';\nexport class BrowserDetails {\n constructor() {\n this.elapsedTimeIncludesDelay = false;\n this.doesElapsedTimeIncludesDelay();\n }\n /**\n * Determines if `event.elapsedTime` includes transition delay in the current browser. At this\n * time, Chrome and Opera seem to be the only browsers that include this.\n */\n doesElapsedTimeIncludesDelay() {\n var div = getDOM().createElement('div');\n getDOM().setAttribute(div, 'style', `position: absolute; top: -9999px; left: -9999px; width: 1px;\n height: 1px; transition: all 1ms linear 1ms;`);\n // Firefox requires that we wait for 2 frames for some reason\n this.raf((timestamp) => {\n getDOM().on(div, 'transitionend', (event) => {\n var elapsed = Math.round(event.elapsedTime * 1000);\n this.elapsedTimeIncludesDelay = elapsed == 2;\n getDOM().remove(div);\n });\n getDOM().setStyle(div, 'width', '2px');\n }, 2);\n }\n raf(callback, frames = 1) {\n var queue = new RafQueue(callback, frames);\n return () => queue.cancel();\n }\n}\nBrowserDetails.decorators = [\n { type: Injectable },\n];\nBrowserDetails.ctorParameters = [];\nclass RafQueue {\n constructor(callback, frames) {\n this.callback = callback;\n this.frames = frames;\n this._raf();\n }\n _raf() {\n this.currentFrameId =\n getDOM().requestAnimationFrame((timestamp) => this._nextFrame(timestamp));\n }\n _nextFrame(timestamp) {\n this.frames--;\n if (this.frames > 0) {\n this._raf();\n }\n else {\n this.callback(timestamp);\n }\n }\n cancel() {\n getDOM().cancelAnimationFrame(this.currentFrameId);\n this.currentFrameId = null;\n }\n}\n//# sourceMappingURL=browser_details.js.map","import { Injectable } from '@angular/core';\nimport { CssAnimationBuilder } from './css_animation_builder';\nimport { BrowserDetails } from './browser_details';\nexport class AnimationBuilder {\n /**\n * Used for DI\n * @param browserDetails\n */\n constructor(browserDetails) {\n this.browserDetails = browserDetails;\n }\n /**\n * Creates a new CSS Animation\n * @returns {CssAnimationBuilder}\n */\n css() { return new CssAnimationBuilder(this.browserDetails); }\n}\nAnimationBuilder.decorators = [\n { type: Injectable },\n];\nAnimationBuilder.ctorParameters = [\n { type: BrowserDetails, },\n];\n//# sourceMappingURL=animation_builder.js.map","import { Inject, Injectable } from '@angular/core';\nimport { SetWrapper } from '../../src/facade/collection';\nimport { getDOM } from './dom_adapter';\nimport { DOCUMENT } from './dom_tokens';\nexport class SharedStylesHost {\n constructor() {\n /** @internal */\n this._styles = [];\n /** @internal */\n this._stylesSet = new Set();\n }\n addStyles(styles) {\n var additions = [];\n styles.forEach(style => {\n if (!SetWrapper.has(this._stylesSet, style)) {\n this._stylesSet.add(style);\n this._styles.push(style);\n additions.push(style);\n }\n });\n this.onStylesAdded(additions);\n }\n onStylesAdded(additions) { }\n getAllStyles() { return this._styles; }\n}\nSharedStylesHost.decorators = [\n { type: Injectable },\n];\nSharedStylesHost.ctorParameters = [];\nexport class DomSharedStylesHost extends SharedStylesHost {\n constructor(doc) {\n super();\n this._hostNodes = new Set();\n this._hostNodes.add(doc.head);\n }\n /** @internal */\n _addStylesToHost(styles, host) {\n for (var i = 0; i < styles.length; i++) {\n var style = styles[i];\n getDOM().appendChild(host, getDOM().createStyleElement(style));\n }\n }\n addHost(hostNode) {\n this._addStylesToHost(this._styles, hostNode);\n this._hostNodes.add(hostNode);\n }\n removeHost(hostNode) { SetWrapper.delete(this._hostNodes, hostNode); }\n onStylesAdded(additions) {\n this._hostNodes.forEach((hostNode) => { this._addStylesToHost(additions, hostNode); });\n }\n}\nDomSharedStylesHost.decorators = [\n { type: Injectable },\n];\nDomSharedStylesHost.ctorParameters = [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] },] },\n];\n//# sourceMappingURL=shared_styles_host.js.map","import { Inject, Injectable, ViewEncapsulation } from '@angular/core';\nimport { AnimationBuilder } from '../animate/animation_builder';\nimport { isPresent, isBlank, Json, RegExpWrapper, stringify, StringWrapper, isArray, isString } from '../../src/facade/lang';\nimport { BaseException } from '../../src/facade/exceptions';\nimport { DomSharedStylesHost } from './shared_styles_host';\nimport { EventManager } from './events/event_manager';\nimport { DOCUMENT } from './dom_tokens';\nimport { getDOM } from './dom_adapter';\nimport { camelCaseToDashCase } from './util';\nconst NAMESPACE_URIS = \n/*@ts2dart_const*/\n{ 'xlink': 'http://www.w3.org/1999/xlink', 'svg': 'http://www.w3.org/2000/svg' };\nconst TEMPLATE_COMMENT_TEXT = 'template bindings={}';\nvar TEMPLATE_BINDINGS_EXP = /^template bindings=(.*)$/g;\nexport class DomRootRenderer {\n constructor(document, eventManager, sharedStylesHost, animate) {\n this.document = document;\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.animate = animate;\n this._registeredComponents = new Map();\n }\n renderComponent(componentProto) {\n var renderer = this._registeredComponents.get(componentProto.id);\n if (isBlank(renderer)) {\n renderer = new DomRenderer(this, componentProto);\n this._registeredComponents.set(componentProto.id, renderer);\n }\n return renderer;\n }\n}\nexport class DomRootRenderer_ extends DomRootRenderer {\n constructor(_document, _eventManager, sharedStylesHost, animate) {\n super(_document, _eventManager, sharedStylesHost, animate);\n }\n}\nDomRootRenderer_.decorators = [\n { type: Injectable },\n];\nDomRootRenderer_.ctorParameters = [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] },] },\n { type: EventManager, },\n { type: DomSharedStylesHost, },\n { type: AnimationBuilder, },\n];\nexport class DomRenderer {\n constructor(_rootRenderer, componentProto) {\n this._rootRenderer = _rootRenderer;\n this.componentProto = componentProto;\n this._styles = _flattenStyles(componentProto.id, componentProto.styles, []);\n if (componentProto.encapsulation !== ViewEncapsulation.Native) {\n this._rootRenderer.sharedStylesHost.addStyles(this._styles);\n }\n if (this.componentProto.encapsulation === ViewEncapsulation.Emulated) {\n this._contentAttr = _shimContentAttribute(componentProto.id);\n this._hostAttr = _shimHostAttribute(componentProto.id);\n }\n else {\n this._contentAttr = null;\n this._hostAttr = null;\n }\n }\n selectRootElement(selectorOrNode, debugInfo) {\n var el;\n if (isString(selectorOrNode)) {\n el = getDOM().querySelector(this._rootRenderer.document, selectorOrNode);\n if (isBlank(el)) {\n throw new BaseException(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n }\n else {\n el = selectorOrNode;\n }\n getDOM().clearNodes(el);\n return el;\n }\n createElement(parent, name, debugInfo) {\n var nsAndName = splitNamespace(name);\n var el = isPresent(nsAndName[0]) ?\n getDOM().createElementNS(NAMESPACE_URIS[nsAndName[0]], nsAndName[1]) :\n getDOM().createElement(nsAndName[1]);\n if (isPresent(this._contentAttr)) {\n getDOM().setAttribute(el, this._contentAttr, '');\n }\n if (isPresent(parent)) {\n getDOM().appendChild(parent, el);\n }\n return el;\n }\n createViewRoot(hostElement) {\n var nodesParent;\n if (this.componentProto.encapsulation === ViewEncapsulation.Native) {\n nodesParent = getDOM().createShadowRoot(hostElement);\n this._rootRenderer.sharedStylesHost.addHost(nodesParent);\n for (var i = 0; i < this._styles.length; i++) {\n getDOM().appendChild(nodesParent, getDOM().createStyleElement(this._styles[i]));\n }\n }\n else {\n if (isPresent(this._hostAttr)) {\n getDOM().setAttribute(hostElement, this._hostAttr, '');\n }\n nodesParent = hostElement;\n }\n return nodesParent;\n }\n createTemplateAnchor(parentElement, debugInfo) {\n var comment = getDOM().createComment(TEMPLATE_COMMENT_TEXT);\n if (isPresent(parentElement)) {\n getDOM().appendChild(parentElement, comment);\n }\n return comment;\n }\n createText(parentElement, value, debugInfo) {\n var node = getDOM().createTextNode(value);\n if (isPresent(parentElement)) {\n getDOM().appendChild(parentElement, node);\n }\n return node;\n }\n projectNodes(parentElement, nodes) {\n if (isBlank(parentElement))\n return;\n appendNodes(parentElement, nodes);\n }\n attachViewAfter(node, viewRootNodes) {\n moveNodesAfterSibling(node, viewRootNodes);\n for (let i = 0; i < viewRootNodes.length; i++)\n this.animateNodeEnter(viewRootNodes[i]);\n }\n detachView(viewRootNodes) {\n for (var i = 0; i < viewRootNodes.length; i++) {\n var node = viewRootNodes[i];\n getDOM().remove(node);\n this.animateNodeLeave(node);\n }\n }\n destroyView(hostElement, viewAllNodes) {\n if (this.componentProto.encapsulation === ViewEncapsulation.Native && isPresent(hostElement)) {\n this._rootRenderer.sharedStylesHost.removeHost(getDOM().getShadowRoot(hostElement));\n }\n }\n listen(renderElement, name, callback) {\n return this._rootRenderer.eventManager.addEventListener(renderElement, name, decoratePreventDefault(callback));\n }\n listenGlobal(target, name, callback) {\n return this._rootRenderer.eventManager.addGlobalEventListener(target, name, decoratePreventDefault(callback));\n }\n setElementProperty(renderElement, propertyName, propertyValue) {\n getDOM().setProperty(renderElement, propertyName, propertyValue);\n }\n setElementAttribute(renderElement, attributeName, attributeValue) {\n var attrNs;\n var nsAndName = splitNamespace(attributeName);\n if (isPresent(nsAndName[0])) {\n attributeName = nsAndName[0] + ':' + nsAndName[1];\n attrNs = NAMESPACE_URIS[nsAndName[0]];\n }\n if (isPresent(attributeValue)) {\n if (isPresent(attrNs)) {\n getDOM().setAttributeNS(renderElement, attrNs, attributeName, attributeValue);\n }\n else {\n getDOM().setAttribute(renderElement, attributeName, attributeValue);\n }\n }\n else {\n if (isPresent(attrNs)) {\n getDOM().removeAttributeNS(renderElement, attrNs, nsAndName[1]);\n }\n else {\n getDOM().removeAttribute(renderElement, attributeName);\n }\n }\n }\n setBindingDebugInfo(renderElement, propertyName, propertyValue) {\n var dashCasedPropertyName = camelCaseToDashCase(propertyName);\n if (getDOM().isCommentNode(renderElement)) {\n var existingBindings = RegExpWrapper.firstMatch(TEMPLATE_BINDINGS_EXP, StringWrapper.replaceAll(getDOM().getText(renderElement), /\\n/g, ''));\n var parsedBindings = Json.parse(existingBindings[1]);\n parsedBindings[dashCasedPropertyName] = propertyValue;\n getDOM().setText(renderElement, StringWrapper.replace(TEMPLATE_COMMENT_TEXT, '{}', Json.stringify(parsedBindings)));\n }\n else {\n this.setElementAttribute(renderElement, propertyName, propertyValue);\n }\n }\n setElementClass(renderElement, className, isAdd) {\n if (isAdd) {\n getDOM().addClass(renderElement, className);\n }\n else {\n getDOM().removeClass(renderElement, className);\n }\n }\n setElementStyle(renderElement, styleName, styleValue) {\n if (isPresent(styleValue)) {\n getDOM().setStyle(renderElement, styleName, stringify(styleValue));\n }\n else {\n getDOM().removeStyle(renderElement, styleName);\n }\n }\n invokeElementMethod(renderElement, methodName, args) {\n getDOM().invoke(renderElement, methodName, args);\n }\n setText(renderNode, text) { getDOM().setText(renderNode, text); }\n /**\n * Performs animations if necessary\n * @param node\n */\n animateNodeEnter(node) {\n if (getDOM().isElementNode(node) && getDOM().hasClass(node, 'ng-animate')) {\n getDOM().addClass(node, 'ng-enter');\n this._rootRenderer.animate.css()\n .addAnimationClass('ng-enter-active')\n .start(node)\n .onComplete(() => { getDOM().removeClass(node, 'ng-enter'); });\n }\n }\n /**\n * If animations are necessary, performs animations then removes the element; otherwise, it just\n * removes the element.\n * @param node\n */\n animateNodeLeave(node) {\n if (getDOM().isElementNode(node) && getDOM().hasClass(node, 'ng-animate')) {\n getDOM().addClass(node, 'ng-leave');\n this._rootRenderer.animate.css()\n .addAnimationClass('ng-leave-active')\n .start(node)\n .onComplete(() => {\n getDOM().removeClass(node, 'ng-leave');\n getDOM().remove(node);\n });\n }\n else {\n getDOM().remove(node);\n }\n }\n}\nfunction moveNodesAfterSibling(sibling, nodes) {\n var parent = getDOM().parentElement(sibling);\n if (nodes.length > 0 && isPresent(parent)) {\n var nextSibling = getDOM().nextSibling(sibling);\n if (isPresent(nextSibling)) {\n for (var i = 0; i < nodes.length; i++) {\n getDOM().insertBefore(nextSibling, nodes[i]);\n }\n }\n else {\n for (var i = 0; i < nodes.length; i++) {\n getDOM().appendChild(parent, nodes[i]);\n }\n }\n }\n}\nfunction appendNodes(parent, nodes) {\n for (var i = 0; i < nodes.length; i++) {\n getDOM().appendChild(parent, nodes[i]);\n }\n}\nfunction decoratePreventDefault(eventHandler) {\n return (event) => {\n var allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n getDOM().preventDefault(event);\n }\n };\n}\nvar COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\nfunction _shimContentAttribute(componentShortId) {\n return StringWrapper.replaceAll(CONTENT_ATTR, COMPONENT_REGEX, componentShortId);\n}\nfunction _shimHostAttribute(componentShortId) {\n return StringWrapper.replaceAll(HOST_ATTR, COMPONENT_REGEX, componentShortId);\n}\nfunction _flattenStyles(compId, styles, target) {\n for (var i = 0; i < styles.length; i++) {\n var style = styles[i];\n if (isArray(style)) {\n _flattenStyles(compId, style, target);\n }\n else {\n style = StringWrapper.replaceAll(style, COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\nvar NS_PREFIX_RE = /^@([^:]+):(.+)/g;\nfunction splitNamespace(name) {\n if (name[0] != '@') {\n return [null, name];\n }\n let match = RegExpWrapper.firstMatch(NS_PREFIX_RE, name);\n return [match[1], match[2]];\n}\n//# sourceMappingURL=dom_renderer.js.map","import { Injectable } from '@angular/core';\nimport { isPresent, StringWrapper } from '../../../src/facade/lang';\nimport { StringMapWrapper, ListWrapper } from '../../../src/facade/collection';\nimport { getDOM } from '../dom_adapter';\nimport { EventManagerPlugin } from './event_manager';\nvar modifierKeys = ['alt', 'control', 'meta', 'shift'];\nvar modifierKeyGetters = {\n 'alt': (event) => event.altKey,\n 'control': (event) => event.ctrlKey,\n 'meta': (event) => event.metaKey,\n 'shift': (event) => event.shiftKey\n};\nexport class KeyEventsPlugin extends EventManagerPlugin {\n constructor() {\n super();\n }\n supports(eventName) {\n return isPresent(KeyEventsPlugin.parseEventName(eventName));\n }\n addEventListener(element, eventName, handler) {\n var parsedEvent = KeyEventsPlugin.parseEventName(eventName);\n var outsideHandler = KeyEventsPlugin.eventCallback(element, StringMapWrapper.get(parsedEvent, 'fullKey'), handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, StringMapWrapper.get(parsedEvent, 'domEventName'), outsideHandler);\n });\n }\n static parseEventName(eventName) {\n var parts = eventName.toLowerCase().split('.');\n var domEventName = parts.shift();\n if ((parts.length === 0) ||\n !(StringWrapper.equals(domEventName, 'keydown') ||\n StringWrapper.equals(domEventName, 'keyup'))) {\n return null;\n }\n var key = KeyEventsPlugin._normalizeKey(parts.pop());\n var fullKey = '';\n modifierKeys.forEach(modifierName => {\n if (ListWrapper.contains(parts, modifierName)) {\n ListWrapper.remove(parts, modifierName);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n var result = StringMapWrapper.create();\n StringMapWrapper.set(result, 'domEventName', domEventName);\n StringMapWrapper.set(result, 'fullKey', fullKey);\n return result;\n }\n static getEventFullKey(event) {\n var fullKey = '';\n var key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (StringWrapper.equals(key, ' ')) {\n key = 'space'; // for readability\n }\n else if (StringWrapper.equals(key, '.')) {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n modifierKeys.forEach(modifierName => {\n if (modifierName != key) {\n var modifierGetter = StringMapWrapper.get(modifierKeyGetters, modifierName);\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n static eventCallback(element, fullKey, handler, zone) {\n return (event) => {\n if (StringWrapper.equals(KeyEventsPlugin.getEventFullKey(event), fullKey)) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n /** @internal */\n static _normalizeKey(keyName) {\n // TODO: switch to a StringMap if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\nKeyEventsPlugin.decorators = [\n { type: Injectable },\n];\nKeyEventsPlugin.ctorParameters = [];\n//# sourceMappingURL=key_events.js.map","import { getDebugNode, RootRenderer, NgZone, ApplicationRef } from '@angular/core';\nimport { DebugDomRootRenderer } from '../../../core_private';\nimport { assertionsEnabled } from '../../facade/lang';\nimport { getDOM } from '../dom_adapter';\nimport { DomRootRenderer } from '../dom_renderer';\nconst CORE_TOKENS = { 'ApplicationRef': ApplicationRef, 'NgZone': NgZone };\nconst INSPECT_GLOBAL_NAME = 'ng.probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'ng.coreTokens';\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element) {\n return getDebugNode(element);\n}\nfunction _createConditionalRootRenderer(rootRenderer) {\n if (assertionsEnabled()) {\n return _createRootRenderer(rootRenderer);\n }\n return rootRenderer;\n}\nfunction _createRootRenderer(rootRenderer) {\n getDOM().setGlobalVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n getDOM().setGlobalVar(CORE_TOKENS_GLOBAL_NAME, CORE_TOKENS);\n return new DebugDomRootRenderer(rootRenderer);\n}\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS = [\n /*@ts2dart_Provider*/ {\n provide: RootRenderer,\n useFactory: _createConditionalRootRenderer,\n deps: [DomRootRenderer]\n }\n];\nexport const ELEMENT_PROBE_PROVIDERS_PROD_MODE = [\n /*@ts2dart_Provider*/ {\n provide: RootRenderer,\n useFactory: _createRootRenderer,\n deps: [DomRootRenderer]\n }\n];\n//# sourceMappingURL=ng_probe.js.map","import { Injectable } from '@angular/core';\nimport { getDOM } from '../dom_adapter';\nimport { EventManagerPlugin } from './event_manager';\nexport class DomEventsPlugin extends EventManagerPlugin {\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName) { return true; }\n addEventListener(element, eventName, handler) {\n var zone = this.manager.getZone();\n var outsideHandler = (event) => zone.runGuarded(() => handler(event));\n return this.manager.getZone().runOutsideAngular(() => getDOM().onAndCancel(element, eventName, outsideHandler));\n }\n addGlobalEventListener(target, eventName, handler) {\n var element = getDOM().getGlobalEventTarget(target);\n var zone = this.manager.getZone();\n var outsideHandler = (event) => zone.runGuarded(() => handler(event));\n return this.manager.getZone().runOutsideAngular(() => getDOM().onAndCancel(element, eventName, outsideHandler));\n }\n}\nDomEventsPlugin.decorators = [\n { type: Injectable },\n];\n//# sourceMappingURL=dom_events.js.map","import { EventManagerPlugin } from './event_manager';\nimport { StringMapWrapper } from '../../../src/facade/collection';\nvar _eventNames = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\nexport class HammerGesturesPluginCommon extends EventManagerPlugin {\n constructor() {\n super();\n }\n supports(eventName) {\n eventName = eventName.toLowerCase();\n return StringMapWrapper.contains(_eventNames, eventName);\n }\n}\n//# sourceMappingURL=hammer_common.js.map","import { Injectable, Inject, OpaqueToken } from '@angular/core';\nimport { isPresent } from '../../../src/facade/lang';\nimport { BaseException } from '../../../src/facade/exceptions';\nimport { HammerGesturesPluginCommon } from './hammer_common';\nexport const HAMMER_GESTURE_CONFIG = \n/*@ts2dart_const*/ new OpaqueToken(\"HammerGestureConfig\");\nexport class HammerGestureConfig {\n constructor() {\n this.events = [];\n this.overrides = {};\n }\n buildHammer(element) {\n var mc = new Hammer(element);\n mc.get('pinch').set({ enable: true });\n mc.get('rotate').set({ enable: true });\n for (let eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n return mc;\n }\n}\nHammerGestureConfig.decorators = [\n { type: Injectable },\n];\nexport class HammerGesturesPlugin extends HammerGesturesPluginCommon {\n constructor(_config) {\n super();\n this._config = _config;\n }\n supports(eventName) {\n if (!super.supports(eventName) && !this.isCustomEvent(eventName))\n return false;\n if (!isPresent(window['Hammer'])) {\n throw new BaseException(`Hammer.js is not loaded, can not bind ${eventName} event`);\n }\n return true;\n }\n addEventListener(element, eventName, handler) {\n var zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n var mc = this._config.buildHammer(element);\n var callback = function (eventObj) { zone.runGuarded(function () { handler(eventObj); }); };\n mc.on(eventName, callback);\n return () => { mc.off(eventName, callback); };\n });\n }\n isCustomEvent(eventName) { return this._config.events.indexOf(eventName) > -1; }\n}\nHammerGesturesPlugin.decorators = [\n { type: Injectable },\n];\nHammerGesturesPlugin.ctorParameters = [\n { type: HammerGestureConfig, decorators: [{ type: Inject, args: [HAMMER_GESTURE_CONFIG,] },] },\n];\n//# sourceMappingURL=hammer_gestures.js.map","import { getDOM } from '../dom/dom_adapter';\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular 2 application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n */\nexport class Title {\n /**\n * Get the title of the current HTML document.\n * @returns {string}\n */\n getTitle() { return getDOM().getTitle(); }\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle) { getDOM().setTitle(newTitle); }\n}\n//# sourceMappingURL=title.js.map","/**\n* JS version of browser APIs. This library can only run in the browser.\n*/\nvar win = typeof window !== 'undefined' && window || {};\nexport { win as window };\nexport var document = win.document;\nexport var location = win.location;\nexport var gc = win['gc'] ? () => win['gc']() : () => null;\nexport var performance = win['performance'] ? win['performance'] : null;\nexport const Event = win['Event'];\nexport const MouseEvent = win['MouseEvent'];\nexport const KeyboardEvent = win['KeyboardEvent'];\nexport const EventTarget = win['EventTarget'];\nexport const History = win['History'];\nexport const Location = win['Location'];\nexport const EventListener = win['EventListener'];\n//# sourceMappingURL=browser.js.map","import { ApplicationRef } from '@angular/core';\nimport { isPresent, NumberWrapper } from '../../../src/facade/lang';\nimport { window } from '../../../src/facade/browser';\nimport { getDOM } from '../../dom/dom_adapter';\nexport class ChangeDetectionPerfRecord {\n constructor(msPerTick, numTicks) {\n this.msPerTick = msPerTick;\n this.numTicks = numTicks;\n }\n}\n/**\n * Entry point for all Angular debug tools. This object corresponds to the `ng`\n * global variable accessible in the dev console.\n */\nexport class AngularTools {\n constructor(ref) {\n this.profiler = new AngularProfiler(ref);\n }\n}\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n constructor(ref) {\n this.appRef = ref.injector.get(ApplicationRef);\n }\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config) {\n var record = isPresent(config) && config['record'];\n var profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n var isProfilerAvailable = isPresent(window.console.profile);\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n var start = getDOM().performanceNow();\n var numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n var end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n // need to cast to <any> because type checker thinks there's no argument\n // while in fact there is:\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/Console/profileEnd\n window.console.profileEnd(profileName);\n }\n var msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${NumberWrapper.toFixed(msPerTick, 2)} ms per check`);\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n//# sourceMappingURL=common_tools.js.map","import { global } from '../../../src/facade/lang';\nimport { AngularTools } from './common_tools';\nvar context = global;\n/**\n * Enabled Angular 2 debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n */\nexport function enableDebugTools(ref) {\n context.ng = new AngularTools(ref);\n}\n/**\n * Disables Angular 2 tools.\n */\nexport function disableDebugTools() {\n delete context.ng;\n}\n//# sourceMappingURL=tools.js.map","import { isPresent } from '../../../src/facade/lang';\nimport { getDOM } from '../../dom/dom_adapter';\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n */\nexport class By {\n /**\n * Match all elements.\n *\n * ## Example\n *\n * {@example platform/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all() { return (debugElement) => true; }\n /**\n * Match elements by the given CSS selector.\n *\n * ## Example\n *\n * {@example platform/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector) {\n return (debugElement) => {\n return isPresent(debugElement.nativeElement) ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n /**\n * Match elements that have the given directive present.\n *\n * ## Example\n *\n * {@example platform/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type) {\n return (debugElement) => { return debugElement.providerTokens.indexOf(type) !== -1; };\n }\n}\n//# sourceMappingURL=by.js.map","import { PLATFORM_INITIALIZER, PLATFORM_DIRECTIVES, PLATFORM_PIPES, ExceptionHandler, RootRenderer, APPLICATION_COMMON_PROVIDERS, PLATFORM_COMMON_PROVIDERS, OpaqueToken, Testability } from '@angular/core';\nimport { wtfInit } from '../core_private';\nimport { COMMON_DIRECTIVES, COMMON_PIPES, FORM_PROVIDERS } from '@angular/common';\nimport { IS_DART } from './facade/lang';\nimport { BrowserDomAdapter } from './browser/browser_adapter';\nimport { BrowserGetTestability } from './browser/testability';\nimport { getDOM } from './dom/dom_adapter';\nimport { DOCUMENT } from './dom/dom_tokens';\nimport { EVENT_MANAGER_PLUGINS, EventManager } from './dom/events/event_manager';\nimport { DomRootRenderer, DomRootRenderer_ } from './dom/dom_renderer';\nimport { SharedStylesHost } from './dom/shared_styles_host';\nimport { KeyEventsPlugin } from './dom/events/key_events';\nimport { ELEMENT_PROBE_PROVIDERS } from './dom/debug/ng_probe';\nimport { DomEventsPlugin } from './dom/events/dom_events';\nimport { HAMMER_GESTURE_CONFIG, HammerGestureConfig, HammerGesturesPlugin } from './dom/events/hammer_gestures';\nimport { DomSharedStylesHost } from './dom/shared_styles_host';\nimport { AnimationBuilder } from './animate/animation_builder';\nimport { BrowserDetails } from './animate/browser_details';\nexport { Title } from './browser/title';\nexport { BrowserDomAdapter } from './browser/browser_adapter';\nexport { enableDebugTools, disableDebugTools } from './browser/tools/tools';\nexport { By } from './dom/debug/by';\nexport const BROWSER_PLATFORM_MARKER = \n/*@ts2dart_const*/ new OpaqueToken('BrowserPlatformMarker');\n/**\n * A set of providers to initialize the Angular platform in a web browser.\n *\n * Used automatically by `bootstrap`, or can be passed to {@link platform}.\n */\nexport const BROWSER_PROVIDERS = [\n /*@ts2dart_Provider*/ { provide: BROWSER_PLATFORM_MARKER, useValue: true },\n PLATFORM_COMMON_PROVIDERS,\n /*@ts2dart_Provider*/ { provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n];\nfunction _exceptionHandler() {\n // !IS_DART is required because we must rethrow exceptions in JS,\n // but must not rethrow exceptions in Dart\n return new ExceptionHandler(getDOM(), !IS_DART);\n}\nfunction _document() {\n return getDOM().defaultDoc();\n}\n/**\n * A set of providers to initialize an Angular application in a web browser.\n *\n * Used automatically by `bootstrap`, or can be passed to {@link PlatformRef.application}.\n */\nexport const BROWSER_APP_COMMON_PROVIDERS = \n/*@ts2dart_const*/ [\n APPLICATION_COMMON_PROVIDERS,\n FORM_PROVIDERS,\n /* @ts2dart_Provider */ { provide: PLATFORM_PIPES, useValue: COMMON_PIPES, multi: true },\n /* @ts2dart_Provider */ { provide: PLATFORM_DIRECTIVES, useValue: COMMON_DIRECTIVES, multi: true },\n /* @ts2dart_Provider */ { provide: ExceptionHandler, useFactory: _exceptionHandler, deps: [] },\n /* @ts2dart_Provider */ { provide: DOCUMENT, useFactory: _document, deps: [] },\n /* @ts2dart_Provider */ { provide: EVENT_MANAGER_PLUGINS, useClass: DomEventsPlugin, multi: true },\n /* @ts2dart_Provider */ { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true },\n /* @ts2dart_Provider */ { provide: EVENT_MANAGER_PLUGINS, useClass: HammerGesturesPlugin, multi: true },\n /* @ts2dart_Provider */ { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig },\n /* @ts2dart_Provider */ { provide: DomRootRenderer, useClass: DomRootRenderer_ },\n /* @ts2dart_Provider */ { provide: RootRenderer, useExisting: DomRootRenderer },\n /* @ts2dart_Provider */ { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n DomSharedStylesHost,\n Testability,\n BrowserDetails,\n AnimationBuilder,\n EventManager,\n ELEMENT_PROBE_PROVIDERS\n];\nexport { HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '../src/dom/events/hammer_gestures';\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n wtfInit();\n BrowserGetTestability.init();\n}\n//# sourceMappingURL=browser_common.js.map","import * as animation_builder from './src/animate/animation_builder';\nimport * as css_animation_builder from './src/animate/css_animation_builder';\nimport * as browser_details from './src/animate/browser_details';\nimport * as css_animation_options from './src/animate/css_animation_options';\nimport * as animation from './src/animate/animation';\nimport * as dom_adapter from './src/dom/dom_adapter';\nimport * as browser_adapter from './src/browser/browser_adapter';\nexport var __platform_browser_private__;\n(function (__platform_browser_private__) {\n __platform_browser_private__.DomAdapter = dom_adapter.DomAdapter;\n function getDOM() { return dom_adapter.getDOM(); }\n __platform_browser_private__.getDOM = getDOM;\n function setDOM(adapter) { return dom_adapter.setDOM(adapter); }\n __platform_browser_private__.setDOM = setDOM;\n __platform_browser_private__.setRootDomAdapter = dom_adapter.setRootDomAdapter;\n __platform_browser_private__.BrowserDomAdapter = browser_adapter.BrowserDomAdapter;\n __platform_browser_private__.AnimationBuilder = animation_builder.AnimationBuilder;\n __platform_browser_private__.CssAnimationBuilder = css_animation_builder.CssAnimationBuilder;\n __platform_browser_private__.CssAnimationOptions = css_animation_options.CssAnimationOptions;\n __platform_browser_private__.Animation = animation.Animation;\n __platform_browser_private__.BrowserDetails = browser_details.BrowserDetails;\n})(__platform_browser_private__ || (__platform_browser_private__ = {}));\n//# sourceMappingURL=private_export.js.map","import { Injectable } from '@angular/core';\nimport { PlatformLocation } from '@angular/common';\nimport { getDOM } from '../../dom/dom_adapter';\nexport class BrowserPlatformLocation extends PlatformLocation {\n constructor() {\n super();\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this._location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n /** @internal */\n get location() { return this._location; }\n getBaseHrefFromDOM() { return getDOM().getBaseHref(); }\n onPopState(fn) {\n getDOM().getGlobalEventTarget('window').addEventListener('popstate', fn, false);\n }\n onHashChange(fn) {\n getDOM().getGlobalEventTarget('window').addEventListener('hashchange', fn, false);\n }\n get pathname() { return this._location.pathname; }\n get search() { return this._location.search; }\n get hash() { return this._location.hash; }\n set pathname(newPath) { this._location.pathname = newPath; }\n pushState(state, title, url) {\n this._history.pushState(state, title, url);\n }\n replaceState(state, title, url) {\n this._history.replaceState(state, title, url);\n }\n forward() { this._history.forward(); }\n back() { this._history.back(); }\n}\nBrowserPlatformLocation.decorators = [\n { type: Injectable },\n];\nBrowserPlatformLocation.ctorParameters = [];\n//# sourceMappingURL=browser_platform_location.js.map","import { coreLoadAndBootstrap, ReflectiveInjector, getPlatform, createPlatform, assertPlatform } from '@angular/core';\nimport { isPresent, isBlank } from './facade/lang';\nimport { BROWSER_APP_COMMON_PROVIDERS, BROWSER_PROVIDERS, BROWSER_PLATFORM_MARKER } from './browser_common';\nexport { ELEMENT_PROBE_PROVIDERS } from './dom/debug/ng_probe';\nexport { BrowserPlatformLocation } from './browser/location/browser_platform_location';\nexport { BROWSER_PROVIDERS, By, Title, enableDebugTools, disableDebugTools } from './browser_common';\n/**\n * An array of providers that should be passed into `application()` when bootstrapping a component\n * when all templates\n * have been precompiled offline.\n */\nexport const BROWSER_APP_STATIC_PROVIDERS = \n/*@ts2dart_const*/ BROWSER_APP_COMMON_PROVIDERS;\nexport function browserStaticPlatform() {\n if (isBlank(getPlatform())) {\n createPlatform(ReflectiveInjector.resolveAndCreate(BROWSER_PROVIDERS));\n }\n return assertPlatform(BROWSER_PLATFORM_MARKER);\n}\n/**\n * See {@link bootstrap} for more information.\n */\nexport function bootstrapStatic(appComponentType, customProviders, initReflector) {\n if (isPresent(initReflector)) {\n initReflector();\n }\n let appProviders = isPresent(customProviders) ? [BROWSER_APP_STATIC_PROVIDERS, customProviders] :\n BROWSER_APP_STATIC_PROVIDERS;\n var appInjector = ReflectiveInjector.resolveAndCreate(appProviders, browserStaticPlatform().injector);\n return coreLoadAndBootstrap(appInjector, appComponentType);\n}\n//# sourceMappingURL=platform_browser_static.js.map","import { ReflectiveInjector, getPlatform, createPlatform, assertPlatform } from '@angular/core';\nimport { isBlank } from './facade/lang';\nimport { BROWSER_PROVIDERS, BROWSER_PLATFORM_MARKER } from './browser_common';\nexport { DomEventsPlugin } from './dom/events/dom_events';\nexport { EventManager, EVENT_MANAGER_PLUGINS } from './dom/events/event_manager';\nexport { ELEMENT_PROBE_PROVIDERS } from './dom/debug/ng_probe';\nexport { BROWSER_APP_COMMON_PROVIDERS, BROWSER_PROVIDERS, By, Title, enableDebugTools, disableDebugTools, HAMMER_GESTURE_CONFIG, HammerGestureConfig } from './browser_common';\nexport * from '../private_export';\nexport { DOCUMENT } from './dom/dom_tokens';\nexport { bootstrapStatic, browserStaticPlatform, BROWSER_APP_STATIC_PROVIDERS, BrowserPlatformLocation } from './platform_browser_static';\nexport function browserPlatform() {\n if (isBlank(getPlatform())) {\n createPlatform(ReflectiveInjector.resolveAndCreate(BROWSER_PROVIDERS));\n }\n return assertPlatform(BROWSER_PLATFORM_MARKER);\n}\n//# sourceMappingURL=platform_browser.js.map"],"names":["_global","r","global","Map","Set","setTestabilityGetter","OpaqueToken","Injectable","NgZone","Inject","Math","ViewEncapsulation","ApplicationRef","getDebugNode","RootRenderer","window","PLATFORM_INITIALIZER","PLATFORM_COMMON_PROVIDERS","ExceptionHandler","Testability","COMMON_DIRECTIVES","PLATFORM_DIRECTIVES","COMMON_PIPES","PLATFORM_PIPES","FORM_PROVIDERS","APPLICATION_COMMON_PROVIDERS","__platform_browser_private__","browser_details.BrowserDetails","animation.Animation","css_animation_options.CssAnimationOptions","css_animation_builder.CssAnimationBuilder","animation_builder.AnimationBuilder","browser_adapter.BrowserDomAdapter","dom_adapter.setRootDomAdapter","dom_adapter.setDOM","dom_adapter.getDOM","dom_adapter.DomAdapter","setDOM","getDOM","PlatformLocation","assertPlatform","ReflectiveInjector","createPlatform","getPlatform","coreLoadAndBootstrap"],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- import { BrowserDetails } from './browser_details';
2
- import { CssAnimationOptions } from './css_animation_options';
3
- export declare class Animation {
4
- element: HTMLElement;
5
- data: CssAnimationOptions;
6
- browserDetails: BrowserDetails;
7
- /** functions to be called upon completion */
8
- callbacks: Function[];
9
- /** the duration (ms) of the animation (whether from CSS or manually set) */
10
- computedDuration: number;
11
- /** the animation delay (ms) (whether from CSS or manually set) */
12
- computedDelay: number;
13
- /** timestamp of when the animation started */
14
- startTime: number;
15
- /** functions for removing event listeners */
16
- eventClearFunctions: Function[];
17
- /** flag used to track whether or not the animation has finished */
18
- completed: boolean;
19
- private _stringPrefix;
20
- /** total amount of time that the animation should take including delay */
21
- readonly totalTime: number;
22
- /**
23
- * Stores the start time and starts the animation
24
- * @param element
25
- * @param data
26
- * @param browserDetails
27
- */
28
- constructor(element: HTMLElement, data: CssAnimationOptions, browserDetails: BrowserDetails);
29
- wait(callback: Function): void;
30
- /**
31
- * Sets up the initial styles before the animation is started
32
- */
33
- setup(): void;
34
- /**
35
- * After the initial setup has occurred, this method adds the animation styles
36
- */
37
- start(): void;
38
- /**
39
- * Applies the provided styles to the element
40
- * @param styles
41
- */
42
- applyStyles(styles: {
43
- [key: string]: any;
44
- }): void;
45
- /**
46
- * Adds the provided classes to the element
47
- * @param classes
48
- */
49
- addClasses(classes: string[]): void;
50
- /**
51
- * Removes the provided classes from the element
52
- * @param classes
53
- */
54
- removeClasses(classes: string[]): void;
55
- /**
56
- * Adds events to track when animations have finished
57
- */
58
- addEvents(): void;
59
- handleAnimationEvent(event: any): void;
60
- /**
61
- * Runs all animation callbacks and removes temporary classes
62
- */
63
- handleAnimationCompleted(): void;
64
- /**
65
- * Adds animation callbacks to be called upon completion
66
- * @param callback
67
- * @returns {Animation}
68
- */
69
- onComplete(callback: Function): Animation;
70
- /**
71
- * Converts the duration string to the number of milliseconds
72
- * @param duration
73
- * @returns {number}
74
- */
75
- parseDurationString(duration: string): number;
76
- /**
77
- * Strips the letters from the duration string
78
- * @param str
79
- * @returns {string}
80
- */
81
- stripLetters(str: string): string;
82
- }