@angular/platform-browser 2.0.0-rc.1 → 2.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) 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 +23 -1
  4. package/core_private.js +14 -0
  5. package/core_private.js.map +1 -1
  6. package/core_private.metadata.json +1 -1
  7. package/esm/core_private.d.ts +23 -1
  8. package/esm/core_private.js +14 -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 +4 -5
  121. package/esm/src/security/dom_sanitization_service.js +7 -9
  122. package/esm/src/security/dom_sanitization_service.js.map +1 -1
  123. package/esm/src/security/dom_sanitization_service.metadata.json +1 -1
  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 +4 -0
  128. package/esm/src/security/style_sanitizer.js +54 -17
  129. package/esm/src/security/style_sanitizer.js.map +1 -1
  130. package/esm/src/security/url_sanitizer.js +33 -26
  131. package/esm/src/security/url_sanitizer.js.map +1 -1
  132. package/esm/src/web_workers/shared/api.d.ts +2 -0
  133. package/esm/src/web_workers/shared/api.js +3 -0
  134. package/esm/src/web_workers/shared/api.js.map +1 -0
  135. package/esm/src/web_workers/shared/api.metadata.json +1 -0
  136. package/esm/src/web_workers/shared/client_message_broker.d.ts +51 -0
  137. package/esm/src/web_workers/shared/client_message_broker.js +156 -0
  138. package/esm/src/web_workers/shared/client_message_broker.js.map +1 -0
  139. package/esm/src/web_workers/shared/client_message_broker.metadata.json +1 -0
  140. package/esm/src/web_workers/shared/message_bus.d.ts +82 -0
  141. package/esm/src/web_workers/shared/message_bus.js +10 -0
  142. package/esm/src/web_workers/shared/message_bus.js.map +1 -0
  143. package/esm/src/web_workers/shared/messaging_api.d.ts +7 -0
  144. package/esm/src/web_workers/shared/messaging_api.js +8 -0
  145. package/esm/src/web_workers/shared/messaging_api.js.map +1 -0
  146. package/esm/src/web_workers/shared/messaging_api.metadata.json +1 -0
  147. package/esm/src/web_workers/shared/post_message_bus.d.ts +41 -0
  148. package/esm/src/web_workers/shared/post_message_bus.js +133 -0
  149. package/esm/src/web_workers/shared/post_message_bus.js.map +1 -0
  150. package/esm/src/web_workers/shared/post_message_bus.metadata.json +1 -0
  151. package/esm/src/web_workers/shared/render_store.d.ts +11 -0
  152. package/esm/src/web_workers/shared/render_store.js +40 -0
  153. package/esm/src/web_workers/shared/render_store.js.map +1 -0
  154. package/esm/src/web_workers/shared/render_store.metadata.json +1 -0
  155. package/esm/src/web_workers/shared/serialized_types.d.ts +12 -0
  156. package/esm/src/web_workers/shared/serialized_types.js +16 -0
  157. package/esm/src/web_workers/shared/serialized_types.js.map +1 -0
  158. package/esm/src/web_workers/shared/serializer.d.ts +18 -0
  159. package/esm/src/web_workers/shared/serializer.js +110 -0
  160. package/esm/src/web_workers/shared/serializer.js.map +1 -0
  161. package/esm/src/web_workers/shared/serializer.metadata.json +1 -0
  162. package/esm/src/web_workers/shared/service_message_broker.d.ts +48 -0
  163. package/esm/src/web_workers/shared/service_message_broker.js +88 -0
  164. package/esm/src/web_workers/shared/service_message_broker.js.map +1 -0
  165. package/esm/src/web_workers/shared/service_message_broker.metadata.json +1 -0
  166. package/esm/src/web_workers/ui/event_dispatcher.d.ts +8 -0
  167. package/esm/src/web_workers/ui/event_dispatcher.js +104 -0
  168. package/esm/src/web_workers/ui/event_dispatcher.js.map +1 -0
  169. package/esm/src/web_workers/ui/event_serializer.d.ts +15 -0
  170. package/esm/src/web_workers/ui/event_serializer.js +53 -0
  171. package/esm/src/web_workers/ui/event_serializer.js.map +1 -0
  172. package/esm/src/web_workers/ui/event_serializer.metadata.json +1 -0
  173. package/esm/src/web_workers/ui/location_providers.d.ts +14 -0
  174. package/esm/src/web_workers/ui/location_providers.js +19 -0
  175. package/esm/src/web_workers/ui/location_providers.js.map +1 -0
  176. package/esm/src/web_workers/ui/location_providers.metadata.json +1 -0
  177. package/esm/src/web_workers/ui/platform_location.d.ts +16 -0
  178. package/esm/src/web_workers/ui/platform_location.js +49 -0
  179. package/esm/src/web_workers/ui/platform_location.js.map +1 -0
  180. package/esm/src/web_workers/ui/platform_location.metadata.json +1 -0
  181. package/esm/src/web_workers/ui/renderer.d.ts +35 -0
  182. package/esm/src/web_workers/ui/renderer.js +122 -0
  183. package/esm/src/web_workers/ui/renderer.js.map +1 -0
  184. package/esm/src/web_workers/ui/renderer.metadata.json +1 -0
  185. package/esm/src/web_workers/worker/event_deserializer.d.ts +5 -0
  186. package/esm/src/web_workers/worker/event_deserializer.js +6 -0
  187. package/esm/src/web_workers/worker/event_deserializer.js.map +1 -0
  188. package/esm/src/web_workers/worker/event_deserializer.metadata.json +1 -0
  189. package/esm/src/web_workers/worker/location_providers.d.ts +17 -0
  190. package/esm/src/web_workers/worker/location_providers.js +20 -0
  191. package/esm/src/web_workers/worker/location_providers.js.map +1 -0
  192. package/esm/src/web_workers/worker/location_providers.metadata.json +1 -0
  193. package/esm/src/web_workers/worker/platform_location.d.ts +23 -0
  194. package/esm/src/web_workers/worker/platform_location.js +111 -0
  195. package/esm/src/web_workers/worker/platform_location.js.map +1 -0
  196. package/esm/src/web_workers/worker/platform_location.metadata.json +1 -0
  197. package/esm/src/web_workers/worker/renderer.d.ts +55 -0
  198. package/esm/src/web_workers/worker/renderer.js +227 -0
  199. package/esm/src/web_workers/worker/renderer.js.map +1 -0
  200. package/esm/src/web_workers/worker/renderer.metadata.json +1 -0
  201. package/esm/src/web_workers/worker/worker_adapter.d.ts +132 -0
  202. package/esm/src/web_workers/worker/worker_adapter.js +192 -0
  203. package/esm/src/web_workers/worker/worker_adapter.js.map +1 -0
  204. package/esm/src/worker_app.d.ts +13 -0
  205. package/esm/src/worker_app.js +68 -0
  206. package/esm/src/worker_app.js.map +1 -0
  207. package/esm/src/worker_app.metadata.json +1 -0
  208. package/esm/src/worker_render.d.ts +35 -0
  209. package/esm/src/worker_render.js +147 -0
  210. package/esm/src/worker_render.js.map +1 -0
  211. package/esm/src/worker_render.metadata.json +1 -0
  212. package/esm/testing/browser.d.ts +8 -0
  213. package/esm/testing/browser.js +38 -0
  214. package/esm/testing/browser.js.map +1 -0
  215. package/esm/testing/browser.metadata.json +1 -0
  216. package/esm/testing/browser_util.d.ts +1 -0
  217. package/esm/testing/browser_util.js +11 -6
  218. package/esm/testing/browser_util.js.map +1 -1
  219. package/esm/testing/browser_util.metadata.json +1 -1
  220. package/esm/testing/e2e_util.d.ts +4 -0
  221. package/esm/testing/e2e_util.js +21 -0
  222. package/esm/testing/e2e_util.js.map +1 -0
  223. package/esm/testing/e2e_util.metadata.json +1 -0
  224. package/esm/testing/matchers.js +24 -22
  225. package/esm/testing/matchers.js.map +1 -1
  226. package/esm/testing/matchers.metadata.json +1 -1
  227. package/esm/testing.d.ts +1 -2
  228. package/esm/testing.js +1 -2
  229. package/esm/testing.js.map +1 -1
  230. package/esm/testing_e2e.d.ts +1 -0
  231. package/esm/testing_e2e.js +2 -0
  232. package/esm/testing_e2e.js.map +1 -0
  233. package/index.d.ts +22 -1
  234. package/index.js +50 -1
  235. package/index.js.map +1 -1
  236. package/index.metadata.json +1 -0
  237. package/package.json +8 -4
  238. package/private_export.d.ts +21 -21
  239. package/private_export.js +11 -21
  240. package/private_export.js.map +1 -1
  241. package/private_export.metadata.json +1 -0
  242. package/src/browser/browser_adapter.d.ts +6 -0
  243. package/src/browser/browser_adapter.js +144 -76
  244. package/src/browser/browser_adapter.js.map +1 -1
  245. package/src/browser/generic_browser_adapter.js +4 -4
  246. package/src/browser/generic_browser_adapter.js.map +1 -1
  247. package/src/browser/location/browser_platform_location.d.ts +1 -5
  248. package/src/browser/location/browser_platform_location.js +16 -3
  249. package/src/browser/location/browser_platform_location.js.map +1 -1
  250. package/src/browser/location/browser_platform_location.metadata.json +1 -1
  251. package/src/browser/location/history.d.ts +1 -0
  252. package/src/browser/location/history.js +6 -0
  253. package/src/browser/location/history.js.map +1 -0
  254. package/src/browser/location/history.metadata.json +1 -0
  255. package/src/browser/testability.d.ts +1 -1
  256. package/src/browser/testability.js +7 -5
  257. package/src/browser/testability.js.map +1 -1
  258. package/src/browser/title.d.ts +2 -0
  259. package/src/browser/title.js +2 -0
  260. package/src/browser/title.js.map +1 -1
  261. package/src/browser/tools/common_tools.js +2 -2
  262. package/src/browser/tools/common_tools.js.map +1 -1
  263. package/src/browser/tools/tools.d.ts +1 -1
  264. package/src/browser/tools/tools.js +2 -1
  265. package/src/browser/tools/tools.js.map +1 -1
  266. package/src/browser.d.ts +15 -0
  267. package/src/browser.js +78 -0
  268. package/src/browser.js.map +1 -0
  269. package/src/browser.metadata.json +1 -0
  270. package/src/dom/debug/by.d.ts +2 -2
  271. package/src/dom/debug/by.js +1 -1
  272. package/src/dom/debug/by.js.map +1 -1
  273. package/src/dom/debug/ng_probe.js +9 -18
  274. package/src/dom/debug/ng_probe.js.map +1 -1
  275. package/src/dom/debug/ng_probe.metadata.json +1 -1
  276. package/src/dom/dom_adapter.d.ts +7 -5
  277. package/src/dom/dom_adapter.js +1 -1
  278. package/src/dom/dom_adapter.js.map +1 -1
  279. package/src/dom/dom_adapter.metadata.json +1 -0
  280. package/src/dom/dom_animate_player.d.ts +9 -0
  281. package/src/dom/dom_animate_player.js +2 -0
  282. package/src/dom/dom_animate_player.js.map +1 -0
  283. package/src/dom/dom_renderer.d.ts +9 -19
  284. package/src/dom/dom_renderer.js +29 -61
  285. package/src/dom/dom_renderer.js.map +1 -1
  286. package/src/dom/dom_renderer.metadata.json +1 -1
  287. package/src/dom/dom_tokens.js.map +1 -1
  288. package/src/dom/dom_tokens.metadata.json +1 -1
  289. package/src/dom/events/dom_events.js +3 -2
  290. package/src/dom/events/dom_events.js.map +1 -1
  291. package/src/dom/events/dom_events.metadata.json +1 -1
  292. package/src/dom/events/event_manager.d.ts +1 -3
  293. package/src/dom/events/event_manager.js +8 -7
  294. package/src/dom/events/event_manager.js.map +1 -1
  295. package/src/dom/events/event_manager.metadata.json +1 -1
  296. package/src/dom/events/hammer_common.js +1 -1
  297. package/src/dom/events/hammer_common.js.map +1 -1
  298. package/src/dom/events/hammer_gestures.js +9 -5
  299. package/src/dom/events/hammer_gestures.js.map +1 -1
  300. package/src/dom/events/hammer_gestures.metadata.json +1 -1
  301. package/src/dom/events/key_events.d.ts +0 -2
  302. package/src/dom/events/key_events.js +5 -3
  303. package/src/dom/events/key_events.js.map +1 -1
  304. package/src/dom/events/key_events.metadata.json +1 -1
  305. package/src/dom/shared_styles_host.d.ts +0 -6
  306. package/src/dom/shared_styles_host.js +5 -1
  307. package/src/dom/shared_styles_host.js.map +1 -1
  308. package/src/dom/shared_styles_host.metadata.json +1 -1
  309. package/src/dom/util.js +3 -3
  310. package/src/dom/util.js.map +1 -1
  311. package/src/dom/util.metadata.json +1 -0
  312. package/src/dom/web_animations_driver.d.ts +4 -0
  313. package/src/dom/web_animations_driver.js +123 -0
  314. package/src/dom/web_animations_driver.js.map +1 -0
  315. package/src/dom/web_animations_player.d.ts +20 -0
  316. package/src/dom/web_animations_player.js +46 -0
  317. package/src/dom/web_animations_player.js.map +1 -0
  318. package/src/facade/async.d.ts +90 -0
  319. package/src/facade/async.js +160 -0
  320. package/src/facade/async.js.map +1 -0
  321. package/src/facade/base_wrapped_exception.js +4 -4
  322. package/src/facade/base_wrapped_exception.js.map +1 -1
  323. package/src/facade/browser.js +2 -2
  324. package/src/facade/browser.js.map +1 -1
  325. package/src/facade/browser.metadata.json +1 -1
  326. package/src/facade/collection.js.map +1 -1
  327. package/src/facade/collection.metadata.json +1 -1
  328. package/src/facade/exception_handler.d.ts +2 -11
  329. package/src/facade/exception_handler.js +8 -7
  330. package/src/facade/exception_handler.js.map +1 -1
  331. package/src/facade/exceptions.d.ts +4 -0
  332. package/src/facade/exceptions.js +6 -2
  333. package/src/facade/exceptions.js.map +1 -1
  334. package/src/facade/exceptions.metadata.json +1 -0
  335. package/src/facade/lang.d.ts +6 -4
  336. package/src/facade/lang.js +12 -11
  337. package/src/facade/lang.js.map +1 -1
  338. package/src/facade/lang.metadata.json +1 -1
  339. package/src/facade/promise.d.ts +17 -0
  340. package/src/facade/promise.js +49 -0
  341. package/src/facade/promise.js.map +1 -0
  342. package/src/security/dom_sanitization_service.d.ts +4 -5
  343. package/src/security/dom_sanitization_service.js +7 -9
  344. package/src/security/dom_sanitization_service.js.map +1 -1
  345. package/src/security/dom_sanitization_service.metadata.json +1 -1
  346. package/src/security/html_sanitizer.d.ts +5 -0
  347. package/src/security/html_sanitizer.js +246 -0
  348. package/src/security/html_sanitizer.js.map +1 -0
  349. package/src/security/style_sanitizer.d.ts +4 -0
  350. package/src/security/style_sanitizer.js +54 -17
  351. package/src/security/style_sanitizer.js.map +1 -1
  352. package/src/security/url_sanitizer.js +33 -26
  353. package/src/security/url_sanitizer.js.map +1 -1
  354. package/src/web_workers/shared/api.d.ts +2 -0
  355. package/src/web_workers/shared/api.js +4 -0
  356. package/src/web_workers/shared/api.js.map +1 -0
  357. package/src/web_workers/shared/api.metadata.json +1 -0
  358. package/src/web_workers/shared/client_message_broker.d.ts +51 -0
  359. package/src/web_workers/shared/client_message_broker.js +184 -0
  360. package/src/web_workers/shared/client_message_broker.js.map +1 -0
  361. package/src/web_workers/shared/client_message_broker.metadata.json +1 -0
  362. package/src/web_workers/shared/message_bus.d.ts +82 -0
  363. package/src/web_workers/shared/message_bus.js +15 -0
  364. package/src/web_workers/shared/message_bus.js.map +1 -0
  365. package/src/web_workers/shared/messaging_api.d.ts +7 -0
  366. package/src/web_workers/shared/messaging_api.js +9 -0
  367. package/src/web_workers/shared/messaging_api.js.map +1 -0
  368. package/src/web_workers/shared/messaging_api.metadata.json +1 -0
  369. package/src/web_workers/shared/post_message_bus.d.ts +41 -0
  370. package/src/web_workers/shared/post_message_bus.js +147 -0
  371. package/src/web_workers/shared/post_message_bus.js.map +1 -0
  372. package/src/web_workers/shared/post_message_bus.metadata.json +1 -0
  373. package/src/web_workers/shared/render_store.d.ts +11 -0
  374. package/src/web_workers/shared/render_store.js +43 -0
  375. package/src/web_workers/shared/render_store.js.map +1 -0
  376. package/src/web_workers/shared/render_store.metadata.json +1 -0
  377. package/src/web_workers/shared/serialized_types.d.ts +12 -0
  378. package/src/web_workers/shared/serialized_types.js +19 -0
  379. package/src/web_workers/shared/serialized_types.js.map +1 -0
  380. package/src/web_workers/shared/serializer.d.ts +18 -0
  381. package/src/web_workers/shared/serializer.js +119 -0
  382. package/src/web_workers/shared/serializer.js.map +1 -0
  383. package/src/web_workers/shared/serializer.metadata.json +1 -0
  384. package/src/web_workers/shared/service_message_broker.d.ts +48 -0
  385. package/src/web_workers/shared/service_message_broker.js +114 -0
  386. package/src/web_workers/shared/service_message_broker.js.map +1 -0
  387. package/src/web_workers/shared/service_message_broker.metadata.json +1 -0
  388. package/src/web_workers/ui/event_dispatcher.d.ts +8 -0
  389. package/src/web_workers/ui/event_dispatcher.js +107 -0
  390. package/src/web_workers/ui/event_dispatcher.js.map +1 -0
  391. package/src/web_workers/ui/event_serializer.d.ts +15 -0
  392. package/src/web_workers/ui/event_serializer.js +59 -0
  393. package/src/web_workers/ui/event_serializer.js.map +1 -0
  394. package/src/web_workers/ui/event_serializer.metadata.json +1 -0
  395. package/src/web_workers/ui/location_providers.d.ts +14 -0
  396. package/src/web_workers/ui/location_providers.js +20 -0
  397. package/src/web_workers/ui/location_providers.js.map +1 -0
  398. package/src/web_workers/ui/location_providers.metadata.json +1 -0
  399. package/src/web_workers/ui/platform_location.d.ts +16 -0
  400. package/src/web_workers/ui/platform_location.js +52 -0
  401. package/src/web_workers/ui/platform_location.js.map +1 -0
  402. package/src/web_workers/ui/platform_location.metadata.json +1 -0
  403. package/src/web_workers/ui/renderer.d.ts +35 -0
  404. package/src/web_workers/ui/renderer.js +131 -0
  405. package/src/web_workers/ui/renderer.js.map +1 -0
  406. package/src/web_workers/ui/renderer.metadata.json +1 -0
  407. package/src/web_workers/worker/event_deserializer.d.ts +5 -0
  408. package/src/web_workers/worker/event_deserializer.js +8 -0
  409. package/src/web_workers/worker/event_deserializer.js.map +1 -0
  410. package/src/web_workers/worker/event_deserializer.metadata.json +1 -0
  411. package/src/web_workers/worker/location_providers.d.ts +17 -0
  412. package/src/web_workers/worker/location_providers.js +21 -0
  413. package/src/web_workers/worker/location_providers.js.map +1 -0
  414. package/src/web_workers/worker/location_providers.metadata.json +1 -0
  415. package/src/web_workers/worker/platform_location.d.ts +23 -0
  416. package/src/web_workers/worker/platform_location.js +134 -0
  417. package/src/web_workers/worker/platform_location.js.map +1 -0
  418. package/src/web_workers/worker/platform_location.metadata.json +1 -0
  419. package/src/web_workers/worker/renderer.d.ts +55 -0
  420. package/src/web_workers/worker/renderer.js +241 -0
  421. package/src/web_workers/worker/renderer.js.map +1 -0
  422. package/src/web_workers/worker/renderer.metadata.json +1 -0
  423. package/src/web_workers/worker/worker_adapter.d.ts +132 -0
  424. package/src/web_workers/worker/worker_adapter.js +208 -0
  425. package/src/web_workers/worker/worker_adapter.js.map +1 -0
  426. package/src/worker_app.d.ts +13 -0
  427. package/src/worker_app.js +71 -0
  428. package/src/worker_app.js.map +1 -0
  429. package/src/worker_app.metadata.json +1 -0
  430. package/src/worker_render.d.ts +35 -0
  431. package/src/worker_render.js +153 -0
  432. package/src/worker_render.js.map +1 -0
  433. package/src/worker_render.metadata.json +1 -0
  434. package/testing/browser.d.ts +8 -0
  435. package/testing/browser.js +39 -0
  436. package/testing/browser.js.map +1 -0
  437. package/testing/browser.metadata.json +1 -0
  438. package/testing/browser_util.d.ts +1 -0
  439. package/testing/browser_util.js +14 -5
  440. package/testing/browser_util.js.map +1 -1
  441. package/testing/browser_util.metadata.json +1 -1
  442. package/testing/e2e_util.d.ts +4 -0
  443. package/testing/e2e_util.js +24 -0
  444. package/testing/e2e_util.js.map +1 -0
  445. package/testing/e2e_util.metadata.json +1 -0
  446. package/testing/matchers.js +24 -22
  447. package/testing/matchers.js.map +1 -1
  448. package/testing/matchers.metadata.json +1 -1
  449. package/testing.d.ts +1 -2
  450. package/testing.js +1 -2
  451. package/testing.js.map +1 -1
  452. package/testing_e2e.d.ts +1 -0
  453. package/testing_e2e.js +6 -0
  454. package/testing_e2e.js.map +1 -0
  455. package/esm/src/animate/animation.d.ts +0 -82
  456. package/esm/src/animate/animation.js +0 -173
  457. package/esm/src/animate/animation.js.map +0 -1
  458. package/esm/src/animate/animation_builder.d.ts +0 -15
  459. package/esm/src/animate/animation_builder.js +0 -24
  460. package/esm/src/animate/animation_builder.js.map +0 -1
  461. package/esm/src/animate/animation_builder.metadata.json +0 -1
  462. package/esm/src/animate/browser_details.d.ts +0 -10
  463. package/esm/src/animate/browser_details.js +0 -60
  464. package/esm/src/animate/browser_details.js.map +0 -1
  465. package/esm/src/animate/browser_details.metadata.json +0 -1
  466. package/esm/src/animate/css_animation_builder.d.ts +0 -66
  467. package/esm/src/animate/css_animation_builder.js +0 -84
  468. package/esm/src/animate/css_animation_builder.js.map +0 -1
  469. package/esm/src/animate/css_animation_options.d.ts +0 -20
  470. package/esm/src/animate/css_animation_options.js +0 -11
  471. package/esm/src/animate/css_animation_options.js.map +0 -1
  472. package/esm/src/browser_common.d.ts +0 -21
  473. package/esm/src/browser_common.js +0 -82
  474. package/esm/src/browser_common.js.map +0 -1
  475. package/esm/src/browser_common.metadata.json +0 -1
  476. package/esm/src/facade/math.d.ts +0 -2
  477. package/esm/src/facade/math.js +0 -4
  478. package/esm/src/facade/math.js.map +0 -1
  479. package/esm/src/facade/math.metadata.json +0 -1
  480. package/esm/src/platform_browser.d.ts +0 -10
  481. package/esm/src/platform_browser.js +0 -18
  482. package/esm/src/platform_browser.js.map +0 -1
  483. package/esm/src/platform_browser_static.d.ts +0 -16
  484. package/esm/src/platform_browser_static.js +0 -32
  485. package/esm/src/platform_browser_static.js.map +0 -1
  486. package/esm/src/platform_browser_static.metadata.json +0 -1
  487. package/esm/testing/animation_builder_mock.d.ts +0 -6
  488. package/esm/testing/animation_builder_mock.js +0 -35
  489. package/esm/testing/animation_builder_mock.js.map +0 -1
  490. package/esm/testing/animation_builder_mock.metadata.json +0 -1
  491. package/esm/testing/browser_static.d.ts +0 -10
  492. package/esm/testing/browser_static.js +0 -53
  493. package/esm/testing/browser_static.js.map +0 -1
  494. package/esm/testing/browser_static.metadata.json +0 -1
  495. package/esm/testing/dom_test_component_renderer.d.ts +0 -9
  496. package/esm/testing/dom_test_component_renderer.js +0 -27
  497. package/esm/testing/dom_test_component_renderer.js.map +0 -1
  498. package/esm/testing/dom_test_component_renderer.metadata.json +0 -1
  499. package/platform-browser.umd.js +0 -2715
  500. package/src/animate/animation.d.ts +0 -82
  501. package/src/animate/animation.js +0 -183
  502. package/src/animate/animation.js.map +0 -1
  503. package/src/animate/animation_builder.d.ts +0 -15
  504. package/src/animate/animation_builder.js +0 -27
  505. package/src/animate/animation_builder.js.map +0 -1
  506. package/src/animate/animation_builder.metadata.json +0 -1
  507. package/src/animate/browser_details.d.ts +0 -10
  508. package/src/animate/browser_details.js +0 -66
  509. package/src/animate/browser_details.js.map +0 -1
  510. package/src/animate/browser_details.metadata.json +0 -1
  511. package/src/animate/css_animation_builder.d.ts +0 -66
  512. package/src/animate/css_animation_builder.js +0 -87
  513. package/src/animate/css_animation_builder.js.map +0 -1
  514. package/src/animate/css_animation_options.d.ts +0 -20
  515. package/src/animate/css_animation_options.js +0 -14
  516. package/src/animate/css_animation_options.js.map +0 -1
  517. package/src/browser_common.d.ts +0 -21
  518. package/src/browser_common.js +0 -91
  519. package/src/browser_common.js.map +0 -1
  520. package/src/browser_common.metadata.json +0 -1
  521. package/src/facade/math.d.ts +0 -2
  522. package/src/facade/math.js +0 -5
  523. package/src/facade/math.js.map +0 -1
  524. package/src/facade/math.metadata.json +0 -1
  525. package/src/platform_browser.d.ts +0 -10
  526. package/src/platform_browser.js +0 -43
  527. package/src/platform_browser.js.map +0 -1
  528. package/src/platform_browser_static.d.ts +0 -16
  529. package/src/platform_browser_static.js +0 -42
  530. package/src/platform_browser_static.js.map +0 -1
  531. package/src/platform_browser_static.metadata.json +0 -1
  532. package/testing/animation_builder_mock.d.ts +0 -6
  533. package/testing/animation_builder_mock.js +0 -53
  534. package/testing/animation_builder_mock.js.map +0 -1
  535. package/testing/animation_builder_mock.metadata.json +0 -1
  536. package/testing/browser_static.d.ts +0 -10
  537. package/testing/browser_static.js +0 -55
  538. package/testing/browser_static.js.map +0 -1
  539. package/testing/browser_static.metadata.json +0 -1
  540. package/testing/dom_test_component_renderer.d.ts +0 -9
  541. package/testing/dom_test_component_renderer.js +0 -36
  542. package/testing/dom_test_component_renderer.js.map +0 -1
  543. package/testing/dom_test_component_renderer.metadata.json +0 -1
@@ -8,10 +8,13 @@ var base_wrapped_exception_1 = require('./base_wrapped_exception');
8
8
  var exception_handler_1 = require('./exception_handler');
9
9
  var exception_handler_2 = require('./exception_handler');
10
10
  exports.ExceptionHandler = exception_handler_2.ExceptionHandler;
11
+ /**
12
+ * @stable
13
+ */
11
14
  var BaseException = (function (_super) {
12
15
  __extends(BaseException, _super);
13
16
  function BaseException(message) {
14
- if (message === void 0) { message = "--"; }
17
+ if (message === void 0) { message = '--'; }
15
18
  _super.call(this, message);
16
19
  this.message = message;
17
20
  this.stack = (new Error(message)).stack;
@@ -22,10 +25,11 @@ var BaseException = (function (_super) {
22
25
  exports.BaseException = BaseException;
23
26
  /**
24
27
  * Wraps an exception and provides additional context or information.
28
+ * @stable
25
29
  */
26
30
  var WrappedException = (function (_super) {
27
31
  __extends(WrappedException, _super);
28
- function WrappedException(_wrapperMessage, _originalException, _originalStack, _context) {
32
+ function WrappedException(_wrapperMessage, _originalException /** TODO #9100 */, _originalStack /** TODO #9100 */, _context /** TODO #9100 */) {
29
33
  _super.call(this, _wrapperMessage);
30
34
  this._wrapperMessage = _wrapperMessage;
31
35
  this._originalException = _originalException;
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/facade/exceptions.ts"],"names":[],"mappings":";;;;;;AAIE,uCAAmC,0BAA0B,CAAC,CAAA;AAChE,kCAA+B,qBAAqB,CAAC,CAAA;AAErD,kCAA+B,qBAAqB,CAAC;AAA7C,gEAA6C;AAErD;IAAmC,iCAAK;IAEtC,uBAAmB,OAAsB;QAA7B,uBAA6B,GAA7B,cAA6B;QACvC,kBAAM,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAe;QAEvC,IAAI,CAAC,KAAK,GAAG,CAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,CAAC;IAED,gCAAQ,GAAR,cAAqB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,oBAAC;AAAD,CAAC,AARD,CAAmC,KAAK,GAQvC;AARY,qBAAa,gBAQzB,CAAA;AAED;;GAEG;AACH;IAAsC,oCAAoB;IAGxD,0BAAoB,eAAuB,EAAU,kBAAkB,EAAU,cAAe,EAC5E,QAAS;QAC3B,kBAAM,eAAe,CAAC,CAAC;QAFL,oBAAe,GAAf,eAAe,CAAQ;QAAU,uBAAkB,GAAlB,kBAAkB,CAAA;QAAU,mBAAc,GAAd,cAAc,CAAC;QAC5E,aAAQ,GAAR,QAAQ,CAAC;QAE3B,IAAI,CAAC,aAAa,GAAG,CAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/D,CAAC;IAED,sBAAI,4CAAc;aAAlB,cAA+B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;;;OAAA;IAE7D,sBAAI,0CAAY;aAAhB,cAA0B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;;OAAA;IAGtD,sBAAI,+CAAiB;aAArB,cAA+B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;OAAA;IAEhE,sBAAI,2CAAa;aAAjB,cAA2B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;;;OAAA;IAGxD,sBAAI,qCAAO;aAAX,cAAqB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;;OAAA;IAE5C,sBAAI,qCAAO;aAAX,cAAwB,MAAM,CAAC,oCAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;OAAA;IAE1E,mCAAQ,GAAR,cAAqB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,uBAAC;AAAD,CAAC,AAxBD,CAAsC,6CAAoB,GAwBzD;AAxBY,wBAAgB,mBAwB5B,CAAA;AAED,uBAA8B,OAAgB;IAC5C,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAFe,qBAAa,gBAE5B,CAAA;AAED;IACE,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAFe,qBAAa,gBAE5B,CAAA","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {BaseWrappedException} from './base_wrapped_exception';\nimport {ExceptionHandler} from './exception_handler';\n\nexport {ExceptionHandler} from './exception_handler';\n\nexport class BaseException extends Error {\n public stack: any;\n constructor(public message: string = \"--\") {\n super(message);\n this.stack = (<any>new Error(message)).stack;\n }\n\n toString(): string { return this.message; }\n}\n\n/**\n * Wraps an exception and provides additional context or information.\n */\nexport class WrappedException extends BaseWrappedException {\n private _wrapperStack: any;\n\n constructor(private _wrapperMessage: string, private _originalException, private _originalStack?,\n private _context?) {\n super(_wrapperMessage);\n this._wrapperStack = (<any>new Error(_wrapperMessage)).stack;\n }\n\n get wrapperMessage(): string { return this._wrapperMessage; }\n\n get wrapperStack(): any { return this._wrapperStack; }\n\n\n get originalException(): any { return this._originalException; }\n\n get originalStack(): any { return this._originalStack; }\n\n\n get context(): any { return this._context; }\n\n get message(): string { return ExceptionHandler.exceptionToString(this); }\n\n toString(): string { return this.message; }\n}\n\nexport function makeTypeError(message?: string): Error {\n return new TypeError(message);\n}\n\nexport function unimplemented(): any {\n throw new BaseException('unimplemented');\n}\n"]}
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/facade/exceptions.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAmC,0BAA0B,CAAC,CAAA;AAC9D,kCAA+B,qBAAqB,CAAC,CAAA;AAErD,kCAA+B,qBAAqB,CAAC;AAA7C,gEAA6C;AAErD;;GAEG;AACH;IAAmC,iCAAK;IAEtC,uBAAmB,OAAsB;QAA7B,uBAA6B,GAA7B,cAA6B;QACvC,kBAAM,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAe;QAEvC,IAAI,CAAC,KAAK,GAAG,CAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,CAAC;IAED,gCAAQ,GAAR,cAAqB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,oBAAC;AAAD,CAAC,AARD,CAAmC,KAAK,GAQvC;AARY,qBAAa,gBAQzB,CAAA;AAED;;;GAGG;AACH;IAAsC,oCAAoB;IAGxD,0BACY,eAAuB,EAAU,kBAAuB,CAAC,iBAAiB,EAC1E,cAAoB,CAAC,iBAAiB,EAAU,QAAc,CAAC,iBAAiB;QAC1F,kBAAM,eAAe,CAAC,CAAC;QAFb,oBAAe,GAAf,eAAe,CAAQ;QAAU,uBAAkB,GAAlB,kBAAkB,CAAK;QACxD,mBAAc,GAAd,cAAc,CAAM;QAA4B,aAAQ,GAAR,QAAQ,CAAM;QAExE,IAAI,CAAC,aAAa,GAAG,CAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/D,CAAC;IAED,sBAAI,4CAAc;aAAlB,cAA+B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;;;OAAA;IAE7D,sBAAI,0CAAY;aAAhB,cAA0B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;;OAAA;IAGtD,sBAAI,+CAAiB;aAArB,cAA+B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;OAAA;IAEhE,sBAAI,2CAAa;aAAjB,cAA2B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;;;OAAA;IAGxD,sBAAI,qCAAO;aAAX,cAAqB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;;OAAA;IAE5C,sBAAI,qCAAO;aAAX,cAAwB,MAAM,CAAC,oCAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;OAAA;IAE1E,mCAAQ,GAAR,cAAqB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,uBAAC;AAAD,CAAC,AAzBD,CAAsC,6CAAoB,GAyBzD;AAzBY,wBAAgB,mBAyB5B,CAAA;AAED,uBAA8B,OAAgB;IAC5C,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAFe,qBAAa,gBAE5B,CAAA;AAED;IACE,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAFe,qBAAa,gBAE5B,CAAA","sourcesContent":["import {BaseWrappedException} from './base_wrapped_exception';\nimport {ExceptionHandler} from './exception_handler';\n\nexport {ExceptionHandler} from './exception_handler';\n\n/**\n * @stable\n */\nexport class BaseException extends Error {\n public stack: any;\n constructor(public message: string = '--') {\n super(message);\n this.stack = (<any>new Error(message)).stack;\n }\n\n toString(): string { return this.message; }\n}\n\n/**\n * Wraps an exception and provides additional context or information.\n * @stable\n */\nexport class WrappedException extends BaseWrappedException {\n private _wrapperStack: any;\n\n constructor(\n private _wrapperMessage: string, private _originalException: any /** TODO #9100 */,\n private _originalStack?: any /** TODO #9100 */, private _context?: any /** TODO #9100 */) {\n super(_wrapperMessage);\n this._wrapperStack = (<any>new Error(_wrapperMessage)).stack;\n }\n\n get wrapperMessage(): string { return this._wrapperMessage; }\n\n get wrapperStack(): any { return this._wrapperStack; }\n\n\n get originalException(): any { return this._originalException; }\n\n get originalStack(): any { return this._originalStack; }\n\n\n get context(): any { return this._context; }\n\n get message(): string { return ExceptionHandler.exceptionToString(this); }\n\n toString(): string { return this.message; }\n}\n\nexport function makeTypeError(message?: string): Error {\n return new TypeError(message);\n}\n\nexport function unimplemented(): any {\n throw new BaseException('unimplemented');\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":1,"metadata":{"makeTypeError":{"__symbolic":"function","parameters":["message"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TypeError"},"arguments":[{"__symbolic":"reference","name":"message"}]}}}}
@@ -49,6 +49,7 @@ export declare function lockMode(): void;
49
49
  * One important assertion this disables verifies that a change detection pass
50
50
  * does not result in additional changes to any bindings (also known as
51
51
  * unidirectional data flow).
52
+ * @stable
52
53
  */
53
54
  export declare function enableProdMode(): void;
54
55
  export declare function assertionsEnabled(): boolean;
@@ -56,14 +57,14 @@ export declare function isPresent(obj: any): boolean;
56
57
  export declare function isBlank(obj: any): boolean;
57
58
  export declare function isBoolean(obj: any): boolean;
58
59
  export declare function isNumber(obj: any): boolean;
59
- export declare function isString(obj: any): boolean;
60
+ export declare function isString(obj: any): obj is String;
60
61
  export declare function isFunction(obj: any): boolean;
61
62
  export declare function isType(obj: any): boolean;
62
63
  export declare function isStringMap(obj: any): boolean;
63
64
  export declare function isStrictStringMap(obj: any): boolean;
64
65
  export declare function isPromise(obj: any): boolean;
65
66
  export declare function isArray(obj: any): boolean;
66
- export declare function isDate(obj: any): boolean;
67
+ export declare function isDate(obj: any): obj is Date;
67
68
  export declare function noop(): void;
68
69
  export declare function stringify(token: any): string;
69
70
  export declare function serializeEnum(val: any): number;
@@ -84,8 +85,8 @@ export declare class StringWrapper {
84
85
  static compare(a: string, b: string): number;
85
86
  }
86
87
  export declare class StringJoiner {
87
- parts: any[];
88
- constructor(parts?: any[]);
88
+ parts: string[];
89
+ constructor(parts?: string[]);
89
90
  add(part: string): void;
90
91
  toString(): string;
91
92
  }
@@ -124,6 +125,7 @@ export declare class RegExpMatcherWrapper {
124
125
  }
125
126
  export declare class FunctionWrapper {
126
127
  static apply(fn: Function, posArgs: any): any;
128
+ static bind(fn: Function, scope: any): Function;
127
129
  }
128
130
  export declare function looseIdentical(a: any, b: any): boolean;
129
131
  export declare function getMapKey<T>(value: T): T;
@@ -49,6 +49,7 @@ exports.lockMode = lockMode;
49
49
  * One important assertion this disables verifies that a change detection pass
50
50
  * does not result in additional changes to any bindings (also known as
51
51
  * unidirectional data flow).
52
+ * @stable
52
53
  */
53
54
  function enableProdMode() {
54
55
  if (_modeLocked) {
@@ -77,19 +78,19 @@ function isBlank(obj) {
77
78
  }
78
79
  exports.isBlank = isBlank;
79
80
  function isBoolean(obj) {
80
- return typeof obj === "boolean";
81
+ return typeof obj === 'boolean';
81
82
  }
82
83
  exports.isBoolean = isBoolean;
83
84
  function isNumber(obj) {
84
- return typeof obj === "number";
85
+ return typeof obj === 'number';
85
86
  }
86
87
  exports.isNumber = isNumber;
87
88
  function isString(obj) {
88
- return typeof obj === "string";
89
+ return typeof obj === 'string';
89
90
  }
90
91
  exports.isString = isString;
91
92
  function isFunction(obj) {
92
- return typeof obj === "function";
93
+ return typeof obj === 'function';
93
94
  }
94
95
  exports.isFunction = isFunction;
95
96
  function isType(obj) {
@@ -133,7 +134,7 @@ function stringify(token) {
133
134
  return token.overriddenName;
134
135
  }
135
136
  var res = token.toString();
136
- var newLineIndex = res.indexOf("\n");
137
+ var newLineIndex = res.indexOf('\n');
137
138
  return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);
138
139
  }
139
140
  exports.stringify = stringify;
@@ -226,7 +227,7 @@ var StringJoiner = (function () {
226
227
  this.parts = parts;
227
228
  }
228
229
  StringJoiner.prototype.add = function (part) { this.parts.push(part); };
229
- StringJoiner.prototype.toString = function () { return this.parts.join(""); };
230
+ StringJoiner.prototype.toString = function () { return this.parts.join(''); };
230
231
  return StringJoiner;
231
232
  }());
232
233
  exports.StringJoiner = StringJoiner;
@@ -248,7 +249,7 @@ var NumberWrapper = (function () {
248
249
  NumberWrapper.parseIntAutoRadix = function (text) {
249
250
  var result = parseInt(text);
250
251
  if (isNaN(result)) {
251
- throw new NumberParseError("Invalid integer literal when parsing " + text);
252
+ throw new NumberParseError('Invalid integer literal when parsing ' + text);
252
253
  }
253
254
  return result;
254
255
  };
@@ -269,8 +270,7 @@ var NumberWrapper = (function () {
269
270
  return result;
270
271
  }
271
272
  }
272
- throw new NumberParseError("Invalid integer literal when parsing " + text + " in base " +
273
- radix);
273
+ throw new NumberParseError('Invalid integer literal when parsing ' + text + ' in base ' + radix);
274
274
  };
275
275
  // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.
276
276
  NumberWrapper.parseFloat = function (text) { return parseFloat(text); };
@@ -340,12 +340,13 @@ var FunctionWrapper = (function () {
340
340
  function FunctionWrapper() {
341
341
  }
342
342
  FunctionWrapper.apply = function (fn, posArgs) { return fn.apply(null, posArgs); };
343
+ FunctionWrapper.bind = function (fn, scope) { return fn.bind(scope); };
343
344
  return FunctionWrapper;
344
345
  }());
345
346
  exports.FunctionWrapper = FunctionWrapper;
346
347
  // JS has NaN !== NaN
347
348
  function looseIdentical(a, b) {
348
- return a === b || typeof a === "number" && typeof b === "number" && isNaN(a) && isNaN(b);
349
+ return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);
349
350
  }
350
351
  exports.looseIdentical = looseIdentical;
351
352
  // JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)
@@ -363,7 +364,7 @@ function normalizeBool(obj) {
363
364
  }
364
365
  exports.normalizeBool = normalizeBool;
365
366
  function isJsObject(o) {
366
- return o !== null && (typeof o === "function" || typeof o === "object");
367
+ return o !== null && (typeof o === 'function' || typeof o === 'object');
367
368
  }
368
369
  exports.isJsObject = isJsObject;
369
370
  function print(obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/facade/lang.ts"],"names":[],"mappings":"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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n export interface BrowserNodeGlobal {\n Object: typeof Object;\n Array: typeof Array;\n Map: typeof Map;\n Set: typeof Set;\n Date: DateConstructor;\n RegExp: RegExpConstructor;\n JSON: typeof JSON;\n Math: any; // typeof Math;\n assert(condition: any): void;\n Reflect: any;\n getAngularTestability: Function;\n getAllAngularTestabilities: Function;\n getAllAngularRootElements: Function;\n frameworkStabilizers: Array<Function>;\n setTimeout: Function;\n clearTimeout: Function;\n setInterval: Function;\n clearInterval: Function;\n encodeURI: Function;\n}\n\n// TODO(jteplitz602): Load WorkerGlobalScope from lib.webworker.d.ts file #3492\ndeclare var WorkerGlobalScope;\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\ndeclare var global;\n\nvar globalScope: BrowserNodeGlobal;\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 = <any>self;\n } else {\n globalScope = <any>global;\n }\n} else {\n globalScope = <any>window;\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n\nexport const IS_DART = false;\n\n// Need to declare a new variable for global here since TypeScript\n// exports the original value of the symbol.\nvar _global: BrowserNodeGlobal = globalScope;\n\nexport {_global as global};\n\nexport var Type = Function;\n\n/**\n * Runtime representation a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by\n * the `MyCustomComponent` constructor function.\n */\nexport interface Type extends Function {}\n\n/**\n * Runtime representation of a type that is constructable (non-abstract).\n */\nexport interface ConcreteType extends Type { new (...args): any; }\n\nexport function getTypeNameForDebugging(type: Type): string {\n if (type['name']) {\n return type['name'];\n }\n return typeof type;\n}\n\n\nexport var Math = _global.Math;\nexport var Date = _global.Date;\n\nvar _devMode: boolean = true;\nvar _modeLocked: boolean = false;\n\nexport function lockMode() {\n _modeLocked = true;\n}\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}\n\nexport function assertionsEnabled(): boolean {\n return _devMode;\n}\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};\n\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\nexport function isBoolean(obj: any): boolean {\n return typeof obj === \"boolean\";\n}\n\nexport function isNumber(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nexport function isString(obj: any): boolean {\n return typeof obj === \"string\";\n}\n\nexport function isFunction(obj: any): boolean {\n return typeof obj === \"function\";\n}\n\nexport function isType(obj: any): boolean {\n return isFunction(obj);\n}\n\nexport function isStringMap(obj: any): boolean {\n return typeof obj === 'object' && obj !== null;\n}\n\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\nexport function isStrictStringMap(obj: any): boolean {\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\n\nexport function isPromise(obj: any): boolean {\n return obj instanceof (<any>_global).Promise;\n}\n\nexport function isArray(obj: any): boolean {\n return Array.isArray(obj);\n}\n\nexport function isDate(obj): boolean {\n return obj instanceof Date && !isNaN(obj.valueOf());\n}\n\nexport function noop() {}\n\nexport function stringify(token): string {\n if (typeof token === 'string') {\n return token;\n }\n\n if (token === undefined || token === null) {\n return '' + token;\n }\n\n if (token.name) {\n return token.name;\n }\n if (token.overriddenName) {\n return token.overriddenName;\n }\n\n var res = token.toString();\n var newLineIndex = res.indexOf(\"\\n\");\n return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);\n}\n\n// serialize / deserialize enum exist only for consistency with dart API\n// enums in typescript don't need to be serialized\n\nexport function serializeEnum(val): number {\n return val;\n}\n\nexport function deserializeEnum(val, values: Map<number, any>): any {\n return val;\n}\n\nexport function resolveEnumToken(enumValue, val): string {\n return enumValue[val];\n}\n\nexport class StringWrapper {\n static fromCharCode(code: number): string { return String.fromCharCode(code); }\n\n static charCodeAt(s: string, index: number): number { return s.charCodeAt(index); }\n\n static split(s: string, regExp: RegExp): string[] { return s.split(regExp); }\n\n static equals(s: string, s2: string): boolean { return s === s2; }\n\n static stripLeft(s: string, charVal: string): string {\n if (s && s.length) {\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n if (s[i] != charVal) break;\n pos++;\n }\n s = s.substring(pos);\n }\n return s;\n }\n\n static stripRight(s: string, charVal: string): string {\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) break;\n pos--;\n }\n s = s.substring(0, pos);\n }\n return s;\n }\n\n static replace(s: string, from: string, replace: string): string {\n return s.replace(from, replace);\n }\n\n static replaceAll(s: string, from: RegExp, replace: string): string {\n return s.replace(from, replace);\n }\n\n static slice<T>(s: string, from: number = 0, to: number = null): string {\n return s.slice(from, to === null ? undefined : to);\n }\n\n static replaceAllMapped(s: string, from: RegExp, cb: Function): string {\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\n static contains(s: string, substr: string): boolean { return s.indexOf(substr) != -1; }\n\n static compare(a: string, b: string): number {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n }\n}\n\nexport class StringJoiner {\n constructor(public parts = []) {}\n\n add(part: string): void { this.parts.push(part); }\n\n toString(): string { return this.parts.join(\"\"); }\n}\n\nexport class NumberParseError extends Error {\n name: string;\n\n constructor(public message: string) { super(); }\n\n toString(): string { return this.message; }\n}\n\n\nexport class NumberWrapper {\n static toFixed(n: number, fractionDigits: number): string { return n.toFixed(fractionDigits); }\n\n static equal(a: number, b: number): boolean { return a === b; }\n\n static parseIntAutoRadix(text: string): number {\n var result: number = parseInt(text);\n if (isNaN(result)) {\n throw new NumberParseError(\"Invalid integer literal when parsing \" + text);\n }\n return result;\n }\n\n static parseInt(text: string, radix: number): number {\n if (radix == 10) {\n if (/^(\\-|\\+)?[0-9]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else if (radix == 16) {\n if (/^(\\-|\\+)?[0-9ABCDEFabcdef]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else {\n var result: number = 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\n // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.\n static parseFloat(text: string): number { return parseFloat(text); }\n\n static get NaN(): number { return NaN; }\n\n static isNaN(value: any): boolean { return isNaN(value); }\n\n static isInteger(value: any): boolean { return Number.isInteger(value); }\n}\n\nexport var RegExp = _global.RegExp;\n\nexport class RegExpWrapper {\n static create(regExpStr: string, flags: string = ''): RegExp {\n flags = flags.replace(/g/g, '');\n return new _global.RegExp(regExpStr, flags + 'g');\n }\n static firstMatch(regExp: RegExp, input: string): RegExpExecArray {\n // Reset multimatch regex state\n regExp.lastIndex = 0;\n return regExp.exec(input);\n }\n static test(regExp: RegExp, input: string): boolean {\n regExp.lastIndex = 0;\n return regExp.test(input);\n }\n static matcher(regExp: RegExp, input: string): {\n re: RegExp;\n input: string\n }\n {\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: RegExp, input: string, replace: Function): string {\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}\n\nexport class RegExpMatcherWrapper {\n static next(matcher: {\n re: RegExp;\n input: string\n }): RegExpExecArray {\n return matcher.re.exec(matcher.input);\n }\n}\n\nexport class FunctionWrapper {\n static apply(fn: Function, posArgs: any): any { return fn.apply(null, posArgs); }\n}\n\n// JS has NaN !== NaN\nexport function looseIdentical(a, b): boolean {\n return a === b || typeof a === \"number\" && typeof b === \"number\" && isNaN(a) && isNaN(b);\n}\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<T>(value: T): T {\n return value;\n}\n\nexport function normalizeBlank(obj: Object): any {\n return isBlank(obj) ? null : obj;\n}\n\nexport function normalizeBool(obj: boolean): boolean {\n return isBlank(obj) ? false : obj;\n}\n\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === \"function\" || typeof o === \"object\");\n}\n\nexport function print(obj: Error | Object) {\n console.log(obj);\n}\n\nexport function warn(obj: Error | Object) {\n console.warn(obj);\n}\n\n// Can't be all uppercase as our transpiler would think it is a special directive...\nexport class Json {\n static parse(s: string): Object { return _global.JSON.parse(s); }\n static stringify(data: Object): string {\n // Dart doesn't take 3 arguments\n return _global.JSON.stringify(data, null, 2);\n }\n}\n\nexport class DateWrapper {\n static create(year: number, month: number = 1, day: number = 1, hour: number = 0,\n minutes: number = 0, seconds: number = 0, milliseconds: number = 0): Date {\n return new Date(year, month - 1, day, hour, minutes, seconds, milliseconds);\n }\n static fromISOString(str: string): Date { return new Date(str); }\n static fromMillis(ms: number): Date { return new Date(ms); }\n static toMillis(date: Date): number { return date.getTime(); }\n static now(): Date { return new Date(); }\n static toJson(date: Date): string { return date.toJSON(); }\n}\n\nexport function setValueOnPath(global: any, path: string, value: any) {\n var parts = path.split('.');\n var obj: any = global;\n while (parts.length > 1) {\n var name = parts.shift();\n if (obj.hasOwnProperty(name) && isPresent(obj[name])) {\n obj = obj[name];\n } else {\n obj = obj[name] = {};\n }\n }\n if (obj === undefined || obj === null) {\n obj = {};\n }\n obj[parts.shift()] = value;\n}\n\n// When Symbol.iterator doesn't exist, retrieves the key used in es6-shim\ndeclare var Symbol;\nvar _symbolIterator = null;\nexport function getSymbolIterator(): string | symbol {\n if (isBlank(_symbolIterator)) {\n if (isPresent((<any>globalScope).Symbol) && isPresent(Symbol.iterator)) {\n _symbolIterator = Symbol.iterator;\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}\n\nexport function evalExpression(sourceUrl: string, expr: string, declarations: string,\n vars: {[key: string]: any}): any {\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}\n\nexport function isPrimitive(obj: any): boolean {\n return !isJsObject(obj);\n}\n\nexport function hasConstructor(value: Object, type: Type): boolean {\n return value.constructor === type;\n}\n\nexport function bitWiseOr(values: number[]): number {\n return values.reduce((a, b) => { return a | b; });\n}\n\nexport function bitWiseAnd(values: number[]): number {\n return values.reduce((a, b) => { return a & b; });\n}\n\nexport function escape(s: string): string {\n return _global.encodeURI(s);\n}\n"]}
1
+ {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/facade/lang.ts"],"names":[],"mappings":";;;;;;AA6BA,IAAI,WAA8B,CAAC;AACnC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,CAAC,OAAO,iBAAiB,KAAK,WAAW,IAAI,IAAI,YAAY,iBAAiB,CAAC,CAAC,CAAC;QAClF,yEAAyE;QACzE,WAAW,GAAQ,IAAI,CAAC;IAC1B,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,WAAW,GAAQ,MAAM,CAAC;IAC5B,CAAC;AACH,CAAC;AAAC,IAAI,CAAC,CAAC;IACN,WAAW,GAAQ,MAAM,CAAC;AAC5B,CAAC;AAED,2BAAkC,EAAY;IAC5C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAFe,yBAAiB,oBAEhC,CAAA;AAEY,eAAO,GAAG,KAAK,CAAC;AAE7B,kEAAkE;AAClE,4CAA4C;AAC5C,IAAI,OAAO,GAAsB,WAAW;AAEzB,cAAM,WAFoB;AAIlC,YAAI,GAAG,QAAQ,CAAC;AAe3B,iCAAwC,IAAU;IAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,CAAC,OAAO,IAAI,CAAC;AACrB,CAAC;AALe,+BAAuB,0BAKtC,CAAA;AAGU,YAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACpB,YAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE/B,IAAI,QAAQ,GAAY,IAAI,CAAC;AAC7B,IAAI,WAAW,GAAY,KAAK,CAAC;AAEjC;IACE,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAFe,gBAAQ,WAEvB,CAAA;AAED;;;;;;;;GAQG;AACH;IACE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAChB,uEAAuE;QACvE,MAAM,+CAA+C,CAAC;IACxD,CAAC;IACD,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AANe,sBAAc,iBAM7B,CAAA;AAED;IACE,MAAM,CAAC,QAAQ,CAAC;AAClB,CAAC;AAFe,yBAAiB,oBAEhC,CAAA;AAED,yDAAyD;AACzD,4DAA4D;AAC5D,4CAA4C;AAC5C,OAAO,CAAC,MAAM,GAAG,gBAAgB,SAAS;IACxC,qDAAqD;AACvD,CAAC,CAAC;AAEF,mBAA0B,GAAQ;IAChC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAFe,iBAAS,YAExB,CAAA;AAED,iBAAwB,GAAQ;IAC9B,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAFe,eAAO,UAEtB,CAAA;AAED,mBAA0B,GAAQ;IAChC,MAAM,CAAC,OAAO,GAAG,KAAK,SAAS,CAAC;AAClC,CAAC;AAFe,iBAAS,YAExB,CAAA;AAED,kBAAyB,GAAQ;IAC/B,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAFe,gBAAQ,WAEvB,CAAA;AAED,kBAAyB,GAAQ;IAC/B,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAFe,gBAAQ,WAEvB,CAAA;AAED,oBAA2B,GAAQ;IACjC,MAAM,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAFe,kBAAU,aAEzB,CAAA;AAED,gBAAuB,GAAQ;IAC7B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAFe,cAAM,SAErB,CAAA;AAED,qBAA4B,GAAQ;IAClC,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACjD,CAAC;AAFe,mBAAW,cAE1B,CAAA;AAED,IAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACnD,2BAAkC,GAAQ;IACxC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;AAC7E,CAAC;AAFe,yBAAiB,oBAEhC,CAAA;AAED,mBAA0B,GAAQ;IAChC,MAAM,CAAC,GAAG,YAAkB,OAAQ,CAAC,OAAO,CAAC;AAC/C,CAAC;AAFe,iBAAS,YAExB,CAAA;AAED,iBAAwB,GAAQ;IAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFe,eAAO,UAEtB,CAAA;AAED,gBAAuB,GAAQ;IAC7B,MAAM,CAAC,GAAG,YAAY,YAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAFe,cAAM,SAErB,CAAA;AAED,kBAAwB,CAAC;AAAT,YAAI,OAAK,CAAA;AAEzB,mBAA0B,KAAU;IAClC,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IACD,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAnBe,iBAAS,YAmBxB,CAAA;AAED,wEAAwE;AACxE,kDAAkD;AAElD,uBAA8B,GAAQ;IACpC,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAFe,qBAAa,gBAE5B,CAAA;AAED,yBAAgC,GAAQ,EAAE,MAAwB;IAChE,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAFe,uBAAe,kBAE9B,CAAA;AAED,0BAAiC,SAAc,EAAE,GAAQ;IACvD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAFe,wBAAgB,mBAE/B,CAAA;AAED;IAAA;IAiEA,CAAC;IAhEQ,0BAAY,GAAnB,UAAoB,IAAY,IAAY,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExE,wBAAU,GAAjB,UAAkB,CAAS,EAAE,KAAa,IAAY,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5E,mBAAK,GAAZ,UAAa,CAAS,EAAE,MAAc,IAAc,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtE,oBAAM,GAAb,UAAc,CAAS,EAAE,EAAU,IAAa,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE3D,uBAAS,GAAhB,UAAiB,CAAS,EAAE,OAAe;QACzC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;oBAAC,KAAK,CAAC;gBAC3B,GAAG,EAAE,CAAC;YACR,CAAC;YACD,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAEM,wBAAU,GAAjB,UAAkB,CAAS,EAAE,OAAe;QAC1C,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;oBAAC,KAAK,CAAC;gBAC3B,GAAG,EAAE,CAAC;YACR,CAAC;YACD,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAEM,qBAAO,GAAd,UAAe,CAAS,EAAE,IAAY,EAAE,OAAe;QACrD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,wBAAU,GAAjB,UAAkB,CAAS,EAAE,IAAY,EAAE,OAAe;QACxD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,mBAAK,GAAZ,UAAgB,CAAS,EAAE,IAAgB,EAAE,EAAiB;QAAnC,oBAAgB,GAAhB,QAAgB;QAAE,kBAAiB,GAAjB,SAAiB;QAC5D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,8BAAgB,GAAvB,UAAwB,CAAS,EAAE,IAAY,EAAE,EAAY;QAC3D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;YAAS,iBAAiB;iBAAjB,WAAiB,CAAjB,sBAAiB,CAAjB,IAAiB;gBAAjB,gCAAiB;;YAC/C,+CAA+C;YAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,2CAA2C;YAC3C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,sBAAQ,GAAf,UAAgB,CAAS,EAAE,MAAc,IAAa,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,qBAAO,GAAd,UAAe,CAAS,EAAE,CAAS;QACjC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAjED,IAiEC;AAjEY,qBAAa,gBAiEzB,CAAA;AAED;IACE,sBAAmB,KAAoB;QAA3B,qBAA2B,GAA3B,UAA2B;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAE3C,0BAAG,GAAH,UAAI,IAAY,IAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElD,+BAAQ,GAAR,cAAqB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,mBAAC;AAAD,CAAC,AAND,IAMC;AANY,oBAAY,eAMxB,CAAA;AAED;IAAsC,oCAAK;IAGzC,0BAAmB,OAAe;QAAI,iBAAO,CAAC;QAA3B,YAAO,GAAP,OAAO,CAAQ;IAAa,CAAC;IAEhD,mCAAQ,GAAR,cAAqB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,uBAAC;AAAD,CAAC,AAND,CAAsC,KAAK,GAM1C;AANY,wBAAgB,mBAM5B,CAAA;AAGD;IAAA;IAwCA,CAAC;IAvCQ,qBAAO,GAAd,UAAe,CAAS,EAAE,cAAsB,IAAY,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAExF,mBAAK,GAAZ,UAAa,CAAS,EAAE,CAAS,IAAa,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAExD,+BAAiB,GAAxB,UAAyB,IAAY;QACnC,IAAI,MAAM,GAAW,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEM,sBAAQ,GAAf,UAAgB,IAAY,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAChB,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,MAAM,GAAW,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,gBAAgB,CACtB,uCAAuC,GAAG,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,mFAAmF;IAC5E,wBAAU,GAAjB,UAAkB,IAAY,IAAY,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpE,sBAAW,oBAAG;aAAd,cAA2B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;;OAAA;IAEjC,mBAAK,GAAZ,UAAa,KAAU,IAAa,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnD,uBAAS,GAAhB,UAAiB,KAAU,IAAa,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,oBAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCY,qBAAa,gBAwCzB,CAAA;AAEU,cAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAEnC;IAAA;IAoCA,CAAC;IAnCQ,oBAAM,GAAb,UAAc,SAAiB,EAAE,KAAkB;QAAlB,qBAAkB,GAAlB,UAAkB;QACjD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IACpD,CAAC;IACM,wBAAU,GAAjB,UAAkB,MAAc,EAAE,KAAa;QAC7C,+BAA+B;QAC/B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACM,kBAAI,GAAX,UAAY,MAAc,EAAE,KAAa;QACvC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACM,qBAAO,GAAd,UAAe,MAAc,EAAE,KAAa;QAC1C,iCAAiC;QACjC,wCAAwC;QACxC,aAAa;QACb,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,EAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;IACpC,CAAC;IACM,wBAAU,GAAjB,UAAkB,MAAc,EAAE,KAAa,EAAE,OAAiB;QAChE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACtC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IACH,oBAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,qBAAa,gBAoCzB,CAAA;AAED;IAAA;IAIA,CAAC;IAHQ,yBAAI,GAAX,UAAY,OAAoC;QAC9C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACH,2BAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4BAAoB,uBAIhC,CAAA;AAED;IAAA;IAIA,CAAC;IAHQ,qBAAK,GAAZ,UAAa,EAAY,EAAE,OAAY,IAAS,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1E,oBAAI,GAAX,UAAY,EAAY,EAAE,KAAU,IAAc,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,sBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,uBAAe,kBAI3B,CAAA;AAED,qBAAqB;AACrB,wBAA+B,CAAM,EAAE,CAAM;IAC3C,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAFe,sBAAc,iBAE7B,CAAA;AAED,gFAAgF;AAChF,2FAA2F;AAC3F,mBAA6B,KAAQ;IACnC,MAAM,CAAC,KAAK,CAAC;AACf,CAAC;AAFe,iBAAS,YAExB,CAAA;AAED,wBAA+B,GAAW;IACxC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AACnC,CAAC;AAFe,sBAAc,iBAE7B,CAAA;AAED,uBAA8B,GAAY;IACxC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;AACpC,CAAC;AAFe,qBAAa,gBAE5B,CAAA;AAED,oBAA2B,CAAM;IAC/B,MAAM,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAFe,kBAAU,aAEzB,CAAA;AAED,eAAsB,GAAmB;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAFe,aAAK,QAEpB,CAAA;AAED,cAAqB,GAAmB;IACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAFe,YAAI,OAEnB,CAAA;AAED,oFAAoF;AACpF;IAAA;IAMA,CAAC;IALQ,UAAK,GAAZ,UAAa,CAAS,IAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,cAAS,GAAhB,UAAiB,IAAY;QAC3B,gCAAgC;QAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IACH,WAAC;AAAD,CAAC,AAND,IAMC;AANY,YAAI,OAMhB,CAAA;AAED;IAAA;IAWA,CAAC;IAVQ,kBAAM,GAAb,UACI,IAAY,EAAE,KAAiB,EAAE,GAAe,EAAE,IAAgB,EAAE,OAAmB,EACvF,OAAmB,EAAE,YAAwB;QAD/B,qBAAiB,GAAjB,SAAiB;QAAE,mBAAe,GAAf,OAAe;QAAE,oBAAgB,GAAhB,QAAgB;QAAE,uBAAmB,GAAnB,WAAmB;QACvF,uBAAmB,GAAnB,WAAmB;QAAE,4BAAwB,GAAxB,gBAAwB;QAC/C,MAAM,CAAC,IAAI,YAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC;IACM,yBAAa,GAApB,UAAqB,GAAW,IAAU,MAAM,CAAC,IAAI,YAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,sBAAU,GAAjB,UAAkB,EAAU,IAAU,MAAM,CAAC,IAAI,YAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,oBAAQ,GAAf,UAAgB,IAAU,IAAY,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvD,eAAG,GAAV,cAAqB,MAAM,CAAC,IAAI,YAAI,EAAE,CAAC,CAAC,CAAC;IAClC,kBAAM,GAAb,UAAc,IAAU,IAAY,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7D,kBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,mBAAW,cAWvB,CAAA;AAED,wBAA+B,MAAW,EAAE,IAAY,EAAE,KAAU;IAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,GAAG,GAAQ,MAAM,CAAC;IACtB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IACD,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;QACtC,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;AAC7B,CAAC;AAfe,sBAAc,iBAe7B,CAAA;AAID,IAAI,eAAe,GAAQ,IAAI,CAAC;AAChC;IACE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7B,EAAE,CAAC,CAAC,SAAS,CAAO,WAAY,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvE,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,0BAA0B;YAC1B,IAAI,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM;oBAClC,GAAW,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC7D,eAAe,GAAG,GAAG,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,CAAC,eAAe,CAAC;AACzB,CAAC;AAjBe,yBAAiB,oBAiBhC,CAAA;AAED,wBACI,SAAiB,EAAE,IAAY,EAAE,YAAoB,EAAE,IAA0B;IACnF,IAAI,MAAM,GAAM,YAAY,iBAAY,IAAI,wBAAmB,SAAW,CAAC;IAC3E,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAU,EAAE,CAAC;IAC5B,GAAG,CAAC,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,CAAC,KAAI,QAAQ,YAAR,QAAQ,kBAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAC,eAAI,WAAW,CAAC,CAAC;AACpE,CAAC;AAVe,sBAAc,iBAU7B,CAAA;AAED,qBAA4B,GAAQ;IAClC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAFe,mBAAW,cAE1B,CAAA;AAED,wBAA+B,KAAa,EAAE,IAAU;IACtD,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;AACpC,CAAC;AAFe,sBAAc,iBAE7B,CAAA;AAED,mBAA0B,MAAgB;IACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAFe,iBAAS,YAExB,CAAA;AAED,oBAA2B,MAAgB;IACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAFe,kBAAU,aAEzB,CAAA;AAED,gBAAuB,CAAS;IAC9B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAFe,cAAM,SAErB,CAAA","sourcesContent":["export interface BrowserNodeGlobal {\n Object: typeof Object;\n Array: typeof Array;\n Map: typeof Map;\n Set: typeof Set;\n Date: DateConstructor;\n RegExp: RegExpConstructor;\n JSON: typeof JSON;\n Math: any; // typeof Math;\n assert(condition: any): void;\n Reflect: any;\n getAngularTestability: Function;\n getAllAngularTestabilities: Function;\n getAllAngularRootElements: Function;\n frameworkStabilizers: Array<Function>;\n setTimeout: Function;\n clearTimeout: Function;\n setInterval: Function;\n clearInterval: Function;\n encodeURI: Function;\n}\n\n// TODO(jteplitz602): Load WorkerGlobalScope from lib.webworker.d.ts file #3492\ndeclare var WorkerGlobalScope: any /** TODO #9100 */;\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\ndeclare var global: any /** TODO #9100 */;\n\nvar globalScope: BrowserNodeGlobal;\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 = <any>self;\n } else {\n globalScope = <any>global;\n }\n} else {\n globalScope = <any>window;\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n\nexport const IS_DART = false;\n\n// Need to declare a new variable for global here since TypeScript\n// exports the original value of the symbol.\nvar _global: BrowserNodeGlobal = globalScope;\n\nexport {_global as global};\n\nexport var Type = Function;\n\n/**\n * Runtime representation a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by\n * the `MyCustomComponent` constructor function.\n */\nexport interface Type extends Function {}\n\n/**\n * Runtime representation of a type that is constructable (non-abstract).\n */\nexport interface ConcreteType extends Type { new (...args: any[] /** TODO #9100 */): any; }\n\nexport function getTypeNameForDebugging(type: Type): string {\n if (type['name']) {\n return type['name'];\n }\n return typeof type;\n}\n\n\nexport var Math = _global.Math;\nexport var Date = _global.Date;\n\nvar _devMode: boolean = true;\nvar _modeLocked: boolean = false;\n\nexport function lockMode() {\n _modeLocked = true;\n}\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 * @stable\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}\n\nexport function assertionsEnabled(): boolean {\n return _devMode;\n}\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};\n\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\nexport function isBoolean(obj: any): boolean {\n return typeof obj === 'boolean';\n}\n\nexport function isNumber(obj: any): boolean {\n return typeof obj === 'number';\n}\n\nexport function isString(obj: any): obj is String {\n return typeof obj === 'string';\n}\n\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\nexport function isType(obj: any): boolean {\n return isFunction(obj);\n}\n\nexport function isStringMap(obj: any): boolean {\n return typeof obj === 'object' && obj !== null;\n}\n\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\nexport function isStrictStringMap(obj: any): boolean {\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\n\nexport function isPromise(obj: any): boolean {\n return obj instanceof (<any>_global).Promise;\n}\n\nexport function isArray(obj: any): boolean {\n return Array.isArray(obj);\n}\n\nexport function isDate(obj: any): obj is Date {\n return obj instanceof Date && !isNaN(obj.valueOf());\n}\n\nexport function noop() {}\n\nexport function stringify(token: any): string {\n if (typeof token === 'string') {\n return token;\n }\n\n if (token === undefined || token === null) {\n return '' + token;\n }\n\n if (token.name) {\n return token.name;\n }\n if (token.overriddenName) {\n return token.overriddenName;\n }\n\n var res = token.toString();\n var newLineIndex = res.indexOf('\\n');\n return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);\n}\n\n// serialize / deserialize enum exist only for consistency with dart API\n// enums in typescript don't need to be serialized\n\nexport function serializeEnum(val: any): number {\n return val;\n}\n\nexport function deserializeEnum(val: any, values: Map<number, any>): any {\n return val;\n}\n\nexport function resolveEnumToken(enumValue: any, val: any): string {\n return enumValue[val];\n}\n\nexport class StringWrapper {\n static fromCharCode(code: number): string { return String.fromCharCode(code); }\n\n static charCodeAt(s: string, index: number): number { return s.charCodeAt(index); }\n\n static split(s: string, regExp: RegExp): string[] { return s.split(regExp); }\n\n static equals(s: string, s2: string): boolean { return s === s2; }\n\n static stripLeft(s: string, charVal: string): string {\n if (s && s.length) {\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n if (s[i] != charVal) break;\n pos++;\n }\n s = s.substring(pos);\n }\n return s;\n }\n\n static stripRight(s: string, charVal: string): string {\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) break;\n pos--;\n }\n s = s.substring(0, pos);\n }\n return s;\n }\n\n static replace(s: string, from: string, replace: string): string {\n return s.replace(from, replace);\n }\n\n static replaceAll(s: string, from: RegExp, replace: string): string {\n return s.replace(from, replace);\n }\n\n static slice<T>(s: string, from: number = 0, to: number = null): string {\n return s.slice(from, to === null ? undefined : to);\n }\n\n static replaceAllMapped(s: string, from: RegExp, cb: Function): string {\n return s.replace(from, function(...matches: any[]) {\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\n static contains(s: string, substr: string): boolean { return s.indexOf(substr) != -1; }\n\n static compare(a: string, b: string): number {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n }\n}\n\nexport class StringJoiner {\n constructor(public parts: string[] = []) {}\n\n add(part: string): void { this.parts.push(part); }\n\n toString(): string { return this.parts.join(''); }\n}\n\nexport class NumberParseError extends Error {\n name: string;\n\n constructor(public message: string) { super(); }\n\n toString(): string { return this.message; }\n}\n\n\nexport class NumberWrapper {\n static toFixed(n: number, fractionDigits: number): string { return n.toFixed(fractionDigits); }\n\n static equal(a: number, b: number): boolean { return a === b; }\n\n static parseIntAutoRadix(text: string): number {\n var result: number = parseInt(text);\n if (isNaN(result)) {\n throw new NumberParseError('Invalid integer literal when parsing ' + text);\n }\n return result;\n }\n\n static parseInt(text: string, radix: number): number {\n if (radix == 10) {\n if (/^(\\-|\\+)?[0-9]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else if (radix == 16) {\n if (/^(\\-|\\+)?[0-9ABCDEFabcdef]+$/.test(text)) {\n return parseInt(text, radix);\n }\n } else {\n var result: number = parseInt(text, radix);\n if (!isNaN(result)) {\n return result;\n }\n }\n throw new NumberParseError(\n 'Invalid integer literal when parsing ' + text + ' in base ' + radix);\n }\n\n // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error.\n static parseFloat(text: string): number { return parseFloat(text); }\n\n static get NaN(): number { return NaN; }\n\n static isNaN(value: any): boolean { return isNaN(value); }\n\n static isInteger(value: any): boolean { return Number.isInteger(value); }\n}\n\nexport var RegExp = _global.RegExp;\n\nexport class RegExpWrapper {\n static create(regExpStr: string, flags: string = ''): RegExp {\n flags = flags.replace(/g/g, '');\n return new _global.RegExp(regExpStr, flags + 'g');\n }\n static firstMatch(regExp: RegExp, input: string): RegExpExecArray {\n // Reset multimatch regex state\n regExp.lastIndex = 0;\n return regExp.exec(input);\n }\n static test(regExp: RegExp, input: string): boolean {\n regExp.lastIndex = 0;\n return regExp.test(input);\n }\n static matcher(regExp: RegExp, input: string): {re: RegExp; input: string} {\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: RegExp, input: string, replace: Function): string {\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}\n\nexport class RegExpMatcherWrapper {\n static next(matcher: {re: RegExp; input: string}): RegExpExecArray {\n return matcher.re.exec(matcher.input);\n }\n}\n\nexport class FunctionWrapper {\n static apply(fn: Function, posArgs: any): any { return fn.apply(null, posArgs); }\n\n static bind(fn: Function, scope: any): Function { return fn.bind(scope); }\n}\n\n// JS has NaN !== NaN\nexport function looseIdentical(a: any, b: any): boolean {\n return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);\n}\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<T>(value: T): T {\n return value;\n}\n\nexport function normalizeBlank(obj: Object): any {\n return isBlank(obj) ? null : obj;\n}\n\nexport function normalizeBool(obj: boolean): boolean {\n return isBlank(obj) ? false : obj;\n}\n\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\nexport function print(obj: Error | Object) {\n console.log(obj);\n}\n\nexport function warn(obj: Error | Object) {\n console.warn(obj);\n}\n\n// Can't be all uppercase as our transpiler would think it is a special directive...\nexport class Json {\n static parse(s: string): Object { return _global.JSON.parse(s); }\n static stringify(data: Object): string {\n // Dart doesn't take 3 arguments\n return _global.JSON.stringify(data, null, 2);\n }\n}\n\nexport class DateWrapper {\n static create(\n year: number, month: number = 1, day: number = 1, hour: number = 0, minutes: number = 0,\n seconds: number = 0, milliseconds: number = 0): Date {\n return new Date(year, month - 1, day, hour, minutes, seconds, milliseconds);\n }\n static fromISOString(str: string): Date { return new Date(str); }\n static fromMillis(ms: number): Date { return new Date(ms); }\n static toMillis(date: Date): number { return date.getTime(); }\n static now(): Date { return new Date(); }\n static toJson(date: Date): string { return date.toJSON(); }\n}\n\nexport function setValueOnPath(global: any, path: string, value: any) {\n var parts = path.split('.');\n var obj: any = global;\n while (parts.length > 1) {\n var name = parts.shift();\n if (obj.hasOwnProperty(name) && isPresent(obj[name])) {\n obj = obj[name];\n } else {\n obj = obj[name] = {};\n }\n }\n if (obj === undefined || obj === null) {\n obj = {};\n }\n obj[parts.shift()] = value;\n}\n\n// When Symbol.iterator doesn't exist, retrieves the key used in es6-shim\ndeclare var Symbol: any;\nvar _symbolIterator: any = null;\nexport function getSymbolIterator(): string|symbol {\n if (isBlank(_symbolIterator)) {\n if (isPresent((<any>globalScope).Symbol) && isPresent(Symbol.iterator)) {\n _symbolIterator = Symbol.iterator;\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 as any).prototype[key] === Map.prototype['entries']) {\n _symbolIterator = key;\n }\n }\n }\n }\n return _symbolIterator;\n}\n\nexport function evalExpression(\n sourceUrl: string, expr: string, declarations: string, vars: {[key: string]: any}): any {\n var fnBody = `${declarations}\\nreturn ${expr}\\n//# sourceURL=${sourceUrl}`;\n var fnArgNames: string[] = [];\n var fnArgValues: any[] = [];\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}\n\nexport function isPrimitive(obj: any): boolean {\n return !isJsObject(obj);\n}\n\nexport function hasConstructor(value: Object, type: Type): boolean {\n return value.constructor === type;\n}\n\nexport function bitWiseOr(values: number[]): number {\n return values.reduce((a, b) => { return a | b; });\n}\n\nexport function bitWiseAnd(values: number[]): number {\n return values.reduce((a, b) => { return a & b; });\n}\n\nexport function escape(s: string): string {\n return _global.encodeURI(s);\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","metadata":{"IS_DART":false,"Type":{"__symbolic":"reference","name":"Function"},"Math":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Math"},"Date":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Date"},"RegExp":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"RegExp"}}}
1
+ {"__symbolic":"module","version":1,"metadata":{"IS_DART":false,"Type":{"__symbolic":"reference","name":"Function"},"Math":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Math"},"Date":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Date"},"assertionsEnabled":{"__symbolic":"function","parameters":[],"value":true},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBoolean":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":123,"character":8},"right":"boolean"}},"isNumber":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":127,"character":8},"right":"number"}},"isString":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":131,"character":8},"right":"string"}},"isFunction":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":135,"character":8},"right":"function"}},"isType":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isFunction"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":143,"character":8},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isStringMap"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"reference","name":"STRING_MAP_PROTO"}}}},"isPromise":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"Promise"}}},"isArray":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"serializeEnum":{"__symbolic":"function","parameters":["val"],"value":{"__symbolic":"reference","name":"val"}},"deserializeEnum":{"__symbolic":"function","parameters":["val","values"],"value":{"__symbolic":"reference","name":"val"}},"resolveEnumToken":{"__symbolic":"function","parameters":["enumValue","val"],"value":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"enumValue"},"index":{"__symbolic":"reference","name":"val"}}},"RegExp":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"RegExp"},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":381,"character":19},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":381,"character":44},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"getMapKey":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"reference","name":"value"}},"normalizeBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"error","message":"Expression form not supported","line":391,"character":8}},"normalizeBool":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"error","message":"Expression form not supported","line":395,"character":8}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":399,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":399,"character":50},"right":"object"}}}},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"hasConstructor":{"__symbolic":"function","parameters":["value","type"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"value"},"member":"constructor"},"right":{"__symbolic":"reference","name":"type"}}},"bitWiseOr":{"__symbolic":"function","parameters":["values"],"value":{"__symbolic":"error","message":"Function call not supported","line":492,"character":23}},"bitWiseAnd":{"__symbolic":"function","parameters":["values"],"value":{"__symbolic":"error","message":"Function call not supported","line":496,"character":23}},"escape":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"_global"},"member":"encodeURI"},"arguments":[{"__symbolic":"reference","name":"s"}]}}}}
@@ -0,0 +1,17 @@
1
+ export declare class PromiseCompleter<R> {
2
+ promise: Promise<R>;
3
+ resolve: (value?: R | PromiseLike<R>) => void;
4
+ reject: (error?: any, stackTrace?: string) => void;
5
+ constructor();
6
+ }
7
+ export declare class PromiseWrapper {
8
+ static resolve<T>(obj: T): Promise<T>;
9
+ static reject(obj: any, _: any): Promise<any>;
10
+ static catchError<T>(promise: Promise<T>, onError: (error: any) => T | PromiseLike<T>): Promise<T>;
11
+ static all<T>(promises: (T | Promise<T>)[]): Promise<T[]>;
12
+ static then<T, U>(promise: Promise<T>, success: (value: T) => U | PromiseLike<U>, rejection?: (error: any, stack?: any) => U | PromiseLike<U>): Promise<U>;
13
+ static wrap<T>(computation: () => T): Promise<T>;
14
+ static scheduleMicrotask(computation: () => any): void;
15
+ static isPromise(obj: any): boolean;
16
+ static completer<T>(): PromiseCompleter<T>;
17
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var PromiseCompleter = (function () {
3
+ function PromiseCompleter() {
4
+ var _this = this;
5
+ this.promise = new Promise(function (res, rej) {
6
+ _this.resolve = res;
7
+ _this.reject = rej;
8
+ });
9
+ }
10
+ return PromiseCompleter;
11
+ }());
12
+ exports.PromiseCompleter = PromiseCompleter;
13
+ var PromiseWrapper = (function () {
14
+ function PromiseWrapper() {
15
+ }
16
+ PromiseWrapper.resolve = function (obj) { return Promise.resolve(obj); };
17
+ PromiseWrapper.reject = function (obj, _) { return Promise.reject(obj); };
18
+ // Note: We can't rename this method into `catch`, as this is not a valid
19
+ // method name in Dart.
20
+ PromiseWrapper.catchError = function (promise, onError) {
21
+ return promise.catch(onError);
22
+ };
23
+ PromiseWrapper.all = function (promises) {
24
+ if (promises.length == 0)
25
+ return Promise.resolve([]);
26
+ return Promise.all(promises);
27
+ };
28
+ PromiseWrapper.then = function (promise, success, rejection) {
29
+ return promise.then(success, rejection);
30
+ };
31
+ PromiseWrapper.wrap = function (computation) {
32
+ return new Promise(function (res, rej) {
33
+ try {
34
+ res(computation());
35
+ }
36
+ catch (e) {
37
+ rej(e);
38
+ }
39
+ });
40
+ };
41
+ PromiseWrapper.scheduleMicrotask = function (computation) {
42
+ PromiseWrapper.then(PromiseWrapper.resolve(null), computation, function (_) { });
43
+ };
44
+ PromiseWrapper.isPromise = function (obj) { return obj instanceof Promise; };
45
+ PromiseWrapper.completer = function () { return new PromiseCompleter(); };
46
+ return PromiseWrapper;
47
+ }());
48
+ exports.PromiseWrapper = PromiseWrapper;
49
+ //# sourceMappingURL=promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/facade/promise.ts"],"names":[],"mappings":";AACA;IAKE;QALF,iBAWC;QALG,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;YAClC,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,KAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,wBAAgB,mBAW5B,CAAA;AAED;IAAA;IAwCA,CAAC;IAvCQ,sBAAO,GAAd,UAAkB,GAAM,IAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE/D,qBAAM,GAAb,UAAc,GAAQ,EAAE,CAAM,IAAkB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7E,yEAAyE;IACzE,uBAAuB;IAChB,yBAAU,GAAjB,UAAqB,OAAmB,EAAE,OAA2C;QAEnF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,kBAAG,GAAV,UAAc,QAA0B;QACtC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEM,mBAAI,GAAX,UACI,OAAmB,EAAE,OAAyC,EAC9D,SAA2D;QAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,mBAAI,GAAX,UAAe,WAAoB;QACjC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;YAC1B,IAAI,CAAC;gBACH,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACrB,CAAE;YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACX,GAAG,CAAC,CAAC,CAAC,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,gCAAiB,GAAxB,UAAyB,WAAsB;QAC7C,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAC,CAAC,IAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEM,wBAAS,GAAhB,UAAiB,GAAQ,IAAa,MAAM,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC;IAE/D,wBAAS,GAAhB,cAA6C,MAAM,CAAC,IAAI,gBAAgB,EAAK,CAAC,CAAC,CAAC;IAClF,qBAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCY,sBAAc,iBAwC1B,CAAA","sourcesContent":["\nexport class PromiseCompleter<R> {\n promise: Promise<R>;\n resolve: (value?: R|PromiseLike<R>) => void;\n reject: (error?: any, stackTrace?: string) => void;\n\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\n\nexport class PromiseWrapper {\n static resolve<T>(obj: T): Promise<T> { return Promise.resolve(obj); }\n\n static reject(obj: any, _: any): Promise<any> { return Promise.reject(obj); }\n\n // Note: We can't rename this method into `catch`, as this is not a valid\n // method name in Dart.\n static catchError<T>(promise: Promise<T>, onError: (error: any) => T | PromiseLike<T>):\n Promise<T> {\n return promise.catch(onError);\n }\n\n static all<T>(promises: (T|Promise<T>)[]): Promise<T[]> {\n if (promises.length == 0) return Promise.resolve([]);\n return Promise.all(promises);\n }\n\n static then<T, U>(\n promise: Promise<T>, success: (value: T) => U | PromiseLike<U>,\n rejection?: (error: any, stack?: any) => U | PromiseLike<U>): Promise<U> {\n return promise.then(success, rejection);\n }\n\n static wrap<T>(computation: () => T): Promise<T> {\n return new Promise((res, rej) => {\n try {\n res(computation());\n } catch (e) {\n rej(e);\n }\n });\n }\n\n static scheduleMicrotask(computation: () => any): void {\n PromiseWrapper.then(PromiseWrapper.resolve(null), computation, (_) => {});\n }\n\n static isPromise(obj: any): boolean { return obj instanceof Promise; }\n\n static completer<T>(): PromiseCompleter<T> { return new PromiseCompleter<T>(); }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { SecurityContext, SanitizationService } from '../../core_private';
1
+ import { SanitizationService, SecurityContext } from '../../core_private';
2
2
  export { SecurityContext };
3
3
  /** Marker interface for a value that's safe to use in a particular context. */
4
4
  export interface SafeValue {
@@ -74,23 +74,22 @@ export declare abstract class DomSanitizationService implements SanitizationServ
74
74
  abstract bypassSecurityTrustScript(value: string): SafeScript;
75
75
  /**
76
76
  * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used
77
- * in hyperlinks or `<iframe src>`.
77
+ * in hyperlinks or `<img src>`.
78
78
  *
79
79
  * WARNING: calling this method with untrusted user data will cause severe security bugs!
80
80
  */
81
81
  abstract bypassSecurityTrustUrl(value: string): SafeUrl;
82
82
  /**
83
83
  * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may
84
- * be used to load executable code from, like `<script src>`.
84
+ * be used to load executable code from, like `<script src>`, or `<iframe src>`.
85
85
  *
86
86
  * WARNING: calling this method with untrusted user data will cause severe security bugs!
87
87
  */
88
- abstract bypassSecurityTrustResourceUrl(value: string): any;
88
+ abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;
89
89
  }
90
90
  export declare class DomSanitizationServiceImpl extends DomSanitizationService {
91
91
  sanitize(ctx: SecurityContext, value: any): string;
92
92
  private checkNotSafeValue(value, expectedType);
93
- private sanitizeHtml(value);
94
93
  bypassSecurityTrustHtml(value: string): SafeHtml;
95
94
  bypassSecurityTrustStyle(value: string): SafeStyle;
96
95
  bypassSecurityTrustScript(value: string): SafeScript;
@@ -4,11 +4,12 @@ var __extends = (this && this.__extends) || function (d, b) {
4
4
  function __() { this.constructor = d; }
5
5
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
6
6
  };
7
- var url_sanitizer_1 = require('./url_sanitizer');
8
- var style_sanitizer_1 = require('./style_sanitizer');
7
+ var core_1 = require('@angular/core');
9
8
  var core_private_1 = require('../../core_private');
10
9
  exports.SecurityContext = core_private_1.SecurityContext;
11
- var core_1 = require('@angular/core');
10
+ var html_sanitizer_1 = require('./html_sanitizer');
11
+ var style_sanitizer_1 = require('./style_sanitizer');
12
+ var url_sanitizer_1 = require('./url_sanitizer');
12
13
  /**
13
14
  * DomSanitizationService helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing
14
15
  * values to be safe to use in the different DOM contexts.
@@ -54,7 +55,7 @@ var DomSanitizationServiceImpl = (function (_super) {
54
55
  if (value instanceof SafeHtmlImpl)
55
56
  return value.changingThisBreaksApplicationSecurity;
56
57
  this.checkNotSafeValue(value, 'HTML');
57
- return this.sanitizeHtml(String(value));
58
+ return html_sanitizer_1.sanitizeHtml(String(value));
58
59
  case core_private_1.SecurityContext.STYLE:
59
60
  if (value instanceof SafeStyleImpl)
60
61
  return value.changingThisBreaksApplicationSecurity;
@@ -82,13 +83,9 @@ var DomSanitizationServiceImpl = (function (_super) {
82
83
  };
83
84
  DomSanitizationServiceImpl.prototype.checkNotSafeValue = function (value, expectedType) {
84
85
  if (value instanceof SafeValueImpl) {
85
- throw new Error('Required a safe ' + expectedType + ', got a ' + value.getTypeName());
86
+ throw new Error("Required a safe " + expectedType + ", got a " + value.getTypeName());
86
87
  }
87
88
  };
88
- DomSanitizationServiceImpl.prototype.sanitizeHtml = function (value) {
89
- // TODO(martinprobst): implement.
90
- return value;
91
- };
92
89
  DomSanitizationServiceImpl.prototype.bypassSecurityTrustHtml = function (value) { return new SafeHtmlImpl(value); };
93
90
  DomSanitizationServiceImpl.prototype.bypassSecurityTrustStyle = function (value) { return new SafeStyleImpl(value); };
94
91
  DomSanitizationServiceImpl.prototype.bypassSecurityTrustScript = function (value) { return new SafeScriptImpl(value); };
@@ -96,6 +93,7 @@ var DomSanitizationServiceImpl = (function (_super) {
96
93
  DomSanitizationServiceImpl.prototype.bypassSecurityTrustResourceUrl = function (value) {
97
94
  return new SafeResourceUrlImpl(value);
98
95
  };
96
+ /** @nocollapse */
99
97
  DomSanitizationServiceImpl.decorators = [
100
98
  { type: core_1.Injectable },
101
99
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"dom_sanitization_service.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/security/dom_sanitization_service.ts"],"names":[],"mappings":"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","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {sanitizeUrl} from './url_sanitizer';\nimport {sanitizeStyle} from './style_sanitizer';\nimport {SecurityContext, SanitizationService} from '../../core_private';\nimport {Injectable} from '@angular/core';\nexport {SecurityContext};\n\n/** Marker interface for a value that's safe to use in a particular context. */\nexport interface SafeValue {}\n/** Marker interface for a value that's safe to use as HTML. */\nexport interface SafeHtml extends SafeValue {}\n/** Marker interface for a value that's safe to use as style (CSS). */\nexport interface SafeStyle extends SafeValue {}\n/** Marker interface for a value that's safe to use as JavaScript. */\nexport interface SafeScript extends SafeValue {}\n/** Marker interface for a value that's safe to use as a URL linking to a document. */\nexport interface SafeUrl extends SafeValue {}\n/** Marker interface for a value that's safe to use as a URL to load executable code from. */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizationService helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n */\nexport abstract class DomSanitizationService implements SanitizationService {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: any): string;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<iframe src>`.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustResourceUrl(value: string);\n}\nexport class DomSanitizationServiceImpl extends DomSanitizationService {\n sanitize(ctx: SecurityContext, value: any): string {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return this.sanitizeHtml(String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return sanitizeStyle(value);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeUrlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'URL');\n return sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error('unsafe value used in a resource URL context');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx}`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error('Required a safe ' + expectedType + ', got a ' + value.getTypeName());\n }\n }\n\n private sanitizeHtml(value: string): string {\n // TODO(martinprobst): implement.\n return value;\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n abstract getTypeName(): string;\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n"]}
1
+ {"version":3,"file":"dom_sanitization_service.js","sourceRoot":"","sources":["../../../../../modules/@angular/platform-browser/src/security/dom_sanitization_service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable} from '@angular/core';\n\nimport {SanitizationService, SecurityContext} from '../../core_private';\n\nimport {sanitizeHtml} from './html_sanitizer';\nimport {sanitizeStyle} from './style_sanitizer';\nimport {sanitizeUrl} from './url_sanitizer';\n\nexport {SecurityContext};\n\n\n/** Marker interface for a value that's safe to use in a particular context. */\nexport interface SafeValue {}\n/** Marker interface for a value that's safe to use as HTML. */\nexport interface SafeHtml extends SafeValue {}\n/** Marker interface for a value that's safe to use as style (CSS). */\nexport interface SafeStyle extends SafeValue {}\n/** Marker interface for a value that's safe to use as JavaScript. */\nexport interface SafeScript extends SafeValue {}\n/** Marker interface for a value that's safe to use as a URL linking to a document. */\nexport interface SafeUrl extends SafeValue {}\n/** Marker interface for a value that's safe to use as a URL to load executable code from. */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizationService helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n */\nexport abstract class DomSanitizationService implements SanitizationService {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: any): string;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * WARNING: calling this method with untrusted user data will cause severe security bugs!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\nexport class DomSanitizationServiceImpl extends DomSanitizationService {\n sanitize(ctx: SecurityContext, value: any): string {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return sanitizeHtml(String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return sanitizeStyle(value);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeUrlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'URL');\n return sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error('unsafe value used in a resource URL context');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx}`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(`Required a safe ${expectedType}, got a ${value.getTypeName()}`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n/** @nocollapse */\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n abstract getTypeName(): string;\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","metadata":{"DomSanitizationServiceImpl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Injectable","module":"@angular/core"}}]}}}
1
+ {"__symbolic":"module","version":1,"metadata":{"DomSanitizationServiceImpl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"sanitize":[{"__symbolic":"method"}],"checkNotSafeValue":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]}}}}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Sanitizes the given unsafe, untrusted HTML fragment, and returns HTML text that is safe to add to
3
+ * the DOM in a browser environment.
4
+ */
5
+ export declare function sanitizeHtml(unsafeHtml: string): string;