@angular/material 2.0.0-alpha.9-3 → 2.0.0-beta.11

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 (1546) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -145
  3. package/_theming.scss +3872 -0
  4. package/autocomplete/index.d.ts +8 -0
  5. package/autocomplete/index.metadata.json +11 -0
  6. package/autocomplete/package.json +7 -0
  7. package/autocomplete/typings/autocomplete-module.d.ts +2 -0
  8. package/autocomplete/typings/autocomplete-trigger.d.ts +159 -0
  9. package/autocomplete/typings/autocomplete.d.ts +55 -0
  10. package/autocomplete/typings/index.d.ts +4 -0
  11. package/autocomplete/typings/index.metadata.json +1 -0
  12. package/autocomplete/typings/mat-exports.d.ts +17 -0
  13. package/autocomplete/typings/public_api.d.ts +11 -0
  14. package/autocomplete.d.ts +8 -0
  15. package/autocomplete.metadata.json +11 -0
  16. package/bundles/material-autocomplete.umd.js +3293 -0
  17. package/bundles/material-autocomplete.umd.js.map +1 -0
  18. package/bundles/material-autocomplete.umd.min.js +10 -0
  19. package/bundles/material-autocomplete.umd.min.js.map +1 -0
  20. package/bundles/material-button-toggle.umd.js +2689 -0
  21. package/bundles/material-button-toggle.umd.js.map +1 -0
  22. package/bundles/material-button-toggle.umd.min.js +10 -0
  23. package/bundles/material-button-toggle.umd.min.js.map +1 -0
  24. package/bundles/material-button.umd.js +2503 -0
  25. package/bundles/material-button.umd.js.map +1 -0
  26. package/bundles/material-button.umd.min.js +10 -0
  27. package/bundles/material-button.umd.min.js.map +1 -0
  28. package/bundles/material-card.umd.js +2438 -0
  29. package/bundles/material-card.umd.js.map +1 -0
  30. package/bundles/material-card.umd.min.js +10 -0
  31. package/bundles/material-card.umd.min.js.map +1 -0
  32. package/bundles/material-checkbox.umd.js +2692 -0
  33. package/bundles/material-checkbox.umd.js.map +1 -0
  34. package/bundles/material-checkbox.umd.min.js +10 -0
  35. package/bundles/material-checkbox.umd.min.js.map +1 -0
  36. package/bundles/material-chips.umd.js +4121 -0
  37. package/bundles/material-chips.umd.js.map +1 -0
  38. package/bundles/material-chips.umd.min.js +11 -0
  39. package/bundles/material-chips.umd.min.js.map +1 -0
  40. package/bundles/material-core.umd.js +2505 -0
  41. package/bundles/material-core.umd.js.map +1 -0
  42. package/bundles/material-core.umd.min.js +10 -0
  43. package/bundles/material-core.umd.min.js.map +1 -0
  44. package/bundles/material-datepicker.umd.js +6568 -0
  45. package/bundles/material-datepicker.umd.js.map +1 -0
  46. package/bundles/material-datepicker.umd.min.js +12 -0
  47. package/bundles/material-datepicker.umd.min.js.map +1 -0
  48. package/bundles/material-dialog.umd.js +2980 -0
  49. package/bundles/material-dialog.umd.js.map +1 -0
  50. package/bundles/material-dialog.umd.min.js +10 -0
  51. package/bundles/material-dialog.umd.min.js.map +1 -0
  52. package/bundles/material-examples.umd.js +3627 -0
  53. package/bundles/material-examples.umd.js.map +1 -0
  54. package/bundles/material-examples.umd.min.js +12 -0
  55. package/bundles/material-examples.umd.min.js.map +1 -0
  56. package/bundles/material-expansion.umd.js +2678 -0
  57. package/bundles/material-expansion.umd.js.map +1 -0
  58. package/bundles/material-expansion.umd.min.js +10 -0
  59. package/bundles/material-expansion.umd.min.js.map +1 -0
  60. package/bundles/material-form-field.umd.js +2629 -0
  61. package/bundles/material-form-field.umd.js.map +1 -0
  62. package/bundles/material-form-field.umd.min.js +10 -0
  63. package/bundles/material-form-field.umd.min.js.map +1 -0
  64. package/bundles/material-grid-list.umd.js +3000 -0
  65. package/bundles/material-grid-list.umd.js.map +1 -0
  66. package/bundles/material-grid-list.umd.min.js +10 -0
  67. package/bundles/material-grid-list.umd.min.js.map +1 -0
  68. package/bundles/material-icon.umd.js +2862 -0
  69. package/bundles/material-icon.umd.js.map +1 -0
  70. package/bundles/material-icon.umd.min.js +10 -0
  71. package/bundles/material-icon.umd.min.js.map +1 -0
  72. package/bundles/material-input.umd.js +3214 -0
  73. package/bundles/material-input.umd.js.map +1 -0
  74. package/bundles/material-input.umd.min.js +10 -0
  75. package/bundles/material-input.umd.min.js.map +1 -0
  76. package/bundles/material-list.umd.js +2908 -0
  77. package/bundles/material-list.umd.js.map +1 -0
  78. package/bundles/material-list.umd.min.js +11 -0
  79. package/bundles/material-list.umd.min.js.map +1 -0
  80. package/bundles/material-menu.umd.js +3016 -0
  81. package/bundles/material-menu.umd.js.map +1 -0
  82. package/bundles/material-menu.umd.min.js +10 -0
  83. package/bundles/material-menu.umd.min.js.map +1 -0
  84. package/bundles/material-paginator.umd.js +4990 -0
  85. package/bundles/material-paginator.umd.js.map +1 -0
  86. package/bundles/material-paginator.umd.min.js +11 -0
  87. package/bundles/material-paginator.umd.min.js.map +1 -0
  88. package/bundles/material-progress-bar.umd.js +2204 -0
  89. package/bundles/material-progress-bar.umd.js.map +1 -0
  90. package/bundles/material-progress-bar.umd.min.js +10 -0
  91. package/bundles/material-progress-bar.umd.min.js.map +1 -0
  92. package/bundles/material-progress-spinner.umd.js +2594 -0
  93. package/bundles/material-progress-spinner.umd.js.map +1 -0
  94. package/bundles/material-progress-spinner.umd.min.js +10 -0
  95. package/bundles/material-progress-spinner.umd.min.js.map +1 -0
  96. package/bundles/material-radio.umd.js +2936 -0
  97. package/bundles/material-radio.umd.js.map +1 -0
  98. package/bundles/material-radio.umd.min.js +10 -0
  99. package/bundles/material-radio.umd.min.js.map +1 -0
  100. package/bundles/material-select.umd.js +3611 -0
  101. package/bundles/material-select.umd.js.map +1 -0
  102. package/bundles/material-select.umd.min.js +10 -0
  103. package/bundles/material-select.umd.min.js.map +1 -0
  104. package/bundles/material-sidenav.umd.js +2781 -0
  105. package/bundles/material-sidenav.umd.js.map +1 -0
  106. package/bundles/material-sidenav.umd.min.js +10 -0
  107. package/bundles/material-sidenav.umd.min.js.map +1 -0
  108. package/bundles/material-slide-toggle.umd.js +2657 -0
  109. package/bundles/material-slide-toggle.umd.js.map +1 -0
  110. package/bundles/material-slide-toggle.umd.min.js +10 -0
  111. package/bundles/material-slide-toggle.umd.min.js.map +1 -0
  112. package/bundles/material-slider.umd.js +3043 -0
  113. package/bundles/material-slider.umd.js.map +1 -0
  114. package/bundles/material-slider.umd.min.js +10 -0
  115. package/bundles/material-slider.umd.min.js.map +1 -0
  116. package/bundles/material-snack-bar.umd.js +2717 -0
  117. package/bundles/material-snack-bar.umd.js.map +1 -0
  118. package/bundles/material-snack-bar.umd.min.js +10 -0
  119. package/bundles/material-snack-bar.umd.min.js.map +1 -0
  120. package/bundles/material-sort.umd.js +2479 -0
  121. package/bundles/material-sort.umd.js.map +1 -0
  122. package/bundles/material-sort.umd.min.js +10 -0
  123. package/bundles/material-sort.umd.min.js.map +1 -0
  124. package/bundles/material-stepper.umd.js +3598 -0
  125. package/bundles/material-stepper.umd.js.map +1 -0
  126. package/bundles/material-stepper.umd.min.js +11 -0
  127. package/bundles/material-stepper.umd.min.js.map +1 -0
  128. package/bundles/material-table.umd.js +2458 -0
  129. package/bundles/material-table.umd.js.map +1 -0
  130. package/bundles/material-table.umd.min.js +10 -0
  131. package/bundles/material-table.umd.min.js.map +1 -0
  132. package/bundles/material-tabs.umd.js +3742 -0
  133. package/bundles/material-tabs.umd.js.map +1 -0
  134. package/bundles/material-tabs.umd.min.js +10 -0
  135. package/bundles/material-tabs.umd.min.js.map +1 -0
  136. package/bundles/material-toolbar.umd.js +2211 -0
  137. package/bundles/material-toolbar.umd.js.map +1 -0
  138. package/bundles/material-toolbar.umd.min.js +9 -0
  139. package/bundles/material-toolbar.umd.min.js.map +1 -0
  140. package/bundles/material-tooltip.umd.js +2821 -0
  141. package/bundles/material-tooltip.umd.js.map +1 -0
  142. package/bundles/material-tooltip.umd.min.js +10 -0
  143. package/bundles/material-tooltip.umd.min.js.map +1 -0
  144. package/bundles/material.umd.js +23785 -0
  145. package/bundles/material.umd.js.map +1 -0
  146. package/bundles/material.umd.min.js +23 -0
  147. package/bundles/material.umd.min.js.map +1 -0
  148. package/button/index.d.ts +8 -1
  149. package/button/index.metadata.json +11 -1
  150. package/button/package.json +7 -0
  151. package/button/typings/button-module.d.ts +2 -0
  152. package/button/typings/button.d.ts +80 -0
  153. package/button/typings/index.d.ts +4 -0
  154. package/button/typings/index.metadata.json +1 -0
  155. package/button/typings/mat-exports.d.ts +18 -0
  156. package/button/typings/public_api.d.ts +10 -0
  157. package/button-toggle/index.d.ts +8 -1
  158. package/button-toggle/index.metadata.json +11 -1
  159. package/button-toggle/package.json +7 -0
  160. package/button-toggle/typings/button-toggle-module.d.ts +2 -0
  161. package/button-toggle/typings/button-toggle.d.ts +156 -0
  162. package/button-toggle/typings/index.d.ts +4 -0
  163. package/button-toggle/typings/index.metadata.json +1 -0
  164. package/button-toggle/typings/mat-exports.d.ts +16 -0
  165. package/button-toggle/typings/public_api.d.ts +10 -0
  166. package/button-toggle.d.ts +8 -0
  167. package/button-toggle.metadata.json +11 -0
  168. package/button.d.ts +8 -0
  169. package/button.metadata.json +11 -0
  170. package/card/index.d.ts +8 -1
  171. package/card/index.metadata.json +11 -1
  172. package/card/package.json +7 -0
  173. package/card/typings/card-module.d.ts +2 -0
  174. package/card/typings/card.d.ts +95 -0
  175. package/card/typings/index.d.ts +4 -0
  176. package/card/typings/index.metadata.json +1 -0
  177. package/card/typings/mat-exports.d.ts +24 -0
  178. package/card/typings/public_api.d.ts +10 -0
  179. package/card.d.ts +8 -0
  180. package/card.metadata.json +11 -0
  181. package/checkbox/index.d.ts +8 -1
  182. package/checkbox/index.metadata.json +11 -1
  183. package/checkbox/package.json +7 -0
  184. package/checkbox/typings/checkbox-module.d.ts +2 -0
  185. package/checkbox/typings/checkbox-required-validator.d.ts +18 -0
  186. package/checkbox/typings/checkbox.d.ts +159 -0
  187. package/checkbox/typings/index.d.ts +4 -0
  188. package/checkbox/typings/index.metadata.json +1 -0
  189. package/checkbox/typings/mat-exports.d.ts +17 -0
  190. package/checkbox/typings/public_api.d.ts +11 -0
  191. package/checkbox.d.ts +8 -0
  192. package/checkbox.metadata.json +11 -0
  193. package/chips/index.d.ts +8 -0
  194. package/chips/index.metadata.json +11 -0
  195. package/chips/package.json +7 -0
  196. package/chips/typings/chip-input.d.ts +54 -0
  197. package/chips/typings/chip-list.d.ts +219 -0
  198. package/chips/typings/chip.d.ts +123 -0
  199. package/chips/typings/chips-module.d.ts +2 -0
  200. package/chips/typings/index.d.ts +4 -0
  201. package/chips/typings/index.metadata.json +1 -0
  202. package/chips/typings/mat-exports.d.ts +21 -0
  203. package/chips/typings/public_api.d.ts +12 -0
  204. package/chips.d.ts +8 -0
  205. package/chips.metadata.json +11 -0
  206. package/core/index.d.ts +8 -1
  207. package/core/index.metadata.json +11 -1
  208. package/core/package.json +7 -0
  209. package/core/typings/a11y/index.d.ts +8 -0
  210. package/core/typings/animation/animation.d.ts +20 -0
  211. package/core/typings/bidi/index.d.ts +8 -0
  212. package/core/typings/common-behaviors/color.d.ts +22 -0
  213. package/core/typings/common-behaviors/common-module.d.ts +24 -0
  214. package/core/typings/common-behaviors/constructor.d.ts +9 -0
  215. package/core/typings/common-behaviors/disable-ripple.d.ts +7 -0
  216. package/core/typings/common-behaviors/disabled.d.ts +7 -0
  217. package/core/typings/common-behaviors/index.d.ts +12 -0
  218. package/core/typings/common-behaviors/tabindex.d.ts +15 -0
  219. package/core/typings/compatibility/compatibility.d.ts +40 -0
  220. package/core/typings/coordination/unique-selection-dispatcher.d.ts +40 -0
  221. package/core/typings/datetime/date-adapter.d.ts +198 -0
  222. package/core/typings/datetime/date-formats.d.ts +20 -0
  223. package/core/typings/datetime/index.d.ts +8 -0
  224. package/core/typings/datetime/native-date-adapter.d.ts +50 -0
  225. package/core/typings/datetime/native-date-formats.d.ts +9 -0
  226. package/core/typings/error/error-options.d.ts +19 -0
  227. package/core/typings/gestures/gesture-annotations.d.ts +51 -0
  228. package/core/typings/gestures/gesture-config.d.ts +23 -0
  229. package/core/typings/index.d.ts +5 -0
  230. package/core/typings/index.metadata.json +1 -0
  231. package/core/typings/keyboard/keycodes.d.ts +8 -0
  232. package/core/typings/line/line.d.ts +30 -0
  233. package/core/typings/mat-exports.d.ts +36 -0
  234. package/core/typings/option/index.d.ts +4 -0
  235. package/core/typings/option/optgroup.d.ts +14 -0
  236. package/core/typings/option/option.d.ts +97 -0
  237. package/core/typings/overlay/index.d.ts +8 -0
  238. package/core/typings/placeholder/placeholder-options.d.ts +15 -0
  239. package/core/typings/platform/features.d.ts +8 -0
  240. package/core/typings/platform/index.d.ts +10 -0
  241. package/core/typings/platform/platform.d.ts +8 -0
  242. package/core/typings/portal/dom-portal-host.d.ts +8 -0
  243. package/core/typings/portal/portal-directives.d.ts +8 -0
  244. package/core/typings/portal/portal-injector.d.ts +19 -0
  245. package/core/typings/portal/portal.d.ts +8 -0
  246. package/core/typings/public_api.d.ts +34 -0
  247. package/core/typings/ripple/index.d.ts +5 -0
  248. package/core/typings/ripple/ripple-ref.d.ts +28 -0
  249. package/core/typings/ripple/ripple-renderer.d.ts +64 -0
  250. package/core/typings/ripple/ripple.d.ts +73 -0
  251. package/core/typings/rxjs/index.d.ts +9 -0
  252. package/core/typings/rxjs/rx-chain.d.ts +8 -0
  253. package/core/typings/rxjs/rx-operators.d.ts +8 -0
  254. package/core/typings/selection/index.d.ts +3 -0
  255. package/core/typings/selection/pseudo-checkbox/pseudo-checkbox.d.ts +20 -0
  256. package/core/typings/style/apply-transform.d.ts +13 -0
  257. package/core/typings/style/index.d.ts +5 -0
  258. package/core/typings/testing/month-constants.d.ts +12 -0
  259. package/core/typings/util/object-extend.d.ts +15 -0
  260. package/core.d.ts +7 -0
  261. package/core.metadata.json +11 -1
  262. package/datepicker/index.d.ts +8 -0
  263. package/datepicker/index.metadata.json +11 -0
  264. package/datepicker/package.json +7 -0
  265. package/datepicker/typings/calendar-body.d.ts +52 -0
  266. package/datepicker/typings/calendar.d.ts +90 -0
  267. package/datepicker/typings/coerce-date-property.d.ts +19 -0
  268. package/datepicker/typings/datepicker-errors.d.ts +9 -0
  269. package/datepicker/typings/datepicker-input.d.ts +94 -0
  270. package/datepicker/typings/datepicker-intl.d.ts +25 -0
  271. package/datepicker/typings/datepicker-module.d.ts +2 -0
  272. package/datepicker/typings/datepicker-toggle.d.ts +24 -0
  273. package/datepicker/typings/datepicker.d.ts +117 -0
  274. package/datepicker/typings/index.d.ts +4 -0
  275. package/datepicker/typings/index.metadata.json +1 -0
  276. package/datepicker/typings/mat-exports.d.ts +33 -0
  277. package/datepicker/typings/month-view.d.ts +65 -0
  278. package/datepicker/typings/public_api.d.ts +18 -0
  279. package/datepicker/typings/year-view.d.ts +54 -0
  280. package/datepicker.d.ts +8 -0
  281. package/datepicker.metadata.json +11 -0
  282. package/dialog/index.d.ts +8 -4
  283. package/dialog/index.metadata.json +11 -1
  284. package/dialog/package.json +7 -0
  285. package/dialog/typings/dialog-config.d.ts +54 -0
  286. package/dialog/typings/dialog-container.d.ts +68 -0
  287. package/dialog/typings/dialog-content-directives.d.ts +45 -0
  288. package/dialog/typings/dialog-module.d.ts +2 -0
  289. package/dialog/typings/dialog-ref.d.ts +68 -0
  290. package/dialog/typings/dialog.d.ts +108 -0
  291. package/dialog/typings/index.d.ts +4 -0
  292. package/dialog/typings/index.metadata.json +1 -0
  293. package/dialog/typings/mat-exports.d.ts +26 -0
  294. package/dialog/typings/public_api.d.ts +14 -0
  295. package/dialog.d.ts +8 -0
  296. package/dialog.metadata.json +11 -0
  297. package/esm2015/autocomplete.js +661 -0
  298. package/esm2015/autocomplete.js.map +1 -0
  299. package/esm2015/button-toggle.js +567 -0
  300. package/esm2015/button-toggle.js.map +1 -0
  301. package/esm2015/button.js +323 -0
  302. package/esm2015/button.js.map +1 -0
  303. package/esm2015/card.js +312 -0
  304. package/esm2015/card.js.map +1 -0
  305. package/esm2015/checkbox.js +504 -0
  306. package/esm2015/checkbox.js.map +1 -0
  307. package/esm2015/chips.js +1332 -0
  308. package/esm2015/chips.js.map +1 -0
  309. package/esm2015/core.js +2316 -0
  310. package/esm2015/core.js.map +1 -0
  311. package/esm2015/datepicker.js +1808 -0
  312. package/esm2015/datepicker.js.map +1 -0
  313. package/esm2015/dialog.js +849 -0
  314. package/esm2015/dialog.js.map +1 -0
  315. package/esm2015/expansion.js +581 -0
  316. package/esm2015/expansion.js.map +1 -0
  317. package/esm2015/form-field.js +522 -0
  318. package/esm2015/form-field.js.map +1 -0
  319. package/esm2015/grid-list.js +825 -0
  320. package/esm2015/grid-list.js.map +1 -0
  321. package/esm2015/icon.js +733 -0
  322. package/esm2015/icon.js.map +1 -0
  323. package/esm2015/input.js +568 -0
  324. package/esm2015/input.js.map +1 -0
  325. package/esm2015/list.js +666 -0
  326. package/esm2015/list.js.map +1 -0
  327. package/esm2015/material.js +51 -0
  328. package/esm2015/material.js.map +1 -0
  329. package/esm2015/menu.js +917 -0
  330. package/esm2015/menu.js.map +1 -0
  331. package/esm2015/paginator.js +304 -0
  332. package/esm2015/paginator.js.map +1 -0
  333. package/esm2015/progress-bar.js +132 -0
  334. package/esm2015/progress-bar.js.map +1 -0
  335. package/esm2015/progress-spinner.js +438 -0
  336. package/esm2015/progress-spinner.js.map +1 -0
  337. package/esm2015/radio.js +707 -0
  338. package/esm2015/radio.js.map +1 -0
  339. package/esm2015/select.js +1378 -0
  340. package/esm2015/select.js.map +1 -0
  341. package/esm2015/sidenav.js +666 -0
  342. package/esm2015/sidenav.js.map +1 -0
  343. package/esm2015/slide-toggle.js +429 -0
  344. package/esm2015/slide-toggle.js.map +1 -0
  345. package/esm2015/slider.js +833 -0
  346. package/esm2015/slider.js.map +1 -0
  347. package/esm2015/snack-bar.js +606 -0
  348. package/esm2015/snack-bar.js.map +1 -0
  349. package/esm2015/sort.js +387 -0
  350. package/esm2015/sort.js.map +1 -0
  351. package/esm2015/stepper.js +330 -0
  352. package/esm2015/stepper.js.map +1 -0
  353. package/esm2015/table.js +312 -0
  354. package/esm2015/table.js.map +1 -0
  355. package/esm2015/tabs.js +1477 -0
  356. package/esm2015/tabs.js.map +1 -0
  357. package/esm2015/toolbar.js +88 -0
  358. package/esm2015/toolbar.js.map +1 -0
  359. package/esm2015/tooltip.js +701 -0
  360. package/esm2015/tooltip.js.map +1 -0
  361. package/esm5/autocomplete.es5.js +691 -0
  362. package/esm5/autocomplete.es5.js.map +1 -0
  363. package/esm5/button-toggle.es5.js +619 -0
  364. package/esm5/button-toggle.es5.js.map +1 -0
  365. package/esm5/button.es5.js +341 -0
  366. package/esm5/button.es5.js.map +1 -0
  367. package/esm5/card.es5.js +349 -0
  368. package/esm5/card.es5.js.map +1 -0
  369. package/esm5/checkbox.es5.js +534 -0
  370. package/esm5/checkbox.es5.js.map +1 -0
  371. package/esm5/chips.es5.js +1466 -0
  372. package/esm5/chips.es5.js.map +1 -0
  373. package/esm5/core.es5.js +2316 -0
  374. package/esm5/core.es5.js.map +1 -0
  375. package/esm5/datepicker.es5.js +1936 -0
  376. package/esm5/datepicker.es5.js.map +1 -0
  377. package/esm5/dialog.es5.js +877 -0
  378. package/esm5/dialog.es5.js.map +1 -0
  379. package/esm5/expansion.es5.js +608 -0
  380. package/esm5/expansion.es5.js.map +1 -0
  381. package/esm5/form-field.es5.js +556 -0
  382. package/esm5/form-field.es5.js.map +1 -0
  383. package/esm5/grid-list.es5.js +877 -0
  384. package/esm5/grid-list.es5.js.map +1 -0
  385. package/esm5/icon.es5.js +746 -0
  386. package/esm5/icon.es5.js.map +1 -0
  387. package/esm5/input.es5.js +606 -0
  388. package/esm5/input.es5.js.map +1 -0
  389. package/esm5/list.es5.js +726 -0
  390. package/esm5/list.es5.js.map +1 -0
  391. package/esm5/material.es5.js +48 -0
  392. package/esm5/material.es5.js.map +1 -0
  393. package/esm5/menu.es5.js +953 -0
  394. package/esm5/menu.es5.js.map +1 -0
  395. package/esm5/paginator.es5.js +324 -0
  396. package/esm5/paginator.es5.js.map +1 -0
  397. package/esm5/progress-bar.es5.js +142 -0
  398. package/esm5/progress-bar.es5.js.map +1 -0
  399. package/esm5/progress-spinner.es5.js +474 -0
  400. package/esm5/progress-spinner.es5.js.map +1 -0
  401. package/esm5/radio.es5.js +779 -0
  402. package/esm5/radio.es5.js.map +1 -0
  403. package/esm5/select.es5.js +1444 -0
  404. package/esm5/select.es5.js.map +1 -0
  405. package/esm5/sidenav.es5.js +719 -0
  406. package/esm5/sidenav.es5.js.map +1 -0
  407. package/esm5/slide-toggle.es5.js +451 -0
  408. package/esm5/slide-toggle.es5.js.map +1 -0
  409. package/esm5/slider.es5.js +932 -0
  410. package/esm5/slider.es5.js.map +1 -0
  411. package/esm5/snack-bar.es5.js +623 -0
  412. package/esm5/snack-bar.es5.js.map +1 -0
  413. package/esm5/sort.es5.js +418 -0
  414. package/esm5/sort.es5.js.map +1 -0
  415. package/esm5/stepper.es5.js +376 -0
  416. package/esm5/stepper.es5.js.map +1 -0
  417. package/esm5/table.es5.js +370 -0
  418. package/esm5/table.es5.js.map +1 -0
  419. package/esm5/tabs.es5.js +1576 -0
  420. package/esm5/tabs.es5.js.map +1 -0
  421. package/esm5/toolbar.es5.js +94 -0
  422. package/esm5/toolbar.es5.js.map +1 -0
  423. package/esm5/tooltip.es5.js +759 -0
  424. package/esm5/tooltip.es5.js.map +1 -0
  425. package/expansion/index.d.ts +8 -0
  426. package/expansion/index.metadata.json +11 -0
  427. package/expansion/package.json +7 -0
  428. package/expansion/typings/accordion-item.d.ts +41 -0
  429. package/expansion/typings/accordion.d.ts +29 -0
  430. package/expansion/typings/expansion-module.d.ts +2 -0
  431. package/expansion/typings/expansion-panel-header.d.ts +56 -0
  432. package/expansion/typings/expansion-panel.d.ts +39 -0
  433. package/expansion/typings/index.d.ts +5 -0
  434. package/expansion/typings/index.metadata.json +1 -0
  435. package/expansion/typings/mat-exports.d.ts +20 -0
  436. package/expansion/typings/public_api.d.ts +13 -0
  437. package/expansion.d.ts +8 -0
  438. package/expansion.metadata.json +11 -0
  439. package/form-field/index.d.ts +8 -0
  440. package/form-field/index.metadata.json +11 -0
  441. package/form-field/package.json +7 -0
  442. package/form-field/typings/error.d.ts +4 -0
  443. package/form-field/typings/form-field-control.d.ts +39 -0
  444. package/form-field/typings/form-field-errors.d.ts +13 -0
  445. package/form-field/typings/form-field-module.d.ts +2 -0
  446. package/form-field/typings/form-field.d.ts +77 -0
  447. package/form-field/typings/hint.d.ts +7 -0
  448. package/form-field/typings/index.d.ts +4 -0
  449. package/form-field/typings/index.metadata.json +1 -0
  450. package/form-field/typings/mat-exports.d.ts +23 -0
  451. package/form-field/typings/placeholder.d.ts +3 -0
  452. package/form-field/typings/prefix.d.ts +3 -0
  453. package/form-field/typings/public_api.d.ts +17 -0
  454. package/form-field/typings/suffix.d.ts +3 -0
  455. package/form-field.d.ts +8 -0
  456. package/form-field.metadata.json +11 -0
  457. package/grid-list/index.d.ts +8 -1
  458. package/grid-list/index.metadata.json +11 -1
  459. package/grid-list/package.json +7 -0
  460. package/grid-list/typings/grid-list-measure.d.ts +17 -0
  461. package/grid-list/typings/grid-list-module.d.ts +2 -0
  462. package/grid-list/typings/grid-list.d.ts +53 -0
  463. package/grid-list/typings/grid-tile.d.ts +55 -0
  464. package/grid-list/typings/index.d.ts +5 -0
  465. package/grid-list/typings/index.metadata.json +1 -0
  466. package/grid-list/typings/mat-exports.d.ts +13 -0
  467. package/grid-list/typings/public_api.d.ts +11 -0
  468. package/grid-list/typings/tile-coordinator.d.ts +64 -0
  469. package/grid-list/typings/tile-styler.d.ts +129 -0
  470. package/grid-list.d.ts +8 -0
  471. package/grid-list.metadata.json +11 -0
  472. package/icon/index.d.ts +8 -1
  473. package/icon/index.metadata.json +11 -1
  474. package/icon/package.json +7 -0
  475. package/icon/typings/icon-module.d.ts +2 -0
  476. package/icon/typings/icon-registry.d.ts +194 -0
  477. package/icon/typings/icon.d.ts +76 -0
  478. package/icon/typings/index.d.ts +4 -0
  479. package/icon/typings/index.metadata.json +1 -0
  480. package/icon/typings/mat-exports.d.ts +14 -0
  481. package/icon/typings/public_api.d.ts +11 -0
  482. package/icon.d.ts +8 -0
  483. package/icon.metadata.json +11 -0
  484. package/input/index.d.ts +8 -1
  485. package/input/index.metadata.json +11 -1
  486. package/input/package.json +7 -0
  487. package/input/typings/autosize.d.ts +45 -0
  488. package/input/typings/index.d.ts +4 -0
  489. package/input/typings/index.metadata.json +1 -0
  490. package/input/typings/input-errors.d.ts +9 -0
  491. package/input/typings/input-module.d.ts +2 -0
  492. package/input/typings/input.d.ts +78 -0
  493. package/input/typings/mat-exports.d.ts +13 -0
  494. package/input/typings/public_api.d.ts +12 -0
  495. package/input.d.ts +8 -0
  496. package/input.metadata.json +11 -0
  497. package/list/index.d.ts +8 -1
  498. package/list/index.metadata.json +11 -1
  499. package/list/package.json +7 -0
  500. package/list/typings/index.d.ts +4 -0
  501. package/list/typings/index.metadata.json +1 -0
  502. package/list/typings/list-module.d.ts +2 -0
  503. package/list/typings/list.d.ts +78 -0
  504. package/list/typings/mat-exports.d.ts +27 -0
  505. package/list/typings/public_api.d.ts +11 -0
  506. package/list/typings/selection-list.d.ts +112 -0
  507. package/list.d.ts +8 -0
  508. package/list.metadata.json +11 -0
  509. package/material.d.ts +39 -0
  510. package/material.metadata.json +102 -0
  511. package/menu/index.d.ts +8 -1
  512. package/menu/index.metadata.json +11 -1
  513. package/menu/package.json +7 -0
  514. package/menu/typings/index.d.ts +6 -0
  515. package/menu/typings/index.metadata.json +1 -0
  516. package/menu/typings/mat-exports.d.ts +16 -0
  517. package/menu/typings/menu-animations.d.ts +27 -0
  518. package/menu/typings/menu-directive.d.ts +86 -0
  519. package/menu/typings/menu-errors.d.ts +24 -0
  520. package/menu/typings/menu-item.d.ts +40 -0
  521. package/menu/typings/menu-module.d.ts +2 -0
  522. package/menu/typings/menu-panel.d.ts +22 -0
  523. package/menu/typings/menu-positions.d.ts +9 -0
  524. package/menu/typings/menu-trigger.d.ts +116 -0
  525. package/menu/typings/menu.d.ts +12 -0
  526. package/menu/typings/public_api.d.ts +12 -0
  527. package/menu.d.ts +8 -0
  528. package/menu.metadata.json +11 -0
  529. package/package.json +10 -8
  530. package/paginator/index.d.ts +8 -0
  531. package/paginator/index.metadata.json +11 -0
  532. package/paginator/package.json +7 -0
  533. package/paginator/typings/index.d.ts +4 -0
  534. package/paginator/typings/index.metadata.json +1 -0
  535. package/paginator/typings/mat-exports.d.ts +13 -0
  536. package/paginator/typings/paginator-intl.d.ts +20 -0
  537. package/paginator/typings/paginator-module.d.ts +2 -0
  538. package/paginator/typings/paginator.d.ts +75 -0
  539. package/paginator/typings/public_api.d.ts +11 -0
  540. package/paginator.d.ts +8 -0
  541. package/paginator.metadata.json +11 -0
  542. package/prebuilt-themes/deeppurple-amber.css +1 -0
  543. package/prebuilt-themes/indigo-pink.css +1 -0
  544. package/prebuilt-themes/pink-bluegrey.css +1 -0
  545. package/prebuilt-themes/purple-green.css +1 -0
  546. package/progress-bar/index.d.ts +8 -1
  547. package/progress-bar/index.metadata.json +11 -1
  548. package/progress-bar/package.json +7 -0
  549. package/progress-bar/typings/index.d.ts +4 -0
  550. package/progress-bar/typings/index.metadata.json +1 -0
  551. package/progress-bar/typings/mat-exports.d.ts +11 -0
  552. package/progress-bar/typings/progress-bar-module.d.ts +2 -0
  553. package/progress-bar/typings/progress-bar.d.ts +32 -0
  554. package/progress-bar/typings/public_api.d.ts +10 -0
  555. package/progress-bar.d.ts +8 -0
  556. package/progress-bar.metadata.json +11 -0
  557. package/progress-spinner/index.d.ts +8 -0
  558. package/progress-spinner/index.metadata.json +11 -0
  559. package/progress-spinner/package.json +7 -0
  560. package/progress-spinner/typings/index.d.ts +4 -0
  561. package/progress-spinner/typings/index.metadata.json +1 -0
  562. package/progress-spinner/typings/mat-exports.d.ts +14 -0
  563. package/progress-spinner/typings/progress-spinner-module.d.ts +2 -0
  564. package/progress-spinner/typings/progress-spinner.d.ts +98 -0
  565. package/progress-spinner/typings/public_api.d.ts +10 -0
  566. package/progress-spinner.d.ts +8 -0
  567. package/progress-spinner.metadata.json +11 -0
  568. package/radio/index.d.ts +8 -1
  569. package/radio/index.metadata.json +11 -1
  570. package/radio/package.json +7 -0
  571. package/radio/typings/index.d.ts +4 -0
  572. package/radio/typings/index.metadata.json +1 -0
  573. package/radio/typings/mat-exports.d.ts +16 -0
  574. package/radio/typings/public_api.d.ts +10 -0
  575. package/radio/typings/radio-module.d.ts +2 -0
  576. package/radio/typings/radio.d.ts +217 -0
  577. package/radio.d.ts +8 -0
  578. package/radio.metadata.json +11 -0
  579. package/select/index.d.ts +8 -5
  580. package/select/index.metadata.json +11 -1
  581. package/select/package.json +7 -0
  582. package/select/typings/index.d.ts +4 -0
  583. package/select/typings/index.metadata.json +1 -0
  584. package/select/typings/mat-exports.d.ts +17 -0
  585. package/select/typings/public_api.d.ts +11 -0
  586. package/select/typings/select-animations.d.ts +36 -0
  587. package/select/typings/select-errors.d.ts +26 -0
  588. package/select/typings/select-module.d.ts +2 -0
  589. package/select/typings/select.d.ts +412 -0
  590. package/select.d.ts +8 -0
  591. package/select.metadata.json +11 -0
  592. package/sidenav/index.d.ts +8 -1
  593. package/sidenav/index.metadata.json +11 -1
  594. package/sidenav/package.json +7 -0
  595. package/sidenav/typings/drawer.d.ts +178 -0
  596. package/sidenav/typings/index.d.ts +4 -0
  597. package/sidenav/typings/index.metadata.json +1 -0
  598. package/sidenav/typings/mat-exports.d.ts +16 -0
  599. package/sidenav/typings/public_api.d.ts +11 -0
  600. package/sidenav/typings/sidenav-module.d.ts +2 -0
  601. package/sidenav/typings/sidenav.d.ts +6 -0
  602. package/sidenav.d.ts +8 -0
  603. package/sidenav.metadata.json +11 -0
  604. package/slide-toggle/index.d.ts +8 -1
  605. package/slide-toggle/index.metadata.json +11 -1
  606. package/slide-toggle/package.json +7 -0
  607. package/slide-toggle/typings/index.d.ts +4 -0
  608. package/slide-toggle/typings/index.metadata.json +1 -0
  609. package/slide-toggle/typings/mat-exports.d.ts +14 -0
  610. package/slide-toggle/typings/public_api.d.ts +10 -0
  611. package/slide-toggle/typings/slide-toggle-module.d.ts +2 -0
  612. package/slide-toggle/typings/slide-toggle.d.ts +93 -0
  613. package/slide-toggle.d.ts +8 -0
  614. package/slide-toggle.metadata.json +11 -0
  615. package/slider/index.d.ts +8 -1
  616. package/slider/index.metadata.json +11 -1
  617. package/slider/package.json +7 -0
  618. package/slider/typings/index.d.ts +4 -0
  619. package/slider/typings/index.metadata.json +1 -0
  620. package/slider/typings/mat-exports.d.ts +14 -0
  621. package/slider/typings/public_api.d.ts +10 -0
  622. package/slider/typings/slider-module.d.ts +2 -0
  623. package/slider/typings/slider.d.ts +207 -0
  624. package/slider.d.ts +8 -0
  625. package/slider.metadata.json +11 -0
  626. package/snack-bar/index.d.ts +8 -4
  627. package/snack-bar/index.metadata.json +11 -1
  628. package/snack-bar/package.json +7 -0
  629. package/snack-bar/typings/index.d.ts +4 -0
  630. package/snack-bar/typings/index.metadata.json +1 -0
  631. package/snack-bar/typings/mat-exports.d.ts +18 -0
  632. package/snack-bar/typings/public_api.d.ts +14 -0
  633. package/snack-bar/typings/simple-snack-bar.d.ts +18 -0
  634. package/snack-bar/typings/snack-bar-config.d.ts +38 -0
  635. package/snack-bar/typings/snack-bar-container.d.ts +61 -0
  636. package/snack-bar/typings/snack-bar-module.d.ts +2 -0
  637. package/snack-bar/typings/snack-bar-ref.d.ts +51 -0
  638. package/snack-bar/typings/snack-bar.d.ts +70 -0
  639. package/snack-bar.d.ts +8 -0
  640. package/snack-bar.metadata.json +11 -0
  641. package/sort/index.d.ts +8 -0
  642. package/sort/index.metadata.json +11 -0
  643. package/sort/package.json +7 -0
  644. package/sort/typings/index.d.ts +4 -0
  645. package/sort/typings/index.metadata.json +1 -0
  646. package/sort/typings/mat-exports.d.ts +16 -0
  647. package/sort/typings/public_api.d.ts +13 -0
  648. package/sort/typings/sort-direction.d.ts +8 -0
  649. package/sort/typings/sort-errors.d.ts +13 -0
  650. package/sort/typings/sort-header-intl.d.ts +17 -0
  651. package/sort/typings/sort-header.d.ts +44 -0
  652. package/sort/typings/sort-module.d.ts +2 -0
  653. package/sort/typings/sort.d.ts +59 -0
  654. package/sort.d.ts +8 -0
  655. package/sort.metadata.json +11 -0
  656. package/stepper/index.d.ts +8 -0
  657. package/stepper/index.metadata.json +11 -0
  658. package/stepper/package.json +7 -0
  659. package/stepper/typings/index.d.ts +4 -0
  660. package/stepper/typings/index.metadata.json +1 -0
  661. package/stepper/typings/mat-exports.d.ts +21 -0
  662. package/stepper/typings/public_api.d.ts +13 -0
  663. package/stepper/typings/step-header.d.ts +23 -0
  664. package/stepper/typings/step-label.d.ts +14 -0
  665. package/stepper/typings/stepper-button.d.ts +10 -0
  666. package/stepper/typings/stepper-module.d.ts +2 -0
  667. package/stepper/typings/stepper.d.ts +27 -0
  668. package/stepper.d.ts +8 -0
  669. package/stepper.metadata.json +11 -0
  670. package/table/index.d.ts +8 -0
  671. package/table/index.metadata.json +11 -0
  672. package/table/package.json +7 -0
  673. package/table/typings/cell.d.ts +44 -0
  674. package/table/typings/index.d.ts +4 -0
  675. package/table/typings/index.metadata.json +1 -0
  676. package/table/typings/mat-exports.d.ts +20 -0
  677. package/table/typings/public_api.d.ts +12 -0
  678. package/table/typings/row.d.ts +30 -0
  679. package/table/typings/table-module.d.ts +2 -0
  680. package/table/typings/table.d.ts +8 -0
  681. package/table.d.ts +8 -0
  682. package/table.metadata.json +11 -0
  683. package/tabs/index.d.ts +8 -1
  684. package/tabs/index.metadata.json +11 -1
  685. package/tabs/package.json +7 -0
  686. package/tabs/typings/index.d.ts +8 -0
  687. package/tabs/typings/index.metadata.json +1 -0
  688. package/tabs/typings/ink-bar.d.ts +33 -0
  689. package/tabs/typings/mat-exports.d.ts +31 -0
  690. package/tabs/typings/public_api.d.ts +17 -0
  691. package/tabs/typings/tab-body.d.ts +69 -0
  692. package/tabs/typings/tab-group.d.ts +100 -0
  693. package/tabs/typings/tab-header.d.ts +156 -0
  694. package/tabs/typings/tab-label-wrapper.d.ts +25 -0
  695. package/tabs/typings/tab-label.d.ts +15 -0
  696. package/tabs/typings/tab-nav-bar/index.d.ts +8 -0
  697. package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +77 -0
  698. package/tabs/typings/tab.d.ts +50 -0
  699. package/tabs/typings/tabs-module.d.ts +2 -0
  700. package/tabs.d.ts +8 -0
  701. package/tabs.metadata.json +11 -0
  702. package/toolbar/index.d.ts +8 -1
  703. package/toolbar/index.metadata.json +11 -1
  704. package/toolbar/package.json +7 -0
  705. package/toolbar/typings/index.d.ts +4 -0
  706. package/toolbar/typings/index.metadata.json +1 -0
  707. package/toolbar/typings/mat-exports.d.ts +13 -0
  708. package/toolbar/typings/public_api.d.ts +10 -0
  709. package/toolbar/typings/toolbar-module.d.ts +2 -0
  710. package/toolbar/typings/toolbar.d.ts +21 -0
  711. package/toolbar.d.ts +8 -0
  712. package/toolbar.metadata.json +11 -0
  713. package/tooltip/index.d.ts +8 -1
  714. package/tooltip/index.metadata.json +11 -1
  715. package/tooltip/package.json +7 -0
  716. package/tooltip/typings/index.d.ts +4 -0
  717. package/tooltip/typings/index.metadata.json +1 -0
  718. package/tooltip/typings/mat-exports.d.ts +14 -0
  719. package/tooltip/typings/public_api.d.ts +10 -0
  720. package/tooltip/typings/tooltip-module.d.ts +2 -0
  721. package/tooltip/typings/tooltip.d.ts +177 -0
  722. package/tooltip.d.ts +8 -0
  723. package/tooltip.metadata.json +11 -0
  724. package/typings/autocomplete/autocomplete-module.d.ts +2 -0
  725. package/typings/autocomplete/autocomplete-trigger.d.ts +159 -0
  726. package/typings/autocomplete/autocomplete.d.ts +55 -0
  727. package/typings/autocomplete/index.d.ts +4 -0
  728. package/typings/autocomplete/index.metadata.json +1 -0
  729. package/typings/autocomplete/mat-exports.d.ts +17 -0
  730. package/typings/autocomplete/public_api.d.ts +11 -0
  731. package/typings/button/button-module.d.ts +2 -0
  732. package/typings/button/button.d.ts +80 -0
  733. package/typings/button/index.d.ts +4 -0
  734. package/typings/button/index.metadata.json +1 -0
  735. package/typings/button/mat-exports.d.ts +18 -0
  736. package/typings/button/public_api.d.ts +10 -0
  737. package/typings/button-toggle/button-toggle-module.d.ts +2 -0
  738. package/typings/button-toggle/button-toggle.d.ts +156 -0
  739. package/typings/button-toggle/index.d.ts +4 -0
  740. package/typings/button-toggle/index.metadata.json +1 -0
  741. package/typings/button-toggle/mat-exports.d.ts +16 -0
  742. package/typings/button-toggle/public_api.d.ts +10 -0
  743. package/typings/card/card-module.d.ts +2 -0
  744. package/typings/card/card.d.ts +95 -0
  745. package/typings/card/index.d.ts +4 -0
  746. package/typings/card/index.metadata.json +1 -0
  747. package/typings/card/mat-exports.d.ts +24 -0
  748. package/typings/card/public_api.d.ts +10 -0
  749. package/typings/checkbox/checkbox-module.d.ts +2 -0
  750. package/typings/checkbox/checkbox-required-validator.d.ts +18 -0
  751. package/typings/checkbox/checkbox.d.ts +159 -0
  752. package/typings/checkbox/index.d.ts +4 -0
  753. package/typings/checkbox/index.metadata.json +1 -0
  754. package/typings/checkbox/mat-exports.d.ts +17 -0
  755. package/typings/checkbox/public_api.d.ts +11 -0
  756. package/typings/chips/chip-input.d.ts +54 -0
  757. package/typings/chips/chip-list.d.ts +219 -0
  758. package/typings/chips/chip.d.ts +123 -0
  759. package/typings/chips/chips-module.d.ts +2 -0
  760. package/typings/chips/index.d.ts +4 -0
  761. package/typings/chips/index.metadata.json +1 -0
  762. package/typings/chips/mat-exports.d.ts +21 -0
  763. package/typings/chips/public_api.d.ts +12 -0
  764. package/typings/core/a11y/index.d.ts +8 -0
  765. package/typings/core/animation/animation.d.ts +20 -0
  766. package/typings/core/bidi/index.d.ts +8 -0
  767. package/typings/core/common-behaviors/color.d.ts +22 -0
  768. package/typings/core/common-behaviors/common-module.d.ts +24 -0
  769. package/typings/core/common-behaviors/constructor.d.ts +9 -0
  770. package/typings/core/common-behaviors/disable-ripple.d.ts +7 -0
  771. package/typings/core/common-behaviors/disabled.d.ts +7 -0
  772. package/typings/core/common-behaviors/index.d.ts +12 -0
  773. package/typings/core/common-behaviors/tabindex.d.ts +15 -0
  774. package/typings/core/compatibility/compatibility.d.ts +40 -0
  775. package/typings/core/coordination/unique-selection-dispatcher.d.ts +40 -0
  776. package/typings/core/datetime/date-adapter.d.ts +198 -0
  777. package/typings/core/datetime/date-formats.d.ts +20 -0
  778. package/typings/core/datetime/index.d.ts +8 -0
  779. package/typings/core/datetime/native-date-adapter.d.ts +50 -0
  780. package/typings/core/datetime/native-date-formats.d.ts +9 -0
  781. package/typings/core/error/error-options.d.ts +19 -0
  782. package/typings/core/gestures/gesture-annotations.d.ts +51 -0
  783. package/typings/core/gestures/gesture-config.d.ts +23 -0
  784. package/typings/core/index.d.ts +5 -0
  785. package/typings/core/index.metadata.json +1 -0
  786. package/typings/core/keyboard/keycodes.d.ts +8 -0
  787. package/typings/core/line/line.d.ts +30 -0
  788. package/typings/core/mat-exports.d.ts +36 -0
  789. package/typings/core/option/index.d.ts +4 -0
  790. package/typings/core/option/optgroup.d.ts +14 -0
  791. package/typings/core/option/option.d.ts +97 -0
  792. package/typings/core/overlay/index.d.ts +8 -0
  793. package/typings/core/placeholder/placeholder-options.d.ts +15 -0
  794. package/typings/core/platform/features.d.ts +8 -0
  795. package/typings/core/platform/index.d.ts +10 -0
  796. package/typings/core/platform/platform.d.ts +8 -0
  797. package/typings/core/portal/dom-portal-host.d.ts +8 -0
  798. package/typings/core/portal/portal-directives.d.ts +8 -0
  799. package/typings/core/portal/portal-injector.d.ts +19 -0
  800. package/typings/core/portal/portal.d.ts +8 -0
  801. package/typings/core/public_api.d.ts +34 -0
  802. package/typings/core/ripple/index.d.ts +5 -0
  803. package/typings/core/ripple/ripple-ref.d.ts +28 -0
  804. package/typings/core/ripple/ripple-renderer.d.ts +64 -0
  805. package/typings/core/ripple/ripple.d.ts +73 -0
  806. package/typings/core/rxjs/index.d.ts +9 -0
  807. package/typings/core/rxjs/rx-chain.d.ts +8 -0
  808. package/typings/core/rxjs/rx-operators.d.ts +8 -0
  809. package/typings/core/selection/index.d.ts +3 -0
  810. package/typings/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +20 -0
  811. package/typings/core/style/apply-transform.d.ts +13 -0
  812. package/typings/core/style/index.d.ts +5 -0
  813. package/typings/core/testing/month-constants.d.ts +12 -0
  814. package/typings/core/util/object-extend.d.ts +15 -0
  815. package/typings/datepicker/calendar-body.d.ts +52 -0
  816. package/typings/datepicker/calendar.d.ts +90 -0
  817. package/typings/datepicker/coerce-date-property.d.ts +19 -0
  818. package/typings/datepicker/datepicker-errors.d.ts +9 -0
  819. package/typings/datepicker/datepicker-input.d.ts +94 -0
  820. package/typings/datepicker/datepicker-intl.d.ts +25 -0
  821. package/typings/datepicker/datepicker-module.d.ts +2 -0
  822. package/typings/datepicker/datepicker-toggle.d.ts +24 -0
  823. package/typings/datepicker/datepicker.d.ts +117 -0
  824. package/typings/datepicker/index.d.ts +4 -0
  825. package/typings/datepicker/index.metadata.json +1 -0
  826. package/typings/datepicker/mat-exports.d.ts +33 -0
  827. package/typings/datepicker/month-view.d.ts +65 -0
  828. package/typings/datepicker/public_api.d.ts +18 -0
  829. package/typings/datepicker/year-view.d.ts +54 -0
  830. package/typings/dialog/dialog-config.d.ts +54 -0
  831. package/typings/dialog/dialog-container.d.ts +68 -0
  832. package/typings/dialog/dialog-content-directives.d.ts +45 -0
  833. package/typings/dialog/dialog-module.d.ts +2 -0
  834. package/typings/dialog/dialog-ref.d.ts +68 -0
  835. package/typings/dialog/dialog.d.ts +108 -0
  836. package/typings/dialog/index.d.ts +4 -0
  837. package/typings/dialog/index.metadata.json +1 -0
  838. package/typings/dialog/mat-exports.d.ts +26 -0
  839. package/typings/dialog/public_api.d.ts +14 -0
  840. package/typings/expansion/accordion-item.d.ts +41 -0
  841. package/typings/expansion/accordion.d.ts +29 -0
  842. package/typings/expansion/expansion-module.d.ts +2 -0
  843. package/typings/expansion/expansion-panel-header.d.ts +56 -0
  844. package/typings/expansion/expansion-panel.d.ts +39 -0
  845. package/typings/expansion/index.d.ts +5 -0
  846. package/typings/expansion/index.metadata.json +1 -0
  847. package/typings/expansion/mat-exports.d.ts +20 -0
  848. package/typings/expansion/public_api.d.ts +13 -0
  849. package/typings/form-field/error.d.ts +4 -0
  850. package/typings/form-field/form-field-control.d.ts +39 -0
  851. package/typings/form-field/form-field-errors.d.ts +13 -0
  852. package/typings/form-field/form-field-module.d.ts +2 -0
  853. package/typings/form-field/form-field.d.ts +77 -0
  854. package/typings/form-field/hint.d.ts +7 -0
  855. package/typings/form-field/index.d.ts +4 -0
  856. package/typings/form-field/index.metadata.json +1 -0
  857. package/typings/form-field/mat-exports.d.ts +23 -0
  858. package/typings/form-field/placeholder.d.ts +3 -0
  859. package/typings/form-field/prefix.d.ts +3 -0
  860. package/typings/form-field/public_api.d.ts +17 -0
  861. package/typings/form-field/suffix.d.ts +3 -0
  862. package/typings/grid-list/grid-list-measure.d.ts +17 -0
  863. package/typings/grid-list/grid-list-module.d.ts +2 -0
  864. package/typings/grid-list/grid-list.d.ts +53 -0
  865. package/typings/grid-list/grid-tile.d.ts +55 -0
  866. package/typings/grid-list/index.d.ts +5 -0
  867. package/typings/grid-list/index.metadata.json +1 -0
  868. package/typings/grid-list/mat-exports.d.ts +13 -0
  869. package/typings/grid-list/public_api.d.ts +11 -0
  870. package/typings/grid-list/tile-coordinator.d.ts +64 -0
  871. package/typings/grid-list/tile-styler.d.ts +129 -0
  872. package/typings/icon/icon-module.d.ts +2 -0
  873. package/typings/icon/icon-registry.d.ts +194 -0
  874. package/typings/icon/icon.d.ts +76 -0
  875. package/typings/icon/index.d.ts +4 -0
  876. package/typings/icon/index.metadata.json +1 -0
  877. package/typings/icon/mat-exports.d.ts +14 -0
  878. package/typings/icon/public_api.d.ts +11 -0
  879. package/typings/index.d.ts +4 -0
  880. package/typings/index.metadata.json +26 -0
  881. package/typings/input/autosize.d.ts +45 -0
  882. package/typings/input/index.d.ts +4 -0
  883. package/typings/input/index.metadata.json +1 -0
  884. package/typings/input/input-errors.d.ts +9 -0
  885. package/typings/input/input-module.d.ts +2 -0
  886. package/typings/input/input.d.ts +78 -0
  887. package/typings/input/mat-exports.d.ts +13 -0
  888. package/typings/input/public_api.d.ts +12 -0
  889. package/typings/list/index.d.ts +4 -0
  890. package/typings/list/index.metadata.json +1 -0
  891. package/typings/list/list-module.d.ts +2 -0
  892. package/typings/list/list.d.ts +78 -0
  893. package/typings/list/mat-exports.d.ts +27 -0
  894. package/typings/list/public_api.d.ts +11 -0
  895. package/typings/list/selection-list.d.ts +112 -0
  896. package/typings/menu/index.d.ts +6 -0
  897. package/typings/menu/index.metadata.json +1 -0
  898. package/typings/menu/mat-exports.d.ts +16 -0
  899. package/typings/menu/menu-animations.d.ts +27 -0
  900. package/typings/menu/menu-directive.d.ts +86 -0
  901. package/typings/menu/menu-errors.d.ts +24 -0
  902. package/typings/menu/menu-item.d.ts +40 -0
  903. package/typings/menu/menu-module.d.ts +2 -0
  904. package/typings/menu/menu-panel.d.ts +22 -0
  905. package/typings/menu/menu-positions.d.ts +9 -0
  906. package/typings/menu/menu-trigger.d.ts +116 -0
  907. package/typings/menu/menu.d.ts +12 -0
  908. package/typings/menu/public_api.d.ts +12 -0
  909. package/typings/paginator/index.d.ts +4 -0
  910. package/typings/paginator/index.metadata.json +1 -0
  911. package/typings/paginator/mat-exports.d.ts +13 -0
  912. package/typings/paginator/paginator-intl.d.ts +20 -0
  913. package/typings/paginator/paginator-module.d.ts +2 -0
  914. package/typings/paginator/paginator.d.ts +75 -0
  915. package/typings/paginator/public_api.d.ts +11 -0
  916. package/typings/progress-bar/index.d.ts +4 -0
  917. package/typings/progress-bar/index.metadata.json +1 -0
  918. package/typings/progress-bar/mat-exports.d.ts +11 -0
  919. package/typings/progress-bar/progress-bar-module.d.ts +2 -0
  920. package/typings/progress-bar/progress-bar.d.ts +32 -0
  921. package/typings/progress-bar/public_api.d.ts +10 -0
  922. package/typings/progress-spinner/index.d.ts +4 -0
  923. package/typings/progress-spinner/index.metadata.json +1 -0
  924. package/typings/progress-spinner/mat-exports.d.ts +14 -0
  925. package/typings/progress-spinner/progress-spinner-module.d.ts +2 -0
  926. package/typings/progress-spinner/progress-spinner.d.ts +98 -0
  927. package/typings/progress-spinner/public_api.d.ts +10 -0
  928. package/typings/public_api.d.ts +39 -0
  929. package/typings/radio/index.d.ts +4 -0
  930. package/typings/radio/index.metadata.json +1 -0
  931. package/typings/radio/mat-exports.d.ts +16 -0
  932. package/typings/radio/public_api.d.ts +10 -0
  933. package/typings/radio/radio-module.d.ts +2 -0
  934. package/typings/radio/radio.d.ts +217 -0
  935. package/typings/select/index.d.ts +4 -0
  936. package/typings/select/index.metadata.json +1 -0
  937. package/typings/select/mat-exports.d.ts +17 -0
  938. package/typings/select/public_api.d.ts +11 -0
  939. package/typings/select/select-animations.d.ts +36 -0
  940. package/typings/select/select-errors.d.ts +26 -0
  941. package/typings/select/select-module.d.ts +2 -0
  942. package/typings/select/select.d.ts +412 -0
  943. package/typings/sidenav/drawer.d.ts +178 -0
  944. package/typings/sidenav/index.d.ts +4 -0
  945. package/typings/sidenav/index.metadata.json +1 -0
  946. package/typings/sidenav/mat-exports.d.ts +16 -0
  947. package/typings/sidenav/public_api.d.ts +11 -0
  948. package/typings/sidenav/sidenav-module.d.ts +2 -0
  949. package/typings/sidenav/sidenav.d.ts +6 -0
  950. package/typings/slide-toggle/index.d.ts +4 -0
  951. package/typings/slide-toggle/index.metadata.json +1 -0
  952. package/typings/slide-toggle/mat-exports.d.ts +14 -0
  953. package/typings/slide-toggle/public_api.d.ts +10 -0
  954. package/typings/slide-toggle/slide-toggle-module.d.ts +2 -0
  955. package/typings/slide-toggle/slide-toggle.d.ts +93 -0
  956. package/typings/slider/index.d.ts +4 -0
  957. package/typings/slider/index.metadata.json +1 -0
  958. package/typings/slider/mat-exports.d.ts +14 -0
  959. package/typings/slider/public_api.d.ts +10 -0
  960. package/typings/slider/slider-module.d.ts +2 -0
  961. package/typings/slider/slider.d.ts +207 -0
  962. package/typings/snack-bar/index.d.ts +4 -0
  963. package/typings/snack-bar/index.metadata.json +1 -0
  964. package/typings/snack-bar/mat-exports.d.ts +18 -0
  965. package/typings/snack-bar/public_api.d.ts +14 -0
  966. package/typings/snack-bar/simple-snack-bar.d.ts +18 -0
  967. package/typings/snack-bar/snack-bar-config.d.ts +38 -0
  968. package/typings/snack-bar/snack-bar-container.d.ts +61 -0
  969. package/typings/snack-bar/snack-bar-module.d.ts +2 -0
  970. package/typings/snack-bar/snack-bar-ref.d.ts +51 -0
  971. package/typings/snack-bar/snack-bar.d.ts +70 -0
  972. package/typings/sort/index.d.ts +4 -0
  973. package/typings/sort/index.metadata.json +1 -0
  974. package/typings/sort/mat-exports.d.ts +16 -0
  975. package/typings/sort/public_api.d.ts +13 -0
  976. package/typings/sort/sort-direction.d.ts +8 -0
  977. package/typings/sort/sort-errors.d.ts +13 -0
  978. package/typings/sort/sort-header-intl.d.ts +17 -0
  979. package/typings/sort/sort-header.d.ts +44 -0
  980. package/typings/sort/sort-module.d.ts +2 -0
  981. package/typings/sort/sort.d.ts +59 -0
  982. package/typings/stepper/index.d.ts +4 -0
  983. package/typings/stepper/index.metadata.json +1 -0
  984. package/typings/stepper/mat-exports.d.ts +21 -0
  985. package/typings/stepper/public_api.d.ts +13 -0
  986. package/typings/stepper/step-header.d.ts +23 -0
  987. package/typings/stepper/step-label.d.ts +14 -0
  988. package/typings/stepper/stepper-button.d.ts +10 -0
  989. package/typings/stepper/stepper-module.d.ts +2 -0
  990. package/typings/stepper/stepper.d.ts +27 -0
  991. package/typings/table/cell.d.ts +44 -0
  992. package/typings/table/index.d.ts +4 -0
  993. package/typings/table/index.metadata.json +1 -0
  994. package/typings/table/mat-exports.d.ts +20 -0
  995. package/typings/table/public_api.d.ts +12 -0
  996. package/typings/table/row.d.ts +30 -0
  997. package/typings/table/table-module.d.ts +2 -0
  998. package/typings/table/table.d.ts +8 -0
  999. package/typings/tabs/index.d.ts +8 -0
  1000. package/typings/tabs/index.metadata.json +1 -0
  1001. package/typings/tabs/ink-bar.d.ts +33 -0
  1002. package/typings/tabs/mat-exports.d.ts +31 -0
  1003. package/typings/tabs/public_api.d.ts +17 -0
  1004. package/typings/tabs/tab-body.d.ts +69 -0
  1005. package/typings/tabs/tab-group.d.ts +100 -0
  1006. package/typings/tabs/tab-header.d.ts +156 -0
  1007. package/typings/tabs/tab-label-wrapper.d.ts +25 -0
  1008. package/typings/tabs/tab-label.d.ts +15 -0
  1009. package/typings/tabs/tab-nav-bar/index.d.ts +8 -0
  1010. package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +77 -0
  1011. package/typings/tabs/tab.d.ts +50 -0
  1012. package/typings/tabs/tabs-module.d.ts +2 -0
  1013. package/typings/toolbar/index.d.ts +4 -0
  1014. package/typings/toolbar/index.metadata.json +1 -0
  1015. package/typings/toolbar/mat-exports.d.ts +13 -0
  1016. package/typings/toolbar/public_api.d.ts +10 -0
  1017. package/typings/toolbar/toolbar-module.d.ts +2 -0
  1018. package/typings/toolbar/toolbar.d.ts +21 -0
  1019. package/typings/tooltip/index.d.ts +4 -0
  1020. package/typings/tooltip/index.metadata.json +1 -0
  1021. package/typings/tooltip/mat-exports.d.ts +14 -0
  1022. package/typings/tooltip/public_api.d.ts +10 -0
  1023. package/typings/tooltip/tooltip-module.d.ts +2 -0
  1024. package/typings/tooltip/tooltip.d.ts +177 -0
  1025. package/typings/version.d.ts +10 -0
  1026. package/button/README.md +0 -115
  1027. package/button/_button-base.scss +0 -116
  1028. package/button/_button-theme.scss +0 -85
  1029. package/button/button.css +0 -101
  1030. package/button/button.css.map +0 -1
  1031. package/button/button.d.ts +0 -35
  1032. package/button/button.html +0 -6
  1033. package/button/button.js +0 -196
  1034. package/button/button.js.map +0 -1
  1035. package/button/button.metadata.json +0 -1
  1036. package/button/button.scss +0 -72
  1037. package/button/index.js +0 -3
  1038. package/button/index.js.map +0 -1
  1039. package/button-toggle/README.md +0 -149
  1040. package/button-toggle/_button-toggle-theme.scss +0 -14
  1041. package/button-toggle/button-toggle.css +0 -24
  1042. package/button-toggle/button-toggle.css.map +0 -1
  1043. package/button-toggle/button-toggle.d.ts +0 -110
  1044. package/button-toggle/button-toggle.html +0 -14
  1045. package/button-toggle/button-toggle.js +0 -436
  1046. package/button-toggle/button-toggle.js.map +0 -1
  1047. package/button-toggle/button-toggle.metadata.json +0 -1
  1048. package/button-toggle/button-toggle.scss +0 -34
  1049. package/button-toggle/index.js +0 -3
  1050. package/button-toggle/index.js.map +0 -1
  1051. package/card/README.md +0 -116
  1052. package/card/_card-theme.scss +0 -17
  1053. package/card/card-header.html +0 -5
  1054. package/card/card-title-group.html +0 -5
  1055. package/card/card.css +0 -140
  1056. package/card/card.css.map +0 -1
  1057. package/card/card.d.ts +0 -35
  1058. package/card/card.html +0 -1
  1059. package/card/card.js +0 -187
  1060. package/card/card.js.map +0 -1
  1061. package/card/card.metadata.json +0 -1
  1062. package/card/card.scss +0 -226
  1063. package/card/index.js +0 -3
  1064. package/card/index.js.map +0 -1
  1065. package/checkbox/README.md +0 -79
  1066. package/checkbox/_checkbox-theme.scss +0 -69
  1067. package/checkbox/checkbox.css +0 -241
  1068. package/checkbox/checkbox.css.map +0 -1
  1069. package/checkbox/checkbox.d.ts +0 -127
  1070. package/checkbox/checkbox.html +0 -37
  1071. package/checkbox/checkbox.js +0 -344
  1072. package/checkbox/checkbox.js.map +0 -1
  1073. package/checkbox/checkbox.metadata.json +0 -1
  1074. package/checkbox/checkbox.scss +0 -412
  1075. package/checkbox/index.js +0 -3
  1076. package/checkbox/index.js.map +0 -1
  1077. package/core/README.md +0 -2
  1078. package/core/_core.scss +0 -27
  1079. package/core/a11y/README.md +0 -30
  1080. package/core/a11y/_a11y.scss +0 -13
  1081. package/core/a11y/focus-trap.d.ts +0 -23
  1082. package/core/a11y/focus-trap.js +0 -82
  1083. package/core/a11y/focus-trap.js.map +0 -1
  1084. package/core/a11y/focus-trap.metadata.json +0 -1
  1085. package/core/a11y/index.d.ts +0 -10
  1086. package/core/a11y/index.js +0 -37
  1087. package/core/a11y/index.js.map +0 -1
  1088. package/core/a11y/index.metadata.json +0 -1
  1089. package/core/a11y/interactivity-checker.d.ts +0 -31
  1090. package/core/a11y/interactivity-checker.js +0 -122
  1091. package/core/a11y/interactivity-checker.js.map +0 -1
  1092. package/core/a11y/interactivity-checker.metadata.json +0 -1
  1093. package/core/a11y/live-announcer.d.ts +0 -13
  1094. package/core/a11y/live-announcer.js +0 -56
  1095. package/core/a11y/live-announcer.js.map +0 -1
  1096. package/core/a11y/live-announcer.metadata.json +0 -1
  1097. package/core/annotations/field-value.d.ts +0 -16
  1098. package/core/annotations/field-value.js +0 -30
  1099. package/core/annotations/field-value.js.map +0 -1
  1100. package/core/async/promise-completer.d.ts +0 -6
  1101. package/core/async/promise-completer.js +0 -12
  1102. package/core/async/promise-completer.js.map +0 -1
  1103. package/core/coordination/unique-selection-dispatcher.d.ts +0 -17
  1104. package/core/coordination/unique-selection-dispatcher.js +0 -42
  1105. package/core/coordination/unique-selection-dispatcher.js.map +0 -1
  1106. package/core/coordination/unique-selection-dispatcher.metadata.json +0 -1
  1107. package/core/core.d.ts +0 -28
  1108. package/core/core.js +0 -71
  1109. package/core/core.js.map +0 -1
  1110. package/core/core.metadata.json +0 -1
  1111. package/core/errors/error.d.ts +0 -6
  1112. package/core/errors/error.js +0 -19
  1113. package/core/errors/error.js.map +0 -1
  1114. package/core/gestures/MdGestureConfig.d.ts +0 -7
  1115. package/core/gestures/MdGestureConfig.js +0 -84
  1116. package/core/gestures/MdGestureConfig.js.map +0 -1
  1117. package/core/gestures/MdGestureConfig.metadata.json +0 -1
  1118. package/core/index.js +0 -3
  1119. package/core/index.js.map +0 -1
  1120. package/core/keyboard/keycodes.d.ts +0 -6
  1121. package/core/keyboard/keycodes.js +0 -12
  1122. package/core/keyboard/keycodes.js.map +0 -1
  1123. package/core/keyboard/keycodes.metadata.json +0 -1
  1124. package/core/line/line.d.ts +0 -19
  1125. package/core/line/line.js +0 -65
  1126. package/core/line/line.js.map +0 -1
  1127. package/core/line/line.metadata.json +0 -1
  1128. package/core/overlay/generic-component-type.d.ts +0 -3
  1129. package/core/overlay/generic-component-type.js +0 -3
  1130. package/core/overlay/generic-component-type.js.map +0 -1
  1131. package/core/overlay/overlay-container.d.ts +0 -19
  1132. package/core/overlay/overlay-container.js +0 -33
  1133. package/core/overlay/overlay-container.js.map +0 -1
  1134. package/core/overlay/overlay-directives.d.ts +0 -36
  1135. package/core/overlay/overlay-directives.js +0 -120
  1136. package/core/overlay/overlay-directives.js.map +0 -1
  1137. package/core/overlay/overlay-directives.metadata.json +0 -1
  1138. package/core/overlay/overlay-ref.d.ts +0 -28
  1139. package/core/overlay/overlay-ref.js +0 -82
  1140. package/core/overlay/overlay-ref.js.map +0 -1
  1141. package/core/overlay/overlay-state.d.ts +0 -11
  1142. package/core/overlay/overlay-state.js +0 -13
  1143. package/core/overlay/overlay-state.js.map +0 -1
  1144. package/core/overlay/overlay.css +0 -2
  1145. package/core/overlay/overlay.css.map +0 -1
  1146. package/core/overlay/overlay.d.ts +0 -51
  1147. package/core/overlay/overlay.js +0 -93
  1148. package/core/overlay/overlay.js.map +0 -1
  1149. package/core/overlay/overlay.metadata.json +0 -1
  1150. package/core/overlay/overlay.scss +0 -55
  1151. package/core/overlay/position/connected-position-strategy.d.ts +0 -69
  1152. package/core/overlay/position/connected-position-strategy.js +0 -164
  1153. package/core/overlay/position/connected-position-strategy.js.map +0 -1
  1154. package/core/overlay/position/connected-position.d.ts +0 -22
  1155. package/core/overlay/position/connected-position.js +0 -12
  1156. package/core/overlay/position/connected-position.js.map +0 -1
  1157. package/core/overlay/position/global-position-strategy.d.ts +0 -45
  1158. package/core/overlay/position/global-position-strategy.js +0 -102
  1159. package/core/overlay/position/global-position-strategy.js.map +0 -1
  1160. package/core/overlay/position/overlay-position-builder.d.ts +0 -14
  1161. package/core/overlay/position/overlay-position-builder.js +0 -34
  1162. package/core/overlay/position/overlay-position-builder.js.map +0 -1
  1163. package/core/overlay/position/overlay-position-builder.metadata.json +0 -1
  1164. package/core/overlay/position/position-strategy.d.ts +0 -5
  1165. package/core/overlay/position/position-strategy.js +0 -3
  1166. package/core/overlay/position/position-strategy.js.map +0 -1
  1167. package/core/overlay/position/relative-position-strategy.d.ts +0 -7
  1168. package/core/overlay/position/relative-position-strategy.js +0 -12
  1169. package/core/overlay/position/relative-position-strategy.js.map +0 -1
  1170. package/core/overlay/position/viewport-ruler.d.ts +0 -16
  1171. package/core/overlay/position/viewport-ruler.js +0 -71
  1172. package/core/overlay/position/viewport-ruler.js.map +0 -1
  1173. package/core/overlay/position/viewport-ruler.metadata.json +0 -1
  1174. package/core/portal/README.md +0 -72
  1175. package/core/portal/dom-portal-host.d.ts +0 -17
  1176. package/core/portal/dom-portal-host.js +0 -56
  1177. package/core/portal/dom-portal-host.js.map +0 -1
  1178. package/core/portal/portal-directives.d.ts +0 -38
  1179. package/core/portal/portal-directives.js +0 -124
  1180. package/core/portal/portal-directives.js.map +0 -1
  1181. package/core/portal/portal-directives.metadata.json +0 -1
  1182. package/core/portal/portal-errors.d.ts +0 -29
  1183. package/core/portal/portal-errors.js +0 -66
  1184. package/core/portal/portal-errors.js.map +0 -1
  1185. package/core/portal/portal.d.ts +0 -85
  1186. package/core/portal/portal.js +0 -155
  1187. package/core/portal/portal.js.map +0 -1
  1188. package/core/ripple/README.md +0 -27
  1189. package/core/ripple/_ripple.scss +0 -106
  1190. package/core/ripple/ripple-renderer.d.ts +0 -65
  1191. package/core/ripple/ripple-renderer.js +0 -149
  1192. package/core/ripple/ripple-renderer.js.map +0 -1
  1193. package/core/ripple/ripple-renderer.metadata.json +0 -1
  1194. package/core/ripple/ripple.d.ts +0 -75
  1195. package/core/ripple/ripple.js +0 -179
  1196. package/core/ripple/ripple.js.map +0 -1
  1197. package/core/ripple/ripple.metadata.json +0 -1
  1198. package/core/rtl/dir.d.ts +0 -17
  1199. package/core/rtl/dir.js +0 -83
  1200. package/core/rtl/dir.js.map +0 -1
  1201. package/core/rtl/dir.metadata.json +0 -1
  1202. package/core/style/_button-common.scss +0 -7
  1203. package/core/style/_elevation.scss +0 -174
  1204. package/core/style/_list-common.scss +0 -49
  1205. package/core/style/_sidenav-common.scss +0 -8
  1206. package/core/style/_variables.scss +0 -55
  1207. package/core/style/apply-transform.d.ts +0 -6
  1208. package/core/style/apply-transform.js +0 -14
  1209. package/core/style/apply-transform.js.map +0 -1
  1210. package/core/theming/_all-theme.scss +0 -46
  1211. package/core/theming/_palette.scss +0 -694
  1212. package/core/theming/_theming.scss +0 -84
  1213. package/core/theming/prebuilt/deeppurple-amber.css +0 -446
  1214. package/core/theming/prebuilt/deeppurple-amber.css.map +0 -1
  1215. package/core/theming/prebuilt/deeppurple-amber.scss +0 -14
  1216. package/core/theming/prebuilt/indigo-pink.css +0 -446
  1217. package/core/theming/prebuilt/indigo-pink.css.map +0 -1
  1218. package/core/theming/prebuilt/indigo-pink.scss +0 -14
  1219. package/core/theming/prebuilt/pink-bluegrey.css +0 -446
  1220. package/core/theming/prebuilt/pink-bluegrey.css.map +0 -1
  1221. package/core/theming/prebuilt/pink-bluegrey.scss +0 -14
  1222. package/core/theming/prebuilt/purple-green.css +0 -446
  1223. package/core/theming/prebuilt/purple-green.css.map +0 -1
  1224. package/core/theming/prebuilt/purple-green.scss +0 -14
  1225. package/core/typography/_typography.scss +0 -6
  1226. package/core.js +0 -3
  1227. package/core.js.map +0 -1
  1228. package/dialog/README.md +0 -0
  1229. package/dialog/_dialog-theme.scss +0 -11
  1230. package/dialog/dialog-config.d.ts +0 -11
  1231. package/dialog/dialog-config.js +0 -12
  1232. package/dialog/dialog-config.js.map +0 -1
  1233. package/dialog/dialog-container.css +0 -7
  1234. package/dialog/dialog-container.css.map +0 -1
  1235. package/dialog/dialog-container.d.ts +0 -29
  1236. package/dialog/dialog-container.html +0 -3
  1237. package/dialog/dialog-container.js +0 -88
  1238. package/dialog/dialog-container.js.map +0 -1
  1239. package/dialog/dialog-container.metadata.json +0 -1
  1240. package/dialog/dialog-container.scss +0 -12
  1241. package/dialog/dialog-errors.d.ts +0 -5
  1242. package/dialog/dialog-errors.js +0 -16
  1243. package/dialog/dialog-errors.js.map +0 -1
  1244. package/dialog/dialog-injector.d.ts +0 -9
  1245. package/dialog/dialog-injector.js +0 -17
  1246. package/dialog/dialog-injector.js.map +0 -1
  1247. package/dialog/dialog-ref.d.ts +0 -20
  1248. package/dialog/dialog-ref.js +0 -29
  1249. package/dialog/dialog-ref.js.map +0 -1
  1250. package/dialog/dialog.d.ts +0 -51
  1251. package/dialog/dialog.js +0 -128
  1252. package/dialog/dialog.js.map +0 -1
  1253. package/dialog/dialog.metadata.json +0 -1
  1254. package/dialog/index.js +0 -6
  1255. package/dialog/index.js.map +0 -1
  1256. package/grid-list/README.md +0 -118
  1257. package/grid-list/_grid-list-theme.scss +0 -6
  1258. package/grid-list/grid-list-errors.d.ts +0 -19
  1259. package/grid-list/grid-list-errors.js +0 -38
  1260. package/grid-list/grid-list-errors.js.map +0 -1
  1261. package/grid-list/grid-list-measure.d.ts +0 -10
  1262. package/grid-list/grid-list-measure.js +0 -16
  1263. package/grid-list/grid-list-measure.js.map +0 -1
  1264. package/grid-list/grid-list-measure.metadata.json +0 -1
  1265. package/grid-list/grid-list.css +0 -78
  1266. package/grid-list/grid-list.css.map +0 -1
  1267. package/grid-list/grid-list.d.ts +0 -49
  1268. package/grid-list/grid-list.html +0 -3
  1269. package/grid-list/grid-list.js +0 -165
  1270. package/grid-list/grid-list.js.map +0 -1
  1271. package/grid-list/grid-list.metadata.json +0 -1
  1272. package/grid-list/grid-list.scss +0 -91
  1273. package/grid-list/grid-tile-text.html +0 -3
  1274. package/grid-list/grid-tile.d.ts +0 -28
  1275. package/grid-list/grid-tile.html +0 -4
  1276. package/grid-list/grid-tile.js +0 -87
  1277. package/grid-list/grid-tile.js.map +0 -1
  1278. package/grid-list/grid-tile.metadata.json +0 -1
  1279. package/grid-list/index.js +0 -3
  1280. package/grid-list/index.js.map +0 -1
  1281. package/grid-list/tile-coordinator.d.ts +0 -51
  1282. package/grid-list/tile-coordinator.js +0 -124
  1283. package/grid-list/tile-coordinator.js.map +0 -1
  1284. package/grid-list/tile-styler.d.ts +0 -88
  1285. package/grid-list/tile-styler.js +0 -190
  1286. package/grid-list/tile-styler.js.map +0 -1
  1287. package/icon/README.md +0 -116
  1288. package/icon/_icon-theme.scss +0 -6
  1289. package/icon/fake-svgs.d.ts +0 -5
  1290. package/icon/fake-svgs.js +0 -29
  1291. package/icon/fake-svgs.js.map +0 -1
  1292. package/icon/icon-registry.d.ts +0 -148
  1293. package/icon/icon-registry.js +0 -375
  1294. package/icon/icon-registry.js.map +0 -1
  1295. package/icon/icon-registry.metadata.json +0 -1
  1296. package/icon/icon.css +0 -8
  1297. package/icon/icon.css.map +0 -1
  1298. package/icon/icon.d.ts +0 -85
  1299. package/icon/icon.js +0 -252
  1300. package/icon/icon.js.map +0 -1
  1301. package/icon/icon.metadata.json +0 -1
  1302. package/icon/icon.scss +0 -13
  1303. package/icon/index.js +0 -3
  1304. package/icon/index.js.map +0 -1
  1305. package/index.d.ts +0 -23
  1306. package/index.js +0 -25
  1307. package/index.js.map +0 -1
  1308. package/index.metadata.json +0 -1
  1309. package/input/README.md +0 -121
  1310. package/input/_input-theme.scss +0 -64
  1311. package/input/index.js +0 -3
  1312. package/input/index.js.map +0 -1
  1313. package/input/input.css +0 -109
  1314. package/input/input.css.map +0 -1
  1315. package/input/input.d.ts +0 -134
  1316. package/input/input.html +0 -65
  1317. package/input/input.js +0 -471
  1318. package/input/input.js.map +0 -1
  1319. package/input/input.metadata.json +0 -1
  1320. package/input/input.scss +0 -198
  1321. package/list/README.md +0 -167
  1322. package/list/_list-theme.scss +0 -28
  1323. package/list/index.js +0 -3
  1324. package/list/index.js.map +0 -1
  1325. package/list/list-item.html +0 -5
  1326. package/list/list.css +0 -139
  1327. package/list/list.css.map +0 -1
  1328. package/list/list.d.ts +0 -24
  1329. package/list/list.js +0 -113
  1330. package/list/list.js.map +0 -1
  1331. package/list/list.metadata.json +0 -1
  1332. package/list/list.scss +0 -168
  1333. package/material.umd.js +0 -9017
  1334. package/material.umd.js.map +0 -1
  1335. package/menu/README.md +0 -164
  1336. package/menu/_menu-theme.scss +0 -25
  1337. package/menu/index.js +0 -3
  1338. package/menu/index.js.map +0 -1
  1339. package/menu/menu-directive.d.ts +0 -54
  1340. package/menu/menu-directive.js +0 -158
  1341. package/menu/menu-directive.js.map +0 -1
  1342. package/menu/menu-directive.metadata.json +0 -1
  1343. package/menu/menu-errors.d.ts +0 -21
  1344. package/menu/menu-errors.js +0 -40
  1345. package/menu/menu-errors.js.map +0 -1
  1346. package/menu/menu-item.d.ts +0 -18
  1347. package/menu/menu-item.js +0 -74
  1348. package/menu/menu-item.js.map +0 -1
  1349. package/menu/menu-item.metadata.json +0 -1
  1350. package/menu/menu-positions.d.ts +0 -2
  1351. package/menu/menu-positions.js +0 -3
  1352. package/menu/menu-positions.js.map +0 -1
  1353. package/menu/menu-trigger.d.ts +0 -62
  1354. package/menu/menu-trigger.js +0 -169
  1355. package/menu/menu-trigger.js.map +0 -1
  1356. package/menu/menu-trigger.metadata.json +0 -1
  1357. package/menu/menu.css +0 -41
  1358. package/menu/menu.css.map +0 -1
  1359. package/menu/menu.d.ts +0 -7
  1360. package/menu/menu.html +0 -6
  1361. package/menu/menu.js +0 -39
  1362. package/menu/menu.js.map +0 -1
  1363. package/menu/menu.metadata.json +0 -1
  1364. package/menu/menu.scss +0 -59
  1365. package/module.d.ts +0 -6
  1366. package/module.js +0 -117
  1367. package/module.js.map +0 -1
  1368. package/module.metadata.json +0 -1
  1369. package/progress-bar/README.md +0 -54
  1370. package/progress-bar/_progress-bar-theme.scss +0 -78
  1371. package/progress-bar/index.js +0 -3
  1372. package/progress-bar/index.js.map +0 -1
  1373. package/progress-bar/progress-bar.css +0 -114
  1374. package/progress-bar/progress-bar.css.map +0 -1
  1375. package/progress-bar/progress-bar.d.ts +0 -34
  1376. package/progress-bar/progress-bar.html +0 -5
  1377. package/progress-bar/progress-bar.js +0 -122
  1378. package/progress-bar/progress-bar.js.map +0 -1
  1379. package/progress-bar/progress-bar.metadata.json +0 -1
  1380. package/progress-bar/progress-bar.scss +0 -229
  1381. package/progress-circle/README.md +0 -51
  1382. package/progress-circle/_progress-circle-theme.scss +0 -23
  1383. package/progress-circle/index.d.ts +0 -1
  1384. package/progress-circle/index.js +0 -3
  1385. package/progress-circle/index.js.map +0 -1
  1386. package/progress-circle/index.metadata.json +0 -1
  1387. package/progress-circle/progress-circle.css +0 -43
  1388. package/progress-circle/progress-circle.css.map +0 -1
  1389. package/progress-circle/progress-circle.d.ts +0 -76
  1390. package/progress-circle/progress-circle.html +0 -9
  1391. package/progress-circle/progress-circle.js +0 -315
  1392. package/progress-circle/progress-circle.js.map +0 -1
  1393. package/progress-circle/progress-circle.metadata.json +0 -1
  1394. package/progress-circle/progress-circle.scss +0 -67
  1395. package/radio/README.md +0 -79
  1396. package/radio/_radio-theme.scss +0 -36
  1397. package/radio/index.js +0 -3
  1398. package/radio/index.js.map +0 -1
  1399. package/radio/radio.css +0 -82
  1400. package/radio/radio.css.map +0 -1
  1401. package/radio/radio.d.ts +0 -127
  1402. package/radio/radio.html +0 -27
  1403. package/radio/radio.js +0 -445
  1404. package/radio/radio.js.map +0 -1
  1405. package/radio/radio.metadata.json +0 -1
  1406. package/radio/radio.scss +0 -92
  1407. package/select/index.js +0 -33
  1408. package/select/index.js.map +0 -1
  1409. package/select/select.css +0 -2
  1410. package/select/select.css.map +0 -1
  1411. package/select/select.d.ts +0 -2
  1412. package/select/select.html +0 -1
  1413. package/select/select.js +0 -25
  1414. package/select/select.js.map +0 -1
  1415. package/select/select.metadata.json +0 -1
  1416. package/select/select.scss +0 -0
  1417. package/sidenav/README.md +0 -83
  1418. package/sidenav/_sidenav-theme.scss +0 -37
  1419. package/sidenav/index.js +0 -3
  1420. package/sidenav/index.js.map +0 -1
  1421. package/sidenav/sidenav-transitions.css +0 -10
  1422. package/sidenav/sidenav-transitions.css.map +0 -1
  1423. package/sidenav/sidenav-transitions.scss +0 -14
  1424. package/sidenav/sidenav.css +0 -111
  1425. package/sidenav/sidenav.css.map +0 -1
  1426. package/sidenav/sidenav.d.ts +0 -141
  1427. package/sidenav/sidenav.html +0 -8
  1428. package/sidenav/sidenav.js +0 -479
  1429. package/sidenav/sidenav.js.map +0 -1
  1430. package/sidenav/sidenav.metadata.json +0 -1
  1431. package/sidenav/sidenav.scss +0 -133
  1432. package/slide-toggle/README.md +0 -66
  1433. package/slide-toggle/_slide-toggle-theme.scss +0 -77
  1434. package/slide-toggle/index.js +0 -3
  1435. package/slide-toggle/index.js.map +0 -1
  1436. package/slide-toggle/slide-toggle.css +0 -88
  1437. package/slide-toggle/slide-toggle.css.map +0 -1
  1438. package/slide-toggle/slide-toggle.d.ts +0 -74
  1439. package/slide-toggle/slide-toggle.html +0 -33
  1440. package/slide-toggle/slide-toggle.js +0 -317
  1441. package/slide-toggle/slide-toggle.js.map +0 -1
  1442. package/slide-toggle/slide-toggle.metadata.json +0 -1
  1443. package/slide-toggle/slide-toggle.scss +0 -140
  1444. package/slider/README.md +0 -97
  1445. package/slider/_slider-theme.scss +0 -33
  1446. package/slider/index.js +0 -3
  1447. package/slider/index.js.map +0 -1
  1448. package/slider/slider.css +0 -122
  1449. package/slider/slider.css.map +0 -1
  1450. package/slider/slider.d.ts +0 -155
  1451. package/slider/slider.html +0 -21
  1452. package/slider/slider.js +0 -433
  1453. package/slider/slider.js.map +0 -1
  1454. package/slider/slider.metadata.json +0 -1
  1455. package/slider/slider.scss +0 -186
  1456. package/slider/test-gesture-config.d.ts +0 -21
  1457. package/slider/test-gesture-config.js +0 -59
  1458. package/slider/test-gesture-config.js.map +0 -1
  1459. package/slider/test-gesture-config.metadata.json +0 -1
  1460. package/snack-bar/README.md +0 -38
  1461. package/snack-bar/index.js +0 -6
  1462. package/snack-bar/index.js.map +0 -1
  1463. package/snack-bar/simple-snack-bar.css +0 -27
  1464. package/snack-bar/simple-snack-bar.css.map +0 -1
  1465. package/snack-bar/simple-snack-bar.d.ts +0 -17
  1466. package/snack-bar/simple-snack-bar.html +0 -3
  1467. package/snack-bar/simple-snack-bar.js +0 -38
  1468. package/snack-bar/simple-snack-bar.js.map +0 -1
  1469. package/snack-bar/simple-snack-bar.metadata.json +0 -1
  1470. package/snack-bar/simple-snack-bar.scss +0 -28
  1471. package/snack-bar/snack-bar-config.d.ts +0 -11
  1472. package/snack-bar/snack-bar-config.js +0 -10
  1473. package/snack-bar/snack-bar-config.js.map +0 -1
  1474. package/snack-bar/snack-bar-container.css +0 -12
  1475. package/snack-bar/snack-bar-container.css.map +0 -1
  1476. package/snack-bar/snack-bar-container.d.ts +0 -15
  1477. package/snack-bar/snack-bar-container.html +0 -1
  1478. package/snack-bar/snack-bar-container.js +0 -53
  1479. package/snack-bar/snack-bar-container.js.map +0 -1
  1480. package/snack-bar/snack-bar-container.metadata.json +0 -1
  1481. package/snack-bar/snack-bar-container.scss +0 -19
  1482. package/snack-bar/snack-bar-errors.d.ts +0 -4
  1483. package/snack-bar/snack-bar-errors.js +0 -15
  1484. package/snack-bar/snack-bar-errors.js.map +0 -1
  1485. package/snack-bar/snack-bar-ref.d.ts +0 -17
  1486. package/snack-bar/snack-bar-ref.js +0 -28
  1487. package/snack-bar/snack-bar-ref.js.map +0 -1
  1488. package/snack-bar/snack-bar.d.ts +0 -41
  1489. package/snack-bar/snack-bar.js +0 -110
  1490. package/snack-bar/snack-bar.js.map +0 -1
  1491. package/snack-bar/snack-bar.metadata.json +0 -1
  1492. package/tabs/README.md +0 -47
  1493. package/tabs/_tabs-theme.scss +0 -23
  1494. package/tabs/index.js +0 -3
  1495. package/tabs/index.js.map +0 -1
  1496. package/tabs/ink-bar.d.ts +0 -24
  1497. package/tabs/ink-bar.js +0 -50
  1498. package/tabs/ink-bar.js.map +0 -1
  1499. package/tabs/ink-bar.metadata.json +0 -1
  1500. package/tabs/tab-content.d.ts +0 -6
  1501. package/tabs/tab-content.js +0 -32
  1502. package/tabs/tab-content.js.map +0 -1
  1503. package/tabs/tab-content.metadata.json +0 -1
  1504. package/tabs/tab-group.css +0 -55
  1505. package/tabs/tab-group.css.map +0 -1
  1506. package/tabs/tab-group.html +0 -27
  1507. package/tabs/tab-group.scss +0 -72
  1508. package/tabs/tab-label-wrapper.d.ts +0 -10
  1509. package/tabs/tab-label-wrapper.js +0 -31
  1510. package/tabs/tab-label-wrapper.js.map +0 -1
  1511. package/tabs/tab-label-wrapper.metadata.json +0 -1
  1512. package/tabs/tab-label.d.ts +0 -6
  1513. package/tabs/tab-label.js +0 -32
  1514. package/tabs/tab-label.js.map +0 -1
  1515. package/tabs/tab-label.metadata.json +0 -1
  1516. package/tabs/tabs.d.ts +0 -79
  1517. package/tabs/tabs.js +0 -290
  1518. package/tabs/tabs.js.map +0 -1
  1519. package/tabs/tabs.metadata.json +0 -1
  1520. package/toolbar/README.md +0 -68
  1521. package/toolbar/_toolbar-theme.scss +0 -33
  1522. package/toolbar/index.js +0 -3
  1523. package/toolbar/index.js.map +0 -1
  1524. package/toolbar/toolbar.css +0 -19
  1525. package/toolbar/toolbar.css.map +0 -1
  1526. package/toolbar/toolbar.d.ts +0 -17
  1527. package/toolbar/toolbar.html +0 -6
  1528. package/toolbar/toolbar.js +0 -83
  1529. package/toolbar/toolbar.js.map +0 -1
  1530. package/toolbar/toolbar.metadata.json +0 -1
  1531. package/toolbar/toolbar.scss +0 -36
  1532. package/tooltip/README.md +0 -32
  1533. package/tooltip/_tooltip-theme.scss +0 -9
  1534. package/tooltip/index.js +0 -3
  1535. package/tooltip/index.js.map +0 -1
  1536. package/tooltip/tooltip.css +0 -14
  1537. package/tooltip/tooltip.css.map +0 -1
  1538. package/tooltip/tooltip.d.ts +0 -67
  1539. package/tooltip/tooltip.html +0 -0
  1540. package/tooltip/tooltip.js +0 -210
  1541. package/tooltip/tooltip.js.map +0 -1
  1542. package/tooltip/tooltip.metadata.json +0 -1
  1543. package/tooltip/tooltip.scss +0 -21
  1544. package/tsconfig-spec.json +0 -33
  1545. package/tsconfig.json +0 -33
  1546. package/typings.d.ts +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"material.umd.js","sources":["core/line/line.js","core/rtl/dir.js","core/ripple/ripple-renderer.js","core/ripple/ripple.js","core/errors/error.js","core/portal/portal-errors.js","core/portal/portal.js","core/portal/portal-directives.js","core/overlay/overlay-state.js","core/portal/dom-portal-host.js","core/overlay/overlay-ref.js","core/overlay/position/viewport-ruler.js","core/style/apply-transform.js","core/overlay/position/connected-position.js","core/overlay/position/connected-position-strategy.js","core/overlay/position/global-position-strategy.js","core/overlay/position/overlay-position-builder.js","core/overlay/overlay-container.js","core/overlay/overlay.js","core/overlay/overlay-directives.js","core/a11y/interactivity-checker.js","core/a11y/focus-trap.js","core/a11y/live-announcer.js","core/a11y/index.js","core/gestures/MdGestureConfig.js","core/coordination/unique-selection-dispatcher.js","core/annotations/field-value.js","core/keyboard/keycodes.js","core/core.js","button-toggle/button-toggle.js","button/button.js","checkbox/checkbox.js","radio/radio.js","select/select.js","select/index.js","slide-toggle/slide-toggle.js","slider/slider.js","sidenav/sidenav.js","list/list.js","grid-list/grid-list-measure.js","grid-list/grid-tile.js","grid-list/grid-list-errors.js","grid-list/tile-coordinator.js","grid-list/tile-styler.js","grid-list/grid-list.js","card/card.js","icon/icon-registry.js","icon/icon.js","progress-circle/progress-circle.js","progress-bar/progress-bar.js","input/input.js","snack-bar/snack-bar-ref.js","snack-bar/snack-bar-errors.js","snack-bar/snack-bar-container.js","snack-bar/simple-snack-bar.js","snack-bar/snack-bar-config.js","snack-bar/snack-bar.js","tabs/tab-label.js","tabs/tab-content.js","tabs/tab-label-wrapper.js","tabs/ink-bar.js","tabs/tabs.js","toolbar/toolbar.js","tooltip/tooltip.js","menu/menu-errors.js","menu/menu-item.js","menu/menu-directive.js","menu/menu-trigger.js","menu/menu.js","dialog/dialog-ref.js","dialog/dialog-injector.js","dialog/dialog-errors.js","dialog/dialog-container.js","dialog/dialog-config.js","dialog/dialog.js","module.js"],"sourcesContent":["var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Directive } from '@angular/core';\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(MdLine) query, then\n * counted by checking the query list's length.\n */\nexport var MdLine = (function () {\n function MdLine() {\n }\n MdLine = __decorate([\n Directive({ selector: '[md-line]' }), \n __metadata('design:paramtypes', [])\n ], MdLine);\n return MdLine;\n}());\n/* Helper that takes a query list of lines and sets the correct class on the host */\nexport var MdLineSetter = (function () {\n function MdLineSetter(_lines, _renderer, _element) {\n var _this = this;\n this._lines = _lines;\n this._renderer = _renderer;\n this._element = _element;\n this._setLineClass(this._lines.length);\n this._lines.changes.subscribe(function () {\n _this._setLineClass(_this._lines.length);\n });\n }\n MdLineSetter.prototype._setLineClass = function (count) {\n this._resetClasses();\n if (count === 2 || count === 3) {\n this._setClass(\"md-\" + count + \"-line\", true);\n }\n };\n MdLineSetter.prototype._resetClasses = function () {\n this._setClass('md-2-line', false);\n this._setClass('md-3-line', false);\n };\n MdLineSetter.prototype._setClass = function (className, bool) {\n this._renderer.setElementClass(this._element.nativeElement, className, bool);\n };\n return MdLineSetter;\n}());\nexport var MdLineModule = (function () {\n function MdLineModule() {\n }\n MdLineModule = __decorate([\n NgModule({\n exports: [MdLine],\n declarations: [MdLine],\n }), \n __metadata('design:paramtypes', [])\n ], MdLineModule);\n return MdLineModule;\n}());\n\n//# sourceMappingURL=line.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Directive, HostBinding, Output, Input, EventEmitter } from '@angular/core';\n/**\n * Directive to listen to changes of direction of part of the DOM.\n *\n * Applications should use this directive instead of the native attribute so that Material\n * components can listen on changes of direction.\n */\nexport var Dir = (function () {\n function Dir() {\n this._dir = 'ltr';\n this.dirChange = new EventEmitter();\n }\n Object.defineProperty(Dir.prototype, \"dir\", {\n get: function () {\n return this._dir;\n },\n set: function (v) {\n var old = this._dir;\n this._dir = v;\n if (old != this._dir) {\n this.dirChange.emit(null);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Dir.prototype, \"value\", {\n get: function () { return this.dir; },\n set: function (v) { this.dir = v; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n Input('dir'), \n __metadata('design:type', String)\n ], Dir.prototype, \"_dir\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', Object)\n ], Dir.prototype, \"dirChange\", void 0);\n __decorate([\n HostBinding('attr.dir'), \n __metadata('design:type', String)\n ], Dir.prototype, \"dir\", null);\n Dir = __decorate([\n Directive({\n selector: '[dir]',\n // TODO(hansl): maybe `$implicit` isn't the best option here, but for now that's the best we got.\n exportAs: '$implicit'\n }), \n __metadata('design:paramtypes', [])\n ], Dir);\n return Dir;\n}());\nexport var RtlModule = (function () {\n function RtlModule() {\n }\n RtlModule.forRoot = function () {\n return {\n ngModule: RtlModule,\n providers: []\n };\n };\n RtlModule = __decorate([\n NgModule({\n exports: [Dir],\n declarations: [Dir]\n }), \n __metadata('design:paramtypes', [])\n ], RtlModule);\n return RtlModule;\n}());\n\n//# sourceMappingURL=dir.js.map\n","/** TODO: internal */\nexport var ForegroundRippleState;\n(function (ForegroundRippleState) {\n ForegroundRippleState[ForegroundRippleState[\"NEW\"] = 0] = \"NEW\";\n ForegroundRippleState[ForegroundRippleState[\"EXPANDING\"] = 1] = \"EXPANDING\";\n ForegroundRippleState[ForegroundRippleState[\"FADING_OUT\"] = 2] = \"FADING_OUT\";\n})(ForegroundRippleState || (ForegroundRippleState = {}));\n/**\n * Wrapper for a foreground ripple DOM element and its animation state.\n * TODO: internal\n */\nexport var ForegroundRipple = (function () {\n function ForegroundRipple(rippleElement) {\n this.rippleElement = rippleElement;\n this.state = ForegroundRippleState.NEW;\n }\n return ForegroundRipple;\n}());\nvar RIPPLE_SPEED_PX_PER_SECOND = 1000;\nvar MIN_RIPPLE_FILL_TIME_SECONDS = 0.1;\nvar MAX_RIPPLE_FILL_TIME_SECONDS = 0.3;\n/**\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\n */\nvar distanceToFurthestCorner = function (x, y, rect) {\n var distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n var distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n return Math.sqrt(distX * distX + distY * distY);\n};\n/**\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\n * event handlers to be installed on the element that triggers ripple animations.\n * This will eventually become a custom renderer once Angular support exists.\n * TODO: internal\n */\nexport var RippleRenderer = (function () {\n function RippleRenderer(_elementRef, _eventHandlers) {\n this._eventHandlers = _eventHandlers;\n this._rippleElement = _elementRef.nativeElement;\n // It might be nice to delay creating the background until it's needed, but doing this in\n // fadeInRippleBackground causes the first click event to not be handled reliably.\n this._backgroundDiv = document.createElement('div');\n this._backgroundDiv.classList.add('md-ripple-background');\n this._rippleElement.appendChild(this._backgroundDiv);\n }\n /**\n * Installs event handlers on the given trigger element, and removes event handlers from the\n * previous trigger if needed.\n */\n RippleRenderer.prototype.setTriggerElement = function (newTrigger) {\n var _this = this;\n if (this._triggerElement !== newTrigger) {\n if (this._triggerElement) {\n this._eventHandlers.forEach(function (eventHandler, eventName) {\n _this._triggerElement.removeEventListener(eventName, eventHandler);\n });\n }\n this._triggerElement = newTrigger;\n if (this._triggerElement) {\n this._eventHandlers.forEach(function (eventHandler, eventName) {\n _this._triggerElement.addEventListener(eventName, eventHandler);\n });\n }\n }\n };\n /**\n * Installs event handlers on the host element of the md-ripple directive.\n */\n RippleRenderer.prototype.setTriggerElementToHost = function () {\n this.setTriggerElement(this._rippleElement);\n };\n /**\n * Removes event handlers from the current trigger element if needed.\n */\n RippleRenderer.prototype.clearTriggerElement = function () {\n this.setTriggerElement(null);\n };\n /**\n * Creates a foreground ripple and sets its animation to expand and fade in from the position\n * given by rippleOriginLeft and rippleOriginTop (or from the center of the <md-ripple>\n * bounding rect if centered is true).\n */\n RippleRenderer.prototype.createForegroundRipple = function (rippleOriginLeft, rippleOriginTop, color, centered, radius, speedFactor, transitionEndCallback) {\n var parentRect = this._rippleElement.getBoundingClientRect();\n // Create a foreground ripple div with the size and position of the fully expanded ripple.\n // When the div is created, it's given a transform style that causes the ripple to be displayed\n // small and centered on the event location (or the center of the bounding rect if the centered\n // argument is true). Removing that transform causes the ripple to animate to its natural size.\n var startX = centered ? (parentRect.left + parentRect.width / 2) : rippleOriginLeft;\n var startY = centered ? (parentRect.top + parentRect.height / 2) : rippleOriginTop;\n var offsetX = startX - parentRect.left;\n var offsetY = startY - parentRect.top;\n var maxRadius = radius > 0 ? radius : distanceToFurthestCorner(startX, startY, parentRect);\n var rippleDiv = document.createElement('div');\n this._rippleElement.appendChild(rippleDiv);\n rippleDiv.classList.add('md-ripple-foreground');\n rippleDiv.style.left = (offsetX - maxRadius) + \"px\";\n rippleDiv.style.top = (offsetY - maxRadius) + \"px\";\n rippleDiv.style.width = 2 * maxRadius + \"px\";\n rippleDiv.style.height = rippleDiv.style.width;\n // If color input is not set, this will default to the background color defined in CSS.\n rippleDiv.style.backgroundColor = color;\n // Start the ripple tiny.\n rippleDiv.style.transform = \"scale(0.001)\";\n var fadeInSeconds = (1 / (speedFactor || 1)) * Math.max(MIN_RIPPLE_FILL_TIME_SECONDS, Math.min(MAX_RIPPLE_FILL_TIME_SECONDS, maxRadius / RIPPLE_SPEED_PX_PER_SECOND));\n rippleDiv.style.transitionDuration = fadeInSeconds + \"s\";\n // https://timtaubert.de/blog/2012/09/css-transitions-for-dynamically-created-dom-elements/\n window.getComputedStyle(rippleDiv).opacity;\n rippleDiv.classList.add('md-ripple-fade-in');\n // Clearing the transform property causes the ripple to animate to its full size.\n rippleDiv.style.transform = '';\n var ripple = new ForegroundRipple(rippleDiv);\n ripple.state = ForegroundRippleState.EXPANDING;\n rippleDiv.addEventListener('transitionend', function (event) { return transitionEndCallback(ripple, event); });\n };\n /**\n * Fades out a foreground ripple after it has fully expanded and faded in.\n */\n RippleRenderer.prototype.fadeOutForegroundRipple = function (ripple) {\n ripple.classList.remove('md-ripple-fade-in');\n ripple.classList.add('md-ripple-fade-out');\n };\n /**\n * Removes a foreground ripple from the DOM after it has faded out.\n */\n RippleRenderer.prototype.removeRippleFromDom = function (ripple) {\n ripple.parentElement.removeChild(ripple);\n };\n /**\n * Fades in the ripple background.\n */\n RippleRenderer.prototype.fadeInRippleBackground = function (color) {\n this._backgroundDiv.classList.add('md-ripple-active');\n // If color is not set, this will default to the background color defined in CSS.\n this._backgroundDiv.style.backgroundColor = color;\n };\n /**\n * Fades out the ripple background.\n */\n RippleRenderer.prototype.fadeOutRippleBackground = function () {\n if (this._backgroundDiv) {\n this._backgroundDiv.classList.remove('md-ripple-active');\n }\n };\n return RippleRenderer;\n}());\n\n//# sourceMappingURL=ripple-renderer.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Directive, ElementRef, HostBinding, Input } from '@angular/core';\nimport { RippleRenderer, ForegroundRippleState } from './ripple-renderer';\nexport var MdRipple = (function () {\n function MdRipple(_elementRef) {\n var _this = this;\n /**\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n * will be the distance from the center of the ripple to the furthest corner of the host element's\n * bounding rectangle.\n */\n this.maxRadius = 0;\n /**\n * If set, the normal duration of ripple animations is divided by this value. For example,\n * setting it to 0.5 will cause the animations to take twice as long.\n */\n this.speedFactor = 1;\n // These event handlers are attached to the element that triggers the ripple animations.\n var eventHandlers = new Map();\n eventHandlers.set('mousedown', function (event) { return _this._mouseDown(event); });\n eventHandlers.set('click', function (event) { return _this._click(event); });\n eventHandlers.set('mouseleave', function (event) { return _this._mouseLeave(event); });\n this._rippleRenderer = new RippleRenderer(_elementRef, eventHandlers);\n }\n /** TODO: internal */\n MdRipple.prototype.ngOnInit = function () {\n // If no trigger element was explicity set, use the host element\n if (!this.trigger) {\n this._rippleRenderer.setTriggerElementToHost();\n }\n };\n /** TODO: internal */\n MdRipple.prototype.ngOnDestroy = function () {\n // Remove event listeners on the trigger element.\n this._rippleRenderer.clearTriggerElement();\n };\n /** TODO: internal */\n MdRipple.prototype.ngOnChanges = function (changes) {\n // If the trigger element changed (or is being initially set), add event listeners to it.\n var changedInputs = Object.keys(changes);\n if (changedInputs.indexOf('trigger') !== -1) {\n this._rippleRenderer.setTriggerElement(this.trigger);\n }\n };\n /**\n * Responds to the start of a ripple animation trigger by fading the background in.\n */\n MdRipple.prototype.start = function () {\n this._rippleRenderer.fadeInRippleBackground(this.backgroundColor);\n };\n /**\n * Responds to the end of a ripple animation trigger by fading the background out, and creating a\n * foreground ripple that expands from the event location (or from the center of the element if\n * the \"centered\" property is set or forceCenter is true).\n */\n MdRipple.prototype.end = function (left, top, forceCenter) {\n var _this = this;\n if (forceCenter === void 0) { forceCenter = true; }\n this._rippleRenderer.createForegroundRipple(left, top, this.color, this.centered || forceCenter, this.maxRadius, this.speedFactor, function (ripple, e) { return _this._rippleTransitionEnded(ripple, e); });\n this._rippleRenderer.fadeOutRippleBackground();\n };\n MdRipple.prototype._rippleTransitionEnded = function (ripple, event) {\n if (event.propertyName === 'opacity') {\n // If the ripple finished expanding, start fading it out. If it finished fading out,\n // remove it from the DOM.\n switch (ripple.state) {\n case ForegroundRippleState.EXPANDING:\n this._rippleRenderer.fadeOutForegroundRipple(ripple.rippleElement);\n ripple.state = ForegroundRippleState.FADING_OUT;\n break;\n case ForegroundRippleState.FADING_OUT:\n this._rippleRenderer.removeRippleFromDom(ripple.rippleElement);\n break;\n }\n }\n };\n /**\n * Called when the trigger element receives a mousedown event. Starts the ripple animation by\n * fading in the background.\n */\n MdRipple.prototype._mouseDown = function (event) {\n if (!this.disabled && event.button === 0) {\n this.start();\n }\n };\n /**\n * Called when the trigger element receives a click event. Creates a foreground ripple and\n * runs its animation.\n */\n MdRipple.prototype._click = function (event) {\n if (!this.disabled && event.button === 0) {\n // If screen and page positions are all 0, this was probably triggered by a keypress.\n // In that case, use the center of the bounding rect as the ripple origin.\n // FIXME: This fails on IE11, which still sets pageX/Y and screenX/Y on keyboard clicks.\n var isKeyEvent = (event.screenX === 0 && event.screenY === 0 && event.pageX === 0 && event.pageY === 0);\n this.end(event.pageX, event.pageY, isKeyEvent);\n }\n };\n /**\n * Called when the trigger element receives a mouseleave event. Fades out the background.\n */\n MdRipple.prototype._mouseLeave = function (event) {\n // We can always fade out the background here; It's a no-op if it was already inactive.\n this._rippleRenderer.fadeOutRippleBackground();\n };\n __decorate([\n Input('md-ripple-trigger'), \n __metadata('design:type', Object)\n ], MdRipple.prototype, \"trigger\", void 0);\n __decorate([\n Input('md-ripple-centered'), \n __metadata('design:type', Boolean)\n ], MdRipple.prototype, \"centered\", void 0);\n __decorate([\n Input('md-ripple-disabled'), \n __metadata('design:type', Boolean)\n ], MdRipple.prototype, \"disabled\", void 0);\n __decorate([\n Input('md-ripple-max-radius'), \n __metadata('design:type', Number)\n ], MdRipple.prototype, \"maxRadius\", void 0);\n __decorate([\n Input('md-ripple-speed-factor'), \n __metadata('design:type', Number)\n ], MdRipple.prototype, \"speedFactor\", void 0);\n __decorate([\n Input('md-ripple-color'), \n __metadata('design:type', String)\n ], MdRipple.prototype, \"color\", void 0);\n __decorate([\n Input('md-ripple-background-color'), \n __metadata('design:type', String)\n ], MdRipple.prototype, \"backgroundColor\", void 0);\n __decorate([\n HostBinding('class.md-ripple-focused'),\n Input('md-ripple-focused'), \n __metadata('design:type', Boolean)\n ], MdRipple.prototype, \"focused\", void 0);\n __decorate([\n HostBinding('class.md-ripple-unbounded'),\n Input('md-ripple-unbounded'), \n __metadata('design:type', Boolean)\n ], MdRipple.prototype, \"unbounded\", void 0);\n MdRipple = __decorate([\n Directive({\n selector: '[md-ripple]',\n }), \n __metadata('design:paramtypes', [ElementRef])\n ], MdRipple);\n return MdRipple;\n}());\nexport var MdRippleModule = (function () {\n function MdRippleModule() {\n }\n MdRippleModule.forRoot = function () {\n return {\n ngModule: MdRippleModule,\n providers: []\n };\n };\n MdRippleModule = __decorate([\n NgModule({\n exports: [MdRipple],\n declarations: [MdRipple],\n }), \n __metadata('design:paramtypes', [])\n ], MdRippleModule);\n return MdRippleModule;\n}());\n\n//# sourceMappingURL=ripple.js.map\n","// TODO(kara): Revisit why error messages are not being properly set.\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * Wrapper around Error that sets the error message.\n */\nexport var MdError = (function (_super) {\n __extends(MdError, _super);\n function MdError(value) {\n _super.call(this);\n this.message = value;\n }\n return MdError;\n}(Error));\n\n//# sourceMappingURL=error.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdError } from '../errors/error';\n/** Exception thrown when a ComponentPortal is attached to a DomPortalHost without an origin. */\nexport var MdComponentPortalAttachedToDomWithoutOriginError = (function (_super) {\n __extends(MdComponentPortalAttachedToDomWithoutOriginError, _super);\n function MdComponentPortalAttachedToDomWithoutOriginError() {\n _super.call(this, 'A ComponentPortal must have an origin set when attached to a DomPortalHost ' +\n 'because the DOM element is not part of the Angular application context.');\n }\n return MdComponentPortalAttachedToDomWithoutOriginError;\n}(MdError));\n/** Exception thrown when attempting to attach a null portal to a host. */\nexport var MdNullPortalError = (function (_super) {\n __extends(MdNullPortalError, _super);\n function MdNullPortalError() {\n _super.call(this, 'Must provide a portal to attach');\n }\n return MdNullPortalError;\n}(MdError));\n/** Exception thrown when attempting to attach a portal to a host that is already attached. */\nexport var MdPortalAlreadyAttachedError = (function (_super) {\n __extends(MdPortalAlreadyAttachedError, _super);\n function MdPortalAlreadyAttachedError() {\n _super.call(this, 'Host already has a portal attached');\n }\n return MdPortalAlreadyAttachedError;\n}(MdError));\n/** Exception thrown when attempting to attach a portal to an already-disposed host. */\nexport var MdPortalHostAlreadyDisposedError = (function (_super) {\n __extends(MdPortalHostAlreadyDisposedError, _super);\n function MdPortalHostAlreadyDisposedError() {\n _super.call(this, 'This PortalHost has already been disposed');\n }\n return MdPortalHostAlreadyDisposedError;\n}(MdError));\n/** Exception thrown when attempting to attach an unknown portal type. */\nexport var MdUnknownPortalTypeError = (function (_super) {\n __extends(MdUnknownPortalTypeError, _super);\n function MdUnknownPortalTypeError() {\n _super.call(this, 'Attempting to attach an unknown Portal type. ' +\n 'BasePortalHost accepts either a ComponentPortal or a TemplatePortal.');\n }\n return MdUnknownPortalTypeError;\n}(MdError));\n/** Exception thrown when attempting to attach a portal to a null host. */\nexport var MdNullPortalHostError = (function (_super) {\n __extends(MdNullPortalHostError, _super);\n function MdNullPortalHostError() {\n _super.call(this, 'Attempting to attach a portal to a null PortalHost');\n }\n return MdNullPortalHostError;\n}(MdError));\n/** Exception thrown when attempting to detach a portal that is not attached. */\nexport var MdNoPortalAttachedError = (function (_super) {\n __extends(MdNoPortalAttachedError, _super);\n function MdNoPortalAttachedError() {\n _super.call(this, 'Attempting to detach a portal that is not attached to a host');\n }\n return MdNoPortalAttachedError;\n}(MdError));\n\n//# sourceMappingURL=portal-errors.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdNullPortalHostError, MdPortalAlreadyAttachedError, MdNoPortalAttachedError, MdNullPortalError, MdPortalHostAlreadyDisposedError, MdUnknownPortalTypeError } from './portal-errors';\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalHost`.\n */\nexport var Portal = (function () {\n function Portal() {\n }\n /** Attach this portal to a host. */\n Portal.prototype.attach = function (host) {\n if (host == null) {\n throw new MdNullPortalHostError();\n }\n if (host.hasAttached()) {\n throw new MdPortalAlreadyAttachedError();\n }\n this._attachedHost = host;\n return host.attach(this);\n };\n /** Detach this portal from its host */\n Portal.prototype.detach = function () {\n var host = this._attachedHost;\n if (host == null) {\n throw new MdNoPortalAttachedError();\n }\n this._attachedHost = null;\n return host.detach();\n };\n Object.defineProperty(Portal.prototype, \"isAttached\", {\n /** Whether this portal is attached to a host. */\n get: function () {\n return this._attachedHost != null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detatch()`.\n */\n Portal.prototype.setAttachedHost = function (host) {\n this._attachedHost = host;\n };\n return Portal;\n}());\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport var ComponentPortal = (function (_super) {\n __extends(ComponentPortal, _super);\n function ComponentPortal(component, viewContainerRef, injector) {\n if (viewContainerRef === void 0) { viewContainerRef = null; }\n if (injector === void 0) { injector = null; }\n _super.call(this);\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n }\n return ComponentPortal;\n}(Portal));\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport var TemplatePortal = (function (_super) {\n __extends(TemplatePortal, _super);\n function TemplatePortal(template, viewContainerRef) {\n _super.call(this);\n /**\n * Additional locals for the instantiated embedded view.\n * These locals can be seen as \"exports\" for the template, such as how ngFor has\n * index / event / odd.\n * See https://angular.io/docs/ts/latest/api/core/EmbeddedViewRef-class.html\n */\n this.locals = new Map();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n }\n Object.defineProperty(TemplatePortal.prototype, \"origin\", {\n get: function () {\n return this.templateRef.elementRef;\n },\n enumerable: true,\n configurable: true\n });\n TemplatePortal.prototype.attach = function (host, locals) {\n this.locals = locals == null ? new Map() : locals;\n return _super.prototype.attach.call(this, host);\n };\n TemplatePortal.prototype.detach = function () {\n this.locals = new Map();\n return _super.prototype.detach.call(this);\n };\n return TemplatePortal;\n}(Portal));\n/**\n * Partial implementation of PortalHost that only deals with attaching either a\n * ComponentPortal or a TemplatePortal.\n */\nexport var BasePortalHost = (function () {\n function BasePortalHost() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n }\n /** Whether this host has an attached portal. */\n BasePortalHost.prototype.hasAttached = function () {\n return this._attachedPortal != null;\n };\n BasePortalHost.prototype.attach = function (portal) {\n if (portal == null) {\n throw new MdNullPortalError();\n }\n if (this.hasAttached()) {\n throw new MdPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throw new MdPortalHostAlreadyDisposedError();\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n }\n throw new MdUnknownPortalTypeError();\n };\n BasePortalHost.prototype.detach = function () {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n }\n this._attachedPortal = null;\n if (this._disposeFn != null) {\n this._disposeFn();\n this._disposeFn = null;\n }\n };\n BasePortalHost.prototype.dispose = function () {\n if (this.hasAttached()) {\n this.detach();\n }\n this._isDisposed = true;\n };\n BasePortalHost.prototype.setDisposeFn = function (fn) {\n this._disposeFn = fn;\n };\n return BasePortalHost;\n}());\n\n//# sourceMappingURL=portal.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Directive, TemplateRef, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\nimport { TemplatePortal, BasePortalHost } from './portal';\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n *\n * Usage:\n * <template portal #greeting>\n * <p> Hello {{name}} </p>\n * </template>\n */\nexport var TemplatePortalDirective = (function (_super) {\n __extends(TemplatePortalDirective, _super);\n function TemplatePortalDirective(templateRef, viewContainerRef) {\n _super.call(this, templateRef, viewContainerRef);\n }\n TemplatePortalDirective = __decorate([\n Directive({\n selector: '[portal]',\n exportAs: 'portal',\n }), \n __metadata('design:paramtypes', [TemplateRef, ViewContainerRef])\n ], TemplatePortalDirective);\n return TemplatePortalDirective;\n}(TemplatePortal));\n/**\n * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * <template [portalHost]=\"greeting\"></template>\n */\nexport var PortalHostDirective = (function (_super) {\n __extends(PortalHostDirective, _super);\n function PortalHostDirective(_componentFactoryResolver, _viewContainerRef) {\n _super.call(this);\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n }\n Object.defineProperty(PortalHostDirective.prototype, \"portal\", {\n get: function () {\n return this._portal;\n },\n set: function (p) {\n this._replaceAttachedPortal(p);\n },\n enumerable: true,\n configurable: true\n });\n /** Attach the given ComponentPortal to this PortlHost using the ComponentFactoryResolver. */\n PortalHostDirective.prototype.attachComponentPortal = function (portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalHost.\n var viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n var componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n var ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);\n this.setDisposeFn(function () { return ref.destroy(); });\n return ref;\n };\n /** Attach the given TemplatePortal to this PortlHost as an embedded View. */\n PortalHostDirective.prototype.attachTemplatePortal = function (portal) {\n var _this = this;\n portal.setAttachedHost(this);\n this._viewContainerRef.createEmbeddedView(portal.templateRef);\n this.setDisposeFn(function () { return _this._viewContainerRef.clear(); });\n // TODO(jelbourn): return locals from view\n return new Map();\n };\n /** Detatches the currently attached Portal (if there is one) and attaches the given Portal. */\n PortalHostDirective.prototype._replaceAttachedPortal = function (p) {\n if (this.hasAttached()) {\n this.detach();\n }\n if (p) {\n this.attach(p);\n this._portal = p;\n }\n };\n PortalHostDirective = __decorate([\n Directive({\n selector: '[portalHost]',\n inputs: ['portal: portalHost']\n }), \n __metadata('design:paramtypes', [ComponentFactoryResolver, ViewContainerRef])\n ], PortalHostDirective);\n return PortalHostDirective;\n}(BasePortalHost));\nexport var PortalModule = (function () {\n function PortalModule() {\n }\n PortalModule.forRoot = function () {\n return {\n ngModule: PortalModule,\n providers: []\n };\n };\n PortalModule = __decorate([\n NgModule({\n exports: [TemplatePortalDirective, PortalHostDirective],\n declarations: [TemplatePortalDirective, PortalHostDirective],\n }), \n __metadata('design:paramtypes', [])\n ], PortalModule);\n return PortalModule;\n}());\n\n//# sourceMappingURL=portal-directives.js.map\n","/**\n * OverlayState is a bag of values for either the initial configuration or current state of an\n * overlay.\n */\nexport var OverlayState = (function () {\n function OverlayState() {\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n }\n return OverlayState;\n}());\n\n//# sourceMappingURL=overlay-state.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { BasePortalHost } from './portal';\nimport { MdComponentPortalAttachedToDomWithoutOriginError } from './portal-errors';\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nexport var DomPortalHost = (function (_super) {\n __extends(DomPortalHost, _super);\n function DomPortalHost(_hostDomElement, _componentFactoryResolver) {\n _super.call(this);\n this._hostDomElement = _hostDomElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n }\n /** Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver. */\n DomPortalHost.prototype.attachComponentPortal = function (portal) {\n if (portal.viewContainerRef == null) {\n throw new MdComponentPortalAttachedToDomWithoutOriginError();\n }\n var componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n var ref = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);\n var hostView = ref.hostView;\n this._hostDomElement.appendChild(hostView.rootNodes[0]);\n this.setDisposeFn(function () { return ref.destroy(); });\n return ref;\n };\n DomPortalHost.prototype.attachTemplatePortal = function (portal) {\n var _this = this;\n var viewContainer = portal.viewContainerRef;\n var viewRef = viewContainer.createEmbeddedView(portal.templateRef);\n viewRef.rootNodes.forEach(function (rootNode) { return _this._hostDomElement.appendChild(rootNode); });\n this.setDisposeFn((function () {\n var index = viewContainer.indexOf(viewRef);\n if (index != -1) {\n viewContainer.remove(index);\n }\n }));\n // TODO(jelbourn): Return locals from view.\n return new Map();\n };\n DomPortalHost.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (this._hostDomElement.parentNode != null) {\n this._hostDomElement.parentNode.removeChild(this._hostDomElement);\n }\n };\n return DomPortalHost;\n}(BasePortalHost));\n\n//# sourceMappingURL=dom-portal-host.js.map\n","import { Subject } from 'rxjs/Subject';\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport var OverlayRef = (function () {\n function OverlayRef(_portalHost, _pane, _state) {\n this._portalHost = _portalHost;\n this._pane = _pane;\n this._state = _state;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n }\n OverlayRef.prototype.attach = function (portal) {\n if (this._state.hasBackdrop) {\n this._attachBackdrop();\n }\n var attachResult = this._portalHost.attach(portal);\n this.updatePosition();\n return attachResult;\n };\n OverlayRef.prototype.detach = function () {\n this._detatchBackdrop();\n return this._portalHost.detach();\n };\n OverlayRef.prototype.dispose = function () {\n this._detatchBackdrop();\n this._portalHost.dispose();\n };\n OverlayRef.prototype.hasAttached = function () {\n return this._portalHost.hasAttached();\n };\n OverlayRef.prototype.backdropClick = function () {\n return this._backdropClick.asObservable();\n };\n /** Gets the current state config of the overlay. */\n OverlayRef.prototype.getState = function () {\n return this._state;\n };\n /** Updates the position of the overlay based on the position strategy. */\n OverlayRef.prototype.updatePosition = function () {\n if (this._state.positionStrategy) {\n this._state.positionStrategy.apply(this._pane);\n }\n };\n /** Attaches a backdrop for this overlay. */\n OverlayRef.prototype._attachBackdrop = function () {\n var _this = this;\n this._backdropElement = document.createElement('div');\n this._backdropElement.classList.add('md-overlay-backdrop');\n this._pane.parentElement.appendChild(this._backdropElement);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', function () {\n _this._backdropClick.next(null);\n });\n // Add class to fade-in the backdrop after one frame.\n requestAnimationFrame(function () {\n _this._backdropElement.classList.add('md-overlay-backdrop-showing');\n });\n };\n /** Detaches the backdrop (if any) associated with the overlay. */\n OverlayRef.prototype._detatchBackdrop = function () {\n var _this = this;\n var backdropToDetach = this._backdropElement;\n if (backdropToDetach) {\n backdropToDetach.classList.remove('md-overlay-backdrop-showing');\n backdropToDetach.addEventListener('transitionend', function () {\n backdropToDetach.parentNode.removeChild(backdropToDetach);\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (_this._backdropElement == backdropToDetach) {\n _this._backdropElement = null;\n }\n });\n }\n };\n return OverlayRef;\n}());\n\n//# sourceMappingURL=overlay-ref.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Injectable } from '@angular/core';\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * TODO: internal\n */\nexport var ViewportRuler = (function () {\n function ViewportRuler() {\n }\n // TODO(jelbourn): cache the document's bounding rect and only update it when the window\n // is resized (debounced).\n /** Gets a ClientRect for the viewport's bounds. */\n ViewportRuler.prototype.getViewportRect = function () {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n var documentRect = document.documentElement.getBoundingClientRect();\n var scrollPosition = this.getViewportScrollPosition(documentRect);\n var height = window.innerHeight;\n var width = window.innerWidth;\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height: height,\n width: width,\n };\n };\n /**\n * Gets the (top, left) scroll position of the viewport.\n * @param documentRect\n */\n ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {\n if (documentRect === void 0) { documentRect = document.documentElement.getBoundingClientRect(); }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n var top = documentRect.top < 0 && document.body.scrollTop == 0 ?\n -documentRect.top :\n document.body.scrollTop;\n var left = documentRect.left < 0 && document.body.scrollLeft == 0 ?\n -documentRect.left :\n document.body.scrollLeft;\n return { top: top, left: left };\n };\n ViewportRuler = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [])\n ], ViewportRuler);\n return ViewportRuler;\n}());\n\n//# sourceMappingURL=viewport-ruler.js.map\n","/**\n * Applies a CSS transform to an element, including browser-prefixed properties.\n * @param element\n * @param transformValue\n */\nexport function applyCssTransform(element, transformValue) {\n // It's important to trim the result, because the browser will ignore the set operation\n // if the string contains only whitespace.\n var value = transformValue.trim();\n element.style.transform = value;\n element.style.webkitTransform = value;\n}\n\n//# sourceMappingURL=apply-transform.js.map\n","/** The points of the origin element and the overlay element to connect. */\nexport var ConnectionPositionPair = (function () {\n function ConnectionPositionPair(origin, overlay) {\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n return ConnectionPositionPair;\n}());\n\n//# sourceMappingURL=connected-position.js.map\n","import { applyCssTransform } from '../../style/apply-transform';\nimport { ConnectionPositionPair } from './connected-position';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implict position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nexport var ConnectedPositionStrategy = (function () {\n function ConnectedPositionStrategy(_connectedTo, _originPos, _overlayPos, _viewportRuler) {\n this._connectedTo = _connectedTo;\n this._originPos = _originPos;\n this._overlayPos = _overlayPos;\n this._viewportRuler = _viewportRuler;\n // TODO(jelbourn): set RTL to the actual value from the app.\n /** Whether the we're dealing with an RTL context */\n this._isRtl = false;\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n this._origin = this._connectedTo.nativeElement;\n this.withFallbackPosition(_originPos, _overlayPos);\n }\n Object.defineProperty(ConnectedPositionStrategy.prototype, \"positions\", {\n get: function () {\n return this._preferredPositions;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin fits on-screen.\n * TODO: internal\n */\n ConnectedPositionStrategy.prototype.apply = function (element) {\n // We need the bounding rects for the origin and the overlay to determine how to position\n // the overlay relative to the origin.\n var originRect = this._origin.getBoundingClientRect();\n var overlayRect = element.getBoundingClientRect();\n // We use the viewport rect to determine whether a position would go off-screen.\n var viewportRect = this._viewportRuler.getViewportRect();\n var firstOverlayPoint = null;\n // We want to place the overlay in the first of the preferred positions such that the\n // overlay fits on-screen.\n for (var _i = 0, _a = this._preferredPositions; _i < _a.length; _i++) {\n var pos = _a[_i];\n // Get the (x, y) point of connection on the origin, and then use that to get the\n // (top, left) coordinate for the overlay at `pos`.\n var originPoint = this._getOriginConnectionPoint(originRect, pos);\n var overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n firstOverlayPoint = firstOverlayPoint || overlayPoint;\n // If the overlay in the calculated position fits on-screen, put it there and we're done.\n if (this._willOverlayFitWithinViewport(overlayPoint, overlayRect, viewportRect)) {\n this._setElementPosition(element, overlayPoint);\n return Promise.resolve(null);\n }\n }\n // TODO(jelbourn): fallback behavior for when none of the preferred positions fit on-screen.\n // For now, just stick it in the first position and let it go off-screen.\n this._setElementPosition(element, firstOverlayPoint);\n return Promise.resolve(null);\n };\n ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {\n this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));\n return this;\n };\n /**\n * Gets the horizontal (x) \"start\" dimension based on whether the overlay is in an RTL context.\n * @param rect\n */\n ConnectedPositionStrategy.prototype._getStartX = function (rect) {\n return this._isRtl ? rect.right : rect.left;\n };\n /**\n * Gets the horizontal (x) \"end\" dimension based on whether the overlay is in an RTL context.\n * @param rect\n */\n ConnectedPositionStrategy.prototype._getEndX = function (rect) {\n return this._isRtl ? rect.left : rect.right;\n };\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n * @param originRect\n * @param pos\n */\n ConnectedPositionStrategy.prototype._getOriginConnectionPoint = function (originRect, pos) {\n var originStartX = this._getStartX(originRect);\n var originEndX = this._getEndX(originRect);\n var x;\n if (pos.originX == 'center') {\n x = originStartX + (originRect.width / 2);\n }\n else {\n x = pos.originX == 'start' ? originStartX : originEndX;\n }\n var y;\n if (pos.originY == 'center') {\n y = originRect.top + (originRect.height / 2);\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n return { x: x, y: y };\n };\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n * @param originPoint\n * @param overlayRect\n * @param pos\n */\n ConnectedPositionStrategy.prototype._getOverlayPoint = function (originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position\n // relative to the origin point.\n var overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else {\n overlayStartX = pos.overlayX == 'start' ? 0 : -overlayRect.width;\n }\n var overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY\n };\n };\n /**\n * Gets whether the overlay positioned at the given point will fit on-screen.\n * @param overlayPoint The top-left coordinate of the overlay.\n * @param overlayRect Bounding rect of the overlay, used to get its size.\n * @param viewportRect The bounding viewport.\n */\n ConnectedPositionStrategy.prototype._willOverlayFitWithinViewport = function (overlayPoint, overlayRect, viewportRect) {\n // TODO(jelbourn): probably also want some space between overlay edge and viewport edge.\n return overlayPoint.x >= viewportRect.left &&\n overlayPoint.x + overlayRect.width <= viewportRect.right &&\n overlayPoint.y >= viewportRect.top &&\n overlayPoint.y + overlayRect.height <= viewportRect.bottom;\n };\n /**\n * Physically positions the overlay element to the given coordinate.\n * @param element\n * @param overlayPoint\n */\n ConnectedPositionStrategy.prototype._setElementPosition = function (element, overlayPoint) {\n var scrollPos = this._viewportRuler.getViewportScrollPosition();\n var x = overlayPoint.x + scrollPos.left;\n var y = overlayPoint.y + scrollPos.top;\n // TODO(jelbourn): we don't want to always overwrite the transform property here,\n // because it will need to be used for animations.\n applyCssTransform(element, \"translateX(\" + x + \"px) translateY(\" + y + \"px)\");\n };\n return ConnectedPositionStrategy;\n}());\n\n//# sourceMappingURL=connected-position-strategy.js.map\n","import { applyCssTransform } from '../../style/apply-transform';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport.\n */\nexport var GlobalPositionStrategy = (function () {\n function GlobalPositionStrategy() {\n this._cssPosition = 'absolute';\n this._top = '';\n this._bottom = '';\n this._left = '';\n this._right = '';\n /** Array of individual applications of translateX(). Currently only for centering. */\n this._translateX = [];\n /** Array of individual applications of translateY(). Currently only for centering. */\n this._translateY = [];\n }\n /** Sets the element to use CSS position: fixed */\n GlobalPositionStrategy.prototype.fixed = function () {\n this._cssPosition = 'fixed';\n return this;\n };\n /** Sets the element to use CSS position: absolute. This is the default. */\n GlobalPositionStrategy.prototype.absolute = function () {\n this._cssPosition = 'absolute';\n return this;\n };\n /** Sets the top position of the overlay. Clears any previously set vertical position. */\n GlobalPositionStrategy.prototype.top = function (value) {\n this._bottom = '';\n this._translateY = [];\n this._top = value;\n return this;\n };\n /** Sets the left position of the overlay. Clears any previously set horizontal position. */\n GlobalPositionStrategy.prototype.left = function (value) {\n this._right = '';\n this._translateX = [];\n this._left = value;\n return this;\n };\n /** Sets the bottom position of the overlay. Clears any previously set vertical position. */\n GlobalPositionStrategy.prototype.bottom = function (value) {\n this._top = '';\n this._translateY = [];\n this._bottom = value;\n return this;\n };\n /** Sets the right position of the overlay. Clears any previously set horizontal position. */\n GlobalPositionStrategy.prototype.right = function (value) {\n this._left = '';\n this._translateX = [];\n this._right = value;\n return this;\n };\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n */\n GlobalPositionStrategy.prototype.centerHorizontally = function (offset) {\n if (offset === void 0) { offset = '0px'; }\n this._left = '50%';\n this._right = '';\n this._translateX = ['-50%', offset];\n return this;\n };\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n */\n GlobalPositionStrategy.prototype.centerVertically = function (offset) {\n if (offset === void 0) { offset = '0px'; }\n this._top = '50%';\n this._bottom = '';\n this._translateY = ['-50%', offset];\n return this;\n };\n /**\n * Apply the position to the element.\n * TODO: internal\n */\n GlobalPositionStrategy.prototype.apply = function (element) {\n element.style.position = this._cssPosition;\n element.style.top = this._top;\n element.style.left = this._left;\n element.style.bottom = this._bottom;\n element.style.right = this._right;\n // TODO(jelbourn): we don't want to always overwrite the transform property here,\n // because it will need to be used for animations.\n var tranlateX = this._reduceTranslateValues('translateX', this._translateX);\n var translateY = this._reduceTranslateValues('translateY', this._translateY);\n applyCssTransform(element, tranlateX + \" \" + translateY);\n return Promise.resolve(null);\n };\n /** Reduce a list of translate values to a string that can be used in the transform property */\n GlobalPositionStrategy.prototype._reduceTranslateValues = function (translateFn, values) {\n return values.map(function (t) { return (translateFn + \"(\" + t + \")\"); }).join(' ');\n };\n return GlobalPositionStrategy;\n}());\n\n//# sourceMappingURL=global-position-strategy.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { ViewportRuler } from './viewport-ruler';\nimport { ConnectedPositionStrategy } from './connected-position-strategy';\nimport { Injectable } from '@angular/core';\nimport { GlobalPositionStrategy } from './global-position-strategy';\n/** Builder for overlay position strategy. */\nexport var OverlayPositionBuilder = (function () {\n function OverlayPositionBuilder(_viewportRuler) {\n this._viewportRuler = _viewportRuler;\n }\n /** Creates a global position strategy. */\n OverlayPositionBuilder.prototype.global = function () {\n return new GlobalPositionStrategy();\n };\n /** Creates a relative position strategy. */\n OverlayPositionBuilder.prototype.connectedTo = function (elementRef, originPos, overlayPos) {\n return new ConnectedPositionStrategy(elementRef, originPos, overlayPos, this._viewportRuler);\n };\n OverlayPositionBuilder = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [ViewportRuler])\n ], OverlayPositionBuilder);\n return OverlayPositionBuilder;\n}());\n\n//# sourceMappingURL=overlay-position-builder.js.map\n","/**\n * The OverlayContainer is the container in which all overlays will load.\n * It should be provided in the root component to ensure it is properly shared.\n */\nexport var OverlayContainer = (function () {\n function OverlayContainer() {\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns {HTMLElement} the container element\n */\n OverlayContainer.prototype.getContainerElement = function () {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n };\n /**\n * Create the overlay container element, which is simply a div\n * with the 'md-overlay-container' class on the document body.\n */\n OverlayContainer.prototype._createContainer = function () {\n var container = document.createElement('div');\n container.classList.add('md-overlay-container');\n document.body.appendChild(container);\n this._containerElement = container;\n };\n return OverlayContainer;\n}());\n\n//# sourceMappingURL=overlay-container.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { ComponentFactoryResolver, Injectable } from '@angular/core';\nimport { OverlayState } from './overlay-state';\nimport { DomPortalHost } from '../portal/dom-portal-host';\nimport { OverlayRef } from './overlay-ref';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { ViewportRuler } from './position/viewport-ruler';\nimport { OverlayContainer } from './overlay-container';\n/** Next overlay unique ID. */\nvar nextUniqueId = 0;\n/** The default state for newly created overlays. */\nvar defaultState = new OverlayState();\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nexport var Overlay = (function () {\n function Overlay(_overlayContainer, _componentFactoryResolver, _positionBuilder) {\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n }\n /**\n * Creates an overlay.\n * @param state State to apply to the overlay.\n * @returns A reference to the created overlay.\n */\n Overlay.prototype.create = function (state) {\n if (state === void 0) { state = defaultState; }\n return this._createOverlayRef(this._createPaneElement(), state);\n };\n /**\n * Returns a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n */\n Overlay.prototype.position = function () {\n return this._positionBuilder;\n };\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Promise resolving to the created element.\n */\n Overlay.prototype._createPaneElement = function () {\n var pane = document.createElement('div');\n pane.id = \"md-overlay-\" + nextUniqueId++;\n pane.classList.add('md-overlay-pane');\n this._overlayContainer.getContainerElement().appendChild(pane);\n return pane;\n };\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal host.\n * @returns A portal host for the given DOM element.\n */\n Overlay.prototype._createPortalHost = function (pane) {\n return new DomPortalHost(pane, this._componentFactoryResolver);\n };\n /**\n * Creates an OverlayRef for an overlay in the given DOM element.\n * @param pane DOM element for the overlay\n * @param state\n * @returns {OverlayRef}\n */\n Overlay.prototype._createOverlayRef = function (pane, state) {\n return new OverlayRef(this._createPortalHost(pane), pane, state);\n };\n Overlay = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [OverlayContainer, ComponentFactoryResolver, OverlayPositionBuilder])\n ], Overlay);\n return Overlay;\n}());\n/** Providers for Overlay and its related injectables. */\nexport var OVERLAY_PROVIDERS = [\n ViewportRuler,\n OverlayPositionBuilder,\n Overlay,\n OverlayContainer,\n];\n\n//# sourceMappingURL=overlay.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Directive, TemplateRef, ViewContainerRef, Input, ElementRef } from '@angular/core';\nimport { Overlay, OVERLAY_PROVIDERS } from './overlay';\nimport { TemplatePortal } from '../portal/portal';\nimport { OverlayState } from './overlay-state';\nimport { ConnectionPositionPair } from './position/connected-position';\nimport { PortalModule } from '../portal/portal-directives';\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nvar defaultPositionList = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),\n];\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nexport var OverlayOrigin = (function () {\n function OverlayOrigin(_elementRef) {\n this._elementRef = _elementRef;\n }\n Object.defineProperty(OverlayOrigin.prototype, \"elementRef\", {\n get: function () {\n return this._elementRef;\n },\n enumerable: true,\n configurable: true\n });\n OverlayOrigin = __decorate([\n Directive({\n selector: '[overlay-origin]',\n exportAs: 'overlayOrigin',\n }), \n __metadata('design:paramtypes', [ElementRef])\n ], OverlayOrigin);\n return OverlayOrigin;\n}());\n/**\n * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.\n */\nexport var ConnectedOverlayDirective = (function () {\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n function ConnectedOverlayDirective(_overlay, templateRef, viewContainerRef) {\n this._overlay = _overlay;\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n }\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"overlayRef\", {\n get: function () {\n return this._overlayRef;\n },\n enumerable: true,\n configurable: true\n });\n /** TODO: internal */\n ConnectedOverlayDirective.prototype.ngOnInit = function () {\n this._createOverlay();\n };\n /** TODO: internal */\n ConnectedOverlayDirective.prototype.ngOnDestroy = function () {\n this._destroyOverlay();\n };\n /** Creates an overlay and attaches this directive's template to it. */\n ConnectedOverlayDirective.prototype._createOverlay = function () {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n var overlayConfig = new OverlayState();\n overlayConfig.positionStrategy =\n this._overlay.position().connectedTo(this.origin.elementRef, { originX: this.positions[0].overlayX, originY: this.positions[0].originY }, { overlayX: this.positions[0].overlayX, overlayY: this.positions[0].overlayY });\n this._overlayRef = this._overlay.create(overlayConfig);\n this._overlayRef.attach(this._templatePortal);\n };\n /** Destroys the overlay created by this directive. */\n ConnectedOverlayDirective.prototype._destroyOverlay = function () {\n this._overlayRef.dispose();\n };\n __decorate([\n Input(), \n __metadata('design:type', OverlayOrigin)\n ], ConnectedOverlayDirective.prototype, \"origin\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Array)\n ], ConnectedOverlayDirective.prototype, \"positions\", void 0);\n ConnectedOverlayDirective = __decorate([\n Directive({\n selector: '[connected-overlay]'\n }), \n __metadata('design:paramtypes', [Overlay, TemplateRef, ViewContainerRef])\n ], ConnectedOverlayDirective);\n return ConnectedOverlayDirective;\n}());\nexport var OverlayModule = (function () {\n function OverlayModule() {\n }\n OverlayModule.forRoot = function () {\n return {\n ngModule: OverlayModule,\n providers: OVERLAY_PROVIDERS,\n };\n };\n OverlayModule = __decorate([\n NgModule({\n imports: [PortalModule],\n exports: [ConnectedOverlayDirective, OverlayOrigin],\n declarations: [ConnectedOverlayDirective, OverlayOrigin],\n }), \n __metadata('design:paramtypes', [])\n ], OverlayModule);\n return OverlayModule;\n}());\n\n//# sourceMappingURL=overlay-directives.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Injectable } from '@angular/core';\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n *\n * NOTE: Currently does not capture any special element behaviors, browser quirks, or edge cases.\n * This is a basic/naive starting point onto which further behavior will be added.\n *\n * This class uses instance methods instead of static functions so that alternate implementations\n * can be injected.\n *\n * TODO(jelbourn): explore using ally.js directly for its significantly more robust\n * checks (need to evaluate payload size, performance, and compatibility with tree-shaking).\n */\nexport var InteractivityChecker = (function () {\n function InteractivityChecker() {\n }\n /** Gets whether an element is disabled. */\n InteractivityChecker.prototype.isDisabled = function (element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n };\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n */\n InteractivityChecker.prototype.isVisible = function (element) {\n // There are additional special cases that this does not capture, but this will work for\n // the most common cases.\n // Use logic from jQuery to check for `display: none`.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n if (!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)) {\n return false;\n }\n // Check for css `visibility` property.\n // TODO(jelbourn): do any browsers we support return an empty string instead of 'visible'?\n return getComputedStyle(element).getPropertyValue('visibility') == 'visible';\n };\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n */\n InteractivityChecker.prototype.isTabbable = function (element) {\n // Again, naive approach that does not capture many special cases and browser quirks.\n return element.tabIndex >= 0;\n };\n /** Gets whether an element can be focused by the user. */\n InteractivityChecker.prototype.isFocusable = function (element) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);\n };\n InteractivityChecker = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [])\n ], InteractivityChecker);\n return InteractivityChecker;\n}());\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea';\n}\n/** Gets whether an element is an <input type=\"hidden\">. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n var tabIndex = element.getAttribute('tabindex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n if (tabIndex == '-32768') {\n return false;\n }\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element);\n}\n\n//# sourceMappingURL=interactivity-checker.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewEncapsulation, ViewChild, ElementRef } from '@angular/core';\nimport { InteractivityChecker } from './interactivity-checker';\n/**\n * Directive for trapping focus within a region.\n *\n * NOTE: This directive currently uses a very simple (naive) approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.\n * This will be replaced with a more intelligent solution before the library is considered stable.\n */\nexport var FocusTrap = (function () {\n function FocusTrap(_checker) {\n this._checker = _checker;\n }\n /** Focuses the first tabbable element within the focus trap region. */\n FocusTrap.prototype.focusFirstTabbableElement = function () {\n var redirectToElement = this._getFirstTabbableElement(this.trappedContent.nativeElement);\n if (redirectToElement) {\n redirectToElement.focus();\n }\n };\n /** Focuses the last tabbable element within the focus trap region. */\n FocusTrap.prototype.focusLastTabbableElement = function () {\n var redirectToElement = this._getLastTabbableElement(this.trappedContent.nativeElement);\n if (redirectToElement) {\n redirectToElement.focus();\n }\n };\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n FocusTrap.prototype._getFirstTabbableElement = function (root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in DOM order.\n var childCount = root.children.length;\n for (var i = 0; i < childCount; i++) {\n var tabbableChild = this._getFirstTabbableElement(root.children[i]);\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n };\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n FocusTrap.prototype._getLastTabbableElement = function (root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n for (var i = root.children.length - 1; i >= 0; i--) {\n var tabbableChild = this._getLastTabbableElement(root.children[i]);\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n };\n __decorate([\n ViewChild('trappedContent'), \n __metadata('design:type', ElementRef)\n ], FocusTrap.prototype, \"trappedContent\", void 0);\n FocusTrap = __decorate([\n Component({selector: 'focus-trap',\n // TODO(jelbourn): move this to a separate file.\n template: \"\\n <div tabindex=\\\"0\\\" (focus)=\\\"focusLastTabbableElement()\\\"></div>\\n <div #trappedContent><ng-content></ng-content></div>\\n <div tabindex=\\\"0\\\" (focus)=\\\"focusFirstTabbableElement()\\\"></div>\",\n encapsulation: ViewEncapsulation.None,\n }), \n __metadata('design:paramtypes', [InteractivityChecker])\n ], FocusTrap);\n return FocusTrap;\n}());\n\n//# sourceMappingURL=focus-trap.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Injectable, OpaqueToken, Optional, Inject } from '@angular/core';\nexport var LIVE_ANNOUNCER_ELEMENT_TOKEN = new OpaqueToken('mdLiveAnnouncerElement');\nexport var MdLiveAnnouncer = (function () {\n function MdLiveAnnouncer(elementToken) {\n // We inject the live element as `any` because the constructor signature cannot reference\n // browser globals (HTMLElement) on non-browser environments, since having a class decorator\n // causes TypeScript to preserve the constructor signature types.\n this._liveElement = elementToken || this._createLiveElement();\n }\n /**\n * @param message Message to be announced to the screenreader\n * @param politeness The politeness of the announcer element.\n */\n MdLiveAnnouncer.prototype.announce = function (message, politeness) {\n var _this = this;\n if (politeness === void 0) { politeness = 'polite'; }\n this._liveElement.textContent = '';\n // TODO: ensure changing the politeness works on all environments we support.\n this._liveElement.setAttribute('aria-live', politeness);\n // This 100ms timeout is necessary for some browser + screen-reader combinations:\n // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n // second time without clearing and then using a non-zero delay.\n // (using JAWS 17 at time of this writing).\n setTimeout(function () { return _this._liveElement.textContent = message; }, 100);\n };\n MdLiveAnnouncer.prototype._createLiveElement = function () {\n var liveEl = document.createElement('div');\n liveEl.classList.add('md-visually-hidden');\n liveEl.setAttribute('aria-atomic', 'true');\n liveEl.setAttribute('aria-live', 'polite');\n document.body.appendChild(liveEl);\n return liveEl;\n };\n MdLiveAnnouncer = __decorate([\n Injectable(),\n __param(0, Optional()),\n __param(0, Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)), \n __metadata('design:paramtypes', [Object])\n ], MdLiveAnnouncer);\n return MdLiveAnnouncer;\n}());\n\n//# sourceMappingURL=live-announcer.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule } from '@angular/core';\nimport { FocusTrap } from './focus-trap';\nimport { MdLiveAnnouncer } from './live-announcer';\nimport { InteractivityChecker } from './interactivity-checker';\nexport { FocusTrap } from './focus-trap';\nexport { MdLiveAnnouncer } from './live-announcer';\nexport { InteractivityChecker } from './interactivity-checker';\nexport var A11Y_PROVIDERS = [MdLiveAnnouncer, InteractivityChecker];\nexport var A11yModule = (function () {\n function A11yModule() {\n }\n A11yModule.forRoot = function () {\n return {\n ngModule: A11yModule,\n providers: A11Y_PROVIDERS,\n };\n };\n A11yModule = __decorate([\n NgModule({\n declarations: [FocusTrap],\n exports: [FocusTrap],\n }), \n __metadata('design:paramtypes', [])\n ], A11yModule);\n return A11yModule;\n}());\n\n//# sourceMappingURL=index.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Injectable } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\n/* Adjusts configuration of our gesture library, Hammer. */\nexport var MdGestureConfig = (function (_super) {\n __extends(MdGestureConfig, _super);\n function MdGestureConfig() {\n _super.apply(this, arguments);\n /* List of new event names to add to the gesture support list */\n this.events = [\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragright',\n 'dragleft',\n 'longpress',\n 'slide',\n 'slidestart',\n 'slideend',\n 'slideright',\n 'slideleft'\n ];\n }\n /*\n * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.\n *\n * Our gesture names come from the Material Design gestures spec:\n * https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics\n *\n * More information on default recognizers can be found in Hammer docs:\n * http://hammerjs.github.io/recognizer-pan/\n * http://hammerjs.github.io/recognizer-press/\n *\n * TODO: Confirm threshold numbers with Material Design UX Team\n * */\n MdGestureConfig.prototype.buildHammer = function (element) {\n var mc = new Hammer(element);\n // Default Hammer Recognizers.\n var pan = new Hammer.Pan();\n var swipe = new Hammer.Swipe();\n var press = new Hammer.Press();\n // Notice that a HammerJS recognizer can only depend on one other recognizer once.\n // Otherwise the previous `recognizeWith` will be dropped.\n var slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);\n var drag = this._createRecognizer(slide, { event: 'drag', threshold: 6 }, swipe);\n var longpress = this._createRecognizer(press, { event: 'longpress', time: 500 });\n // Overwrite the default `pan` event to use the swipe event.\n pan.recognizeWith(swipe);\n // Add customized gestures to Hammer manager\n mc.add([swipe, press, pan, drag, slide, longpress]);\n return mc;\n };\n /** Creates a new recognizer, without affecting the default recognizers of HammerJS */\n MdGestureConfig.prototype._createRecognizer = function (base, options) {\n var inheritances = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n inheritances[_i - 2] = arguments[_i];\n }\n var recognizer = new base.constructor(options);\n inheritances.push(base);\n inheritances.forEach(function (item) { return recognizer.recognizeWith(item); });\n return recognizer;\n };\n MdGestureConfig = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [])\n ], MdGestureConfig);\n return MdGestureConfig;\n}(HammerGestureConfig));\n\n//# sourceMappingURL=MdGestureConfig.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Injectable } from '@angular/core';\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nexport var MdUniqueSelectionDispatcher = (function () {\n function MdUniqueSelectionDispatcher() {\n this._listeners = [];\n }\n /** Notify other items that selection for the given name has been set. */\n MdUniqueSelectionDispatcher.prototype.notify = function (id, name) {\n for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener(id, name);\n }\n };\n /** Listen for future changes to item selection. */\n MdUniqueSelectionDispatcher.prototype.listen = function (listener) {\n this._listeners.push(listener);\n };\n MdUniqueSelectionDispatcher = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [])\n ], MdUniqueSelectionDispatcher);\n return MdUniqueSelectionDispatcher;\n}());\n\n//# sourceMappingURL=unique-selection-dispatcher.js.map\n","/**\n * Annotation Factory that allows HTML style boolean attributes. For example,\n * a field declared like this:\n\n * @Directive({ selector: 'component' }) class MyComponent {\n * @Input() @BooleanFieldValueFactory() myField: boolean;\n * }\n *\n * You could set it up this way:\n * <component myField>\n * or:\n * <component myField=\"\">\n * @deprecated\n */\nfunction booleanFieldValueFactory() {\n return function booleanFieldValueMetadata(target, key) {\n var defaultValue = target[key];\n var localKey = \"__md_private_symbol_\" + key;\n target[localKey] = defaultValue;\n Object.defineProperty(target, key, {\n get: function () { return this[localKey]; },\n set: function (value) {\n this[localKey] = value != null && \"\" + value !== 'false';\n }\n });\n };\n}\nexport { booleanFieldValueFactory as BooleanFieldValue };\n\n//# sourceMappingURL=field-value.js.map\n","// Due to a bug in the ChromeDriver, Angular 2 keyboard events are not triggered by `sendKeys`\n// during E2E tests when using dot notation such as `(keydown.rightArrow)`. To get around this,\n// we are temporarily using a single (keydown) handler.\n// See: https://github.com/angular/angular/issues/9419\nexport var UP_ARROW = 38;\nexport var DOWN_ARROW = 40;\nexport var RIGHT_ARROW = 39;\nexport var LEFT_ARROW = 37;\nexport var ENTER = 13;\nexport var TAB = 9;\n\n//# sourceMappingURL=keycodes.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule } from '@angular/core';\nimport { MdLineModule } from './line/line';\nimport { RtlModule } from './rtl/dir';\nimport { MdRippleModule } from './ripple/ripple';\nimport { PortalModule } from './portal/portal-directives';\nimport { OverlayModule } from './overlay/overlay-directives';\nimport { A11yModule, A11Y_PROVIDERS } from './a11y/index';\nimport { OVERLAY_PROVIDERS } from './overlay/overlay';\n// RTL\nexport { Dir, RtlModule } from './rtl/dir';\n// Portals\nexport { Portal, BasePortalHost, ComponentPortal, TemplatePortal } from './portal/portal';\nexport { PortalHostDirective, TemplatePortalDirective, PortalModule } from './portal/portal-directives';\nexport { DomPortalHost } from './portal/dom-portal-host';\n// Overlay\nexport { Overlay, OVERLAY_PROVIDERS } from './overlay/overlay';\nexport { OverlayContainer } from './overlay/overlay-container';\nexport { OverlayRef } from './overlay/overlay-ref';\nexport { OverlayState } from './overlay/overlay-state';\nexport { ConnectedOverlayDirective, OverlayOrigin, OverlayModule } from './overlay/overlay-directives';\nexport * from './overlay/position/connected-position-strategy';\nexport * from './overlay/position/connected-position';\n// Gestures\nexport { MdGestureConfig } from './gestures/MdGestureConfig';\n// Ripple\nexport { MdRipple, MdRippleModule } from './ripple/ripple';\n// a11y\nexport { MdLiveAnnouncer, LIVE_ANNOUNCER_ELEMENT_TOKEN } from './a11y/live-announcer';\nexport { FocusTrap } from './a11y/focus-trap';\nexport { InteractivityChecker } from './a11y/interactivity-checker';\nexport { A11yModule } from './a11y/index';\nexport { MdUniqueSelectionDispatcher } from './coordination/unique-selection-dispatcher';\nexport { MdLineModule, MdLine, MdLineSetter } from './line/line';\n// Style\nexport { applyCssTransform } from './style/apply-transform';\n// Error\nexport { MdError } from './errors/error';\n// Annotations.\nexport { BooleanFieldValue } from './annotations/field-value';\n// Misc\n// Keybindings\nexport * from './keyboard/keycodes';\nexport var MdCoreModule = (function () {\n function MdCoreModule() {\n }\n MdCoreModule.forRoot = function () {\n return {\n ngModule: MdCoreModule,\n providers: [A11Y_PROVIDERS, OVERLAY_PROVIDERS],\n };\n };\n MdCoreModule = __decorate([\n NgModule({\n imports: [MdLineModule, RtlModule, MdRippleModule, PortalModule, OverlayModule, A11yModule],\n exports: [MdLineModule, RtlModule, MdRippleModule, PortalModule, OverlayModule, A11yModule],\n }), \n __metadata('design:paramtypes', [])\n ], MdCoreModule);\n return MdCoreModule;\n}());\n\n//# sourceMappingURL=core.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { NgModule, Component, ContentChildren, Directive, EventEmitter, HostBinding, Input, Optional, Output, QueryList, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { Observable } from 'rxjs/Observable';\nimport { BooleanFieldValue, MdUniqueSelectionDispatcher } from '../core';\n/**\n * Provider Expression that allows md-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n */\nexport var MD_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MdButtonToggleGroup; }),\n multi: true\n};\nvar _uniqueIdCounter = 0;\n/** A simple change event emitted by either MdButtonToggle or MdButtonToggleGroup. */\nexport var MdButtonToggleChange = (function () {\n function MdButtonToggleChange() {\n }\n return MdButtonToggleChange;\n}());\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\nexport var MdButtonToggleGroup = (function () {\n function MdButtonToggleGroup() {\n /** The value for the button toggle group. Should match currently selected button toggle. */\n this._value = null;\n /** The HTML name attribute applied to toggles in this group. */\n this._name = \"md-radio-group-\" + _uniqueIdCounter++;\n /** Disables all toggles in the group. */\n this._disabled = null;\n /** The currently selected button toggle, should match the value. */\n this._selected = null;\n /** Whether the button toggle group is initialized or not. */\n this._isInitialized = false;\n /** The method to be called in order to update ngModel. */\n this._controlValueAccessorChangeFn = function (value) { };\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n this.onTouched = function () { };\n /** Event emitted when the group's value changes. */\n this._change = new EventEmitter();\n /** Child button toggle buttons. */\n this._buttonToggles = null;\n }\n Object.defineProperty(MdButtonToggleGroup.prototype, \"change\", {\n get: function () {\n return this._change.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n /** TODO: internal */\n MdButtonToggleGroup.prototype.ngAfterViewInit = function () {\n this._isInitialized = true;\n };\n Object.defineProperty(MdButtonToggleGroup.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n set: function (value) {\n this._name = value;\n this._updateButtonToggleNames();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdButtonToggleGroup.prototype, \"disabled\", {\n get: function () {\n return this._disabled;\n },\n set: function (value) {\n this._disabled = (value != null && value !== false) ? true : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdButtonToggleGroup.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n set: function (newValue) {\n if (this._value != newValue) {\n this._value = newValue;\n this._updateSelectedButtonToggleFromValue();\n // Only emit a change event if the view is completely initialized.\n // We don't want to emit a change event for the initial values.\n if (this._isInitialized) {\n this._emitChangeEvent();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdButtonToggleGroup.prototype, \"selected\", {\n get: function () {\n return this._selected;\n },\n set: function (selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n if (selected && !selected.checked) {\n selected.checked = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n MdButtonToggleGroup.prototype._updateButtonToggleNames = function () {\n var _this = this;\n if (this._buttonToggles) {\n this._buttonToggles.forEach(function (toggle) {\n toggle.name = _this._name;\n });\n }\n };\n // TODO: Refactor into shared code with radio.\n MdButtonToggleGroup.prototype._updateSelectedButtonToggleFromValue = function () {\n var _this = this;\n var isAlreadySelected = this._selected != null && this._selected.value == this._value;\n if (this._buttonToggles != null && !isAlreadySelected) {\n var matchingButtonToggle = this._buttonToggles.filter(function (buttonToggle) { return buttonToggle.value == _this._value; })[0];\n if (matchingButtonToggle) {\n this.selected = matchingButtonToggle;\n }\n else if (this.value == null) {\n this.selected = null;\n this._buttonToggles.forEach(function (buttonToggle) {\n buttonToggle.checked = false;\n });\n }\n }\n };\n /** Dispatch change event with current selection and group value. */\n MdButtonToggleGroup.prototype._emitChangeEvent = function () {\n var event = new MdButtonToggleChange();\n event.source = this._selected;\n event.value = this._value;\n this._controlValueAccessorChangeFn(event.value);\n this._change.emit(event);\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdButtonToggleGroup.prototype.writeValue = function (value) {\n this.value = value;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdButtonToggleGroup.prototype.registerOnChange = function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdButtonToggleGroup.prototype.registerOnTouched = function (fn) {\n this.onTouched = fn;\n };\n __decorate([\n Output(), \n __metadata('design:type', Observable)\n ], MdButtonToggleGroup.prototype, \"change\", null);\n __decorate([\n ContentChildren(forwardRef(function () { return MdButtonToggle; })), \n __metadata('design:type', QueryList)\n ], MdButtonToggleGroup.prototype, \"_buttonToggles\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdButtonToggleGroup.prototype, \"name\", null);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdButtonToggleGroup.prototype, \"disabled\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdButtonToggleGroup.prototype, \"value\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdButtonToggleGroup.prototype, \"selected\", null);\n MdButtonToggleGroup = __decorate([\n Directive({\n selector: 'md-button-toggle-group:not([multiple])',\n providers: [MD_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n host: {\n 'role': 'radiogroup',\n },\n }), \n __metadata('design:paramtypes', [])\n ], MdButtonToggleGroup);\n return MdButtonToggleGroup;\n}());\n/** Multiple selection button-toggle group. */\nexport var MdButtonToggleGroupMultiple = (function () {\n function MdButtonToggleGroupMultiple() {\n /** Disables all toggles in the group. */\n this._disabled = null;\n }\n Object.defineProperty(MdButtonToggleGroupMultiple.prototype, \"disabled\", {\n get: function () {\n return this._disabled;\n },\n set: function (value) {\n this._disabled = (value != null && value !== false) ? true : null;\n },\n enumerable: true,\n configurable: true\n });\n __decorate([\n Input(), \n __metadata('design:type', Boolean)\n ], MdButtonToggleGroupMultiple.prototype, \"disabled\", null);\n MdButtonToggleGroupMultiple = __decorate([\n Directive({\n selector: 'md-button-toggle-group[multiple]',\n }), \n __metadata('design:paramtypes', [])\n ], MdButtonToggleGroupMultiple);\n return MdButtonToggleGroupMultiple;\n}());\nexport var MdButtonToggle = (function () {\n function MdButtonToggle(toggleGroup, toggleGroupMultiple, buttonToggleDispatcher) {\n var _this = this;\n this.buttonToggleDispatcher = buttonToggleDispatcher;\n /** Whether or not this button toggle is checked. */\n this._checked = false;\n /** Whether or not this button toggle is disabled. */\n this._disabled = null;\n /** Value assigned to this button toggle. */\n this._value = null;\n /** Whether or not the button toggle is a single selection. */\n this._isSingleSelector = null;\n /** Event emitted when the group value changes. */\n this._change = new EventEmitter();\n this.buttonToggleGroup = toggleGroup;\n this.buttonToggleGroupMultiple = toggleGroupMultiple;\n if (this.buttonToggleGroup) {\n buttonToggleDispatcher.listen(function (id, name) {\n if (id != _this.id && name == _this.name) {\n _this.checked = false;\n }\n });\n this._type = 'radio';\n this.name = this.buttonToggleGroup.name;\n this._isSingleSelector = true;\n }\n else {\n // Even if there is no group at all, treat the button toggle as a checkbox so it can be\n // toggled on or off.\n this._type = 'checkbox';\n this._isSingleSelector = false;\n }\n }\n Object.defineProperty(MdButtonToggle.prototype, \"change\", {\n get: function () {\n return this._change.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n MdButtonToggle.prototype.ngOnInit = function () {\n if (this.id == null) {\n this.id = \"md-button-toggle-\" + _uniqueIdCounter++;\n }\n if (this.buttonToggleGroup && this._value == this.buttonToggleGroup.value) {\n this._checked = true;\n }\n };\n Object.defineProperty(MdButtonToggle.prototype, \"inputId\", {\n get: function () {\n return this.id + \"-input\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdButtonToggle.prototype, \"checked\", {\n get: function () {\n return this._checked;\n },\n set: function (newCheckedState) {\n if (this._isSingleSelector) {\n if (newCheckedState) {\n // Notify all button toggles with the same name (in the same group) to un-check.\n this.buttonToggleDispatcher.notify(this.id, this.name);\n }\n }\n this._checked = newCheckedState;\n if (newCheckedState && this._isSingleSelector && this.buttonToggleGroup.value != this.value) {\n this.buttonToggleGroup.selected = this;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdButtonToggle.prototype, \"value\", {\n /** MdButtonToggleGroup reads this to assign its own value. */\n get: function () {\n return this._value;\n },\n set: function (value) {\n if (this._value != value) {\n if (this.buttonToggleGroup != null && this.checked) {\n this.buttonToggleGroup.value = value;\n }\n this._value = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n /** Dispatch change event with current value. */\n MdButtonToggle.prototype._emitChangeEvent = function () {\n var event = new MdButtonToggleChange();\n event.source = this;\n event.value = this._value;\n this._change.emit(event);\n };\n Object.defineProperty(MdButtonToggle.prototype, \"disabled\", {\n get: function () {\n return this._disabled || (this.buttonToggleGroup != null && this.buttonToggleGroup.disabled) ||\n (this.buttonToggleGroupMultiple != null && this.buttonToggleGroupMultiple.disabled);\n },\n set: function (value) {\n this._disabled = (value != null && value !== false) ? true : null;\n },\n enumerable: true,\n configurable: true\n });\n /** Toggle the state of the current button toggle. */\n MdButtonToggle.prototype._toggle = function () {\n this.checked = !this.checked;\n };\n /** Checks the button toggle due to an interaction with the underlying native input. */\n MdButtonToggle.prototype._onInputChange = function (event) {\n event.stopPropagation();\n if (this._isSingleSelector) {\n // Propagate the change one-way via the group, which will in turn mark this\n // button toggle as checked.\n this.checked = true;\n this.buttonToggleGroup.selected = this;\n this.buttonToggleGroup.onTouched();\n }\n else {\n this._toggle();\n }\n // Emit a change event when the native input does.\n this._emitChangeEvent();\n };\n /** TODO: internal */\n MdButtonToggle.prototype._onInputClick = function (event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `slide-toggle` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n };\n __decorate([\n HostBinding(),\n Input(), \n __metadata('design:type', String)\n ], MdButtonToggle.prototype, \"id\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdButtonToggle.prototype, \"name\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', Observable)\n ], MdButtonToggle.prototype, \"change\", null);\n __decorate([\n HostBinding('class.md-button-toggle-checked'),\n Input(), \n __metadata('design:type', Boolean)\n ], MdButtonToggle.prototype, \"checked\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdButtonToggle.prototype, \"value\", null);\n __decorate([\n HostBinding('class.md-button-toggle-disabled'),\n Input(), \n __metadata('design:type', Boolean)\n ], MdButtonToggle.prototype, \"disabled\", null);\n MdButtonToggle = __decorate([\n Component({selector: 'md-button-toggle',\n template: \"<label [attr.for]=\\\"inputId\\\" class=\\\"md-button-toggle-label\\\"> <input #input class=\\\"md-button-toggle-input md-visually-hidden\\\" [type]=\\\"_type\\\" [id]=\\\"inputId\\\" [checked]=\\\"checked\\\" [disabled]=\\\"disabled\\\" [name]=\\\"name\\\" (change)=\\\"_onInputChange($event)\\\" (click)=\\\"_onInputClick($event)\\\"> <div class=\\\"md-button-toggle-label-content\\\"> <ng-content></ng-content> </div> </label> \",\n styles: [\"md-button-toggle-group { box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); position: relative; display: inline-flex; border-radius: 3px; cursor: pointer; white-space: nowrap; } .md-button-toggle-disabled .md-button-toggle-label-content { cursor: default; } md-button-toggle { white-space: nowrap; } .md-button-toggle-label-content { display: inline-block; line-height: 36px; padding: 0 16px; cursor: pointer; } .md-button-toggle-label-content > * { vertical-align: middle; } /*# sourceMappingURL=button-toggle.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n }),\n __param(0, Optional()),\n __param(1, Optional()), \n __metadata('design:paramtypes', [MdButtonToggleGroup, MdButtonToggleGroupMultiple, MdUniqueSelectionDispatcher])\n ], MdButtonToggle);\n return MdButtonToggle;\n}());\nexport var MdButtonToggleModule = (function () {\n function MdButtonToggleModule() {\n }\n MdButtonToggleModule.forRoot = function () {\n return {\n ngModule: MdButtonToggleModule,\n providers: [MdUniqueSelectionDispatcher]\n };\n };\n MdButtonToggleModule = __decorate([\n NgModule({\n imports: [FormsModule],\n exports: [MdButtonToggleGroup, MdButtonToggleGroupMultiple, MdButtonToggle],\n declarations: [MdButtonToggleGroup, MdButtonToggleGroupMultiple, MdButtonToggle],\n }), \n __metadata('design:paramtypes', [])\n ], MdButtonToggleModule);\n return MdButtonToggleModule;\n}());\n\n//# sourceMappingURL=button-toggle.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewEncapsulation, Input, HostBinding, ChangeDetectionStrategy, ElementRef, Renderer, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BooleanFieldValue, MdRippleModule } from '../core';\n// TODO(jelbourn): Make the `isMouseDown` stuff done with one global listener.\n// TODO(kara): Convert attribute selectors to classes when attr maps become available\nexport var MdButton = (function () {\n function MdButton(_elementRef, _renderer) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n /** Whether the button has focus from the keyboard (not the mouse). Used for class binding. */\n this._isKeyboardFocused = false;\n /** Whether a mousedown has occurred on this element in the last 100ms. */\n this._isMouseDown = false;\n /** Whether the ripple effect on click should be disabled. */\n this.disableRipple = false;\n }\n Object.defineProperty(MdButton.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value) {\n this._updateColor(value);\n },\n enumerable: true,\n configurable: true\n });\n MdButton.prototype._setMousedown = function () {\n var _this = this;\n // We only *show* the focus style when focus has come to the button via the keyboard.\n // The Material Design spec is silent on this topic, and without doing this, the\n // button continues to look :active after clicking.\n // @see http://marcysutton.com/button-focus-hell/\n this._isMouseDown = true;\n setTimeout(function () { _this._isMouseDown = false; }, 100);\n };\n MdButton.prototype._updateColor = function (newColor) {\n this._setElementColor(this._color, false);\n this._setElementColor(newColor, true);\n this._color = newColor;\n };\n MdButton.prototype._setElementColor = function (color, isAdd) {\n if (color != null && color != '') {\n this._renderer.setElementClass(this._elementRef.nativeElement, \"md-\" + color, isAdd);\n }\n };\n MdButton.prototype._setKeyboardFocus = function () {\n this._isKeyboardFocused = !this._isMouseDown;\n };\n MdButton.prototype._removeKeyboardFocus = function () {\n this._isKeyboardFocused = false;\n };\n /** TODO(hansl): e2e test this function. */\n MdButton.prototype.focus = function () {\n this._elementRef.nativeElement.focus();\n };\n MdButton.prototype.getHostElement = function () {\n return this._elementRef.nativeElement;\n };\n MdButton.prototype.isRoundButton = function () {\n var el = this._elementRef.nativeElement;\n return el.hasAttribute('md-icon-button') ||\n el.hasAttribute('md-fab') ||\n el.hasAttribute('md-mini-fab');\n };\n MdButton.prototype.isRippleEnabled = function () {\n return !this.disableRipple;\n };\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdButton.prototype, \"disableRipple\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdButton.prototype, \"color\", null);\n MdButton = __decorate([\n Component({selector: 'button[md-button], button[md-raised-button], button[md-icon-button], ' +\n 'button[md-fab], button[md-mini-fab]',\n host: {\n '[class.md-button-focus]': '_isKeyboardFocused',\n '(mousedown)': '_setMousedown()',\n '(focus)': '_setKeyboardFocus()',\n '(blur)': '_removeKeyboardFocus()',\n },\n template: \"<span class=\\\"md-button-wrapper\\\"><ng-content></ng-content></span> <div md-ripple *ngIf=\\\"isRippleEnabled()\\\" class=\\\"md-button-ripple\\\" [class.md-button-ripple-round]=\\\"isRoundButton()\\\" [md-ripple-trigger]=\\\"getHostElement()\\\" [md-ripple-color]=\\\"isRoundButton() ? 'rgba(255, 255, 255, 0.2)' : ''\\\" md-ripple-background-color=\\\"rgba(0, 0, 0, 0)\\\"></div> \",\n styles: [\"[md-raised-button], [md-fab], [md-mini-fab], [md-button], [md-icon-button] { box-sizing: border-box; position: relative; cursor: pointer; user-select: none; outline: none; border: none; display: inline-block; white-space: nowrap; text-decoration: none; vertical-align: baseline; font-size: 14px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; font-weight: 500; color: currentColor; text-align: center; margin: 0; min-width: 88px; line-height: 36px; padding: 0 16px; border-radius: 3px; } [disabled][md-raised-button], [disabled][md-fab], [disabled][md-mini-fab], [disabled][md-button], [disabled][md-icon-button] { cursor: default; } .md-button-focus[md-raised-button]::after, .md-button-focus[md-fab]::after, .md-button-focus[md-mini-fab]::after, .md-button-focus[md-button]::after, .md-button-focus[md-icon-button]::after { position: absolute; top: 0; left: 0; bottom: 0; right: 0; content: ''; background-color: rgba(0, 0, 0, 0.12); border-radius: inherit; pointer-events: none; } [md-raised-button], [md-fab], [md-mini-fab] { box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); transform: translate3d(0, 0, 0); transition: background 400ms cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); } [md-raised-button]:active, [md-fab]:active, [md-mini-fab]:active { box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); } [disabled][md-raised-button], [disabled][md-fab], [disabled][md-mini-fab] { box-shadow: none; } [md-button]:hover::after, [md-icon-button]:hover::after { position: absolute; top: 0; left: 0; bottom: 0; right: 0; content: ''; background-color: rgba(0, 0, 0, 0.12); border-radius: inherit; pointer-events: none; } [md-button][disabled]:hover.md-primary, [md-button][disabled]:hover.md-accent, [md-button][disabled]:hover.md-warn, [md-button][disabled]:hover::after, [md-icon-button][disabled]:hover.md-primary, [md-icon-button][disabled]:hover.md-accent, [md-icon-button][disabled]:hover.md-warn, [md-icon-button][disabled]:hover::after { background-color: transparent; } [md-fab] { min-width: 0; border-radius: 50%; width: 56px; height: 56px; padding: 0; } [md-fab] i, [md-fab] md-icon { padding: 16px 0; } [md-mini-fab] { min-width: 0; border-radius: 50%; width: 40px; height: 40px; padding: 0; } [md-mini-fab] i, [md-mini-fab] md-icon { padding: 8px 0; } [md-icon-button] { min-width: 0; padding: 0; width: 40px; height: 40px; line-height: 24px; border-radius: 50%; } [md-icon-button] .md-button-wrapper > * { vertical-align: middle; } .md-button-ripple { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } .md-button-ripple-round { border-radius: 50%; z-index: 1; } @media screen and (-ms-high-contrast: active) { .md-raised-button, .md-fab, .md-mini-fab { border: 1px solid #fff; } } /*# sourceMappingURL=button.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [ElementRef, Renderer])\n ], MdButton);\n return MdButton;\n}());\nexport var MdAnchor = (function (_super) {\n __extends(MdAnchor, _super);\n function MdAnchor(elementRef, renderer) {\n _super.call(this, elementRef, renderer);\n this._disabled = null;\n }\n Object.defineProperty(MdAnchor.prototype, \"tabIndex\", {\n get: function () {\n return this.disabled ? -1 : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdAnchor.prototype, \"isAriaDisabled\", {\n get: function () {\n return this.disabled ? 'true' : 'false';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdAnchor.prototype, \"disabled\", {\n get: function () { return this._disabled; },\n set: function (value) {\n // The presence of *any* disabled value makes the component disabled, *except* for false.\n this._disabled = (value != null && value != false) ? true : null;\n },\n enumerable: true,\n configurable: true\n });\n MdAnchor.prototype._haltDisabledEvents = function (event) {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n __decorate([\n HostBinding('tabIndex'), \n __metadata('design:type', Number)\n ], MdAnchor.prototype, \"tabIndex\", null);\n __decorate([\n HostBinding('attr.aria-disabled'), \n __metadata('design:type', String)\n ], MdAnchor.prototype, \"isAriaDisabled\", null);\n __decorate([\n HostBinding('attr.disabled'),\n Input('disabled'), \n __metadata('design:type', Object)\n ], MdAnchor.prototype, \"disabled\", null);\n MdAnchor = __decorate([\n Component({selector: 'a[md-button], a[md-raised-button], a[md-icon-button], a[md-fab], a[md-mini-fab]',\n inputs: ['color'],\n host: {\n '[class.md-button-focus]': '_isKeyboardFocused',\n '(mousedown)': '_setMousedown()',\n '(focus)': '_setKeyboardFocus()',\n '(blur)': '_removeKeyboardFocus()',\n '(click)': '_haltDisabledEvents($event)',\n },\n template: \"<span class=\\\"md-button-wrapper\\\"><ng-content></ng-content></span> <div md-ripple *ngIf=\\\"isRippleEnabled()\\\" class=\\\"md-button-ripple\\\" [class.md-button-ripple-round]=\\\"isRoundButton()\\\" [md-ripple-trigger]=\\\"getHostElement()\\\" [md-ripple-color]=\\\"isRoundButton() ? 'rgba(255, 255, 255, 0.2)' : ''\\\" md-ripple-background-color=\\\"rgba(0, 0, 0, 0)\\\"></div> \",\n styles: [\"[md-raised-button], [md-fab], [md-mini-fab], [md-button], [md-icon-button] { box-sizing: border-box; position: relative; cursor: pointer; user-select: none; outline: none; border: none; display: inline-block; white-space: nowrap; text-decoration: none; vertical-align: baseline; font-size: 14px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; font-weight: 500; color: currentColor; text-align: center; margin: 0; min-width: 88px; line-height: 36px; padding: 0 16px; border-radius: 3px; } [disabled][md-raised-button], [disabled][md-fab], [disabled][md-mini-fab], [disabled][md-button], [disabled][md-icon-button] { cursor: default; } .md-button-focus[md-raised-button]::after, .md-button-focus[md-fab]::after, .md-button-focus[md-mini-fab]::after, .md-button-focus[md-button]::after, .md-button-focus[md-icon-button]::after { position: absolute; top: 0; left: 0; bottom: 0; right: 0; content: ''; background-color: rgba(0, 0, 0, 0.12); border-radius: inherit; pointer-events: none; } [md-raised-button], [md-fab], [md-mini-fab] { box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); transform: translate3d(0, 0, 0); transition: background 400ms cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); } [md-raised-button]:active, [md-fab]:active, [md-mini-fab]:active { box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); } [disabled][md-raised-button], [disabled][md-fab], [disabled][md-mini-fab] { box-shadow: none; } [md-button]:hover::after, [md-icon-button]:hover::after { position: absolute; top: 0; left: 0; bottom: 0; right: 0; content: ''; background-color: rgba(0, 0, 0, 0.12); border-radius: inherit; pointer-events: none; } [md-button][disabled]:hover.md-primary, [md-button][disabled]:hover.md-accent, [md-button][disabled]:hover.md-warn, [md-button][disabled]:hover::after, [md-icon-button][disabled]:hover.md-primary, [md-icon-button][disabled]:hover.md-accent, [md-icon-button][disabled]:hover.md-warn, [md-icon-button][disabled]:hover::after { background-color: transparent; } [md-fab] { min-width: 0; border-radius: 50%; width: 56px; height: 56px; padding: 0; } [md-fab] i, [md-fab] md-icon { padding: 16px 0; } [md-mini-fab] { min-width: 0; border-radius: 50%; width: 40px; height: 40px; padding: 0; } [md-mini-fab] i, [md-mini-fab] md-icon { padding: 8px 0; } [md-icon-button] { min-width: 0; padding: 0; width: 40px; height: 40px; line-height: 24px; border-radius: 50%; } [md-icon-button] .md-button-wrapper > * { vertical-align: middle; } .md-button-ripple { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } .md-button-ripple-round { border-radius: 50%; z-index: 1; } @media screen and (-ms-high-contrast: active) { .md-raised-button, .md-fab, .md-mini-fab { border: 1px solid #fff; } } /*# sourceMappingURL=button.css.map */ \"],\n encapsulation: ViewEncapsulation.None\n }), \n __metadata('design:paramtypes', [ElementRef, Renderer])\n ], MdAnchor);\n return MdAnchor;\n}(MdButton));\nexport var MdButtonModule = (function () {\n function MdButtonModule() {\n }\n MdButtonModule.forRoot = function () {\n return {\n ngModule: MdButtonModule,\n providers: []\n };\n };\n MdButtonModule = __decorate([\n NgModule({\n imports: [CommonModule, MdRippleModule],\n exports: [MdButton, MdAnchor],\n declarations: [MdButton, MdAnchor],\n }), \n __metadata('design:paramtypes', [])\n ], MdButtonModule);\n return MdButtonModule;\n}());\n\n//# sourceMappingURL=button.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, Renderer, ViewEncapsulation, forwardRef, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanFieldValue } from '../core';\n/**\n * Monotonically increasing integer used to auto-generate unique ids for checkbox components.\n */\nvar nextId = 0;\n/**\n * Provider Expression that allows md-checkbox to register as a ControlValueAccessor. This allows it\n * to support [(ngModel)].\n */\nexport var MD_CHECKBOX_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MdCheckbox; }),\n multi: true\n};\n/**\n * Represents the different states that require custom transitions between them.\n */\nexport var TransitionCheckState;\n(function (TransitionCheckState) {\n /** The initial state of the component before any user interaction. */\n TransitionCheckState[TransitionCheckState[\"Init\"] = 0] = \"Init\";\n /** The state representing the component when it's becoming checked. */\n TransitionCheckState[TransitionCheckState[\"Checked\"] = 1] = \"Checked\";\n /** The state representing the component when it's becoming unchecked. */\n TransitionCheckState[TransitionCheckState[\"Unchecked\"] = 2] = \"Unchecked\";\n /** The state representing the component when it's becoming indeterminate. */\n TransitionCheckState[TransitionCheckState[\"Indeterminate\"] = 3] = \"Indeterminate\";\n})(TransitionCheckState || (TransitionCheckState = {}));\n// A simple change event emitted by the MdCheckbox component.\nexport var MdCheckboxChange = (function () {\n function MdCheckboxChange() {\n }\n return MdCheckboxChange;\n}());\n/**\n * A material design checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. An MdCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n * See: https://www.google.com/design/spec/components/selection-controls.html\n */\nexport var MdCheckbox = (function () {\n function MdCheckbox(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * Attached to the aria-label attribute of the host element. In most cases, arial-labelledby will\n * take precedence so this may be omitted.\n */\n this.ariaLabel = '';\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n this.ariaLabelledby = null;\n /** A unique id for the checkbox. If one is not supplied, it is auto-generated. */\n this.id = \"md-checkbox-\" + ++nextId;\n /** Whether the checkbox is required or not. */\n this.required = false;\n /** Whether or not the checkbox should come before or after the label. */\n this.align = 'start';\n /**\n * Whether the checkbox is disabled. When the checkbox is disabled it cannot be interacted with.\n * The correct ARIA attributes are applied to denote this to assistive technology.\n */\n this.disabled = false;\n /**\n * The tabindex attribute for the checkbox. Note that when the checkbox is disabled, the attribute\n * on the host element will be removed. It will be placed back when the checkbox is re-enabled.\n */\n this.tabindex = 0;\n /** Name value will be applied to the input element if present */\n this.name = null;\n /** Event emitted when the checkbox's `checked` value changes. */\n this.change = new EventEmitter();\n /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */\n this.onTouched = function () { };\n this._currentAnimationClass = '';\n this._currentCheckState = TransitionCheckState.Init;\n this._checked = false;\n this._indeterminate = false;\n this._controlValueAccessorChangeFn = function (value) { };\n this.hasFocus = false;\n }\n Object.defineProperty(MdCheckbox.prototype, \"inputId\", {\n /** ID to be applied to the `input` element */\n get: function () {\n return \"input-\" + this.id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdCheckbox.prototype, \"checked\", {\n /**\n * Whether the checkbox is checked. Note that setting `checked` will immediately set\n * `indeterminate` to false.\n */\n get: function () {\n return this._checked;\n },\n set: function (checked) {\n if (checked != this.checked) {\n this._indeterminate = false;\n this._checked = checked;\n this._transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdCheckbox.prototype, \"indeterminate\", {\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever `checked` is set, indeterminate is immediately set to\n * false. This differs from the web platform in that indeterminate state on native\n * checkboxes is only remove when the user manually checks the checkbox (rather than setting the\n * `checked` property programmatically). However, we feel that this behavior is more accommodating\n * to the way consumers would envision using this component.\n */\n get: function () {\n return this._indeterminate;\n },\n set: function (indeterminate) {\n this._indeterminate = indeterminate;\n if (this._indeterminate) {\n this._transitionCheckState(TransitionCheckState.Indeterminate);\n }\n else {\n this._transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdCheckbox.prototype.writeValue = function (value) {\n this.checked = !!value;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdCheckbox.prototype.registerOnChange = function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdCheckbox.prototype.registerOnTouched = function (fn) {\n this.onTouched = fn;\n };\n MdCheckbox.prototype._transitionCheckState = function (newState) {\n var oldState = this._currentCheckState;\n var renderer = this._renderer;\n var elementRef = this._elementRef;\n if (oldState === newState) {\n return;\n }\n if (this._currentAnimationClass.length > 0) {\n renderer.setElementClass(elementRef.nativeElement, this._currentAnimationClass, false);\n }\n this._currentAnimationClass = this._getAnimationClassForCheckStateTransition(oldState, newState);\n this._currentCheckState = newState;\n if (this._currentAnimationClass.length > 0) {\n renderer.setElementClass(elementRef.nativeElement, this._currentAnimationClass, true);\n }\n };\n MdCheckbox.prototype._emitChangeEvent = function () {\n var event = new MdCheckboxChange();\n event.source = this;\n event.checked = this.checked;\n this._controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n };\n /** Informs the component when the input has focus so that we can style accordingly */\n MdCheckbox.prototype._onInputFocus = function () {\n this.hasFocus = true;\n };\n /** Informs the component when we lose focus in order to style accordingly */\n MdCheckbox.prototype._onInputBlur = function () {\n this.hasFocus = false;\n this.onTouched();\n };\n /**\n * Toggles the `checked` value between true and false\n */\n MdCheckbox.prototype.toggle = function () {\n this.checked = !this.checked;\n };\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * @param event\n */\n MdCheckbox.prototype._onInteractionEvent = function (event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n if (!this.disabled) {\n this.toggle();\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this._emitChangeEvent();\n }\n };\n MdCheckbox.prototype._onInputClick = function (event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n };\n MdCheckbox.prototype._getAnimationClassForCheckStateTransition = function (oldState, newState) {\n var animSuffix;\n switch (oldState) {\n case TransitionCheckState.Init:\n // Handle edge case where user interacts with checkbox that does not have [(ngModel)] or\n // [checked] bound to it.\n if (newState === TransitionCheckState.Checked) {\n animSuffix = 'unchecked-checked';\n }\n else {\n return '';\n }\n break;\n case TransitionCheckState.Unchecked:\n animSuffix = newState === TransitionCheckState.Checked ?\n 'unchecked-checked' : 'unchecked-indeterminate';\n break;\n case TransitionCheckState.Checked:\n animSuffix = newState === TransitionCheckState.Unchecked ?\n 'checked-unchecked' : 'checked-indeterminate';\n break;\n case TransitionCheckState.Indeterminate:\n animSuffix = newState === TransitionCheckState.Checked ?\n 'indeterminate-checked' : 'indeterminate-unchecked';\n }\n return \"md-checkbox-anim-\" + animSuffix;\n };\n __decorate([\n Input('aria-label'), \n __metadata('design:type', String)\n ], MdCheckbox.prototype, \"ariaLabel\", void 0);\n __decorate([\n Input('aria-labelledby'), \n __metadata('design:type', String)\n ], MdCheckbox.prototype, \"ariaLabelledby\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdCheckbox.prototype, \"id\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdCheckbox.prototype, \"required\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdCheckbox.prototype, \"align\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Boolean)\n ], MdCheckbox.prototype, \"disabled\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdCheckbox.prototype, \"tabindex\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdCheckbox.prototype, \"name\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', EventEmitter)\n ], MdCheckbox.prototype, \"change\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdCheckbox.prototype, \"checked\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdCheckbox.prototype, \"indeterminate\", null);\n MdCheckbox = __decorate([\n Component({selector: 'md-checkbox',\n template: \"<label class=\\\"md-checkbox-layout\\\"> <div class=\\\"md-checkbox-inner-container\\\"> <input class=\\\"md-checkbox-input md-visually-hidden\\\" type=\\\"checkbox\\\" [id]=\\\"inputId\\\" [required]=\\\"required\\\" [checked]=\\\"checked\\\" [disabled]=\\\"disabled\\\" [name]=\\\"name\\\" [tabIndex]=\\\"tabindex\\\" [indeterminate]=\\\"indeterminate\\\" [attr.aria-label]=\\\"ariaLabel\\\" [attr.aria-labelledby]=\\\"ariaLabelledby\\\" (focus)=\\\"_onInputFocus()\\\" (blur)=\\\"_onInputBlur()\\\" (change)=\\\"_onInteractionEvent($event)\\\" (click)=\\\"_onInputClick($event)\\\"> <div class=\\\"md-ink-ripple\\\"></div> <div class=\\\"md-checkbox-frame\\\"></div> <div class=\\\"md-checkbox-background\\\"> <svg version=\\\"1.1\\\" class=\\\"md-checkbox-checkmark\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" xml:space=\\\"preserve\\\"> <path class=\\\"md-checkbox-checkmark-path\\\" fill=\\\"none\\\" stroke=\\\"white\\\" d=\\\"M4.1,12.7 9,17.6 20.3,6.3\\\"/> </svg> <!-- Element for rendering the indeterminate state checkbox. --> <div class=\\\"md-checkbox-mixedmark\\\"></div> </div> </div> <span class=\\\"md-checkbox-label\\\"> <ng-content></ng-content> </span> </label> \",\n styles: [\"@keyframes md-checkbox-fade-in-background { 0% { opacity: 0; } 50% { opacity: 1; } } @keyframes md-checkbox-fade-out-background { 0%, 50% { opacity: 1; } 100% { opacity: 0; } } @keyframes md-checkbox-unchecked-checked-checkmark-path { 0%, 50% { stroke-dashoffset: 22.91026; } 50% { animation-timing-function: cubic-bezier(0, 0, 0.2, 0.1); } 100% { stroke-dashoffset: 0; } } @keyframes md-checkbox-unchecked-indeterminate-mixedmark { 0%, 68.2% { transform: scaleX(0); } 68.2% { animation-timing-function: cubic-bezier(0, 0, 0, 1); } 100% { transform: scaleX(1); } } @keyframes md-checkbox-checked-unchecked-checkmark-path { from { animation-timing-function: cubic-bezier(0.4, 0, 1, 1); stroke-dashoffset: 0; } to { stroke-dashoffset: -22.91026; } } @keyframes md-checkbox-checked-indeterminate-checkmark { from { animation-timing-function: cubic-bezier(0, 0, 0.2, 0.1); opacity: 1; transform: rotate(0deg); } to { opacity: 0; transform: rotate(45deg); } } @keyframes md-checkbox-indeterminate-checked-checkmark { from { animation-timing-function: cubic-bezier(0.14, 0, 0, 1); opacity: 0; transform: rotate(45deg); } to { opacity: 1; transform: rotate(360deg); } } @keyframes md-checkbox-checked-indeterminate-mixedmark { from { animation-timing-function: cubic-bezier(0, 0, 0.2, 0.1); opacity: 0; transform: rotate(-45deg); } to { opacity: 1; transform: rotate(0deg); } } @keyframes md-checkbox-indeterminate-checked-mixedmark { from { animation-timing-function: cubic-bezier(0.14, 0, 0, 1); opacity: 1; transform: rotate(0deg); } to { opacity: 0; transform: rotate(315deg); } } @keyframes md-checkbox-indeterminate-unchecked-mixedmark { 0% { animation-timing-function: linear; opacity: 1; transform: scaleX(1); } 32.8%, 100% { opacity: 0; transform: scaleX(0); } } .md-checkbox-frame, .md-checkbox-background, .md-checkbox-checkmark { bottom: 0; left: 0; position: absolute; right: 0; top: 0; } .md-checkbox-checkmark, .md-checkbox-mixedmark { width: calc(100% - 4px); } .md-checkbox-frame, .md-checkbox-background { border-radius: 2px; box-sizing: border-box; pointer-events: none; } md-checkbox { cursor: pointer; } .md-checkbox-layout { cursor: inherit; align-items: baseline; display: inline-flex; } .md-checkbox-inner-container { display: inline-block; height: 20px; line-height: 0; margin: auto; margin-right: 8px; order: 0; position: relative; vertical-align: middle; white-space: nowrap; width: 20px; } [dir='rtl'] .md-checkbox-inner-container { margin-left: 8px; margin-right: auto; } .md-checkbox-layout .md-checkbox-label { line-height: 24px; } .md-checkbox-frame { background-color: transparent; border: 2px solid; transition: border-color 90ms cubic-bezier(0, 0, 0.2, 0.1); will-change: border-color; } .md-checkbox-background { align-items: center; display: inline-flex; justify-content: center; transition: background-color 90ms cubic-bezier(0, 0, 0.2, 0.1), opacity 90ms cubic-bezier(0, 0, 0.2, 0.1); will-change: background-color, opacity; } .md-checkbox-checkmark { width: 100%; } .md-checkbox-checkmark-path { stroke-dashoffset: 22.91026; stroke-dasharray: 22.91026; stroke-width: 2.66667px; } .md-checkbox-mixedmark { height: 2px; opacity: 0; transform: scaleX(0) rotate(0deg); } .md-checkbox-align-end .md-checkbox-inner-container { order: 1; margin-left: 8px; margin-right: auto; } [dir='rtl'] .md-checkbox-align-end .md-checkbox-inner-container { margin-left: auto; margin-right: 8px; } .md-checkbox-checked .md-checkbox-checkmark { opacity: 1; } .md-checkbox-checked .md-checkbox-checkmark-path { stroke-dashoffset: 0; } .md-checkbox-checked .md-checkbox-mixedmark { transform: scaleX(1) rotate(-45deg); } .md-checkbox-indeterminate .md-checkbox-checkmark { opacity: 0; transform: rotate(45deg); } .md-checkbox-indeterminate .md-checkbox-checkmark-path { stroke-dashoffset: 0; } .md-checkbox-indeterminate .md-checkbox-mixedmark { opacity: 1; transform: scaleX(1) rotate(0deg); } .md-checkbox-unchecked .md-checkbox-background { background-color: transparent; } .md-checkbox-disabled { cursor: default; } .md-checkbox-anim-unchecked-checked .md-checkbox-background { animation: 180ms linear 0ms md-checkbox-fade-in-background; } .md-checkbox-anim-unchecked-checked .md-checkbox-checkmark-path { animation: 180ms linear 0ms md-checkbox-unchecked-checked-checkmark-path; } .md-checkbox-anim-unchecked-indeterminate .md-checkbox-background { animation: 180ms linear 0ms md-checkbox-fade-in-background; } .md-checkbox-anim-unchecked-indeterminate .md-checkbox-mixedmark { animation: 90ms linear 0ms md-checkbox-unchecked-indeterminate-mixedmark; } .md-checkbox-anim-checked-unchecked .md-checkbox-background { animation: 180ms linear 0ms md-checkbox-fade-out-background; } .md-checkbox-anim-checked-unchecked .md-checkbox-checkmark-path { animation: 90ms linear 0ms md-checkbox-checked-unchecked-checkmark-path; } .md-checkbox-anim-checked-indeterminate .md-checkbox-checkmark { animation: 90ms linear 0ms md-checkbox-checked-indeterminate-checkmark; } .md-checkbox-anim-checked-indeterminate .md-checkbox-mixedmark { animation: 90ms linear 0ms md-checkbox-checked-indeterminate-mixedmark; } .md-checkbox-anim-indeterminate-checked .md-checkbox-checkmark { animation: 500ms linear 0ms md-checkbox-indeterminate-checked-checkmark; } .md-checkbox-anim-indeterminate-checked .md-checkbox-mixedmark { animation: 500ms linear 0ms md-checkbox-indeterminate-checked-mixedmark; } .md-checkbox-anim-indeterminate-unchecked .md-checkbox-background { animation: 180ms linear 0ms md-checkbox-fade-out-background; } .md-checkbox-anim-indeterminate-unchecked .md-checkbox-mixedmark { animation: 300ms linear 0ms md-checkbox-indeterminate-unchecked-mixedmark; } .md-checkbox-input { bottom: 0; left: 50%; } .md-ink-ripple { border-radius: 50%; opacity: 0; height: 48px; left: 50%; overflow: hidden; pointer-events: none; position: absolute; top: 50%; transform: translate(-50%, -50%); transition: opacity ease 280ms, background-color ease 280ms; width: 48px; } .md-checkbox-focused .md-ink-ripple { opacity: 1; } .md-checkbox-disabled .md-ink-ripple { background-color: #000; } /*# sourceMappingURL=checkbox.css.map */ \"],\n host: {\n '[class.md-checkbox-indeterminate]': 'indeterminate',\n '[class.md-checkbox-checked]': 'checked',\n '[class.md-checkbox-disabled]': 'disabled',\n '[class.md-checkbox-align-end]': 'align == \"end\"',\n '[class.md-checkbox-focused]': 'hasFocus',\n },\n providers: [MD_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }), \n __metadata('design:paramtypes', [Renderer, ElementRef])\n ], MdCheckbox);\n return MdCheckbox;\n}());\nexport var MdCheckboxModule = (function () {\n function MdCheckboxModule() {\n }\n MdCheckboxModule.forRoot = function () {\n return {\n ngModule: MdCheckboxModule,\n providers: []\n };\n };\n MdCheckboxModule = __decorate([\n NgModule({\n exports: [MdCheckbox],\n declarations: [MdCheckbox],\n }), \n __metadata('design:paramtypes', [])\n ], MdCheckboxModule);\n return MdCheckboxModule;\n}());\n\n//# sourceMappingURL=checkbox.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Component, ContentChildren, Directive, EventEmitter, HostBinding, Input, Optional, Output, QueryList, ViewEncapsulation, forwardRef, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MdUniqueSelectionDispatcher } from '../core';\n/**\n * Provider Expression that allows md-radio-group to register as a ControlValueAccessor. This\n * allows it to support [(ngModel)] and ngControl.\n */\nexport var MD_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MdRadioGroup; }),\n multi: true\n};\n// TODO(mtlin):\n// Ink ripple is currently placeholder.\n// Determine motion spec for button transitions.\n// Design review.\n// RTL\n// Support forms API.\n// Use ChangeDetectionStrategy.OnPush\nvar _uniqueIdCounter = 0;\n/** A simple change event emitted by either MdRadioButton or MdRadioGroup. */\nexport var MdRadioChange = (function () {\n function MdRadioChange() {\n }\n return MdRadioChange;\n}());\nexport var MdRadioGroup = (function () {\n function MdRadioGroup() {\n /**\n * Selected value for group. Should equal the value of the selected radio button if there *is*\n * a corresponding radio button with a matching value. If there is *not* such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n */\n this._value = null;\n /** The HTML name attribute applied to radio buttons in this group. */\n this._name = \"md-radio-group-\" + _uniqueIdCounter++;\n /** Disables all individual radio buttons assigned to this group. */\n this._disabled = false;\n /** The currently selected radio button. Should match value. */\n this._selected = null;\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** The method to be called in order to update ngModel */\n this._controlValueAccessorChangeFn = function (value) { };\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n this.onTouched = function () { };\n /** Event emitted when the group value changes. */\n this.change = new EventEmitter();\n /** Child radio buttons. */\n this._radios = null;\n }\n Object.defineProperty(MdRadioGroup.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n set: function (value) {\n this._name = value;\n this._updateRadioButtonNames();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioGroup.prototype, \"disabled\", {\n get: function () {\n return this._disabled;\n },\n set: function (value) {\n // The presence of *any* disabled value makes the component disabled, *except* for false.\n this._disabled = (value != null && value !== false) ? true : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioGroup.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n set: function (newValue) {\n if (this._value != newValue) {\n // Set this before proceeding to ensure no circular loop occurs with selection.\n this._value = newValue;\n this._updateSelectedRadioFromValue();\n // Only fire a change event if this isn't the first time the value is ever set.\n if (this._isInitialized) {\n this._emitChangeEvent();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioGroup.prototype, \"selected\", {\n get: function () {\n return this._selected;\n },\n set: function (selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n if (selected && !selected.checked) {\n selected.checked = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Initialize properties once content children are available.\n * This allows us to propagate relevant attributes to associated buttons.\n * TODO: internal\n */\n MdRadioGroup.prototype.ngAfterContentInit = function () {\n // Mark this component as initialized in AfterContentInit because the initial value can\n // possibly be set by NgModel on MdRadioGroup, and it is possible that the OnInit of the\n // NgModel occurs *after* the OnInit of the MdRadioGroup.\n this._isInitialized = true;\n };\n /**\n * Mark this group as being \"touched\" (for ngModel). Meant to be called by the contained\n * radio buttons upon their blur.\n */\n MdRadioGroup.prototype._touch = function () {\n if (this.onTouched) {\n this.onTouched();\n }\n };\n MdRadioGroup.prototype._updateRadioButtonNames = function () {\n var _this = this;\n if (this._radios) {\n this._radios.forEach(function (radio) {\n radio.name = _this.name;\n });\n }\n };\n /** Updates the `selected` radio button from the internal _value state. */\n MdRadioGroup.prototype._updateSelectedRadioFromValue = function () {\n var _this = this;\n // If the value already matches the selected radio, do nothing.\n var isAlreadySelected = this._selected != null && this._selected.value == this._value;\n if (this._radios != null && !isAlreadySelected) {\n var matchingRadio = this._radios.filter(function (radio) { return radio.value == _this._value; })[0];\n if (matchingRadio) {\n this.selected = matchingRadio;\n }\n else if (this.value == null) {\n this.selected = null;\n this._radios.forEach(function (radio) { radio.checked = false; });\n }\n }\n };\n /** Dispatch change event with current selection and group value. */\n MdRadioGroup.prototype._emitChangeEvent = function () {\n var event = new MdRadioChange();\n event.source = this._selected;\n event.value = this._value;\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdRadioGroup.prototype.writeValue = function (value) {\n this.value = value;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdRadioGroup.prototype.registerOnChange = function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdRadioGroup.prototype.registerOnTouched = function (fn) {\n this.onTouched = fn;\n };\n __decorate([\n Output(), \n __metadata('design:type', EventEmitter)\n ], MdRadioGroup.prototype, \"change\", void 0);\n __decorate([\n ContentChildren(forwardRef(function () { return MdRadioButton; })), \n __metadata('design:type', QueryList)\n ], MdRadioGroup.prototype, \"_radios\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdRadioGroup.prototype, \"name\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdRadioGroup.prototype, \"align\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Boolean)\n ], MdRadioGroup.prototype, \"disabled\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdRadioGroup.prototype, \"value\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdRadioGroup.prototype, \"selected\", null);\n MdRadioGroup = __decorate([\n Directive({\n selector: 'md-radio-group',\n providers: [MD_RADIO_GROUP_CONTROL_VALUE_ACCESSOR],\n host: {\n 'role': 'radiogroup',\n },\n }), \n __metadata('design:paramtypes', [])\n ], MdRadioGroup);\n return MdRadioGroup;\n}());\nexport var MdRadioButton = (function () {\n function MdRadioButton(radioGroup, radioDispatcher) {\n // Assertions. Ideally these should be stripped out by the compiler.\n // TODO(jelbourn): Assert that there's no name binding AND a parent radio group.\n var _this = this;\n this.radioDispatcher = radioDispatcher;\n /** Whether this radio is checked. */\n this._checked = false;\n /** The unique ID for the radio button. */\n this.id = \"md-radio-\" + _uniqueIdCounter++;\n /** Value assigned to this radio.*/\n this._value = null;\n /** Event emitted when the group value changes. */\n this.change = new EventEmitter();\n this.radioGroup = radioGroup;\n radioDispatcher.listen(function (id, name) {\n if (id != _this.id && name == _this.name) {\n _this.checked = false;\n }\n });\n }\n Object.defineProperty(MdRadioButton.prototype, \"inputId\", {\n get: function () {\n return this.id + \"-input\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioButton.prototype, \"checked\", {\n get: function () {\n return this._checked;\n },\n set: function (newCheckedState) {\n if (newCheckedState) {\n // Notify all radio buttons with the same name to un-check.\n this.radioDispatcher.notify(this.id, this.name);\n }\n this._checked = newCheckedState;\n if (newCheckedState && this.radioGroup && this.radioGroup.value != this.value) {\n this.radioGroup.selected = this;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioButton.prototype, \"value\", {\n /** MdRadioGroup reads this to assign its own value. */\n get: function () {\n return this._value;\n },\n set: function (value) {\n if (this._value != value) {\n if (this.radioGroup != null && this.checked) {\n this.radioGroup.value = value;\n }\n this._value = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioButton.prototype, \"align\", {\n get: function () {\n return this._align || (this.radioGroup != null && this.radioGroup.align) || 'start';\n },\n set: function (value) {\n this._align = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdRadioButton.prototype, \"disabled\", {\n get: function () {\n return this._disabled || (this.radioGroup != null && this.radioGroup.disabled);\n },\n set: function (value) {\n // The presence of *any* disabled value makes the component disabled, *except* for false.\n this._disabled = (value != null && value !== false) ? true : null;\n },\n enumerable: true,\n configurable: true\n });\n /** TODO: internal */\n MdRadioButton.prototype.ngOnInit = function () {\n if (this.radioGroup) {\n // If the radio is inside a radio group, determine if it should be checked\n this.checked = this.radioGroup.value === this._value;\n // Copy name from parent radio group\n this.name = this.radioGroup.name;\n }\n };\n /** Dispatch change event with current value. */\n MdRadioButton.prototype._emitChangeEvent = function () {\n var event = new MdRadioChange();\n event.source = this;\n event.value = this._value;\n this.change.emit(event);\n };\n /**\n * We use a hidden native input field to handle changes to focus state via keyboard navigation,\n * with visual rendering done separately. The native element is kept in sync with the overall\n * state of the component.\n */\n MdRadioButton.prototype._onInputFocus = function () {\n this._isFocused = true;\n };\n /** TODO: internal */\n MdRadioButton.prototype._onInputBlur = function () {\n this._isFocused = false;\n if (this.radioGroup) {\n this.radioGroup._touch();\n }\n };\n /** TODO: internal */\n MdRadioButton.prototype._onInputClick = function (event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `radio-button` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n };\n /**\n * Triggered when the radio button received a click or the input recognized any change.\n * Clicking on a label element, will trigger a change event on the associated input.\n * TODO: internal\n */\n MdRadioButton.prototype._onInputChange = function (event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n this.checked = true;\n this._emitChangeEvent();\n if (this.radioGroup) {\n this.radioGroup._touch();\n }\n };\n __decorate([\n HostBinding('class.md-radio-focused'), \n __metadata('design:type', Boolean)\n ], MdRadioButton.prototype, \"_isFocused\", void 0);\n __decorate([\n HostBinding('id'),\n Input(), \n __metadata('design:type', String)\n ], MdRadioButton.prototype, \"id\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdRadioButton.prototype, \"name\", void 0);\n __decorate([\n Input('aria-label'), \n __metadata('design:type', String)\n ], MdRadioButton.prototype, \"ariaLabel\", void 0);\n __decorate([\n Input('aria-labelledby'), \n __metadata('design:type', String)\n ], MdRadioButton.prototype, \"ariaLabelledby\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', EventEmitter)\n ], MdRadioButton.prototype, \"change\", void 0);\n __decorate([\n HostBinding('class.md-radio-checked'),\n Input(), \n __metadata('design:type', Boolean)\n ], MdRadioButton.prototype, \"checked\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdRadioButton.prototype, \"value\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdRadioButton.prototype, \"align\", null);\n __decorate([\n HostBinding('class.md-radio-disabled'),\n Input(), \n __metadata('design:type', Boolean)\n ], MdRadioButton.prototype, \"disabled\", null);\n MdRadioButton = __decorate([\n Component({selector: 'md-radio-button',\n template: \"<!-- TODO(jelbourn): render the radio on either side of the content --> <!-- TODO(mtlin): Evaluate trade-offs of using native radio vs. cost of additional bindings. --> <label [attr.for]=\\\"inputId\\\" class=\\\"md-radio-label\\\"> <!-- The actual 'radio' part of the control. --> <div class=\\\"md-radio-container\\\"> <div class=\\\"md-radio-outer-circle\\\"></div> <div class=\\\"md-radio-inner-circle\\\"></div> <div class=\\\"md-ink-ripple\\\"></div> </div> <input #input class=\\\"md-radio-input md-visually-hidden\\\" type=\\\"radio\\\" [id]=\\\"inputId\\\" [checked]=\\\"checked\\\" [disabled]=\\\"disabled\\\" [name]=\\\"name\\\" [attr.aria-label]=\\\"ariaLabel\\\" [attr.aria-labelledby]=\\\"ariaLabelledby\\\" (change)=\\\"_onInputChange($event)\\\" (focus)=\\\"_onInputFocus()\\\" (blur)=\\\"_onInputBlur()\\\" (click)=\\\"_onInputClick($event)\\\"> <!-- The label content for radio control. --> <div class=\\\"md-radio-label-content\\\" [class.md-radio-align-end]=\\\"align == 'end'\\\"> <ng-content></ng-content> </div> </label> \",\n styles: [\"md-radio-button { display: inline-block; } .md-radio-label { cursor: pointer; display: inline-flex; align-items: baseline; white-space: nowrap; } .md-radio-container { box-sizing: border-box; display: inline-block; height: 20px; position: relative; width: 20px; top: 2px; } .md-radio-outer-circle { border: solid 2px; border-radius: 50%; box-sizing: border-box; height: 20px; left: 0; position: absolute; top: 0; transition: border-color ease 280ms; width: 20px; } .md-radio-inner-circle { border-radius: 50%; box-sizing: border-box; height: 20px; left: 0; position: absolute; top: 0; transition: transform ease 280ms, background-color ease 280ms; transform: scale(0); width: 20px; } .md-radio-checked .md-radio-inner-circle { transform: scale(0.5); } .md-radio-label-content { display: inline-block; order: 0; line-height: inherit; padding-left: 8px; padding-right: 0; } [dir='rtl'] .md-radio-label-content { padding-right: 8px; padding-left: 0; } .md-radio-label-content.md-radio-align-end { order: -1; padding-left: 0; padding-right: 8px; } [dir='rtl'] .md-radio-label-content.md-radio-align-end { padding-right: 0; padding-left: 8px; } .md-radio-disabled, .md-radio-disabled .md-radio-label { cursor: default; } .md-ink-ripple { border-radius: 50%; opacity: 0; height: 48px; left: 50%; overflow: hidden; pointer-events: none; position: absolute; top: 50%; transform: translate(-50%, -50%); transition: opacity ease 280ms, background-color ease 280ms; width: 48px; } .md-radio-focused .md-ink-ripple { opacity: 1; } .md-radio-disabled .md-ink-ripple { background-color: #000; } /*# sourceMappingURL=radio.css.map */ \"],\n encapsulation: ViewEncapsulation.None\n }),\n __param(0, Optional()), \n __metadata('design:paramtypes', [MdRadioGroup, MdUniqueSelectionDispatcher])\n ], MdRadioButton);\n return MdRadioButton;\n}());\nexport var MdRadioModule = (function () {\n function MdRadioModule() {\n }\n MdRadioModule.forRoot = function () {\n return {\n ngModule: MdRadioModule,\n providers: [MdUniqueSelectionDispatcher],\n };\n };\n MdRadioModule = __decorate([\n NgModule({\n exports: [MdRadioGroup, MdRadioButton],\n declarations: [MdRadioGroup, MdRadioButton],\n }), \n __metadata('design:paramtypes', [])\n ], MdRadioModule);\n return MdRadioModule;\n}());\n\n//# sourceMappingURL=radio.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewEncapsulation } from '@angular/core';\nexport var MdSelect = (function () {\n function MdSelect() {\n }\n MdSelect = __decorate([\n Component({selector: 'md-select',\n template: \"I'm a select!\",\n styles: [\" /*# sourceMappingURL=select.css.map */ \"],\n encapsulation: ViewEncapsulation.None\n }), \n __metadata('design:paramtypes', [])\n ], MdSelect);\n return MdSelect;\n}());\n\n//# sourceMappingURL=select.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule } from '@angular/core';\nimport { MdSelect } from './select';\nexport * from './select';\nexport var MdSelectModule = (function () {\n function MdSelectModule() {\n }\n MdSelectModule.forRoot = function () {\n return {\n ngModule: MdSelectModule,\n providers: []\n };\n };\n MdSelectModule = __decorate([\n NgModule({\n imports: [],\n exports: [MdSelect],\n declarations: [MdSelect],\n }), \n __metadata('design:paramtypes', [])\n ], MdSelectModule);\n return MdSelectModule;\n}());\n\n//# sourceMappingURL=index.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ElementRef, Renderer, forwardRef, ChangeDetectionStrategy, Input, Output, EventEmitter, NgModule } from '@angular/core';\nimport { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanFieldValue, applyCssTransform } from '../core';\nimport { Observable } from 'rxjs/Observable';\nimport { MdGestureConfig } from '../core';\nexport var MD_SLIDE_TOGGLE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MdSlideToggle; }),\n multi: true\n};\n// A simple change event emitted by the MdSlideToggle component.\nexport var MdSlideToggleChange = (function () {\n function MdSlideToggleChange() {\n }\n return MdSlideToggleChange;\n}());\n// Increasing integer for generating unique ids for slide-toggle components.\nvar nextId = 0;\nexport var MdSlideToggle = (function () {\n function MdSlideToggle(_elementRef, _renderer) {\n var _this = this;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this.onChange = function (_) { };\n this.onTouched = function () { };\n // A unique id for the slide-toggle. By default the id is auto-generated.\n this._uniqueId = \"md-slide-toggle-\" + ++nextId;\n this._checked = false;\n this._hasFocus = false;\n this._isMousedown = false;\n this._slideRenderer = null;\n this.disabled = false;\n this.required = false;\n this.name = null;\n this.id = this._uniqueId;\n this.tabIndex = 0;\n this.ariaLabel = null;\n this.ariaLabelledby = null;\n this._change = new EventEmitter();\n this.change = this._change.asObservable();\n // Returns the unique id for the visual hidden input.\n this.getInputId = function () { return ((_this.id || _this._uniqueId) + \"-input\"); };\n }\n /** TODO: internal */\n MdSlideToggle.prototype.ngAfterContentInit = function () {\n this._slideRenderer = new SlideToggleRenderer(this._elementRef);\n };\n /**\n * The onChangeEvent method will be also called on click.\n * This is because everything for the slide-toggle is wrapped inside of a label,\n * which triggers a onChange event on click.\n */\n MdSlideToggle.prototype._onChangeEvent = function (event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the component's `change` output.\n event.stopPropagation();\n // Once a drag is currently in progress, we do not want to toggle the slide-toggle on a click.\n if (!this.disabled && !this._slideRenderer.isDragging()) {\n this.toggle();\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this._emitChangeEvent();\n }\n };\n MdSlideToggle.prototype._onInputClick = function (event) {\n this.onTouched();\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `slide-toggle` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n };\n MdSlideToggle.prototype._setMousedown = function () {\n var _this = this;\n // We only *show* the focus style when focus has come to the button via the keyboard.\n // The Material Design spec is silent on this topic, and without doing this, the\n // button continues to look :active after clicking.\n // @see http://marcysutton.com/button-focus-hell/\n this._isMousedown = true;\n setTimeout(function () { return _this._isMousedown = false; }, 100);\n };\n MdSlideToggle.prototype._onInputFocus = function () {\n // Only show the focus / ripple indicator when the focus was not triggered by a mouse\n // interaction on the component.\n if (!this._isMousedown) {\n this._hasFocus = true;\n }\n };\n MdSlideToggle.prototype._onInputBlur = function () {\n this._hasFocus = false;\n this.onTouched();\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdSlideToggle.prototype.writeValue = function (value) {\n this.checked = value;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdSlideToggle.prototype.registerOnChange = function (fn) {\n this.onChange = fn;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdSlideToggle.prototype.registerOnTouched = function (fn) {\n this.onTouched = fn;\n };\n Object.defineProperty(MdSlideToggle.prototype, \"checked\", {\n get: function () {\n return !!this._checked;\n },\n set: function (value) {\n if (this.checked !== !!value) {\n this._checked = value;\n this.onChange(this._checked);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSlideToggle.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value) {\n this._updateColor(value);\n },\n enumerable: true,\n configurable: true\n });\n MdSlideToggle.prototype.toggle = function () {\n this.checked = !this.checked;\n };\n MdSlideToggle.prototype._updateColor = function (newColor) {\n this._setElementColor(this._color, false);\n this._setElementColor(newColor, true);\n this._color = newColor;\n };\n MdSlideToggle.prototype._setElementColor = function (color, isAdd) {\n if (color != null && color != '') {\n this._renderer.setElementClass(this._elementRef.nativeElement, \"md-\" + color, isAdd);\n }\n };\n /** Emits the change event to the `change` output EventEmitter */\n MdSlideToggle.prototype._emitChangeEvent = function () {\n var event = new MdSlideToggleChange();\n event.source = this;\n event.checked = this.checked;\n this._change.emit(event);\n };\n /** TODO: internal */\n MdSlideToggle.prototype._onDragStart = function () {\n this._slideRenderer.startThumbDrag(this.checked);\n };\n /** TODO: internal */\n MdSlideToggle.prototype._onDrag = function (event) {\n this._slideRenderer.updateThumbPosition(event.deltaX);\n };\n /** TODO: internal */\n MdSlideToggle.prototype._onDragEnd = function () {\n var _this = this;\n // Notice that we have to stop outside of the current event handler,\n // because otherwise the click event will be fired and will reset the new checked variable.\n setTimeout(function () {\n _this.checked = _this._slideRenderer.stopThumbDrag();\n }, 0);\n };\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdSlideToggle.prototype, \"disabled\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdSlideToggle.prototype, \"required\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdSlideToggle.prototype, \"name\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdSlideToggle.prototype, \"id\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdSlideToggle.prototype, \"tabIndex\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdSlideToggle.prototype, \"ariaLabel\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdSlideToggle.prototype, \"ariaLabelledby\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', Observable)\n ], MdSlideToggle.prototype, \"change\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdSlideToggle.prototype, \"checked\", null);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdSlideToggle.prototype, \"color\", null);\n MdSlideToggle = __decorate([\n Component({selector: 'md-slide-toggle',\n host: {\n '[class.md-checked]': 'checked',\n '[class.md-disabled]': 'disabled',\n // This md-slide-toggle prefix will change, once the temporary ripple is removed.\n '[class.md-slide-toggle-focused]': '_hasFocus',\n '(mousedown)': '_setMousedown()'\n },\n template: \"<label class=\\\"md-slide-toggle-label\\\"> <div class=\\\"md-slide-toggle-container\\\"> <div class=\\\"md-slide-toggle-bar\\\"></div> <div class=\\\"md-slide-toggle-thumb-container\\\" (slidestart)=\\\"_onDragStart()\\\" (slide)=\\\"_onDrag($event)\\\" (slideend)=\\\"_onDragEnd()\\\"> <div class=\\\"md-slide-toggle-thumb\\\"> <div class=\\\"md-ink-ripple\\\"></div> </div> </div> <input #input class=\\\"md-slide-toggle-input md-visually-hidden\\\" type=\\\"checkbox\\\" [id]=\\\"getInputId()\\\" [required]=\\\"required\\\" [tabIndex]=\\\"tabIndex\\\" [checked]=\\\"checked\\\" [disabled]=\\\"disabled\\\" [attr.name]=\\\"name\\\" [attr.aria-label]=\\\"ariaLabel\\\" [attr.aria-labelledby]=\\\"ariaLabelledby\\\" (blur)=\\\"_onInputBlur()\\\" (focus)=\\\"_onInputFocus()\\\" (change)=\\\"_onChangeEvent($event)\\\" (click)=\\\"_onInputClick($event)\\\"> </div> <span class=\\\"md-slide-toggle-content\\\"> <ng-content></ng-content> </span> </label> \",\n styles: [\":host { display: flex; height: 24px; margin: 16px 0; line-height: 24px; white-space: nowrap; user-select: none; outline: none; } :host.md-checked .md-slide-toggle-thumb-container { transform: translate3d(100%, 0, 0); } :host .md-ink-ripple { border-radius: 50%; opacity: 0; height: 48px; left: 50%; overflow: hidden; pointer-events: none; position: absolute; top: 50%; transform: translate(-50%, -50%); transition: opacity ease 280ms, background-color ease 280ms; width: 48px; } :host.md-slide-toggle-focused .md-ink-ripple { opacity: 1; } :host.md-slide-toggle-disabled .md-ink-ripple { background-color: #000; } :host.md-disabled .md-slide-toggle-label, :host.md-disabled .md-slide-toggle-container { cursor: default; } .md-slide-toggle-content { font-size: 14px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; font-weight: 500; } .md-slide-toggle-label { display: flex; flex: 1; cursor: pointer; } .md-slide-toggle-container { cursor: grab; width: 36px; height: 24px; position: relative; user-select: none; margin-right: 8px; } .md-slide-toggle-thumb-container { position: absolute; top: 2px; left: 0; z-index: 1; width: 16px; transform: translate3d(0, 0, 0); transition: all 80ms linear; transition-property: transform; } .md-slide-toggle-thumb-container.md-dragging { transition-duration: 0ms; } .md-slide-toggle-thumb { position: absolute; margin: 0; left: 0; top: 0; height: 20px; width: 20px; border-radius: 50%; box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); } .md-slide-toggle-bar { position: absolute; left: 1px; top: 5px; width: 34px; height: 14px; border-radius: 8px; } .md-slide-toggle-input { bottom: 0; left: 10px; } .md-slide-toggle-bar, .md-slide-toggle-thumb { transition: all 80ms linear; transition-property: background-color; transition-delay: 50ms; } /*# sourceMappingURL=slide-toggle.css.map */ \"],\n providers: [MD_SLIDE_TOGGLE_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n }), \n __metadata('design:paramtypes', [ElementRef, Renderer])\n ], MdSlideToggle);\n return MdSlideToggle;\n}());\n/**\n * Renderer for the Slide Toggle component, which separates DOM modification in its own class\n */\nvar SlideToggleRenderer = (function () {\n function SlideToggleRenderer(_elementRef) {\n this._elementRef = _elementRef;\n this._thumbEl = _elementRef.nativeElement.querySelector('.md-slide-toggle-thumb-container');\n this._thumbBarEl = _elementRef.nativeElement.querySelector('.md-slide-toggle-bar');\n }\n /** Whether the slide-toggle is currently dragging. */\n SlideToggleRenderer.prototype.isDragging = function () {\n return !!this._thumbBarWidth;\n };\n /** Initializes the drag of the slide-toggle. */\n SlideToggleRenderer.prototype.startThumbDrag = function (checked) {\n if (!this._thumbBarWidth) {\n this._thumbBarWidth = this._thumbBarEl.clientWidth - this._thumbEl.clientWidth;\n this._checked = checked;\n this._thumbEl.classList.add('md-dragging');\n }\n };\n /** Stops the current drag and returns the new checked value. */\n SlideToggleRenderer.prototype.stopThumbDrag = function () {\n if (this._thumbBarWidth) {\n this._thumbBarWidth = null;\n this._thumbEl.classList.remove('md-dragging');\n applyCssTransform(this._thumbEl, '');\n return this._percentage > 50;\n }\n };\n /** Updates the thumb containers position from the specified distance. */\n SlideToggleRenderer.prototype.updateThumbPosition = function (distance) {\n if (this._thumbBarWidth) {\n this._percentage = this._getThumbPercentage(distance);\n applyCssTransform(this._thumbEl, \"translate3d(\" + this._percentage + \"%, 0, 0)\");\n }\n };\n /** Retrieves the percentage of thumb from the moved distance. */\n SlideToggleRenderer.prototype._getThumbPercentage = function (distance) {\n var percentage = (distance / this._thumbBarWidth) * 100;\n // When the toggle was initially checked, then we have to start the drag at the end.\n if (this._checked) {\n percentage += 100;\n }\n return Math.max(0, Math.min(percentage, 100));\n };\n return SlideToggleRenderer;\n}());\nexport var MdSlideToggleModule = (function () {\n function MdSlideToggleModule() {\n }\n MdSlideToggleModule.forRoot = function () {\n return {\n ngModule: MdSlideToggleModule,\n providers: [{ provide: HAMMER_GESTURE_CONFIG, useClass: MdGestureConfig }]\n };\n };\n MdSlideToggleModule = __decorate([\n NgModule({\n imports: [FormsModule],\n exports: [MdSlideToggle],\n declarations: [MdSlideToggle],\n }), \n __metadata('design:paramtypes', [])\n ], MdSlideToggleModule);\n return MdSlideToggleModule;\n}());\n\n//# sourceMappingURL=slide-toggle.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Component, ElementRef, HostBinding, Input, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\nimport { BooleanFieldValue, MdGestureConfig, applyCssTransform } from '../core';\n/**\n * Visually, a 30px separation between tick marks looks best. This is very subjective but it is\n * the default separation we chose.\n */\nvar MIN_AUTO_TICK_SEPARATION = 30;\n/**\n * Provider Expression that allows md-slider to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)] and [formControl].\n */\nexport var MD_SLIDER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MdSlider; }),\n multi: true\n};\nexport var MdSlider = (function () {\n function MdSlider(elementRef) {\n /** A renderer to handle updating the slider's thumb and fill track. */\n this._renderer = null;\n /** The dimensions of the slider. */\n this._sliderDimensions = null;\n this.disabled = false;\n /** Whether or not to show the thumb label. */\n this.thumbLabel = false;\n /** The miniumum value that the slider can have. */\n this._min = 0;\n /** The maximum value that the slider can have. */\n this._max = 100;\n /** The percentage of the slider that coincides with the value. */\n this._percent = 0;\n this._controlValueAccessorChangeFn = function (value) { };\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n this.onTouched = function () { };\n /** The values at which the thumb will snap. */\n this.step = 1;\n /**\n * Whether or not the thumb is sliding.\n * Used to determine if there should be a transition for the thumb and fill track.\n * TODO: internal\n */\n this.isSliding = false;\n /**\n * Whether or not the slider is active (clicked or sliding).\n * Used to shrink and grow the thumb as according to the Material Design spec.\n * TODO: internal\n */\n this.isActive = false;\n /** Indicator for if the value has been set or not. */\n this._isInitialized = false;\n /** Value of the slider. */\n this._value = 0;\n this._renderer = new SliderRenderer(elementRef);\n }\n Object.defineProperty(MdSlider.prototype, \"min\", {\n get: function () {\n return this._min;\n },\n set: function (v) {\n // This has to be forced as a number to handle the math later.\n this._min = Number(v);\n // If the value wasn't explicitly set by the user, set it to the min.\n if (!this._isInitialized) {\n this.value = this._min;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSlider.prototype, \"max\", {\n get: function () {\n return this._max;\n },\n set: function (v) {\n this._max = Number(v);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSlider.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n set: function (v) {\n // Only set the value to a valid number. v is casted to an any as we know it will come in as a\n // string but it is labeled as a number which causes parseFloat to not accept it.\n if (isNaN(parseFloat(v))) {\n return;\n }\n this._value = Number(v);\n this._isInitialized = true;\n this._controlValueAccessorChangeFn(this._value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Once the slider has rendered, grab the dimensions and update the position of the thumb and\n * fill track.\n * TODO: internal\n */\n MdSlider.prototype.ngAfterContentInit = function () {\n this._sliderDimensions = this._renderer.getSliderDimensions();\n // This needs to be called after content init because the value can be set to the min if the\n // value itself isn't set. If this happens, the control value accessor needs to be updated.\n this._controlValueAccessorChangeFn(this.value);\n this.snapThumbToValue();\n this._updateTickSeparation();\n };\n /** TODO: internal */\n MdSlider.prototype.onClick = function (event) {\n if (this.disabled) {\n return;\n }\n this.isActive = true;\n this.isSliding = false;\n this._renderer.addFocus();\n this.updateValueFromPosition(event.clientX);\n this.snapThumbToValue();\n };\n /** TODO: internal */\n MdSlider.prototype.onSlide = function (event) {\n if (this.disabled) {\n return;\n }\n // Prevent the slide from selecting anything else.\n event.preventDefault();\n this.updateValueFromPosition(event.center.x);\n };\n /** TODO: internal */\n MdSlider.prototype.onSlideStart = function (event) {\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n this.isSliding = true;\n this.isActive = true;\n this._renderer.addFocus();\n this.updateValueFromPosition(event.center.x);\n };\n /** TODO: internal */\n MdSlider.prototype.onSlideEnd = function () {\n this.isSliding = false;\n this.snapThumbToValue();\n };\n /** TODO: internal */\n MdSlider.prototype.onResize = function () {\n this.isSliding = true;\n this._sliderDimensions = this._renderer.getSliderDimensions();\n // Skip updating the value and position as there is no new placement.\n this._renderer.updateThumbAndFillPosition(this._percent, this._sliderDimensions.width);\n };\n /** TODO: internal */\n MdSlider.prototype.onBlur = function () {\n this.isActive = false;\n this.onTouched();\n };\n /**\n * When the value changes without a physical position, the percentage needs to be recalculated\n * independent of the physical location.\n * This is also used to move the thumb to a snapped value once sliding is done.\n */\n MdSlider.prototype.updatePercentFromValue = function () {\n this._percent = this.calculatePercentage(this.value);\n };\n /**\n * Calculate the new value from the new physical location. The value will always be snapped.\n */\n MdSlider.prototype.updateValueFromPosition = function (pos) {\n var offset = this._sliderDimensions.left;\n var size = this._sliderDimensions.width;\n // The exact value is calculated from the event and used to find the closest snap value.\n this._percent = this.clamp((pos - offset) / size);\n var exactValue = this.calculateValue(this._percent);\n // This calculation finds the closest step by finding the closest whole number divisible by the\n // step relative to the min.\n var closestValue = Math.round((exactValue - this.min) / this.step) * this.step + this.min;\n // The value needs to snap to the min and max.\n this.value = this.clamp(closestValue, this.min, this.max);\n this._renderer.updateThumbAndFillPosition(this._percent, this._sliderDimensions.width);\n };\n /**\n * Snaps the thumb to the current value.\n * Called after a click or drag event is over.\n */\n MdSlider.prototype.snapThumbToValue = function () {\n this.updatePercentFromValue();\n this._renderer.updateThumbAndFillPosition(this._percent, this._sliderDimensions.width);\n };\n /**\n * Calculates the separation in pixels of tick marks. If there is no tick interval or the interval\n * is set to something other than a number or 'auto', nothing happens.\n */\n MdSlider.prototype._updateTickSeparation = function () {\n if (this._tickInterval == 'auto') {\n this._updateAutoTickSeparation();\n }\n else if (Number(this._tickInterval)) {\n this._updateTickSeparationFromInterval();\n }\n };\n /**\n * Calculates the optimal separation in pixels of tick marks based on the minimum auto tick\n * separation constant.\n */\n MdSlider.prototype._updateAutoTickSeparation = function () {\n // We're looking for the multiple of step for which the separation between is greater than the\n // minimum tick separation.\n var sliderWidth = this._sliderDimensions.width;\n // This is the total \"width\" of the slider in terms of values.\n var valueWidth = this.max - this.min;\n // Calculate how many values exist within 1px on the slider.\n var valuePerPixel = valueWidth / sliderWidth;\n // Calculate how many values exist in the minimum tick separation (px).\n var valuePerSeparation = valuePerPixel * MIN_AUTO_TICK_SEPARATION;\n // Calculate how many steps exist in this separation. This will be the lowest value you can\n // multiply step by to get a separation that is greater than or equal to the minimum tick\n // separation.\n var stepsPerSeparation = Math.ceil(valuePerSeparation / this.step);\n // Get the percentage of the slider for which this tick would be located so we can then draw\n // it on the slider.\n var tickPercentage = this.calculatePercentage((this.step * stepsPerSeparation) + this.min);\n // The pixel value of the tick is the percentage * the width of the slider. Use this to draw\n // the ticks on the slider.\n this._renderer.drawTicks(sliderWidth * tickPercentage);\n };\n /**\n * Calculates the separation of tick marks by finding the pixel value of the tickInterval.\n */\n MdSlider.prototype._updateTickSeparationFromInterval = function () {\n // Force tickInterval to be a number so it can be used in calculations.\n var interval = this._tickInterval;\n // Calculate the first value a tick will be located at by getting the step at which the interval\n // lands and adding that to the min.\n var tickValue = (this.step * interval) + this.min;\n // The percentage of the step on the slider is needed in order to calculate the pixel offset\n // from the beginning of the slider. This offset is the tick separation.\n var tickPercentage = this.calculatePercentage(tickValue);\n this._renderer.drawTicks(this._sliderDimensions.width * tickPercentage);\n };\n /**\n * Calculates the percentage of the slider that a value is.\n */\n MdSlider.prototype.calculatePercentage = function (value) {\n return (value - this.min) / (this.max - this.min);\n };\n /**\n * Calculates the value a percentage of the slider corresponds to.\n */\n MdSlider.prototype.calculateValue = function (percentage) {\n return this.min + (percentage * (this.max - this.min));\n };\n /**\n * Return a number between two numbers.\n */\n MdSlider.prototype.clamp = function (value, min, max) {\n if (min === void 0) { min = 0; }\n if (max === void 0) { max = 1; }\n return Math.max(min, Math.min(value, max));\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdSlider.prototype.writeValue = function (value) {\n this.value = value;\n if (this._sliderDimensions) {\n this.snapThumbToValue();\n }\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdSlider.prototype.registerOnChange = function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdSlider.prototype.registerOnTouched = function (fn) {\n this.onTouched = fn;\n };\n __decorate([\n Input(),\n BooleanFieldValue(),\n HostBinding('class.md-slider-disabled'),\n HostBinding('attr.aria-disabled'), \n __metadata('design:type', Boolean)\n ], MdSlider.prototype, \"disabled\", void 0);\n __decorate([\n Input('thumb-label'),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdSlider.prototype, \"thumbLabel\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdSlider.prototype, \"step\", void 0);\n __decorate([\n Input('tick-interval'), \n __metadata('design:type', Object)\n ], MdSlider.prototype, \"_tickInterval\", void 0);\n __decorate([\n Input(),\n HostBinding('attr.aria-valuemin'), \n __metadata('design:type', Object)\n ], MdSlider.prototype, \"min\", null);\n __decorate([\n Input(),\n HostBinding('attr.aria-valuemax'), \n __metadata('design:type', Object)\n ], MdSlider.prototype, \"max\", null);\n __decorate([\n Input(),\n HostBinding('attr.aria-valuenow'), \n __metadata('design:type', Object)\n ], MdSlider.prototype, \"value\", null);\n MdSlider = __decorate([\n Component({selector: 'md-slider',\n providers: [MD_SLIDER_VALUE_ACCESSOR],\n host: {\n 'tabindex': '0',\n '(click)': 'onClick($event)',\n '(slide)': 'onSlide($event)',\n '(slidestart)': 'onSlideStart($event)',\n '(slideend)': 'onSlideEnd()',\n '(window:resize)': 'onResize()',\n '(blur)': 'onBlur()',\n },\n template: \"<div class=\\\"md-slider-wrapper\\\"> <div class=\\\"md-slider-container\\\" [class.md-slider-sliding]=\\\"isSliding\\\" [class.md-slider-active]=\\\"isActive\\\" [class.md-slider-thumb-label-showing]=\\\"thumbLabel\\\"> <div class=\\\"md-slider-track-container\\\"> <div class=\\\"md-slider-track\\\"></div> <div class=\\\"md-slider-track md-slider-track-fill\\\"></div> <div class=\\\"md-slider-tick-container\\\"></div> <div class=\\\"md-slider-last-tick-container\\\"></div> </div> <div class=\\\"md-slider-thumb-container\\\"> <div class=\\\"md-slider-thumb-position\\\"> <div class=\\\"md-slider-thumb\\\"></div> <div class=\\\"md-slider-thumb-label\\\"> <span class=\\\"md-slider-thumb-label-text\\\">{{value}}</span> </div> </div> </div> </div> </div> \",\n styles: [\"md-slider { height: 48px; min-width: 128px; position: relative; padding: 0; display: inline-block; outline: none; vertical-align: middle; } md-slider *, md-slider *::after { box-sizing: border-box; } .md-slider-wrapper { width: 100%; height: 100%; padding-left: 8px; padding-right: 8px; } .md-slider-container { position: relative; } .md-slider-track-container { width: 100%; position: absolute; top: 23px; height: 2px; } .md-slider-track { position: absolute; left: 0; right: 0; height: 100%; } .md-slider-track-fill { transition-duration: 400ms; transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); transition-property: width, height; } .md-slider-tick-container, .md-slider-last-tick-container { position: absolute; left: 0; right: 0; height: 100%; } .md-slider-thumb-container { position: absolute; left: 0; top: 50%; transform: translate3d(-50%, -50%, 0); transition-duration: 400ms; transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); transition-property: left, bottom; } .md-slider-thumb-position { transition: transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } .md-slider-thumb { z-index: 1; position: absolute; top: 14px; left: -10px; width: 20px; height: 20px; border-radius: 20px; transform: scale(0.7); transition: transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } .md-slider-thumb::after { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 20px; border-width: 3px; border-style: solid; transition: inherit; } .md-slider-thumb-label { display: flex; align-items: center; justify-content: center; position: absolute; left: -14px; top: -17px; width: 28px; height: 28px; border-radius: 50%; transform: scale(0.4) translate3d(0, 67.5px, 0) rotate(45deg); transition: 300ms cubic-bezier(0.35, 0, 0.25, 1); transition-property: transform, border-radius; } .md-slider-thumb-label-text { z-index: 1; font-size: 12px; font-weight: bold; opacity: 0; transform: rotate(-45deg); transition: opacity 300ms cubic-bezier(0.35, 0, 0.25, 1); } .md-slider-container:not(.md-slider-thumb-label-showing) .md-slider-thumb-label { display: none; } .md-slider-active.md-slider-thumb-label-showing .md-slider-thumb { transform: scale(0); } .md-slider-sliding .md-slider-thumb-position, .md-slider-sliding .md-slider-track-fill { transition: none; cursor: default; } .md-slider-active .md-slider-thumb { transform: scale(1); } .md-slider-active .md-slider-thumb-label { border-radius: 50% 50% 0; transform: rotate(45deg); } .md-slider-active .md-slider-thumb-label-text { opacity: 1; } /*# sourceMappingURL=slider.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n }), \n __metadata('design:paramtypes', [ElementRef])\n ], MdSlider);\n return MdSlider;\n}());\n/**\n * Renderer class in order to keep all dom manipulation in one place and outside of the main class.\n */\nexport var SliderRenderer = (function () {\n function SliderRenderer(elementRef) {\n this._sliderElement = elementRef.nativeElement;\n }\n /**\n * Get the bounding client rect of the slider track element.\n * The track is used rather than the native element to ignore the extra space that the thumb can\n * take up.\n */\n SliderRenderer.prototype.getSliderDimensions = function () {\n var trackElement = this._sliderElement.querySelector('.md-slider-track');\n return trackElement.getBoundingClientRect();\n };\n /**\n * Update the physical position of the thumb and fill track on the slider.\n */\n SliderRenderer.prototype.updateThumbAndFillPosition = function (percent, width) {\n // A container element that is used to avoid overwriting the transform on the thumb itself.\n var thumbPositionElement = this._sliderElement.querySelector('.md-slider-thumb-position');\n var fillTrackElement = this._sliderElement.querySelector('.md-slider-track-fill');\n var position = Math.round(percent * width);\n fillTrackElement.style.width = position + \"px\";\n applyCssTransform(thumbPositionElement, \"translateX(\" + position + \"px)\");\n };\n /**\n * Focuses the native element.\n * Currently only used to allow a blur event to fire but will be used with keyboard input later.\n */\n SliderRenderer.prototype.addFocus = function () {\n this._sliderElement.focus();\n };\n /**\n * Draws ticks onto the tick container.\n */\n SliderRenderer.prototype.drawTicks = function (tickSeparation) {\n var tickContainer = this._sliderElement.querySelector('.md-slider-tick-container');\n var tickContainerWidth = tickContainer.getBoundingClientRect().width;\n // An extra element for the last tick is needed because the linear gradient cannot be told to\n // always draw a tick at the end of the gradient. To get around this, there is a second\n // container for ticks that has a single tick mark on the very right edge.\n var lastTickContainer = this._sliderElement.querySelector('.md-slider-last-tick-container');\n // Subtract 1 from the tick separation to center the tick.\n // TODO: Evaluate the rendering performance of using repeating background gradients.\n tickContainer.style.background = \"repeating-linear-gradient(to right, black, black 2px, \" +\n (\"transparent 2px, transparent \" + (tickSeparation - 1) + \"px)\");\n // Add a tick to the very end by starting on the right side and adding a 2px black line.\n lastTickContainer.style.background = \"linear-gradient(to left, black, black 2px, transparent \" +\n \"2px, transparent)\";\n // If the second to last tick is too close (a separation of less than half the normal\n // separation), don't show it by decreasing the width of the tick container element.\n if (tickContainerWidth % tickSeparation < (tickSeparation / 2)) {\n tickContainer.style.width = tickContainerWidth - tickSeparation + 'px';\n }\n };\n return SliderRenderer;\n}());\nexport var MdSliderModule = (function () {\n function MdSliderModule() {\n }\n MdSliderModule.forRoot = function () {\n return {\n ngModule: MdSliderModule,\n providers: [{ provide: HAMMER_GESTURE_CONFIG, useClass: MdGestureConfig }]\n };\n };\n MdSliderModule = __decorate([\n NgModule({\n imports: [FormsModule],\n exports: [MdSlider],\n declarations: [MdSlider],\n providers: [\n { provide: HAMMER_GESTURE_CONFIG, useClass: MdGestureConfig },\n ],\n }), \n __metadata('design:paramtypes', [])\n ], MdSliderModule);\n return MdSliderModule;\n}());\n\n//# sourceMappingURL=slider.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { NgModule, Component, ContentChildren, ElementRef, HostBinding, Input, Optional, Output, QueryList, ChangeDetectionStrategy, EventEmitter, Renderer, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Dir, MdError } from '../core';\n/** Exception thrown when two MdSidenav are matching the same side. */\nexport var MdDuplicatedSidenavError = (function (_super) {\n __extends(MdDuplicatedSidenavError, _super);\n function MdDuplicatedSidenavError(align) {\n _super.call(this, \"A sidenav was already declared for 'align=\\\"\" + align + \"\\\"'\");\n }\n return MdDuplicatedSidenavError;\n}(MdError));\n/**\n * <md-sidenav> component.\n *\n * This component corresponds to the drawer of the sidenav.\n *\n * Please refer to README.md for examples on how to use it.\n */\nexport var MdSidenav = (function () {\n /**\n * @param _elementRef The DOM element reference. Used for transition and width calculation.\n * If not available we do not hook on transitions.\n */\n function MdSidenav(_elementRef) {\n this._elementRef = _elementRef;\n /** Alignment of the sidenav (direction neutral); whether 'start' or 'end'. */\n this.align = 'start';\n /** Mode of the sidenav; whether 'over' or 'side'. */\n this.mode = 'over';\n /** Whether the sidenav is opened. */\n this._opened = false;\n /** Event emitted when the sidenav is being opened. Use this to synchronize animations. */\n this.onOpenStart = new EventEmitter();\n /** Event emitted when the sidenav is fully opened. */\n this.onOpen = new EventEmitter();\n /** Event emitted when the sidenav is being closed. Use this to synchronize animations. */\n this.onCloseStart = new EventEmitter();\n /** Event emitted when the sidenav is fully closed. */\n this.onClose = new EventEmitter();\n this._transition = false;\n }\n Object.defineProperty(MdSidenav.prototype, \"opened\", {\n /**\n * Whether the sidenav is opened. We overload this because we trigger an event when it\n * starts or end.\n */\n get: function () { return this._opened; },\n set: function (v) {\n // TODO(jelbourn): this coercion goes away when BooleanFieldValue is removed.\n var booleanValue = v != null && \"\" + v !== 'false';\n this.toggle(booleanValue);\n },\n enumerable: true,\n configurable: true\n });\n /** Open this sidenav, and return a Promise that will resolve when it's fully opened (or get\n * rejected if it didn't). */\n MdSidenav.prototype.open = function () {\n return this.toggle(true);\n };\n /**\n * Close this sidenav, and return a Promise that will resolve when it's fully closed (or get\n * rejected if it didn't).\n */\n MdSidenav.prototype.close = function () {\n return this.toggle(false);\n };\n /**\n * Toggle this sidenav. This is equivalent to calling open() when it's already opened, or\n * close() when it's closed.\n * @param isOpen\n */\n MdSidenav.prototype.toggle = function (isOpen) {\n var _this = this;\n if (isOpen === void 0) { isOpen = !this.opened; }\n // Shortcut it if we're already opened.\n if (isOpen === this.opened) {\n if (!this._transition) {\n return Promise.resolve(null);\n }\n else {\n return isOpen ? this._openPromise : this._closePromise;\n }\n }\n this._opened = isOpen;\n this._transition = true;\n if (isOpen) {\n this.onOpenStart.emit(null);\n }\n else {\n this.onCloseStart.emit(null);\n }\n if (isOpen) {\n if (this._openPromise == null) {\n this._openPromise = new Promise(function (resolve, reject) {\n _this._openPromiseResolve = resolve;\n _this._openPromiseReject = reject;\n });\n }\n return this._openPromise;\n }\n else {\n if (this._closePromise == null) {\n this._closePromise = new Promise(function (resolve, reject) {\n _this._closePromiseResolve = resolve;\n _this._closePromiseReject = reject;\n });\n }\n return this._closePromise;\n }\n };\n /**\n * When transition has finished, set the internal state for classes and emit the proper event.\n * The event passed is actually of type TransitionEvent, but that type is not available in\n * Android so we use any.\n */\n MdSidenav.prototype._onTransitionEnd = function (transitionEvent) {\n if (transitionEvent.target == this._elementRef.nativeElement\n && transitionEvent.propertyName.endsWith('transform')) {\n this._transition = false;\n if (this._opened) {\n if (this._openPromise != null) {\n this._openPromiseResolve();\n }\n if (this._closePromise != null) {\n this._closePromiseReject();\n }\n this.onOpen.emit(null);\n }\n else {\n if (this._closePromise != null) {\n this._closePromiseResolve();\n }\n if (this._openPromise != null) {\n this._openPromiseReject();\n }\n this.onClose.emit(null);\n }\n this._openPromise = null;\n this._closePromise = null;\n }\n };\n Object.defineProperty(MdSidenav.prototype, \"_isClosing\", {\n get: function () {\n return !this._opened && this._transition;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_isOpening\", {\n get: function () {\n return this._opened && this._transition;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_isClosed\", {\n get: function () {\n return !this._opened && !this._transition;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_isOpened\", {\n get: function () {\n return this._opened && !this._transition;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_isEnd\", {\n get: function () {\n return this.align == 'end';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_modeSide\", {\n get: function () {\n return this.mode == 'side';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_modeOver\", {\n get: function () {\n return this.mode == 'over';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_modePush\", {\n get: function () {\n return this.mode == 'push';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenav.prototype, \"_width\", {\n /** TODO: internal (needed by MdSidenavLayout). */\n get: function () {\n if (this._elementRef.nativeElement) {\n return this._elementRef.nativeElement.offsetWidth;\n }\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"align\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"mode\", void 0);\n __decorate([\n Output('open-start'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"onOpenStart\", void 0);\n __decorate([\n Output('open'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"onOpen\", void 0);\n __decorate([\n Output('close-start'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"onCloseStart\", void 0);\n __decorate([\n Output('close'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"onClose\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Boolean)\n ], MdSidenav.prototype, \"opened\", null);\n __decorate([\n HostBinding('class.md-sidenav-closing'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_isClosing\", null);\n __decorate([\n HostBinding('class.md-sidenav-opening'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_isOpening\", null);\n __decorate([\n HostBinding('class.md-sidenav-closed'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_isClosed\", null);\n __decorate([\n HostBinding('class.md-sidenav-opened'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_isOpened\", null);\n __decorate([\n HostBinding('class.md-sidenav-end'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_isEnd\", null);\n __decorate([\n HostBinding('class.md-sidenav-side'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_modeSide\", null);\n __decorate([\n HostBinding('class.md-sidenav-over'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_modeOver\", null);\n __decorate([\n HostBinding('class.md-sidenav-push'), \n __metadata('design:type', Object)\n ], MdSidenav.prototype, \"_modePush\", null);\n MdSidenav = __decorate([\n Component({selector: 'md-sidenav',\n template: '<ng-content></ng-content>',\n host: {\n '(transitionend)': '_onTransitionEnd($event)',\n // must prevent the browser from aligning text based on value\n '[attr.align]': 'null'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n }), \n __metadata('design:paramtypes', [ElementRef])\n ], MdSidenav);\n return MdSidenav;\n}());\n/**\n * <md-sidenav-layout> component.\n *\n * This is the parent component to one or two <md-sidenav>s that validates the state internally\n * and coordinate the backdrop and content styling.\n */\nexport var MdSidenavLayout = (function () {\n function MdSidenavLayout(_dir, _element, _renderer) {\n var _this = this;\n this._dir = _dir;\n this._element = _element;\n this._renderer = _renderer;\n // If a `Dir` directive exists up the tree, listen direction changes and update the left/right\n // properties to point to the proper start/end.\n if (_dir != null) {\n _dir.dirChange.subscribe(function () { return _this._validateDrawers(); });\n }\n }\n Object.defineProperty(MdSidenavLayout.prototype, \"start\", {\n get: function () { return this._start; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdSidenavLayout.prototype, \"end\", {\n get: function () { return this._end; },\n enumerable: true,\n configurable: true\n });\n /** TODO: internal */\n MdSidenavLayout.prototype.ngAfterContentInit = function () {\n var _this = this;\n // On changes, assert on consistency.\n this._sidenavs.changes.subscribe(function () { return _this._validateDrawers(); });\n this._sidenavs.forEach(function (sidenav) { return _this._watchSidenavToggle(sidenav); });\n this._validateDrawers();\n };\n /*\n * Subscribes to sidenav events in order to set a class on the main layout element when the sidenav\n * is open and the backdrop is visible. This ensures any overflow on the layout element is properly\n * hidden.\n */\n MdSidenavLayout.prototype._watchSidenavToggle = function (sidenav) {\n var _this = this;\n if (!sidenav || sidenav.mode === 'side') {\n return;\n }\n sidenav.onOpen.subscribe(function () { return _this._setLayoutClass(sidenav, true); });\n sidenav.onClose.subscribe(function () { return _this._setLayoutClass(sidenav, false); });\n };\n /* Toggles the 'md-sidenav-opened' class on the main 'md-sidenav-layout' element. */\n MdSidenavLayout.prototype._setLayoutClass = function (sidenav, bool) {\n this._renderer.setElementClass(this._element.nativeElement, 'md-sidenav-opened', bool);\n };\n /** Validate the state of the sidenav children components. */\n MdSidenavLayout.prototype._validateDrawers = function () {\n var _this = this;\n this._start = this._end = null;\n // Ensure that we have at most one start and one end sidenav.\n this._sidenavs.forEach(function (sidenav) {\n if (sidenav.align == 'end') {\n if (_this._end != null) {\n throw new MdDuplicatedSidenavError('end');\n }\n _this._end = sidenav;\n }\n else {\n if (_this._start != null) {\n throw new MdDuplicatedSidenavError('start');\n }\n _this._start = sidenav;\n }\n });\n this._right = this._left = null;\n // Detect if we're LTR or RTL.\n if (this._dir == null || this._dir.value == 'ltr') {\n this._left = this._start;\n this._right = this._end;\n }\n else {\n this._left = this._end;\n this._right = this._start;\n }\n };\n MdSidenavLayout.prototype._closeModalSidenav = function () {\n if (this._start != null && this._start.mode != 'side') {\n this._start.close();\n }\n if (this._end != null && this._end.mode != 'side') {\n this._end.close();\n }\n };\n MdSidenavLayout.prototype._isShowingBackdrop = function () {\n return (this._isSidenavOpen(this._start) && this._start.mode != 'side')\n || (this._isSidenavOpen(this._end) && this._end.mode != 'side');\n };\n MdSidenavLayout.prototype._isSidenavOpen = function (side) {\n return side != null && side.opened;\n };\n /**\n * Return the width of the sidenav, if it's in the proper mode and opened.\n * This may relayout the view, so do not call this often.\n * @param sidenav\n * @param mode\n */\n MdSidenavLayout.prototype._getSidenavEffectiveWidth = function (sidenav, mode) {\n return (this._isSidenavOpen(sidenav) && sidenav.mode == mode) ? sidenav._width : 0;\n };\n MdSidenavLayout.prototype._getMarginLeft = function () {\n return this._getSidenavEffectiveWidth(this._left, 'side');\n };\n MdSidenavLayout.prototype._getMarginRight = function () {\n return this._getSidenavEffectiveWidth(this._right, 'side');\n };\n MdSidenavLayout.prototype._getPositionLeft = function () {\n return this._getSidenavEffectiveWidth(this._left, 'push');\n };\n MdSidenavLayout.prototype._getPositionRight = function () {\n return this._getSidenavEffectiveWidth(this._right, 'push');\n };\n /**\n * Returns the horizontal offset for the content area. There should never be a value for both\n * left and right, so by subtracting the right value from the left value, we should always get\n * the appropriate offset.\n */\n MdSidenavLayout.prototype._getPositionOffset = function () {\n return this._getPositionLeft() - this._getPositionRight();\n };\n /**\n * This is using [ngStyle] rather than separate [style...] properties because [style.transform]\n * doesn't seem to work right now.\n */\n MdSidenavLayout.prototype._getStyles = function () {\n return {\n marginLeft: this._getMarginLeft() + \"px\",\n marginRight: this._getMarginRight() + \"px\",\n transform: \"translate3d(\" + this._getPositionOffset() + \"px, 0, 0)\"\n };\n };\n __decorate([\n ContentChildren(MdSidenav), \n __metadata('design:type', QueryList)\n ], MdSidenavLayout.prototype, \"_sidenavs\", void 0);\n MdSidenavLayout = __decorate([\n Component({selector: 'md-sidenav-layout',\n // Do not use ChangeDetectionStrategy.OnPush. It does not work for this component because\n // technically it is a sibling of MdSidenav (on the content tree) and isn't updated when MdSidenav\n // changes its state.\n template: \"<div class=\\\"md-sidenav-backdrop\\\" (click)=\\\"_closeModalSidenav()\\\" [class.md-sidenav-shown]=\\\"_isShowingBackdrop()\\\"></div> <ng-content select=\\\"md-sidenav\\\"></ng-content> <div class=\\\"md-sidenav-content\\\" [ngStyle]=\\\"_getStyles()\\\"> <ng-content></ng-content> </div> \",\n styles: [\"md-sidenav-layout { position: relative; transform: translate3d(0, 0, 0); box-sizing: border-box; -webkit-overflow-scrolling: touch; display: block; overflow: hidden; } md-sidenav-layout[fullscreen] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; } md-sidenav-layout[fullscreen].md-sidenav-opened { overflow: hidden; } .md-sidenav-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: block; z-index: 2; visibility: hidden; } .md-sidenav-backdrop.md-sidenav-shown { visibility: visible; } .md-sidenav-content { position: relative; transform: translate3d(0, 0, 0); display: block; height: 100%; overflow: auto; } md-sidenav { position: relative; transform: translate3d(0, 0, 0); display: block; position: absolute; top: 0; bottom: 0; z-index: 3; min-width: 5%; overflow-y: auto; transform: translate3d(-100%, 0, 0); } md-sidenav.md-sidenav-closed { visibility: hidden; } md-sidenav.md-sidenav-closing { transform: translate3d(-100%, 0, 0); will-change: transform; } md-sidenav.md-sidenav-opening { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); visibility: visible; transform: translate3d(0, 0, 0); will-change: transform; } md-sidenav.md-sidenav-opened { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); transform: translate3d(0, 0, 0); } md-sidenav.md-sidenav-side { z-index: 1; } md-sidenav.md-sidenav-end { right: 0; transform: translate3d(100%, 0, 0); } md-sidenav.md-sidenav-end.md-sidenav-closed { visibility: hidden; } md-sidenav.md-sidenav-end.md-sidenav-closing { transform: translate3d(100%, 0, 0); will-change: transform; } md-sidenav.md-sidenav-end.md-sidenav-opening { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); visibility: visible; transform: translate3d(0, 0, 0); will-change: transform; } md-sidenav.md-sidenav-end.md-sidenav-opened { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); transform: translate3d(0, 0, 0); } [dir='rtl'] md-sidenav { transform: translate3d(100%, 0, 0); } [dir='rtl'] md-sidenav.md-sidenav-closed { visibility: hidden; } [dir='rtl'] md-sidenav.md-sidenav-closing { transform: translate3d(100%, 0, 0); will-change: transform; } [dir='rtl'] md-sidenav.md-sidenav-opening { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); visibility: visible; transform: translate3d(0, 0, 0); will-change: transform; } [dir='rtl'] md-sidenav.md-sidenav-opened { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); transform: translate3d(0, 0, 0); } [dir='rtl'] md-sidenav.md-sidenav-end { left: 0; right: auto; transform: translate3d(-100%, 0, 0); } [dir='rtl'] md-sidenav.md-sidenav-end.md-sidenav-closed { visibility: hidden; } [dir='rtl'] md-sidenav.md-sidenav-end.md-sidenav-closing { transform: translate3d(-100%, 0, 0); will-change: transform; } [dir='rtl'] md-sidenav.md-sidenav-end.md-sidenav-opening { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); visibility: visible; transform: translate3d(0, 0, 0); will-change: transform; } [dir='rtl'] md-sidenav.md-sidenav-end.md-sidenav-opened { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); transform: translate3d(0, 0, 0); } /*# sourceMappingURL=sidenav.css.map */ \",\n\"md-sidenav { transition: transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } .md-sidenav-content { transition: transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } .md-sidenav-backdrop.md-sidenav-shown { transition: background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } /*# sourceMappingURL=sidenav-transitions.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n }),\n __param(0, Optional()), \n __metadata('design:paramtypes', [Dir, ElementRef, Renderer])\n ], MdSidenavLayout);\n return MdSidenavLayout;\n}());\nexport var MdSidenavModule = (function () {\n function MdSidenavModule() {\n }\n MdSidenavModule.forRoot = function () {\n return {\n ngModule: MdSidenavModule,\n providers: []\n };\n };\n MdSidenavModule = __decorate([\n NgModule({\n imports: [CommonModule],\n exports: [MdSidenavLayout, MdSidenav],\n declarations: [MdSidenavLayout, MdSidenav],\n }), \n __metadata('design:paramtypes', [])\n ], MdSidenavModule);\n return MdSidenavModule;\n}());\n\n//# sourceMappingURL=sidenav.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewEncapsulation, ContentChildren, ContentChild, QueryList, Directive, ElementRef, Renderer, NgModule } from '@angular/core';\nimport { MdLine, MdLineSetter, MdLineModule } from '../core';\nexport var MdListDivider = (function () {\n function MdListDivider() {\n }\n MdListDivider = __decorate([\n Directive({\n selector: 'md-divider'\n }), \n __metadata('design:paramtypes', [])\n ], MdListDivider);\n return MdListDivider;\n}());\nexport var MdList = (function () {\n function MdList() {\n }\n MdList = __decorate([\n Component({selector: 'md-list, md-nav-list',\n host: { 'role': 'list' },\n template: '<ng-content></ng-content>',\n styles: [\"md-list, md-nav-list { padding-top: 8px; display: block; } md-list [md-subheader], md-nav-list [md-subheader] { display: block; box-sizing: border-box; height: 48px; padding: 16px; margin: 0; font-size: 14px; font-weight: 500; } md-list [md-subheader]:first-child, md-nav-list [md-subheader]:first-child { margin-top: -8px; } md-list md-list-item .md-list-item, md-list a[md-list-item] .md-list-item, md-nav-list md-list-item .md-list-item, md-nav-list a[md-list-item] .md-list-item { display: flex; flex-direction: row; align-items: center; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; box-sizing: border-box; font-size: 16px; height: 48px; padding: 0 16px; } md-list md-list-item.md-list-avatar .md-list-item, md-list a[md-list-item].md-list-avatar .md-list-item, md-nav-list md-list-item.md-list-avatar .md-list-item, md-nav-list a[md-list-item].md-list-avatar .md-list-item { height: 56px; } md-list md-list-item.md-2-line .md-list-item, md-list a[md-list-item].md-2-line .md-list-item, md-nav-list md-list-item.md-2-line .md-list-item, md-nav-list a[md-list-item].md-2-line .md-list-item { height: 72px; } md-list md-list-item.md-3-line .md-list-item, md-list a[md-list-item].md-3-line .md-list-item, md-nav-list md-list-item.md-3-line .md-list-item, md-nav-list a[md-list-item].md-3-line .md-list-item { height: 88px; } md-list md-list-item .md-list-text, md-list a[md-list-item] .md-list-text, md-nav-list md-list-item .md-list-text, md-nav-list a[md-list-item] .md-list-text { display: flex; flex-direction: column; width: 100%; box-sizing: border-box; overflow: hidden; padding: 0 16px; } md-list md-list-item .md-list-text > *, md-list a[md-list-item] .md-list-text > *, md-nav-list md-list-item .md-list-text > *, md-nav-list a[md-list-item] .md-list-text > * { margin: 0; padding: 0; font-weight: normal; font-size: inherit; } md-list md-list-item .md-list-text:empty, md-list a[md-list-item] .md-list-text:empty, md-nav-list md-list-item .md-list-text:empty, md-nav-list a[md-list-item] .md-list-text:empty { display: none; } md-list md-list-item .md-list-text:first-child, md-list a[md-list-item] .md-list-text:first-child, md-nav-list md-list-item .md-list-text:first-child, md-nav-list a[md-list-item] .md-list-text:first-child { padding: 0; } md-list md-list-item [md-list-avatar], md-list a[md-list-item] [md-list-avatar], md-nav-list md-list-item [md-list-avatar], md-nav-list a[md-list-item] [md-list-avatar] { width: 40px; height: 40px; border-radius: 50%; } md-list md-list-item [md-list-icon], md-list a[md-list-item] [md-list-icon], md-nav-list md-list-item [md-list-icon], md-nav-list a[md-list-item] [md-list-icon] { width: 24px; height: 24px; border-radius: 50%; padding: 4px; } md-list md-list-item [md-line], md-list a[md-list-item] [md-line], md-nav-list md-list-item [md-line], md-nav-list a[md-list-item] [md-line] { white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; display: block; box-sizing: border-box; } md-list md-list-item [md-line]:nth-child(n+2), md-list a[md-list-item] [md-line]:nth-child(n+2), md-nav-list md-list-item [md-line]:nth-child(n+2), md-nav-list a[md-list-item] [md-line]:nth-child(n+2) { font-size: 14px; } md-list[dense], md-nav-list[dense] { padding-top: 4px; display: block; } md-list[dense] [md-subheader], md-nav-list[dense] [md-subheader] { display: block; box-sizing: border-box; height: 40px; padding: 16px; margin: 0; font-size: 13px; font-weight: 500; } md-list[dense] [md-subheader]:first-child, md-nav-list[dense] [md-subheader]:first-child { margin-top: -4px; } md-list[dense] md-list-item .md-list-item, md-list[dense] a[md-list-item] .md-list-item, md-nav-list[dense] md-list-item .md-list-item, md-nav-list[dense] a[md-list-item] .md-list-item { display: flex; flex-direction: row; align-items: center; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; box-sizing: border-box; font-size: 13px; height: 40px; padding: 0 16px; } md-list[dense] md-list-item.md-list-avatar .md-list-item, md-list[dense] a[md-list-item].md-list-avatar .md-list-item, md-nav-list[dense] md-list-item.md-list-avatar .md-list-item, md-nav-list[dense] a[md-list-item].md-list-avatar .md-list-item { height: 48px; } md-list[dense] md-list-item.md-2-line .md-list-item, md-list[dense] a[md-list-item].md-2-line .md-list-item, md-nav-list[dense] md-list-item.md-2-line .md-list-item, md-nav-list[dense] a[md-list-item].md-2-line .md-list-item { height: 60px; } md-list[dense] md-list-item.md-3-line .md-list-item, md-list[dense] a[md-list-item].md-3-line .md-list-item, md-nav-list[dense] md-list-item.md-3-line .md-list-item, md-nav-list[dense] a[md-list-item].md-3-line .md-list-item { height: 76px; } md-list[dense] md-list-item .md-list-text, md-list[dense] a[md-list-item] .md-list-text, md-nav-list[dense] md-list-item .md-list-text, md-nav-list[dense] a[md-list-item] .md-list-text { display: flex; flex-direction: column; width: 100%; box-sizing: border-box; overflow: hidden; padding: 0 16px; } md-list[dense] md-list-item .md-list-text > *, md-list[dense] a[md-list-item] .md-list-text > *, md-nav-list[dense] md-list-item .md-list-text > *, md-nav-list[dense] a[md-list-item] .md-list-text > * { margin: 0; padding: 0; font-weight: normal; font-size: inherit; } md-list[dense] md-list-item .md-list-text:empty, md-list[dense] a[md-list-item] .md-list-text:empty, md-nav-list[dense] md-list-item .md-list-text:empty, md-nav-list[dense] a[md-list-item] .md-list-text:empty { display: none; } md-list[dense] md-list-item .md-list-text:first-child, md-list[dense] a[md-list-item] .md-list-text:first-child, md-nav-list[dense] md-list-item .md-list-text:first-child, md-nav-list[dense] a[md-list-item] .md-list-text:first-child { padding: 0; } md-list[dense] md-list-item [md-list-avatar], md-list[dense] a[md-list-item] [md-list-avatar], md-nav-list[dense] md-list-item [md-list-avatar], md-nav-list[dense] a[md-list-item] [md-list-avatar] { width: 40px; height: 40px; border-radius: 50%; } md-list[dense] md-list-item [md-list-icon], md-list[dense] a[md-list-item] [md-list-icon], md-nav-list[dense] md-list-item [md-list-icon], md-nav-list[dense] a[md-list-item] [md-list-icon] { width: 24px; height: 24px; border-radius: 50%; padding: 4px; } md-list[dense] md-list-item [md-line], md-list[dense] a[md-list-item] [md-line], md-nav-list[dense] md-list-item [md-line], md-nav-list[dense] a[md-list-item] [md-line] { white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; display: block; box-sizing: border-box; } md-list[dense] md-list-item [md-line]:nth-child(n+2), md-list[dense] a[md-list-item] [md-line]:nth-child(n+2), md-nav-list[dense] md-list-item [md-line]:nth-child(n+2), md-nav-list[dense] a[md-list-item] [md-line]:nth-child(n+2) { font-size: 13px; } md-divider { display: block; border-top: 1px solid; margin: 0; } md-nav-list a { text-decoration: none; color: inherit; } md-nav-list .md-list-item { cursor: pointer; } md-nav-list .md-list-item:hover, md-nav-list .md-list-item.md-list-item-focus { outline: none; } /*# sourceMappingURL=list.css.map */ \"],\n encapsulation: ViewEncapsulation.None\n }), \n __metadata('design:paramtypes', [])\n ], MdList);\n return MdList;\n}());\n/* Need directive for a ContentChild query in list-item */\nexport var MdListAvatar = (function () {\n function MdListAvatar() {\n }\n MdListAvatar = __decorate([\n Directive({ selector: '[md-list-avatar]' }), \n __metadata('design:paramtypes', [])\n ], MdListAvatar);\n return MdListAvatar;\n}());\nexport var MdListItem = (function () {\n function MdListItem(_renderer, _element) {\n this._renderer = _renderer;\n this._element = _element;\n this._hasFocus = false;\n }\n Object.defineProperty(MdListItem.prototype, \"_hasAvatar\", {\n set: function (avatar) {\n this._renderer.setElementClass(this._element.nativeElement, 'md-list-avatar', avatar != null);\n },\n enumerable: true,\n configurable: true\n });\n /** TODO: internal */\n MdListItem.prototype.ngAfterContentInit = function () {\n this._lineSetter = new MdLineSetter(this._lines, this._renderer, this._element);\n };\n MdListItem.prototype._handleFocus = function () {\n this._hasFocus = true;\n };\n MdListItem.prototype._handleBlur = function () {\n this._hasFocus = false;\n };\n __decorate([\n ContentChildren(MdLine), \n __metadata('design:type', QueryList)\n ], MdListItem.prototype, \"_lines\", void 0);\n __decorate([\n ContentChild(MdListAvatar), \n __metadata('design:type', MdListAvatar), \n __metadata('design:paramtypes', [MdListAvatar])\n ], MdListItem.prototype, \"_hasAvatar\", null);\n MdListItem = __decorate([\n Component({selector: 'md-list-item, a[md-list-item]',\n host: {\n 'role': 'listitem',\n '(focus)': '_handleFocus()',\n '(blur)': '_handleBlur()',\n },\n template: \"<div class=\\\"md-list-item\\\" [class.md-list-item-focus]=\\\"_hasFocus\\\"> <ng-content select=\\\"[md-list-avatar],[md-list-icon]\\\"></ng-content> <div class=\\\"md-list-text\\\"><ng-content select=\\\"[md-line]\\\"></ng-content></div> <ng-content></ng-content> </div> \",\n encapsulation: ViewEncapsulation.None\n }), \n __metadata('design:paramtypes', [Renderer, ElementRef])\n ], MdListItem);\n return MdListItem;\n}());\nexport var MdListModule = (function () {\n function MdListModule() {\n }\n MdListModule.forRoot = function () {\n return {\n ngModule: MdListModule,\n providers: []\n };\n };\n MdListModule = __decorate([\n NgModule({\n imports: [MdLineModule],\n exports: [MdList, MdListItem, MdListDivider, MdListAvatar, MdLineModule],\n declarations: [MdList, MdListItem, MdListDivider, MdListAvatar],\n }), \n __metadata('design:paramtypes', [])\n ], MdListModule);\n return MdListModule;\n}());\n\n//# sourceMappingURL=list.js.map\n","/**\n * Converts values into strings. Falsy values become empty strings.\n * TODO: internal\n */\nexport function coerceToString(value) {\n return \"\" + (value || '');\n}\n/**\n * Converts a value that might be a string into a number.\n * TODO: internal\n */\nexport function coerceToNumber(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n\n//# sourceMappingURL=grid-list-measure.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewEncapsulation, Renderer, ElementRef, Input, ContentChildren, QueryList } from '@angular/core';\nimport { MdLine, MdLineSetter } from '../core';\nimport { coerceToNumber } from './grid-list-measure';\nexport var MdGridTile = (function () {\n function MdGridTile(_renderer, _element) {\n this._renderer = _renderer;\n this._element = _element;\n this._rowspan = 1;\n this._colspan = 1;\n }\n Object.defineProperty(MdGridTile.prototype, \"rowspan\", {\n get: function () {\n return this._rowspan;\n },\n set: function (value) {\n this._rowspan = coerceToNumber(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdGridTile.prototype, \"colspan\", {\n get: function () {\n return this._colspan;\n },\n set: function (value) {\n this._colspan = coerceToNumber(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the style of the grid-tile element. Needs to be set manually to avoid\n * \"Changed after checked\" errors that would occur with HostBinding.\n */\n MdGridTile.prototype._setStyle = function (property, value) {\n this._renderer.setElementStyle(this._element.nativeElement, property, value);\n };\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdGridTile.prototype, \"rowspan\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdGridTile.prototype, \"colspan\", null);\n MdGridTile = __decorate([\n Component({selector: 'md-grid-tile',\n host: { 'role': 'listitem' },\n template: \"<!-- TODO(kara): Revisit why this is a figure.--> <figure> <ng-content></ng-content> </figure>\",\n styles: [\"md-grid-list { display: block; position: relative; } md-grid-tile { display: block; position: absolute; overflow: hidden; } md-grid-tile figure { display: flex; position: absolute; align-items: center; justify-content: center; height: 100%; top: 0; right: 0; bottom: 0; left: 0; padding: 0; margin: 0; } md-grid-tile md-grid-tile-header, md-grid-tile md-grid-tile-footer { display: flex; align-items: center; height: 48px; color: #fff; background: rgba(0, 0, 0, 0.38); overflow: hidden; padding: 0 16px; font-size: 16px; position: absolute; left: 0; right: 0; } md-grid-tile md-grid-tile-header [md-line], md-grid-tile md-grid-tile-footer [md-line] { white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; display: block; box-sizing: border-box; } md-grid-tile md-grid-tile-header [md-line]:nth-child(n+2), md-grid-tile md-grid-tile-footer [md-line]:nth-child(n+2) { font-size: 12px; } md-grid-tile md-grid-tile-header > *, md-grid-tile md-grid-tile-footer > * { margin: 0; padding: 0; font-weight: normal; font-size: inherit; } md-grid-tile md-grid-tile-header.md-2-line, md-grid-tile md-grid-tile-footer.md-2-line { height: 68px; } md-grid-tile .md-grid-list-text { display: flex; flex-direction: column; width: 100%; box-sizing: border-box; overflow: hidden; } md-grid-tile .md-grid-list-text > * { margin: 0; padding: 0; font-weight: normal; font-size: inherit; } md-grid-tile .md-grid-list-text:empty { display: none; } md-grid-tile md-grid-tile-header { top: 0; } md-grid-tile md-grid-tile-footer { bottom: 0; } md-grid-tile [md-grid-avatar] { padding-right: 16px; } [dir='rtl'] md-grid-tile [md-grid-avatar] { padding-right: 0; padding-left: 16px; } md-grid-tile [md-grid-avatar]:empty { display: none; } /*# sourceMappingURL=grid-list.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n }), \n __metadata('design:paramtypes', [Renderer, ElementRef])\n ], MdGridTile);\n return MdGridTile;\n}());\nexport var MdGridTileText = (function () {\n function MdGridTileText(_renderer, _element) {\n this._renderer = _renderer;\n this._element = _element;\n }\n MdGridTileText.prototype.ngAfterContentInit = function () {\n this._lineSetter = new MdLineSetter(this._lines, this._renderer, this._element);\n };\n __decorate([\n ContentChildren(MdLine), \n __metadata('design:type', QueryList)\n ], MdGridTileText.prototype, \"_lines\", void 0);\n MdGridTileText = __decorate([\n Component({selector: 'md-grid-tile-header, md-grid-tile-footer',\n template: \"<ng-content select=\\\"[md-grid-avatar]\\\"></ng-content> <div class=\\\"md-grid-list-text\\\"><ng-content select=\\\"[md-line]\\\"></ng-content></div> <ng-content></ng-content>\"\n }), \n __metadata('design:paramtypes', [Renderer, ElementRef])\n ], MdGridTileText);\n return MdGridTileText;\n}());\n\n//# sourceMappingURL=grid-tile.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdError } from '../core';\n/**\n * Exception thrown when cols property is missing from grid-list\n */\nexport var MdGridListColsError = (function (_super) {\n __extends(MdGridListColsError, _super);\n function MdGridListColsError() {\n _super.call(this, \"md-grid-list: must pass in number of columns. Example: <md-grid-list cols=\\\"3\\\">\");\n }\n return MdGridListColsError;\n}(MdError));\n/**\n * Exception thrown when a tile's colspan is longer than the number of cols in list\n */\nexport var MdGridTileTooWideError = (function (_super) {\n __extends(MdGridTileTooWideError, _super);\n function MdGridTileTooWideError(cols, listLength) {\n _super.call(this, \"md-grid-list: tile with colspan \" + cols + \" is wider than grid with cols=\\\"\" + listLength + \"\\\".\");\n }\n return MdGridTileTooWideError;\n}(MdError));\n/**\n * Exception thrown when an invalid ratio is passed in as a rowHeight\n */\nexport var MdGridListBadRatioError = (function (_super) {\n __extends(MdGridListBadRatioError, _super);\n function MdGridListBadRatioError(value) {\n _super.call(this, \"md-grid-list: invalid ratio given for row-height: \\\"\" + value + \"\\\"\");\n }\n return MdGridListBadRatioError;\n}(MdError));\n\n//# sourceMappingURL=grid-list-errors.js.map\n","import { MdGridTileTooWideError } from './grid-list-errors';\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n */\nexport var TileCoordinator = (function () {\n function TileCoordinator(numColumns, tiles) {\n var _this = this;\n /** Index at which the search for the next gap will start. */\n this.columnIndex = 0;\n /** The current row index. */\n this.rowIndex = 0;\n this.tracker = new Array(numColumns);\n this.tracker.fill(0, 0, this.tracker.length);\n this.positions = tiles.map(function (tile) { return _this._trackTile(tile); });\n }\n Object.defineProperty(TileCoordinator.prototype, \"rowCount\", {\n /** Gets the total number of rows occupied by tiles */\n get: function () { return this.rowIndex + 1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TileCoordinator.prototype, \"rowspan\", {\n /** Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2. */\n get: function () {\n var lastRowMax = Math.max.apply(Math, this.tracker);\n // if any of the tiles has a rowspan that pushes it beyond the total row count,\n // add the difference to the rowcount\n return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount;\n },\n enumerable: true,\n configurable: true\n });\n /** Calculates the row and col position of a tile. */\n TileCoordinator.prototype._trackTile = function (tile) {\n // Find a gap large enough for this tile.\n var gapStartIndex = this._findMatchingGap(tile.colspan);\n // Place tile in the resulting gap.\n this._markTilePosition(gapStartIndex, tile);\n // The next time we look for a gap, the search will start at columnIndex, which should be\n // immediately after the tile that has just been placed.\n this.columnIndex = gapStartIndex + tile.colspan;\n return new TilePosition(this.rowIndex, gapStartIndex);\n };\n /** Finds the next available space large enough to fit the tile. */\n TileCoordinator.prototype._findMatchingGap = function (tileCols) {\n if (tileCols > this.tracker.length) {\n throw new MdGridTileTooWideError(tileCols, this.tracker.length);\n }\n // Start index is inclusive, end index is exclusive.\n var gapStartIndex = -1;\n var gapEndIndex = -1;\n // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero.\n do {\n // If we've reached the end of the row, go to the next row.\n if (this.columnIndex + tileCols > this.tracker.length) {\n this._nextRow();\n continue;\n }\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n // If there are no more empty spaces in this row at all, move on to the next row.\n if (gapStartIndex == -1) {\n this._nextRow();\n continue;\n }\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n // If a gap large enough isn't found, we want to start looking immediately after the current\n // gap on the next iteration.\n this.columnIndex = gapStartIndex + 1;\n } while (gapEndIndex - gapStartIndex < tileCols);\n return gapStartIndex;\n };\n /** Move \"down\" to the next row. */\n TileCoordinator.prototype._nextRow = function () {\n this.columnIndex = 0;\n this.rowIndex++;\n // Decrement all spaces by one to reflect moving down one row.\n for (var i = 0; i < this.tracker.length; i++) {\n this.tracker[i] = Math.max(0, this.tracker[i] - 1);\n }\n };\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n */\n TileCoordinator.prototype._findGapEndIndex = function (gapStartIndex) {\n for (var i = gapStartIndex + 1; i < this.tracker.length; i++) {\n if (this.tracker[i] != 0) {\n return i;\n }\n }\n // The gap ends with the end of the row.\n return this.tracker.length;\n };\n /** Update the tile tracker to account for the given tile in the given space. */\n TileCoordinator.prototype._markTilePosition = function (start, tile) {\n for (var i = 0; i < tile.colspan; i++) {\n this.tracker[start + i] = tile.rowspan;\n }\n };\n return TileCoordinator;\n}());\n/** Simple data structure for tile position (row, col). */\nexport var TilePosition = (function () {\n function TilePosition(row, col) {\n this.row = row;\n this.col = col;\n }\n return TilePosition;\n}());\n\n//# sourceMappingURL=tile-coordinator.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdGridListBadRatioError } from './grid-list-errors';\n/**\n * Sets the style properties for an individual tile, given the position calculated by the\n * Tile Coordinator.\n * TODO: internal\n */\nexport var TileStyler = (function () {\n function TileStyler() {\n this._rows = 0;\n this._rowspan = 0;\n }\n /**\n * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n * because these properties haven't been calculated by that point.\n */\n TileStyler.prototype.init = function (_gutterSize, tracker, cols, direction) {\n this._gutterSize = normalizeUnits(_gutterSize);\n this._rows = tracker.rowCount;\n this._rowspan = tracker.rowspan;\n this._cols = cols;\n this._direction = direction;\n };\n /**\n * Computes the amount of space a single 1x1 tile would take up (width or height).\n * Used as a basis for other calculations.\n * @param sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n * @param gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n * @return The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n */\n TileStyler.prototype.getBaseTileSize = function (sizePercent, gutterFraction) {\n // Take the base size percent (as would be if evenly dividing the size between cells),\n // and then subtracting the size of one gutter. However, since there are no gutters on the\n // edges, each tile only uses a fraction (gutterShare = numGutters / numCells) of the gutter\n // size. (Imagine having one gutter per tile, and then breaking up the extra gutter on the\n // edge evenly among the cells).\n return \"(\" + sizePercent + \"% - ( \" + this._gutterSize + \" * \" + gutterFraction + \" ))\";\n };\n /**\n * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n * @param offset Number of tiles that have already been rendered in the row/column.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @return Position of the tile as a CSS calc() expression.\n */\n TileStyler.prototype.getTilePosition = function (baseSize, offset) {\n // The position comes the size of a 1x1 tile plus gutter for each previous tile in the\n // row/column (offset).\n return calc(\"(\" + baseSize + \" + \" + this._gutterSize + \") * \" + offset);\n };\n /**\n * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param span The tile's rowspan or colspan.\n * @return Size of the tile as a CSS calc() expression.\n */\n TileStyler.prototype.getTileSize = function (baseSize, span) {\n return \"(\" + baseSize + \" * \" + span + \") + (\" + (span - 1) + \" * \" + this._gutterSize + \")\";\n };\n /** Gets the style properties to be applied to a tile for the given row and column index. */\n TileStyler.prototype.setStyle = function (tile, rowIndex, colIndex) {\n // Percent of the available horizontal space that one column takes up.\n var percentWidthPerTile = 100 / this._cols;\n // Fraction of the vertical gutter size that each column takes up.\n // For example, if there are 5 columns, each column uses 4/5 = 0.8 times the gutter width.\n var gutterWidthFractionPerTile = (this._cols - 1) / this._cols;\n this.setColStyles(tile, colIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n this.setRowStyles(tile, rowIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n };\n /** Sets the horizontal placement of the tile in the list. */\n TileStyler.prototype.setColStyles = function (tile, colIndex, percentWidth, gutterWidth) {\n // Base horizontal size of a column.\n var baseTileWidth = this.getBaseTileSize(percentWidth, gutterWidth);\n // The width and horizontal position of each tile is always calculated the same way, but the\n // height and vertical position depends on the rowMode.\n var side = this._direction === 'ltr' ? 'left' : 'right';\n tile._setStyle(side, this.getTilePosition(baseTileWidth, colIndex));\n tile._setStyle('width', calc(this.getTileSize(baseTileWidth, tile.colspan)));\n };\n /** Calculates the total size taken up by gutters across one axis of a list. */\n TileStyler.prototype.getGutterSpan = function () {\n return this._gutterSize + \" * (\" + this._rowspan + \" - 1)\";\n };\n /** Calculates the total size taken up by tiles across one axis of a list. */\n TileStyler.prototype.getTileSpan = function (tileHeight) {\n return this._rowspan + \" * \" + this.getTileSize(tileHeight, 1);\n };\n /**\n * Sets the vertical placement of the tile in the list.\n * This method will be implemented by each type of TileStyler.\n */\n TileStyler.prototype.setRowStyles = function (tile, rowIndex, percentWidth, gutterWidth) { };\n /**\n * Calculates the computed height and returns the correct style property to set.\n * This method will be implemented by each type of TileStyler.\n */\n TileStyler.prototype.getComputedHeight = function () { return null; };\n return TileStyler;\n}());\n/**\n * This type of styler is instantiated when the user passes in a fixed row height.\n * Example <md-grid-list cols=\"3\" rowHeight=\"100px\">\n * TODO: internal\n */\nexport var FixedTileStyler = (function (_super) {\n __extends(FixedTileStyler, _super);\n function FixedTileStyler(fixedRowHeight) {\n _super.call(this);\n this.fixedRowHeight = fixedRowHeight;\n }\n FixedTileStyler.prototype.init = function (gutterSize, tracker, cols, direction) {\n _super.prototype.init.call(this, gutterSize, tracker, cols, direction);\n this.fixedRowHeight = normalizeUnits(this.fixedRowHeight);\n };\n FixedTileStyler.prototype.setRowStyles = function (tile, rowIndex, percentWidth, gutterWidth) {\n tile._setStyle('top', this.getTilePosition(this.fixedRowHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(this.fixedRowHeight, tile.rowspan)));\n };\n FixedTileStyler.prototype.getComputedHeight = function () {\n return [\n 'height', calc(this.getTileSpan(this.fixedRowHeight) + \" + \" + this.getGutterSpan())\n ];\n };\n return FixedTileStyler;\n}(TileStyler));\n/**\n * This type of styler is instantiated when the user passes in a width:height ratio\n * for the row height. Example <md-grid-list cols=\"3\" rowHeight=\"3:1\">\n * TODO: internal\n */\nexport var RatioTileStyler = (function (_super) {\n __extends(RatioTileStyler, _super);\n function RatioTileStyler(value) {\n _super.call(this);\n this._parseRatio(value);\n }\n RatioTileStyler.prototype.setRowStyles = function (tile, rowIndex, percentWidth, gutterWidth) {\n var percentHeightPerTile = percentWidth / this.rowHeightRatio;\n this.baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterWidth);\n // Use paddingTop and marginTop to maintain the given aspect ratio, as\n // a percentage-based value for these properties is applied versus the *width* of the\n // containing block. See http://www.w3.org/TR/CSS2/box.html#margin-properties\n tile._setStyle('marginTop', this.getTilePosition(this.baseTileHeight, rowIndex));\n tile._setStyle('paddingTop', calc(this.getTileSize(this.baseTileHeight, tile.rowspan)));\n };\n RatioTileStyler.prototype.getComputedHeight = function () {\n return [\n 'paddingBottom', calc(this.getTileSpan(this.baseTileHeight) + \" + \" + this.getGutterSpan())\n ];\n };\n RatioTileStyler.prototype._parseRatio = function (value) {\n var ratioParts = value.split(':');\n if (ratioParts.length !== 2) {\n throw new MdGridListBadRatioError(value);\n }\n this.rowHeightRatio = parseFloat(ratioParts[0]) / parseFloat(ratioParts[1]);\n };\n return RatioTileStyler;\n}(TileStyler));\n/* This type of styler is instantiated when the user selects a \"fit\" row height mode.\n * In other words, the row height will reflect the total height of the container divided\n * by the number of rows. Example <md-grid-list cols=\"3\" rowHeight=\"fit\"> */\nexport var FitTileStyler = (function (_super) {\n __extends(FitTileStyler, _super);\n function FitTileStyler() {\n _super.apply(this, arguments);\n }\n FitTileStyler.prototype.setRowStyles = function (tile, rowIndex, percentWidth, gutterWidth) {\n // Percent of the available vertical space that one row takes up.\n var percentHeightPerTile = 100 / this._rowspan;\n // Fraction of the horizontal gutter size that each column takes up.\n var gutterHeightPerTile = (this._rows - 1) / this._rows;\n // Base vertical size of a column.\n var baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterHeightPerTile);\n tile._setStyle('top', this.getTilePosition(baseTileHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(baseTileHeight, tile.rowspan)));\n };\n return FitTileStyler;\n}(TileStyler));\n/** Wraps a CSS string in a calc function */\nfunction calc(exp) { return \"calc(\" + exp + \")\"; }\n/** Appends pixels to a CSS string if no units are given. */\nfunction normalizeUnits(value) {\n return (value.match(/px|em|rem/)) ? value : value + 'px';\n}\n\n//# sourceMappingURL=tile-styler.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { NgModule, Component, ViewEncapsulation, Input, ContentChildren, QueryList, Renderer, ElementRef, Optional } from '@angular/core';\nimport { MdGridTile, MdGridTileText } from './grid-tile';\nimport { TileCoordinator } from './tile-coordinator';\nimport { FitTileStyler, RatioTileStyler, FixedTileStyler } from './tile-styler';\nimport { MdGridListColsError } from './grid-list-errors';\nimport { Dir, MdLineModule } from '../core';\nimport { coerceToString, coerceToNumber } from './grid-list-measure';\n// TODO(kara): Conditional (responsive) column count / row size.\n// TODO(kara): Re-layout on window resize / media change (debounced).\n// TODO(kara): gridTileHeader and gridTileFooter.\nvar MD_FIT_MODE = 'fit';\nexport var MdGridList = (function () {\n function MdGridList(_renderer, _element, _dir) {\n this._renderer = _renderer;\n this._element = _element;\n this._dir = _dir;\n /** The amount of space between tiles. This will be something like '5px' or '2em'. */\n this._gutter = '1px';\n }\n Object.defineProperty(MdGridList.prototype, \"cols\", {\n get: function () {\n return this._cols;\n },\n set: function (value) {\n this._cols = coerceToNumber(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdGridList.prototype, \"gutterSize\", {\n get: function () {\n return this._gutter;\n },\n set: function (value) {\n this._gutter = coerceToString(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdGridList.prototype, \"rowHeight\", {\n /** Set internal representation of row height from the user-provided value. */\n set: function (value) {\n this._rowHeight = coerceToString(value);\n this._setTileStyler();\n },\n enumerable: true,\n configurable: true\n });\n /** TODO: internal */\n MdGridList.prototype.ngOnInit = function () {\n this._checkCols();\n this._checkRowHeight();\n };\n /**\n * The layout calculation is fairly cheap if nothing changes, so there's little cost\n * to run it frequently.\n * TODO: internal\n */\n MdGridList.prototype.ngAfterContentChecked = function () {\n this._layoutTiles();\n };\n /** Throw a friendly error if cols property is missing */\n MdGridList.prototype._checkCols = function () {\n if (!this.cols) {\n throw new MdGridListColsError();\n }\n };\n /** Default to equal width:height if rowHeight property is missing */\n MdGridList.prototype._checkRowHeight = function () {\n if (!this._rowHeight) {\n this._tileStyler = new RatioTileStyler('1:1');\n }\n };\n /** Creates correct Tile Styler subtype based on rowHeight passed in by user */\n MdGridList.prototype._setTileStyler = function () {\n if (this._rowHeight === MD_FIT_MODE) {\n this._tileStyler = new FitTileStyler();\n }\n else if (this._rowHeight && this._rowHeight.match(/:/g)) {\n this._tileStyler = new RatioTileStyler(this._rowHeight);\n }\n else {\n this._tileStyler = new FixedTileStyler(this._rowHeight);\n }\n };\n /** Computes and applies the size and position for all children grid tiles. */\n MdGridList.prototype._layoutTiles = function () {\n var tiles = this._tiles.toArray();\n var tracker = new TileCoordinator(this.cols, tiles);\n var direction = this._dir ? this._dir.value : 'ltr';\n this._tileStyler.init(this.gutterSize, tracker, this.cols, direction);\n for (var i = 0; i < tiles.length; i++) {\n var pos = tracker.positions[i];\n var tile = tiles[i];\n this._tileStyler.setStyle(tile, pos.row, pos.col);\n }\n this._setListStyle(this._tileStyler.getComputedHeight());\n };\n /** Sets style on the main grid-list element, given the style name and value. */\n MdGridList.prototype._setListStyle = function (style) {\n if (style) {\n this._renderer.setElementStyle(this._element.nativeElement, style[0], style[1]);\n }\n };\n __decorate([\n ContentChildren(MdGridTile), \n __metadata('design:type', QueryList)\n ], MdGridList.prototype, \"_tiles\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdGridList.prototype, \"cols\", null);\n __decorate([\n Input('gutterSize'), \n __metadata('design:type', Object)\n ], MdGridList.prototype, \"gutterSize\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object), \n __metadata('design:paramtypes', [Object])\n ], MdGridList.prototype, \"rowHeight\", null);\n MdGridList = __decorate([\n Component({selector: 'md-grid-list',\n template: \"<div class=\\\"md-grid-list\\\"> <ng-content></ng-content> </div>\",\n styles: [\"md-grid-list { display: block; position: relative; } md-grid-tile { display: block; position: absolute; overflow: hidden; } md-grid-tile figure { display: flex; position: absolute; align-items: center; justify-content: center; height: 100%; top: 0; right: 0; bottom: 0; left: 0; padding: 0; margin: 0; } md-grid-tile md-grid-tile-header, md-grid-tile md-grid-tile-footer { display: flex; align-items: center; height: 48px; color: #fff; background: rgba(0, 0, 0, 0.38); overflow: hidden; padding: 0 16px; font-size: 16px; position: absolute; left: 0; right: 0; } md-grid-tile md-grid-tile-header [md-line], md-grid-tile md-grid-tile-footer [md-line] { white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; display: block; box-sizing: border-box; } md-grid-tile md-grid-tile-header [md-line]:nth-child(n+2), md-grid-tile md-grid-tile-footer [md-line]:nth-child(n+2) { font-size: 12px; } md-grid-tile md-grid-tile-header > *, md-grid-tile md-grid-tile-footer > * { margin: 0; padding: 0; font-weight: normal; font-size: inherit; } md-grid-tile md-grid-tile-header.md-2-line, md-grid-tile md-grid-tile-footer.md-2-line { height: 68px; } md-grid-tile .md-grid-list-text { display: flex; flex-direction: column; width: 100%; box-sizing: border-box; overflow: hidden; } md-grid-tile .md-grid-list-text > * { margin: 0; padding: 0; font-weight: normal; font-size: inherit; } md-grid-tile .md-grid-list-text:empty { display: none; } md-grid-tile md-grid-tile-header { top: 0; } md-grid-tile md-grid-tile-footer { bottom: 0; } md-grid-tile [md-grid-avatar] { padding-right: 16px; } [dir='rtl'] md-grid-tile [md-grid-avatar] { padding-right: 0; padding-left: 16px; } md-grid-tile [md-grid-avatar]:empty { display: none; } /*# sourceMappingURL=grid-list.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n }),\n __param(2, Optional()), \n __metadata('design:paramtypes', [Renderer, ElementRef, Dir])\n ], MdGridList);\n return MdGridList;\n}());\nexport var MdGridListModule = (function () {\n function MdGridListModule() {\n }\n MdGridListModule.forRoot = function () {\n return {\n ngModule: MdGridListModule,\n providers: []\n };\n };\n MdGridListModule = __decorate([\n NgModule({\n imports: [MdLineModule],\n exports: [MdGridList, MdGridTile, MdGridTileText, MdLineModule],\n declarations: [MdGridList, MdGridTile, MdGridTileText],\n }), \n __metadata('design:paramtypes', [])\n ], MdGridListModule);\n return MdGridListModule;\n}());\n\n//# sourceMappingURL=grid-list.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Component, ViewEncapsulation, ChangeDetectionStrategy, Directive } from '@angular/core';\n/**\n * Content of a card, needed as it's used as a selector in the API.\n */\nexport var MdCardContent = (function () {\n function MdCardContent() {\n }\n MdCardContent = __decorate([\n Directive({\n selector: 'md-card-content'\n }), \n __metadata('design:paramtypes', [])\n ], MdCardContent);\n return MdCardContent;\n}());\n/**\n * Title of a card, needed as it's used as a selector in the API.\n */\nexport var MdCardTitle = (function () {\n function MdCardTitle() {\n }\n MdCardTitle = __decorate([\n Directive({\n selector: 'md-card-title'\n }), \n __metadata('design:paramtypes', [])\n ], MdCardTitle);\n return MdCardTitle;\n}());\n/**\n * Sub-title of a card, needed as it's used as a selector in the API.\n */\nexport var MdCardSubtitle = (function () {\n function MdCardSubtitle() {\n }\n MdCardSubtitle = __decorate([\n Directive({\n selector: 'md-card-subtitle'\n }), \n __metadata('design:paramtypes', [])\n ], MdCardSubtitle);\n return MdCardSubtitle;\n}());\n/**\n * Action section of a card, needed as it's used as a selector in the API.\n */\nexport var MdCardActions = (function () {\n function MdCardActions() {\n }\n MdCardActions = __decorate([\n Directive({\n selector: 'md-card-actions'\n }), \n __metadata('design:paramtypes', [])\n ], MdCardActions);\n return MdCardActions;\n}());\n/**\n * Footer of a card, needed as it's used as a selector in the API.\n */\nexport var MdCardFooter = (function () {\n function MdCardFooter() {\n }\n MdCardFooter = __decorate([\n Directive({\n selector: 'md-card-footer'\n }), \n __metadata('design:paramtypes', [])\n ], MdCardFooter);\n return MdCardFooter;\n}());\n/*\n\n<md-card> is a basic content container component that adds the styles of a material design card.\n\nWhile you can use this component alone,\nit also provides a number of preset styles for common card sections, including:\n - md-card-title\n - md-card-subtitle\n - md-card-content\n - md-card-actions\n - md-card-footer\n\n You can see some examples of cards here:\n http://embed.plnkr.co/s5O4YcyvbLhIApSrIhtj/\n\n TODO(kara): update link to demo site when it exists\n\n*/\nexport var MdCard = (function () {\n function MdCard() {\n }\n MdCard = __decorate([\n Component({selector: 'md-card',\n template: \"<ng-content></ng-content> \",\n styles: [\"md-card { box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); will-change: box-shadow; display: block; position: relative; padding: 24px; border-radius: 2px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; } md-card:hover { box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); } .md-card-flat { box-shadow: none; } md-card-title, md-card-subtitle, md-card-content, md-card-actions { display: block; margin-bottom: 16px; } md-card-title { font-size: 24px; font-weight: 400; } md-card-subtitle { font-size: 14px; } md-card-content { font-size: 14px; } md-card-actions { margin-left: -16px; margin-right: -16px; padding: 8px 0; } md-card-actions[align='end'] { display: flex; justify-content: flex-end; } [md-card-image] { width: calc(100% + 48px); margin: 0 -24px 16px -24px; } [md-card-xl-image] { width: 240px; height: 240px; margin: -8px; } md-card-footer { position: absolute; width: 100%; min-height: 5px; bottom: 0; left: 0; } md-card-actions [md-button], md-card-actions [md-raised-button] { margin: 0 4px; } md-card-header { display: flex; flex-direction: row; height: 40px; margin: -8px 0 16px 0; } .md-card-header-text { height: 40px; margin: 0 8px; } [md-card-avatar] { height: 40px; width: 40px; border-radius: 50%; } md-card-header md-card-title { font-size: 14px; } [md-card-sm-image], [md-card-md-image], [md-card-lg-image] { margin: -8px 0; } md-card-title-group { display: flex; justify-content: space-between; margin: 0 -8px; } [md-card-sm-image] { width: 80px; height: 80px; } [md-card-md-image] { width: 112px; height: 112px; } [md-card-lg-image] { width: 152px; height: 152px; } @media (max-width: 600px) { md-card { padding: 24px 16px; } [md-card-image] { width: calc(100% + 32px); margin: 16px -16px; } md-card-title-group { margin: 0; } [md-card-xl-image] { margin-left: 0; margin-right: 0; } md-card-header { margin: -8px 0 0 0; } } md-card > :first-child, md-card-content > :first-child { margin-top: 0; } md-card > :last-child, md-card-content > :last-child { margin-bottom: 0; } [md-card-image]:first-child { margin-top: -24px; } md-card > md-card-actions:last-child { margin-bottom: -16px; padding-bottom: 0; } md-card-actions [md-button]:first-child, md-card-actions [md-raised-button]:first-child { margin-left: 0; margin-right: 0; } md-card-title:not(:first-child), md-card-subtitle:not(:first-child) { margin-top: -4px; } md-card-header md-card-subtitle:not(:first-child) { margin-top: -8px; } md-card > [md-card-xl-image]:first-child { margin-top: -8px; } md-card > [md-card-xl-image]:last-child { margin-bottom: -8px; } /*# sourceMappingURL=card.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [])\n ], MdCard);\n return MdCard;\n}());\n/* The following components don't have any behavior.\n They simply use content projection to wrap user content\n for flex layout purposes in <md-card> (and thus allow a cleaner, boilerplate-free API).\n\n\n<md-card-header> is a component intended to be used within the <md-card> component.\nIt adds styles for a preset header section (i.e. a title, subtitle, and avatar layout).\n\nYou can see an example of a card with a header here:\nhttp://embed.plnkr.co/tvJl19z3gZTQd6WmwkIa/\n\nTODO(kara): update link to demo site when it exists\n*/\nexport var MdCardHeader = (function () {\n function MdCardHeader() {\n }\n MdCardHeader = __decorate([\n Component({selector: 'md-card-header',\n template: \"<ng-content select=\\\"[md-card-avatar]\\\"></ng-content> <div class=\\\"md-card-header-text\\\"> <ng-content select=\\\"md-card-title, md-card-subtitle\\\"></ng-content> </div> <ng-content></ng-content> \",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [])\n ], MdCardHeader);\n return MdCardHeader;\n}());\n/*\n\n<md-card-title-group> is a component intended to be used within the <md-card> component.\nIt adds styles for a preset layout that groups an image with a title section.\n\nYou can see an example of a card with a title-group section here:\nhttp://embed.plnkr.co/EDfgCF9eKcXjini1WODm/\n\nTODO(kara): update link to demo site when it exists\n*/\nexport var MdCardTitleGroup = (function () {\n function MdCardTitleGroup() {\n }\n MdCardTitleGroup = __decorate([\n Component({selector: 'md-card-title-group',\n template: \"<div> <ng-content select=\\\"md-card-title, md-card-subtitle\\\"></ng-content> </div> <ng-content select=\\\"img\\\"></ng-content> <ng-content></ng-content> \",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [])\n ], MdCardTitleGroup);\n return MdCardTitleGroup;\n}());\nexport var MdCardModule = (function () {\n function MdCardModule() {\n }\n MdCardModule.forRoot = function () {\n return {\n ngModule: MdCardModule,\n providers: []\n };\n };\n MdCardModule = __decorate([\n NgModule({\n exports: [\n MdCard, MdCardHeader, MdCardTitleGroup, MdCardContent, MdCardTitle, MdCardSubtitle,\n MdCardActions, MdCardFooter\n ],\n declarations: [\n MdCard, MdCardHeader, MdCardTitleGroup, MdCardContent, MdCardTitle, MdCardSubtitle,\n MdCardActions, MdCardFooter\n ],\n }), \n __metadata('design:paramtypes', [])\n ], MdCardModule);\n return MdCardModule;\n}());\n\n//# sourceMappingURL=card.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Injectable } from '@angular/core';\nimport { Http } from '@angular/http';\nimport { MdError } from '../core';\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/observable/forkJoin';\nimport 'rxjs/add/observable/of';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/filter';\nimport 'rxjs/add/operator/do';\nimport 'rxjs/add/operator/share';\nimport 'rxjs/add/operator/finally';\nimport 'rxjs/add/operator/catch';\n/** Exception thrown when attempting to load an icon with a name that cannot be found. */\nexport var MdIconNameNotFoundError = (function (_super) {\n __extends(MdIconNameNotFoundError, _super);\n function MdIconNameNotFoundError(iconName) {\n _super.call(this, \"Unable to find icon with the name \\\"\" + iconName + \"\\\"\");\n }\n return MdIconNameNotFoundError;\n}(MdError));\n/**\n * Exception thrown when attempting to load SVG content that does not contain the expected\n * <svg> tag.\n */\nexport var MdIconSvgTagNotFoundError = (function (_super) {\n __extends(MdIconSvgTagNotFoundError, _super);\n function MdIconSvgTagNotFoundError() {\n _super.call(this, '<svg> tag not found');\n }\n return MdIconSvgTagNotFoundError;\n}(MdError));\n/** Configuration for an icon, including the URL and possibly the cached SVG element. */\nvar SvgIconConfig = (function () {\n function SvgIconConfig(url) {\n this.url = url;\n this.svgElement = null;\n }\n return SvgIconConfig;\n}());\n/** Returns the cache key to use for an icon namespace and name. */\nvar iconKey = function (namespace, name) { return namespace + ':' + name; };\n/**\n * Service to register and display icons used by the <md-icon> component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\nexport var MdIconRegistry = (function () {\n function MdIconRegistry(_http) {\n this._http = _http;\n /**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n */\n this._svgIconConfigs = new Map();\n /**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n */\n this._iconSetConfigs = new Map();\n /** Cache for icons loaded by direct URLs. */\n this._cachedIconsByUrl = new Map();\n /** In-progress icon fetches. Used to coalesce multiple requests to the same URL. */\n this._inProgressUrlFetches = new Map();\n /** Map from font identifiers to their CSS class names. Used for icon fonts. */\n this._fontCssClassesByAlias = new Map();\n /**\n * The CSS class to apply when an <md-icon> component has no icon name, url, or font specified.\n * The default 'material-icons' value assumes that the material icon font has been loaded as\n * described at http://google.github.io/material-design-icons/#icon-font-for-the-web\n */\n this._defaultFontSetClass = 'material-icons';\n }\n /** Registers an icon by URL in the default namespace. */\n MdIconRegistry.prototype.addSvgIcon = function (iconName, url) {\n return this.addSvgIconInNamespace('', iconName, url);\n };\n /** Registers an icon by URL in the specified namespace. */\n MdIconRegistry.prototype.addSvgIconInNamespace = function (namespace, iconName, url) {\n var key = iconKey(namespace, iconName);\n this._svgIconConfigs.set(key, new SvgIconConfig(url));\n return this;\n };\n /** Registers an icon set by URL in the default namespace. */\n MdIconRegistry.prototype.addSvgIconSet = function (url) {\n return this.addSvgIconSetInNamespace('', url);\n };\n /** Registers an icon set by URL in the specified namespace. */\n MdIconRegistry.prototype.addSvgIconSetInNamespace = function (namespace, url) {\n var config = new SvgIconConfig(url);\n if (this._iconSetConfigs.has(namespace)) {\n this._iconSetConfigs.get(namespace).push(config);\n }\n else {\n this._iconSetConfigs.set(namespace, [config]);\n }\n return this;\n };\n /**\n * Defines an alias for a CSS class name to be used for icon fonts. Creating an mdIcon\n * component with the alias as the fontSet input will cause the class name to be applied\n * to the <md-icon> element.\n */\n MdIconRegistry.prototype.registerFontClassAlias = function (alias, className) {\n if (className === void 0) { className = alias; }\n this._fontCssClassesByAlias.set(alias, className);\n return this;\n };\n /**\n * Returns the CSS class name associated with the alias by a previous call to\n * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n */\n MdIconRegistry.prototype.classNameForFontAlias = function (alias) {\n return this._fontCssClassesByAlias.get(alias) || alias;\n };\n /**\n * Sets the CSS class name to be used for icon fonts when an <md-icon> component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n MdIconRegistry.prototype.setDefaultFontSetClass = function (className) {\n this._defaultFontSetClass = className;\n return this;\n };\n /**\n * Returns the CSS class name to be used for icon fonts when an <md-icon> component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n MdIconRegistry.prototype.getDefaultFontSetClass = function () {\n return this._defaultFontSetClass;\n };\n /**\n * Returns an Observable that produces the icon (as an <svg> DOM element) from the given URL.\n * The response from the URL may be cached so this will not always cause an HTTP request, but\n * the produced element will always be a new copy of the originally fetched icon. (That is,\n * it will not contain any modifications made to elements previously returned).\n */\n MdIconRegistry.prototype.getSvgIconFromUrl = function (url) {\n var _this = this;\n if (this._cachedIconsByUrl.has(url)) {\n return Observable.of(cloneSvg(this._cachedIconsByUrl.get(url)));\n }\n return this._loadSvgIconFromConfig(new SvgIconConfig(url))\n .do(function (svg) { return _this._cachedIconsByUrl.set(url, svg); })\n .map(function (svg) { return cloneSvg(svg); });\n };\n /**\n * Returns an Observable that produces the icon (as an <svg> DOM element) with the given name\n * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n * if not, the Observable will throw an MdIconNameNotFoundError.\n */\n MdIconRegistry.prototype.getNamedSvgIcon = function (name, namespace) {\n if (namespace === void 0) { namespace = ''; }\n // Return (copy of) cached icon if possible.\n var key = iconKey(namespace, name);\n if (this._svgIconConfigs.has(key)) {\n return this._getSvgFromConfig(this._svgIconConfigs.get(key));\n }\n // See if we have any icon sets registered for the namespace.\n var iconSetConfigs = this._iconSetConfigs.get(namespace);\n if (iconSetConfigs) {\n return this._getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n return Observable.throw(new MdIconNameNotFoundError(key));\n };\n /**\n * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n */\n MdIconRegistry.prototype._getSvgFromConfig = function (config) {\n if (config.svgElement) {\n // We already have the SVG element for this icon, return a copy.\n return Observable.of(cloneSvg(config.svgElement));\n }\n else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this._loadSvgIconFromConfig(config)\n .do(function (svg) { return config.svgElement = svg; })\n .map(function (svg) { return cloneSvg(svg); });\n }\n };\n /**\n * Attempts to find an icon with the specified name in any of the SVG icon sets.\n * First searches the available cached icons for a nested element with a matching name, and\n * if found copies the element to a new <svg> element. If not found, fetches all icon sets\n * that have not been cached, and searches again after all fetches are completed.\n * The returned Observable produces the SVG element if possible, and throws\n * MdIconNameNotFoundError if no icon with the specified name can be found.\n */\n MdIconRegistry.prototype._getSvgFromIconSetConfigs = function (name, iconSetConfigs) {\n var _this = this;\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n var namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n if (namedIcon) {\n // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return Observable.of(namedIcon);\n }\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n var iconSetFetchRequests = iconSetConfigs\n .filter(function (iconSetConfig) { return !iconSetConfig.svgElement; })\n .map(function (iconSetConfig) {\n return _this._loadSvgIconSetFromConfig(iconSetConfig)\n .catch(function (err, caught) {\n // Swallow errors fetching individual URLs so the combined Observable won't\n // necessarily fail.\n console.log(\"Loading icon set URL: \" + iconSetConfig.url + \" failed: \" + err);\n return Observable.of(null);\n })\n .do(function (svg) {\n // Cache SVG element.\n if (svg) {\n iconSetConfig.svgElement = svg;\n }\n });\n });\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return Observable.forkJoin(iconSetFetchRequests)\n .map(function (ignoredResults) {\n var foundIcon = _this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n if (!foundIcon) {\n throw new MdIconNameNotFoundError(name);\n }\n return foundIcon;\n });\n };\n /**\n * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n MdIconRegistry.prototype._extractIconWithNameFromAnySet = function (iconName, iconSetConfigs) {\n // Iterate backwards, so icon sets added later have precedence.\n for (var i = iconSetConfigs.length - 1; i >= 0; i--) {\n var config = iconSetConfigs[i];\n if (config.svgElement) {\n var foundIcon = this._extractSvgIconFromSet(config.svgElement, iconName, config);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n };\n /**\n * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n */\n MdIconRegistry.prototype._loadSvgIconFromConfig = function (config) {\n var _this = this;\n return this._fetchUrl(config.url)\n .map(function (svgText) { return _this._createSvgElementForSingleIcon(svgText, config); });\n };\n /**\n * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n */\n MdIconRegistry.prototype._loadSvgIconSetFromConfig = function (config) {\n var _this = this;\n // TODO: Document that icons should only be loaded from trusted sources.\n return this._fetchUrl(config.url)\n .map(function (svgText) { return _this._svgElementFromString(svgText); });\n };\n /**\n * Creates a DOM element from the given SVG string, and adds default attributes.\n */\n MdIconRegistry.prototype._createSvgElementForSingleIcon = function (responseText, config) {\n var svg = this._svgElementFromString(responseText);\n this._setSvgAttributes(svg, config);\n return svg;\n };\n /**\n * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n MdIconRegistry.prototype._extractSvgIconFromSet = function (iconSet, iconName, config) {\n var iconNode = iconSet.querySelector('#' + iconName);\n if (!iconNode) {\n return null;\n }\n // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as\n // the content of a new <svg> node.\n if (iconNode.tagName.toLowerCase() == 'svg') {\n return this._setSvgAttributes(iconNode.cloneNode(true), config);\n }\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n var svg = this._svgElementFromString('<svg></svg>');\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconNode.cloneNode(true));\n return this._setSvgAttributes(svg, config);\n };\n /**\n * Creates a DOM element from the given SVG string.\n */\n MdIconRegistry.prototype._svgElementFromString = function (str) {\n // TODO: Is there a better way than innerHTML? Renderer doesn't appear to have a method for\n // creating an element from an HTML string.\n var div = document.createElement('DIV');\n div.innerHTML = str;\n var svg = div.querySelector('svg');\n if (!svg) {\n throw new MdIconSvgTagNotFoundError();\n }\n return svg;\n };\n /**\n * Sets the default attributes for an SVG element to be used as an icon.\n */\n MdIconRegistry.prototype._setSvgAttributes = function (svg, config) {\n if (!svg.getAttribute('xmlns')) {\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n }\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n return svg;\n };\n /**\n * Returns an Observable which produces the string contents of the given URL. Results may be\n * cached, so future calls with the same URL may not cause another HTTP request.\n */\n MdIconRegistry.prototype._fetchUrl = function (url) {\n var _this = this;\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n if (this._inProgressUrlFetches.has(url)) {\n return this._inProgressUrlFetches.get(url);\n }\n // TODO(jelbourn): for some reason, the `finally` operator \"loses\" the generic type on the\n // Observable. Figure out why and fix it.\n var req = this._http.get(url)\n .map(function (response) { return response.text(); })\n .finally(function () {\n _this._inProgressUrlFetches.delete(url);\n })\n .share();\n this._inProgressUrlFetches.set(url, req);\n return req;\n };\n MdIconRegistry = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [Http])\n ], MdIconRegistry);\n return MdIconRegistry;\n}());\n/** Clones an SVGElement while preserving type information. */\nfunction cloneSvg(svg) {\n return svg.cloneNode(true);\n}\n\n//# sourceMappingURL=icon-registry.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, ChangeDetectionStrategy, Component, ElementRef, Input, Renderer, ViewEncapsulation } from '@angular/core';\nimport { HttpModule } from '@angular/http';\nimport { MdError } from '../core';\nimport { MdIconRegistry } from './icon-registry';\nexport { MdIconRegistry } from './icon-registry';\n/** Exception thrown when an invalid icon name is passed to an md-icon component. */\nexport var MdIconInvalidNameError = (function (_super) {\n __extends(MdIconInvalidNameError, _super);\n function MdIconInvalidNameError(iconName) {\n _super.call(this, \"Invalid icon name: \\\"\" + iconName + \"\\\"\");\n }\n return MdIconInvalidNameError;\n}(MdError));\n/**\n * Component to display an icon. It can be used in the following ways:\n * - Specify the svgSrc input to load an SVG icon from a URL. The SVG content is directly inlined\n * as a child of the <md-icon> component, so that CSS styles can easily be applied to it.\n * The URL is loaded via an XMLHttpRequest, so it must be on the same domain as the page or its\n * server must be configured to allow cross-domain requests.\n * Example:\n * <md-icon svgSrc=\"assets/arrow.svg\"></md-icon>\n *\n * - Specify the svgIcon input to load an SVG icon from a URL previously registered with the\n * addSvgIcon, addSvgIconInNamespace, addSvgIconSet, or addSvgIconSetInNamespace methods of\n * MdIconRegistry. If the svgIcon value contains a colon it is assumed to be in the format\n * \"[namespace]:[name]\", if not the value will be the name of an icon in the default namespace.\n * Examples:\n * <md-icon svgIcon=\"left-arrow\"></md-icon>\n * <md-icon svgIcon=\"animals:cat\"></md-icon>\n *\n * - Use a font ligature as an icon by putting the ligature text in the content of the <md-icon>\n * component. By default the Material icons font is used as described at\n * http://google.github.io/material-design-icons/#icon-font-for-the-web. You can specify an\n * alternate font by setting the fontSet input to either the CSS class to apply to use the\n * desired font, or to an alias previously registered with MdIconRegistry.registerFontClassAlias.\n * Examples:\n * <md-icon>home</md-icon>\n * <md-icon fontSet=\"myfont\">sun</md-icon>\n *\n * - Specify a font glyph to be included via CSS rules by setting the fontSet input to specify the\n * font, and the fontIcon input to specify the icon. Typically the fontIcon will specify a\n * CSS class which causes the glyph to be displayed via a :before selector, as in\n * https://fortawesome.github.io/Font-Awesome/examples/\n * Example:\n * <md-icon fontSet=\"fa\" fontIcon=\"alarm\"></md-icon>\n */\nexport var MdIcon = (function () {\n function MdIcon(_element, _renderer, _mdIconRegistry) {\n this._element = _element;\n this._renderer = _renderer;\n this._mdIconRegistry = _mdIconRegistry;\n this.hostAriaLabel = '';\n }\n /**\n * Splits an svgIcon binding value into its icon set and icon name components.\n * Returns a 2-element array of [(icon set), (icon name)].\n * The separator for the two fields is ':'. If there is no separator, an empty\n * string is returned for the icon set and the entire value is returned for\n * the icon name. If the argument is falsy, returns an array of two empty strings.\n * Throws a MdIconInvalidNameError if the name contains two or more ':' separators.\n * Examples:\n * 'social:cake' -> ['social', 'cake']\n * 'penguin' -> ['', 'penguin']\n * null -> ['', '']\n * 'a:b:c' -> (throws MdIconInvalidNameError)\n */\n MdIcon.prototype._splitIconName = function (iconName) {\n if (!iconName) {\n return ['', ''];\n }\n var parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n // Use default namespace.\n return ['', parts[0]];\n case 2:\n return parts;\n default:\n throw new MdIconInvalidNameError(iconName);\n }\n };\n /** TODO: internal */\n MdIcon.prototype.ngOnChanges = function (changes) {\n var _this = this;\n var changedInputs = Object.keys(changes);\n // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.\n if (changedInputs.indexOf('svgIcon') != -1 || changedInputs.indexOf('svgSrc') != -1) {\n if (this.svgIcon) {\n var _a = this._splitIconName(this.svgIcon), namespace = _a[0], iconName = _a[1];\n this._mdIconRegistry.getNamedSvgIcon(iconName, namespace).subscribe(function (svg) { return _this._setSvgElement(svg); }, function (err) { return console.log(\"Error retrieving icon: \" + err); });\n }\n else if (this.svgSrc) {\n this._mdIconRegistry.getSvgIconFromUrl(this.svgSrc).subscribe(function (svg) { return _this._setSvgElement(svg); }, function (err) { return console.log(\"Error retrieving icon: \" + err); });\n }\n }\n if (this._usingFontIcon()) {\n this._updateFontIconClasses();\n }\n this._updateAriaLabel();\n };\n /** TODO: internal */\n MdIcon.prototype.ngOnInit = function () {\n // Update font classes because ngOnChanges won't be called if none of the inputs are present,\n // e.g. <md-icon>arrow</md-icon>. In this case we need to add a CSS class for the default font.\n if (this._usingFontIcon()) {\n this._updateFontIconClasses();\n }\n };\n /** TODO: internal */\n MdIcon.prototype.ngAfterViewChecked = function () {\n // Update aria label here because it may depend on the projected text content.\n // (e.g. <md-icon>home</md-icon> should use 'home').\n this._updateAriaLabel();\n };\n MdIcon.prototype._updateAriaLabel = function () {\n var ariaLabel = this._getAriaLabel();\n if (ariaLabel) {\n this._renderer.setElementAttribute(this._element.nativeElement, 'aria-label', ariaLabel);\n }\n };\n MdIcon.prototype._getAriaLabel = function () {\n // If the parent provided an aria-label attribute value, use it as-is. Otherwise look for a\n // reasonable value from the alt attribute, font icon name, SVG icon name, or (for ligatures)\n // the text content of the directive.\n var label = this.hostAriaLabel ||\n this.alt ||\n this.fontIcon ||\n this._splitIconName(this.svgIcon)[1];\n if (label) {\n return label;\n }\n // The \"content\" of an SVG icon is not a useful label.\n if (this._usingFontIcon()) {\n var text = this._element.nativeElement.textContent;\n if (text) {\n return text;\n }\n }\n // TODO: Warn here in dev mode.\n return null;\n };\n MdIcon.prototype._usingFontIcon = function () {\n return !(this.svgIcon || this.svgSrc);\n };\n MdIcon.prototype._setSvgElement = function (svg) {\n var layoutElement = this._element.nativeElement;\n // Remove existing child nodes and add the new SVG element.\n // We would use renderer.detachView(Array.from(layoutElement.childNodes)) here,\n // but it fails in IE11: https://github.com/angular/angular/issues/6327\n layoutElement.innerHTML = '';\n this._renderer.projectNodes(layoutElement, [svg]);\n };\n MdIcon.prototype._updateFontIconClasses = function () {\n if (!this._usingFontIcon()) {\n return;\n }\n var elem = this._element.nativeElement;\n var fontSetClass = this.fontSet ?\n this._mdIconRegistry.classNameForFontAlias(this.fontSet) :\n this._mdIconRegistry.getDefaultFontSetClass();\n if (fontSetClass != this._previousFontSetClass) {\n if (this._previousFontSetClass) {\n this._renderer.setElementClass(elem, this._previousFontSetClass, false);\n }\n if (fontSetClass) {\n this._renderer.setElementClass(elem, fontSetClass, true);\n }\n this._previousFontSetClass = fontSetClass;\n }\n if (this.fontIcon != this._previousFontIconClass) {\n if (this._previousFontIconClass) {\n this._renderer.setElementClass(elem, this._previousFontIconClass, false);\n }\n if (this.fontIcon) {\n this._renderer.setElementClass(elem, this.fontIcon, true);\n }\n this._previousFontIconClass = this.fontIcon;\n }\n };\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdIcon.prototype, \"svgSrc\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdIcon.prototype, \"svgIcon\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdIcon.prototype, \"fontSet\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdIcon.prototype, \"fontIcon\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdIcon.prototype, \"alt\", void 0);\n __decorate([\n Input('aria-label'), \n __metadata('design:type', String)\n ], MdIcon.prototype, \"hostAriaLabel\", void 0);\n MdIcon = __decorate([\n Component({template: '<ng-content></ng-content>',\n selector: 'md-icon',\n styles: [\"md-icon { background-repeat: no-repeat; display: inline-block; fill: currentColor; height: 24px; width: 24px; } /*# sourceMappingURL=icon.css.map */ \"],\n host: {\n 'role': 'img',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [ElementRef, Renderer, MdIconRegistry])\n ], MdIcon);\n return MdIcon;\n}());\nexport var MdIconModule = (function () {\n function MdIconModule() {\n }\n MdIconModule.forRoot = function () {\n return {\n ngModule: MdIconModule,\n providers: [MdIconRegistry],\n };\n };\n MdIconModule = __decorate([\n NgModule({\n imports: [HttpModule],\n exports: [MdIcon],\n declarations: [MdIcon],\n }), \n __metadata('design:paramtypes', [])\n ], MdIconModule);\n return MdIconModule;\n}());\n\n//# sourceMappingURL=icon.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Component, HostBinding, ChangeDetectorRef, ChangeDetectionStrategy, Input } from '@angular/core';\n// TODO(josephperrott): Benchpress tests.\n/** A single degree in radians. */\nvar DEGREE_IN_RADIANS = Math.PI / 180;\n/** Duration of the indeterminate animation. */\nvar DURATION_INDETERMINATE = 667;\n/** Duration of the indeterminate animation. */\nvar DURATION_DETERMINATE = 225;\n/** Start animation value of the indeterminate animation */\nvar startIndeterminate = 3;\n/** End animation value of the indeterminate animation */\nvar endIndeterminate = 80;\n/**\n * <md-progress-circle> component.\n */\nexport var MdProgressCircle = (function () {\n function MdProgressCircle(_changeDetectorRef) {\n this._changeDetectorRef = _changeDetectorRef;\n /** The id of the last requested animation. */\n this._lastAnimationId = 0;\n this._mode = 'determinate';\n }\n Object.defineProperty(MdProgressCircle.prototype, \"_ariaValueMin\", {\n /**\n * Values for aria max and min are only defined as numbers when in a determinate mode. We do this\n * because voiceover does not report the progress indicator as indeterminate if the aria min\n * and/or max value are number values.\n */\n get: function () {\n return this.mode == 'determinate' ? 0 : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdProgressCircle.prototype, \"_ariaValueMax\", {\n get: function () {\n return this.mode == 'determinate' ? 100 : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdProgressCircle.prototype, \"interdeterminateInterval\", {\n /** TODO: internal */\n get: function () {\n return this._interdeterminateInterval;\n },\n /** TODO: internal */\n set: function (interval) {\n clearInterval(this._interdeterminateInterval);\n this._interdeterminateInterval = interval;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdProgressCircle.prototype, \"currentPath\", {\n /** TODO: internal */\n get: function () {\n return this._currentPath;\n },\n set: function (path) {\n this._currentPath = path;\n // Mark for check as our ChangeDetectionStrategy is OnPush, when changes come from within the\n // component, change detection must be called for.\n this._changeDetectorRef.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n /** Clean up any animations that were running. */\n MdProgressCircle.prototype.ngOnDestroy = function () {\n this._cleanupIndeterminateAnimation();\n };\n Object.defineProperty(MdProgressCircle.prototype, \"value\", {\n get: function () {\n if (this.mode == 'determinate') {\n return this._value;\n }\n },\n set: function (v) {\n if (v && this.mode == 'determinate') {\n var newValue = clamp(v);\n this._animateCircle((this.value || 0), newValue, linearEase, DURATION_DETERMINATE, 0);\n this._value = newValue;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdProgressCircle.prototype, \"mode\", {\n /**\n * Mode of the progress circle\n *\n * Input must be one of the values from ProgressMode, defaults to 'determinate'.\n * mode is bound to the host as the attribute host.\n */\n get: function () {\n return this._mode;\n },\n set: function (m) {\n if (m == 'indeterminate') {\n this._startIndeterminateAnimation();\n }\n else {\n this._cleanupIndeterminateAnimation();\n }\n this._mode = m;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Animates the circle from one percentage value to another.\n *\n * @param animateFrom The percentage of the circle filled starting the animation.\n * @param animateTo The percentage of the circle filled ending the animation.\n * @param ease The easing function to manage the pace of change in the animation.\n * @param duration The length of time to show the animation, in milliseconds.\n * @param rotation The starting angle of the circle fill, with 0° represented at the top center\n * of the circle.\n */\n MdProgressCircle.prototype._animateCircle = function (animateFrom, animateTo, ease, duration, rotation) {\n var _this = this;\n var id = ++this._lastAnimationId;\n var startTime = Date.now();\n var changeInValue = animateTo - animateFrom;\n // No need to animate it if the values are the same\n if (animateTo === animateFrom) {\n this.currentPath = getSvgArc(animateTo, rotation);\n }\n else {\n var animation_1 = function () {\n var elapsedTime = Math.max(0, Math.min(Date.now() - startTime, duration));\n _this.currentPath = getSvgArc(ease(elapsedTime, animateFrom, changeInValue, duration), rotation);\n // Prevent overlapping animations by checking if a new animation has been called for and\n // if the animation has lasted long than the animation duration.\n if (id === _this._lastAnimationId && elapsedTime < duration) {\n requestAnimationFrame(animation_1);\n }\n };\n requestAnimationFrame(animation_1);\n }\n };\n /**\n * Starts the indeterminate animation interval, if it is not already running.\n */\n MdProgressCircle.prototype._startIndeterminateAnimation = function () {\n var _this = this;\n var rotationStartPoint = 0;\n var start = startIndeterminate;\n var end = endIndeterminate;\n var duration = DURATION_INDETERMINATE;\n var animate = function () {\n _this._animateCircle(start, end, materialEase, duration, rotationStartPoint);\n // Prevent rotation from reaching Number.MAX_SAFE_INTEGER.\n rotationStartPoint = (rotationStartPoint + end) % 100;\n var temp = start;\n start = -end;\n end = -temp;\n };\n if (!this.interdeterminateInterval) {\n this.interdeterminateInterval = setInterval(animate, duration + 50, 0, false);\n animate();\n }\n };\n /**\n * Removes interval, ending the animation.\n */\n MdProgressCircle.prototype._cleanupIndeterminateAnimation = function () {\n this.interdeterminateInterval = null;\n };\n __decorate([\n Input(),\n HostBinding('attr.aria-valuenow'), \n __metadata('design:type', Object)\n ], MdProgressCircle.prototype, \"value\", null);\n __decorate([\n HostBinding('attr.mode'),\n Input(), \n __metadata('design:type', Object)\n ], MdProgressCircle.prototype, \"mode\", null);\n MdProgressCircle = __decorate([\n Component({selector: 'md-progress-circle',\n host: {\n 'role': 'progressbar',\n '[attr.aria-valuemin]': '_ariaValueMin',\n '[attr.aria-valuemax]': '_ariaValueMax',\n },\n template: \"<!-- preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's center. The center of the circle with remain at the center of the md-progress-circle element containing the SVG. --> <svg viewBox=\\\"0 0 100 100\\\" preserveAspectRatio=\\\"xMidYMid meet\\\"> <path [attr.d]=\\\"currentPath\\\"></path> </svg> \",\n styles: [\":host { display: block; height: 100px; width: 100px; } :host svg { height: 100%; width: 100%; transform-origin: center; } :host path { fill: transparent; stroke-width: 10px; } :host[mode='indeterminate'] { animation-duration: 5250ms, 2887.5ms; animation-name: md-progress-circle-sporadic-rotate, md-progress-circle-linear-rotate; animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1), linear; animation-iteration-count: infinite; transition: none; } @keyframes md-progress-circle-linear-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes md-progress-circle-sporadic-rotate { 12.5% { transform: rotate(135deg); } 25% { transform: rotate(270deg); } 37.5% { transform: rotate(405deg); } 50% { transform: rotate(540deg); } 62.5% { transform: rotate(675deg); } 75% { transform: rotate(810deg); } 87.5% { transform: rotate(945deg); } 100% { transform: rotate(1080deg); } } /*# sourceMappingURL=progress-circle.css.map */ \"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [ChangeDetectorRef])\n ], MdProgressCircle);\n return MdProgressCircle;\n}());\n/**\n * <md-spinner> component.\n *\n * This is a component definition to be used as a convenience reference to create an\n * indeterminate <md-progress-circle> instance.\n */\nexport var MdSpinner = (function (_super) {\n __extends(MdSpinner, _super);\n function MdSpinner(changeDetectorRef) {\n _super.call(this, changeDetectorRef);\n this.mode = 'indeterminate';\n }\n MdSpinner = __decorate([\n Component({selector: 'md-spinner',\n host: {\n 'role': 'progressbar',\n 'mode': 'indeterminate',\n },\n template: \"<!-- preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's center. The center of the circle with remain at the center of the md-progress-circle element containing the SVG. --> <svg viewBox=\\\"0 0 100 100\\\" preserveAspectRatio=\\\"xMidYMid meet\\\"> <path [attr.d]=\\\"currentPath\\\"></path> </svg> \",\n styles: [\":host { display: block; height: 100px; width: 100px; } :host svg { height: 100%; width: 100%; transform-origin: center; } :host path { fill: transparent; stroke-width: 10px; } :host[mode='indeterminate'] { animation-duration: 5250ms, 2887.5ms; animation-name: md-progress-circle-sporadic-rotate, md-progress-circle-linear-rotate; animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1), linear; animation-iteration-count: infinite; transition: none; } @keyframes md-progress-circle-linear-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes md-progress-circle-sporadic-rotate { 12.5% { transform: rotate(135deg); } 25% { transform: rotate(270deg); } 37.5% { transform: rotate(405deg); } 50% { transform: rotate(540deg); } 62.5% { transform: rotate(675deg); } 75% { transform: rotate(810deg); } 87.5% { transform: rotate(945deg); } 100% { transform: rotate(1080deg); } } /*# sourceMappingURL=progress-circle.css.map */ \"],\n }), \n __metadata('design:paramtypes', [ChangeDetectorRef])\n ], MdSpinner);\n return MdSpinner;\n}(MdProgressCircle));\n/**\n * Module functions.\n */\n/** Clamps a value to be between 0 and 100. */\nfunction clamp(v) {\n return Math.max(0, Math.min(100, v));\n}\n/**\n * Converts Polar coordinates to Cartesian.\n */\nfunction polarToCartesian(radius, pathRadius, angleInDegrees) {\n var angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;\n return (radius + (pathRadius * Math.cos(angleInRadians))) +\n ',' + (radius + (pathRadius * Math.sin(angleInRadians)));\n}\n/**\n * Easing function for linear animation.\n */\nfunction linearEase(currentTime, startValue, changeInValue, duration) {\n return changeInValue * currentTime / duration + startValue;\n}\n/**\n * Easing function to match material design indeterminate animation.\n */\nfunction materialEase(currentTime, startValue, changeInValue, duration) {\n var time = currentTime / duration;\n var timeCubed = Math.pow(time, 3);\n var timeQuad = Math.pow(time, 4);\n var timeQuint = Math.pow(time, 5);\n return startValue + changeInValue * ((6 * timeQuint) + (-15 * timeQuad) + (10 * timeCubed));\n}\n/**\n * Determines the path value to define the arc. Converting percentage values to to polar\n * coordinates on the circle, and then to cartesian coordinates in the viewport.\n *\n * @param currentValue The current percentage value of the progress circle, the percentage of the\n * circle to fill.\n * @param rotation The starting point of the circle with 0 being the 0 degree point.\n * @return A string for an SVG path representing a circle filled from the starting point to the\n * percentage value provided.\n */\nfunction getSvgArc(currentValue, rotation) {\n // The angle can't be exactly 360, because the arc becomes hidden.\n var maximumAngle = 359.99 / 100;\n var startPoint = rotation || 0;\n var radius = 50;\n var pathRadius = 40;\n var startAngle = startPoint * maximumAngle;\n var endAngle = currentValue * maximumAngle;\n var start = polarToCartesian(radius, pathRadius, startAngle);\n var end = polarToCartesian(radius, pathRadius, endAngle + startAngle);\n var arcSweep = endAngle < 0 ? 0 : 1;\n var largeArcFlag;\n if (endAngle < 0) {\n largeArcFlag = endAngle >= -180 ? 0 : 1;\n }\n else {\n largeArcFlag = endAngle <= 180 ? 0 : 1;\n }\n return \"M\" + start + \"A\" + pathRadius + \",\" + pathRadius + \" 0 \" + largeArcFlag + \",\" + arcSweep + \" \" + end;\n}\nexport var MdProgressCircleModule = (function () {\n function MdProgressCircleModule() {\n }\n MdProgressCircleModule.forRoot = function () {\n return {\n ngModule: MdProgressCircleModule,\n providers: []\n };\n };\n MdProgressCircleModule = __decorate([\n NgModule({\n exports: [MdProgressCircle, MdSpinner],\n declarations: [MdProgressCircle, MdSpinner],\n }), \n __metadata('design:paramtypes', [])\n ], MdProgressCircleModule);\n return MdProgressCircleModule;\n}());\n\n//# sourceMappingURL=progress-circle.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n// TODO(josephperrott): Benchpress tests.\n// TODO(josephperrott): Add ARIA attributes for progressbar \"for\".\n/**\n * <md-progress-bar> component.\n */\nexport var MdProgressBar = (function () {\n function MdProgressBar() {\n /** Value of the progressbar. Defaults to zero. Mirrored to aria-valuenow. */\n this._value = 0;\n /** Buffer value of the progress bar. Defaults to zero. */\n this._bufferValue = 0;\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n this.mode = 'determinate';\n }\n Object.defineProperty(MdProgressBar.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n set: function (v) {\n this._value = clamp(v || 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdProgressBar.prototype, \"bufferValue\", {\n get: function () {\n return this._bufferValue;\n },\n set: function (v) {\n this._bufferValue = clamp(v || 0);\n },\n enumerable: true,\n configurable: true\n });\n /** Gets the current transform value for the progress bar's primary indicator. */\n MdProgressBar.prototype._primaryTransform = function () {\n var scale = this.value / 100;\n return { transform: \"scaleX(\" + scale + \")\" };\n };\n /**\n * Gets the current transform value for the progress bar's buffer indicator. Only used if the\n * progress mode is set to buffer, otherwise returns an undefined, causing no transformation.\n */\n MdProgressBar.prototype._bufferTransform = function () {\n if (this.mode == 'buffer') {\n var scale = this.bufferValue / 100;\n return { transform: \"scaleX(\" + scale + \")\" };\n }\n };\n __decorate([\n Input(),\n HostBinding('attr.aria-valuenow'), \n __metadata('design:type', Object)\n ], MdProgressBar.prototype, \"value\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdProgressBar.prototype, \"bufferValue\", null);\n __decorate([\n Input(),\n HostBinding('attr.mode'), \n __metadata('design:type', Object)\n ], MdProgressBar.prototype, \"mode\", void 0);\n MdProgressBar = __decorate([\n Component({selector: 'md-progress-bar',\n host: {\n 'role': 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n },\n template: \"<!-- The background div is named as such because it appears below the other divs and is not sized based on values. --> <div class=\\\"md-progress-bar-background\\\"></div> <div class=\\\"md-progress-bar-buffer\\\" [ngStyle]=\\\"_bufferTransform()\\\"></div> <div class=\\\"md-progress-bar-primary md-progress-bar-fill\\\" [ngStyle]=\\\"_primaryTransform()\\\"></div> <div class=\\\"md-progress-bar-secondary md-progress-bar-fill\\\"></div> \",\n styles: [\":host { display: block; height: 5px; overflow: hidden; position: relative; transform: translateZ(0); transition: opacity 250ms linear; width: 100%; } :host .md-progress-bar-background { background-repeat: repeat-x; background-size: 10px 4px; height: 100%; position: absolute; visibility: hidden; width: 100%; } :host .md-progress-bar-buffer { height: 100%; position: absolute; transform-origin: top left; transition: transform 250ms ease; width: 100%; } :host .md-progress-bar-secondary { visibility: hidden; } :host .md-progress-bar-fill { animation: none; height: 100%; position: absolute; transform-origin: top left; transition: transform 250ms ease; width: 100%; } :host .md-progress-bar-fill::after { animation: none; content: ''; display: inline-block; height: 100%; position: absolute; width: 100%; } :host[mode='query'] { transform: rotateZ(180deg); } :host[mode='indeterminate'] .md-progress-bar-fill, :host[mode='query'] .md-progress-bar-fill { transition: none; } :host[mode='indeterminate'] .md-progress-bar-primary, :host[mode='query'] .md-progress-bar-primary { animation: md-progress-bar-primary-indeterminate-translate 2000ms infinite linear; left: -145.166611%; } :host[mode='indeterminate'] .md-progress-bar-primary.md-progress-bar-fill::after, :host[mode='query'] .md-progress-bar-primary.md-progress-bar-fill::after { animation: md-progress-bar-primary-indeterminate-scale 2000ms infinite linear; } :host[mode='indeterminate'] .md-progress-bar-secondary, :host[mode='query'] .md-progress-bar-secondary { animation: md-progress-bar-secondary-indeterminate-translate 2000ms infinite linear; left: -54.888891%; visibility: visible; } :host[mode='indeterminate'] .md-progress-bar-secondary.md-progress-bar-fill::after, :host[mode='query'] .md-progress-bar-secondary.md-progress-bar-fill::after { animation: md-progress-bar-secondary-indeterminate-scale 2000ms infinite linear; } :host[mode='buffer'] .md-progress-bar-background { animation: md-progress-bar-background-scroll 250ms infinite linear; visibility: visible; } :host-context([dir='rtl']) { transform: rotateY(180deg); } @keyframes md-progress-bar-primary-indeterminate-translate { 0% { transform: translateX(0); } 20% { animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582); transform: translateX(0); } 59.15% { animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635); transform: translateX(83.67142%); } 100% { transform: translateX(200.61106%); } } @keyframes md-progress-bar-primary-indeterminate-scale { 0% { transform: scaleX(0.08); } 36.65% { animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1); transform: scaleX(0.08); } 69.15% { animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1); transform: scaleX(0.66148); } 100% { transform: scaleX(0.08); } } @keyframes md-progress-bar-secondary-indeterminate-translate { 0% { animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969); transform: translateX(0); } 25% { animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371); transform: translateX(37.65191%); } 48.35% { animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203); transform: translateX(84.38617%); } 100% { transform: translateX(160.27778%); } } @keyframes md-progress-bar-secondary-indeterminate-scale { 0% { animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969); transform: scaleX(0.08); } 19.15% { animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371); transform: scaleX(0.4571); } 44.15% { animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203); transform: scaleX(0.72796); } 100% { transform: scaleX(0.08); } } @keyframes md-progress-bar-background-scroll { to { transform: translateX(-10px); } } /*# sourceMappingURL=progress-bar.css.map */ \"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }), \n __metadata('design:paramtypes', [])\n ], MdProgressBar);\n return MdProgressBar;\n}());\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v, min, max) {\n if (min === void 0) { min = 0; }\n if (max === void 0) { max = 100; }\n return Math.max(min, Math.min(max, v));\n}\nexport var MdProgressBarModule = (function () {\n function MdProgressBarModule() {\n }\n MdProgressBarModule.forRoot = function () {\n return {\n ngModule: MdProgressBarModule,\n providers: []\n };\n };\n MdProgressBarModule = __decorate([\n NgModule({\n imports: [CommonModule],\n exports: [MdProgressBar],\n declarations: [MdProgressBar],\n }), \n __metadata('design:paramtypes', [])\n ], MdProgressBarModule);\n return MdProgressBarModule;\n}());\n\n//# sourceMappingURL=progress-bar.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { forwardRef, Component, HostBinding, Input, Directive, ContentChild, ContentChildren, ViewChild, ElementRef, QueryList, EventEmitter, Output, NgModule, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BooleanFieldValue, MdError } from '../core';\nimport { Observable } from 'rxjs/Observable';\nvar noop = function () { };\nexport var MD_INPUT_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MdInput; }),\n multi: true\n};\n// Invalid input type. Using one of these will throw an MdInputUnsupportedTypeError.\nvar MD_INPUT_INVALID_INPUT_TYPE = [\n 'file',\n 'radio',\n 'checkbox',\n];\nvar nextUniqueId = 0;\nexport var MdInputPlaceholderConflictError = (function (_super) {\n __extends(MdInputPlaceholderConflictError, _super);\n function MdInputPlaceholderConflictError() {\n _super.call(this, 'Placeholder attribute and child element were both specified.');\n }\n return MdInputPlaceholderConflictError;\n}(MdError));\nexport var MdInputUnsupportedTypeError = (function (_super) {\n __extends(MdInputUnsupportedTypeError, _super);\n function MdInputUnsupportedTypeError(type) {\n _super.call(this, \"Input type \\\"\" + type + \"\\\" isn't supported by md-input.\");\n }\n return MdInputUnsupportedTypeError;\n}(MdError));\nexport var MdInputDuplicatedHintError = (function (_super) {\n __extends(MdInputDuplicatedHintError, _super);\n function MdInputDuplicatedHintError(align) {\n _super.call(this, \"A hint was already declared for 'align=\\\"\" + align + \"\\\"'.\");\n }\n return MdInputDuplicatedHintError;\n}(MdError));\n/**\n * The placeholder directive. The content can declare this to implement more\n * complex placeholders.\n */\nexport var MdPlaceholder = (function () {\n function MdPlaceholder() {\n }\n MdPlaceholder = __decorate([\n Directive({\n selector: 'md-placeholder'\n }), \n __metadata('design:paramtypes', [])\n ], MdPlaceholder);\n return MdPlaceholder;\n}());\n/** The hint directive, used to tag content as hint labels (going under the input). */\nexport var MdHint = (function () {\n function MdHint() {\n // Whether to align the hint label at the start or end of the line.\n this.align = 'start';\n }\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdHint.prototype, \"align\", void 0);\n MdHint = __decorate([\n Directive({\n selector: 'md-hint',\n host: {\n '[class.md-right]': 'align == \"end\"',\n '[class.md-hint]': 'true'\n }\n }), \n __metadata('design:paramtypes', [])\n ], MdHint);\n return MdHint;\n}());\n/**\n * Component that represents a text input. It encapsulates the <input> HTMLElement and\n * improve on its behaviour, along with styling it according to the Material Design.\n */\nexport var MdInput = (function () {\n function MdInput() {\n this._focused = false;\n this._value = '';\n /** Callback registered via registerOnTouched (ControlValueAccessor) */\n this._onTouchedCallback = noop;\n /** Callback registered via registerOnChange (ControlValueAccessor) */\n this._onChangeCallback = noop;\n /**\n * Bindings.\n */\n this.align = 'start';\n this.dividerColor = 'primary';\n this.floatingPlaceholder = true;\n this.hintLabel = '';\n this.autofocus = false;\n this.disabled = false;\n this.id = \"md-input-\" + nextUniqueId++;\n this.list = null;\n this.max = null;\n this.maxlength = null;\n this.min = null;\n this.minlength = null;\n this.placeholder = null;\n this.readonly = false;\n this.required = false;\n this.spellcheck = false;\n this.step = null;\n this.tabindex = null;\n this.type = 'text';\n this.name = null;\n this._blurEmitter = new EventEmitter();\n this._focusEmitter = new EventEmitter();\n }\n Object.defineProperty(MdInput.prototype, \"focused\", {\n /** Readonly properties. */\n get: function () { return this._focused; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdInput.prototype, \"empty\", {\n get: function () { return (this._value == null || this._value === '') && this.type !== 'date'; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdInput.prototype, \"characterCount\", {\n get: function () {\n return this.empty ? 0 : ('' + this._value).length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdInput.prototype, \"inputId\", {\n get: function () { return this.id + \"-input\"; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdInput.prototype, \"onBlur\", {\n get: function () {\n return this._blurEmitter.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdInput.prototype, \"onFocus\", {\n get: function () {\n return this._focusEmitter.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdInput.prototype, \"value\", {\n get: function () { return this._value; },\n set: function (v) {\n v = this._convertValueForInputType(v);\n if (v !== this._value) {\n this._value = v;\n this._onChangeCallback(v);\n }\n },\n enumerable: true,\n configurable: true\n });\n ;\n Object.defineProperty(MdInput.prototype, \"_align\", {\n // This is to remove the `align` property of the `md-input` itself. Otherwise HTML5\n // might place it as RTL when we don't want to. We still want to use `align` as an\n // Input though, so we use HostBinding.\n get: function () { return null; },\n enumerable: true,\n configurable: true\n });\n /** Set focus on input */\n MdInput.prototype.focus = function () {\n this._inputElement.nativeElement.focus();\n };\n MdInput.prototype._handleFocus = function (event) {\n this._focused = true;\n this._focusEmitter.emit(event);\n };\n MdInput.prototype._handleBlur = function (event) {\n this._focused = false;\n this._onTouchedCallback();\n this._blurEmitter.emit(event);\n };\n MdInput.prototype._handleChange = function (event) {\n this.value = event.target.value;\n this._onTouchedCallback();\n };\n MdInput.prototype._hasPlaceholder = function () {\n return !!this.placeholder || this._placeholderChild != null;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdInput.prototype.writeValue = function (value) {\n this._value = value;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdInput.prototype.registerOnChange = function (fn) {\n this._onChangeCallback = fn;\n };\n /**\n * Implemented as part of ControlValueAccessor.\n * TODO: internal\n */\n MdInput.prototype.registerOnTouched = function (fn) {\n this._onTouchedCallback = fn;\n };\n /** TODO: internal */\n MdInput.prototype.ngAfterContentInit = function () {\n var _this = this;\n this._validateConstraints();\n // Trigger validation when the hint children change.\n this._hintChildren.changes.subscribe(function () {\n _this._validateConstraints();\n });\n };\n /** TODO: internal */\n MdInput.prototype.ngOnChanges = function (changes) {\n this._validateConstraints();\n };\n /**\n * Convert the value passed in to a value that is expected from the type of the md-input.\n * This is normally performed by the *_VALUE_ACCESSOR in forms, but since the type is bound\n * on our internal input it won't work locally.\n * @private\n */\n MdInput.prototype._convertValueForInputType = function (v) {\n switch (this.type) {\n case 'number': return parseFloat(v);\n default: return v;\n }\n };\n /**\n * Ensure that all constraints defined by the API are validated, or throw errors otherwise.\n * Constraints for now:\n * - placeholder attribute and <md-placeholder> are mutually exclusive.\n * - type attribute is not one of the forbidden types (see constant at the top).\n * - Maximum one of each `<md-hint>` alignment specified, with the attribute being\n * considered as align=\"start\".\n * @private\n */\n MdInput.prototype._validateConstraints = function () {\n var _this = this;\n if (this.placeholder != '' && this.placeholder != null && this._placeholderChild != null) {\n throw new MdInputPlaceholderConflictError();\n }\n if (MD_INPUT_INVALID_INPUT_TYPE.indexOf(this.type) != -1) {\n throw new MdInputUnsupportedTypeError(this.type);\n }\n if (this._hintChildren) {\n // Validate the hint labels.\n var startHint_1 = null;\n var endHint_1 = null;\n this._hintChildren.forEach(function (hint) {\n if (hint.align == 'start') {\n if (startHint_1 || _this.hintLabel) {\n throw new MdInputDuplicatedHintError('start');\n }\n startHint_1 = hint;\n }\n else if (hint.align == 'end') {\n if (endHint_1) {\n throw new MdInputDuplicatedHintError('end');\n }\n endHint_1 = hint;\n }\n });\n }\n };\n __decorate([\n Input('aria-label'), \n __metadata('design:type', String)\n ], MdInput.prototype, \"ariaLabel\", void 0);\n __decorate([\n Input('aria-labelledby'), \n __metadata('design:type', String)\n ], MdInput.prototype, \"ariaLabelledBy\", void 0);\n __decorate([\n Input('aria-disabled'),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"ariaDisabled\", void 0);\n __decorate([\n Input('aria-required'),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"ariaRequired\", void 0);\n __decorate([\n Input('aria-invalid'),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"ariaInvalid\", void 0);\n __decorate([\n ContentChild(MdPlaceholder), \n __metadata('design:type', MdPlaceholder)\n ], MdInput.prototype, \"_placeholderChild\", void 0);\n __decorate([\n ContentChildren(MdHint), \n __metadata('design:type', QueryList)\n ], MdInput.prototype, \"_hintChildren\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdInput.prototype, \"align\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdInput.prototype, \"dividerColor\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"floatingPlaceholder\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"hintLabel\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"autocomplete\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"autocorrect\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"autocapitalize\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"autofocus\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"disabled\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"id\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"list\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdInput.prototype, \"max\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdInput.prototype, \"maxlength\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdInput.prototype, \"min\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdInput.prototype, \"minlength\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"placeholder\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"readonly\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"required\", void 0);\n __decorate([\n Input(),\n BooleanFieldValue(), \n __metadata('design:type', Boolean)\n ], MdInput.prototype, \"spellcheck\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdInput.prototype, \"step\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number)\n ], MdInput.prototype, \"tabindex\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"type\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdInput.prototype, \"name\", void 0);\n __decorate([\n Output('blur'), \n __metadata('design:type', Observable)\n ], MdInput.prototype, \"onBlur\", null);\n __decorate([\n Output('focus'), \n __metadata('design:type', Observable)\n ], MdInput.prototype, \"onFocus\", null);\n __decorate([\n Input(), \n __metadata('design:type', Object)\n ], MdInput.prototype, \"value\", null);\n __decorate([\n HostBinding('attr.align'), \n __metadata('design:type', Object)\n ], MdInput.prototype, \"_align\", null);\n __decorate([\n ViewChild('input'), \n __metadata('design:type', ElementRef)\n ], MdInput.prototype, \"_inputElement\", void 0);\n MdInput = __decorate([\n Component({selector: 'md-input',\n template: \"<div class=\\\"md-input-wrapper\\\"> <div class=\\\"md-input-table\\\"> <div class=\\\"md-input-prefix\\\"><ng-content select=\\\"[md-prefix]\\\"></ng-content></div> <div class=\\\"md-input-infix\\\"> <input #input aria-target class=\\\"md-input-element\\\" [class.md-end]=\\\"align == 'end'\\\" [attr.aria-label]=\\\"ariaLabel\\\" [attr.aria-labelledby]=\\\"ariaLabelledBy\\\" [attr.aria-disabled]=\\\"ariaDisabled\\\" [attr.aria-required]=\\\"ariaRequired\\\" [attr.aria-invalid]=\\\"ariaInvalid\\\" [attr.autocomplete]=\\\"autocomplete\\\" [attr.autocorrect]=\\\"autocorrect\\\" [attr.autocapitalize]=\\\"autocapitalize\\\" [autofocus]=\\\"autofocus\\\" [disabled]=\\\"disabled\\\" [id]=\\\"inputId\\\" [attr.list]=\\\"list\\\" [attr.max]=\\\"max\\\" [attr.maxlength]=\\\"maxlength\\\" [attr.min]=\\\"min\\\" [attr.minlength]=\\\"minlength\\\" [readonly]=\\\"readonly\\\" [required]=\\\"required\\\" [spellcheck]=\\\"spellcheck\\\" [attr.step]=\\\"step\\\" [attr.tabindex]=\\\"tabindex\\\" [type]=\\\"type\\\" [attr.name]=\\\"name\\\" (focus)=\\\"_handleFocus($event)\\\" (blur)=\\\"_handleBlur($event)\\\" [(ngModel)]=\\\"value\\\" (change)=\\\"_handleChange($event)\\\"> <label class=\\\"md-input-placeholder\\\" [attr.for]=\\\"inputId\\\" [class.md-empty]=\\\"empty\\\" [class.md-focused]=\\\"focused\\\" [class.md-float]=\\\"floatingPlaceholder\\\" [class.md-accent]=\\\"dividerColor == 'accent'\\\" [class.md-warn]=\\\"dividerColor == 'warn'\\\" *ngIf=\\\"_hasPlaceholder()\\\"> <ng-content select=\\\"md-placeholder\\\"></ng-content> {{placeholder}} <span class=\\\"md-placeholder-required\\\" *ngIf=\\\"required\\\">*</span> </label> </div> <div class=\\\"md-input-suffix\\\"><ng-content select=\\\"[md-suffix]\\\"></ng-content></div> </div> <div class=\\\"md-input-underline\\\" [class.md-disabled]=\\\"disabled\\\"> <span class=\\\"md-input-ripple\\\" [class.md-focused]=\\\"focused\\\" [class.md-accent]=\\\"dividerColor == 'accent'\\\" [class.md-warn]=\\\"dividerColor == 'warn'\\\"></span> </div> <div *ngIf=\\\"hintLabel != ''\\\" class=\\\"md-hint\\\">{{hintLabel}}</div> <ng-content select=\\\"md-hint\\\"></ng-content> </div> \",\n styles: [\"md-input { display: inline-block; position: relative; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; text-align: left; } [dir='rtl'] md-input { text-align: right; } .md-input-wrapper { margin: 16px 0; } .md-input-table { display: inline-table; flex-flow: column; vertical-align: bottom; width: 100%; } .md-input-table > * { display: table-cell; } .md-input-infix { position: relative; } .md-input-element { font: inherit; background: transparent; color: currentColor; border: none; outline: none; padding: 0; width: 100%; } .md-input-element.md-end { text-align: right; } [dir='rtl'] .md-input-element.md-end { text-align: left; } .md-input-element:-moz-ui-invalid { box-shadow: none; } .md-input-element:-webkit-autofill + .md-input-placeholder { display: block; padding-bottom: 5px; transform: translateY(-100%) scale(0.75); width: 133.33333%; } .md-input-placeholder { position: absolute; left: 0; top: 0; font-size: 100%; pointer-events: none; z-index: 1; width: 100%; display: none; white-space: nowrap; text-overflow: ellipsis; overflow-x: hidden; transform: translateY(0); transform-origin: bottom left; transition: transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1), scale 400ms cubic-bezier(0.25, 0.8, 0.25, 1), color 400ms cubic-bezier(0.25, 0.8, 0.25, 1), width 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } .md-input-placeholder.md-empty { display: block; cursor: text; } .md-input-placeholder.md-float:not(.md-empty), .md-input-placeholder.md-float.md-focused { display: block; padding-bottom: 5px; transform: translateY(-100%) scale(0.75); width: 133.33333%; } [dir='rtl'] .md-input-placeholder { transform-origin: bottom right; } .md-input-underline { position: absolute; height: 1px; width: 100%; margin-top: 4px; border-top-width: 1px; border-top-style: solid; } .md-input-underline.md-disabled { border-top: 0; background-image: linear-gradient(to right, rgba(0, 0, 0, 0.26) 0%, rgba(0, 0, 0, 0.26) 33%, transparent 0%); background-position: 0; background-size: 4px 1px; background-repeat: repeat-x; } .md-input-underline .md-input-ripple { position: absolute; height: 2px; z-index: 1; top: -1px; width: 100%; transform-origin: top; opacity: 0; transform: scaleY(0); transition: transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1), opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1); } .md-input-underline .md-input-ripple.md-focused { opacity: 1; transform: scaleY(1); } .md-hint { position: absolute; font-size: 75%; bottom: -0.5em; } .md-hint.md-right { right: 0; } [dir='rtl'] .md-hint { right: 0; left: auto; } [dir='rtl'] .md-hint.md-right { right: auto; left: 0; } /*# sourceMappingURL=input.css.map */ \"],\n providers: [MD_INPUT_CONTROL_VALUE_ACCESSOR],\n host: { '(click)': 'focus()' },\n encapsulation: ViewEncapsulation.None,\n }), \n __metadata('design:paramtypes', [])\n ], MdInput);\n return MdInput;\n}());\nexport var MdInputModule = (function () {\n function MdInputModule() {\n }\n MdInputModule.forRoot = function () {\n return {\n ngModule: MdInputModule,\n providers: []\n };\n };\n MdInputModule = __decorate([\n NgModule({\n declarations: [MdPlaceholder, MdInput, MdHint],\n imports: [CommonModule, FormsModule],\n exports: [MdPlaceholder, MdInput, MdHint],\n }), \n __metadata('design:paramtypes', [])\n ], MdInputModule);\n return MdInputModule;\n}());\n\n//# sourceMappingURL=input.js.map\n","import { Subject } from 'rxjs/Subject';\n// TODO(josephperrott): Implement onAction observable.\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport var MdSnackBarRef = (function () {\n function MdSnackBarRef(instance, _overlayRef) {\n this._overlayRef = _overlayRef;\n /** Subject for notifying the user that the snack bar has closed. */\n this._afterClosed = new Subject();\n // Sets the readonly instance of the snack bar content component.\n this.instance = instance;\n }\n /** Dismisses the snack bar. */\n MdSnackBarRef.prototype.dismiss = function () {\n if (!this._afterClosed.closed) {\n this._overlayRef.dispose();\n this._afterClosed.complete();\n }\n };\n /** Gets an observable that is notified when the snack bar is finished closing. */\n MdSnackBarRef.prototype.afterDismissed = function () {\n return this._afterClosed.asObservable();\n };\n return MdSnackBarRef;\n}());\n\n//# sourceMappingURL=snack-bar-ref.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdError } from '../core';\nexport var MdSnackBarContentAlreadyAttached = (function (_super) {\n __extends(MdSnackBarContentAlreadyAttached, _super);\n function MdSnackBarContentAlreadyAttached() {\n _super.call(this, 'Attempting to attach snack bar content after content is already attached');\n }\n return MdSnackBarContentAlreadyAttached;\n}(MdError));\n\n//# sourceMappingURL=snack-bar-errors.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewChild } from '@angular/core';\nimport { BasePortalHost, PortalHostDirective } from '../core';\nimport { MdSnackBarContentAlreadyAttached } from './snack-bar-errors';\n/**\n * Internal component that wraps user-provided snack bar content.\n */\nexport var MdSnackBarContainer = (function (_super) {\n __extends(MdSnackBarContainer, _super);\n function MdSnackBarContainer() {\n _super.apply(this, arguments);\n }\n /** Attach a portal as content to this snack bar container. */\n MdSnackBarContainer.prototype.attachComponentPortal = function (portal) {\n if (this._portalHost.hasAttached()) {\n throw new MdSnackBarContentAlreadyAttached();\n }\n return this._portalHost.attachComponentPortal(portal);\n };\n MdSnackBarContainer.prototype.attachTemplatePortal = function (portal) {\n throw Error('Not yet implemented');\n };\n __decorate([\n ViewChild(PortalHostDirective), \n __metadata('design:type', PortalHostDirective)\n ], MdSnackBarContainer.prototype, \"_portalHost\", void 0);\n MdSnackBarContainer = __decorate([\n Component({selector: 'snack-bar-container',\n template: \"<template portalHost></template>\",\n styles: [\":host { box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); background: #323232; border-radius: 2px; display: block; height: 20px; max-width: 568px; min-width: 288px; overflow: hidden; padding: 14px 24px; } /*# sourceMappingURL=snack-bar-container.css.map */ \"],\n host: {\n 'role': 'alert'\n }\n }), \n __metadata('design:paramtypes', [])\n ], MdSnackBarContainer);\n return MdSnackBarContainer;\n}(BasePortalHost));\n\n//# sourceMappingURL=snack-bar-container.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component } from '@angular/core';\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n */\nexport var SimpleSnackBar = (function () {\n function SimpleSnackBar() {\n }\n /** Dismisses the snack bar. */\n SimpleSnackBar.prototype.dismiss = function () {\n this.snackBarRef.dismiss();\n };\n Object.defineProperty(SimpleSnackBar.prototype, \"hasAction\", {\n /** If the action button should be shown. */\n get: function () { return !!this.action; },\n enumerable: true,\n configurable: true\n });\n SimpleSnackBar = __decorate([\n Component({selector: 'simple-snack-bar',\n template: \"<span class=\\\"md-simple-snackbar-message\\\">{{message}}</span> <button md-button class=\\\"md-simple-snackbar-action\\\" *ngIf=\\\"hasAction\\\" (click)=\\\"dismiss()\\\">{{action}}</button>\",\n styles: [\"md-simple-snackbar { display: flex; justify-content: space-between; } .md-simple-snackbar-message { box-sizing: border-box; border: none; color: white; font-family: Roboto, 'Helvetica Neue', sans-serif; font-size: 14px; line-height: 20px; outline: none; text-decoration: none; word-break: break-all; } .md-simple-snackbar-action { box-sizing: border-box; color: white; float: right; font-weight: 600; line-height: 20px; margin: -5px 0 0 48px; min-width: initial; padding: 5px; text-transform: uppercase; } /*# sourceMappingURL=simple-snack-bar.css.map */ \"],\n }), \n __metadata('design:paramtypes', [])\n ], SimpleSnackBar);\n return SimpleSnackBar;\n}());\n\n//# sourceMappingURL=simple-snack-bar.js.map\n","export var MdSnackBarConfig = (function () {\n function MdSnackBarConfig(viewContainerRef) {\n /** The politeness level for the MdAriaLiveAnnouncer announcement. */\n this.politeness = 'assertive';\n this.viewContainerRef = viewContainerRef;\n }\n return MdSnackBarConfig;\n}());\n\n//# sourceMappingURL=snack-bar-config.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Injectable } from '@angular/core';\nimport { ComponentPortal, Overlay, OverlayModule, OverlayState, PortalModule, OVERLAY_PROVIDERS, MdLiveAnnouncer } from '../core';\nimport { CommonModule } from '@angular/common';\nimport { MdSnackBarRef } from './snack-bar-ref';\nimport { MdSnackBarContainer } from './snack-bar-container';\nimport { SimpleSnackBar } from './simple-snack-bar';\nexport { MdSnackBarRef } from './snack-bar-ref';\nexport { MdSnackBarConfig } from './snack-bar-config';\n// TODO(josephperrott): Animate entrance and exit of snack bars.\n// TODO(josephperrott): Automate dismiss after timeout.\n/**\n * Service to dispatch Material Design snack bar messages.\n */\nexport var MdSnackBar = (function () {\n function MdSnackBar(_overlay, _live) {\n this._overlay = _overlay;\n this._live = _live;\n }\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n */\n MdSnackBar.prototype.openFromComponent = function (component, config) {\n if (this._snackBarRef) {\n this._snackBarRef.dismiss();\n }\n var overlayRef = this._createOverlay();\n var snackBarContainer = this._attachSnackBarContainer(overlayRef, config);\n var mdSnackBarRef = this._attachSnackbarContent(component, snackBarContainer, overlayRef);\n this._live.announce(config.announcementMessage, config.politeness);\n return mdSnackBarRef;\n };\n /**\n * Creates and dispatches a snack bar.\n */\n MdSnackBar.prototype.open = function (message, actionLabel, config) {\n config.announcementMessage = message;\n var simpleSnackBarRef = this.openFromComponent(SimpleSnackBar, config);\n simpleSnackBarRef.instance.snackBarRef = simpleSnackBarRef;\n simpleSnackBarRef.instance.message = message;\n simpleSnackBarRef.instance.action = actionLabel;\n return simpleSnackBarRef;\n };\n /**\n * Attaches the snack bar container component to the overlay.\n */\n MdSnackBar.prototype._attachSnackBarContainer = function (overlayRef, config) {\n var containerPortal = new ComponentPortal(MdSnackBarContainer, config.viewContainerRef);\n var containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n };\n /**\n * Places a new component as the content of the snack bar container.\n */\n MdSnackBar.prototype._attachSnackbarContent = function (component, container, overlayRef) {\n var portal = new ComponentPortal(component);\n var contentRef = container.attachComponentPortal(portal);\n var snackBarRef = new MdSnackBarRef(contentRef.instance, overlayRef);\n this._snackBarRef = snackBarRef;\n return snackBarRef;\n };\n /**\n * Creates a new overlay and places it in the correct location.\n */\n MdSnackBar.prototype._createOverlay = function () {\n var state = new OverlayState();\n state.positionStrategy = this._overlay.position().global()\n .fixed()\n .centerHorizontally()\n .bottom('0');\n return this._overlay.create(state);\n };\n MdSnackBar = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [Overlay, MdLiveAnnouncer])\n ], MdSnackBar);\n return MdSnackBar;\n}());\nexport var MdSnackBarModule = (function () {\n function MdSnackBarModule() {\n }\n MdSnackBarModule.forRoot = function () {\n return {\n ngModule: MdSnackBarModule,\n providers: [MdSnackBar, OVERLAY_PROVIDERS, MdLiveAnnouncer]\n };\n };\n MdSnackBarModule = __decorate([\n NgModule({\n imports: [OverlayModule, PortalModule, CommonModule],\n exports: [MdSnackBarContainer],\n declarations: [MdSnackBarContainer, SimpleSnackBar],\n entryComponents: [MdSnackBarContainer, SimpleSnackBar],\n }), \n __metadata('design:paramtypes', [])\n ], MdSnackBarModule);\n return MdSnackBarModule;\n}());\n\n//# sourceMappingURL=snack-bar.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TemplatePortalDirective } from '../core';\n/** Used to flag tab labels for use with the portal directive */\nexport var MdTabLabel = (function (_super) {\n __extends(MdTabLabel, _super);\n function MdTabLabel(templateRef, viewContainerRef) {\n _super.call(this, templateRef, viewContainerRef);\n }\n MdTabLabel = __decorate([\n Directive({\n selector: '[md-tab-label]',\n }), \n __metadata('design:paramtypes', [TemplateRef, ViewContainerRef])\n ], MdTabLabel);\n return MdTabLabel;\n}(TemplatePortalDirective));\n\n//# sourceMappingURL=tab-label.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TemplatePortalDirective } from '../core';\n/** Used to flag tab contents for use with the portal directive */\nexport var MdTabContent = (function (_super) {\n __extends(MdTabContent, _super);\n function MdTabContent(templateRef, viewContainerRef) {\n _super.call(this, templateRef, viewContainerRef);\n }\n MdTabContent = __decorate([\n Directive({\n selector: '[md-tab-content]'\n }), \n __metadata('design:paramtypes', [TemplateRef, ViewContainerRef])\n ], MdTabContent);\n return MdTabContent;\n}(TemplatePortalDirective));\n\n//# sourceMappingURL=tab-content.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Directive, ElementRef } from '@angular/core';\n/** Used in the `md-tab-group` view to display tab labels */\nexport var MdTabLabelWrapper = (function () {\n function MdTabLabelWrapper(elementRef) {\n this.elementRef = elementRef;\n }\n /**\n * Sets focus on the wrapper element\n */\n MdTabLabelWrapper.prototype.focus = function () {\n this.elementRef.nativeElement.focus();\n };\n MdTabLabelWrapper = __decorate([\n Directive({\n selector: '[md-tab-label-wrapper]'\n }), \n __metadata('design:paramtypes', [ElementRef])\n ], MdTabLabelWrapper);\n return MdTabLabelWrapper;\n}());\n\n//# sourceMappingURL=tab-label-wrapper.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Directive, Renderer, ElementRef } from '@angular/core';\n/** The ink-bar is used to display and animate the line underneath the current active tab label. */\nexport var MdInkBar = (function () {\n function MdInkBar(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * @param element\n */\n MdInkBar.prototype.alignToElement = function (element) {\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'left', this._getLeftPosition(element));\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'width', this._getElementWidth(element));\n };\n /**\n * Generates the pixel distance from the left based on the provided element in string format.\n * @param element\n * @returns {string}\n */\n MdInkBar.prototype._getLeftPosition = function (element) {\n return element ? element.offsetLeft + 'px' : '0';\n };\n /**\n * Generates the pixel width from the provided element in string format.\n * @param element\n * @returns {string}\n */\n MdInkBar.prototype._getElementWidth = function (element) {\n return element ? element.offsetWidth + 'px' : '0';\n };\n MdInkBar = __decorate([\n Directive({\n selector: 'md-ink-bar',\n }), \n __metadata('design:paramtypes', [Renderer, ElementRef])\n ], MdInkBar);\n return MdInkBar;\n}());\n\n//# sourceMappingURL=ink-bar.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, ContentChild, Directive, Component, Input, Output, ViewChildren, NgZone, EventEmitter, QueryList, ContentChildren } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '../core';\nimport { MdTabLabel } from './tab-label';\nimport { MdTabContent } from './tab-content';\nimport { MdTabLabelWrapper } from './tab-label-wrapper';\nimport { MdInkBar } from './ink-bar';\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/map';\nimport { RIGHT_ARROW, LEFT_ARROW, ENTER } from '../core';\n/** Used to generate unique ID's for each tab component */\nvar nextId = 0;\n/** A simple change event emitted on focus or selection changes. */\nexport var MdTabChangeEvent = (function () {\n function MdTabChangeEvent() {\n }\n return MdTabChangeEvent;\n}());\nexport var MdTab = (function () {\n function MdTab() {\n // TODO: Replace this when BooleanFieldValue is removed.\n this._disabled = false;\n }\n Object.defineProperty(MdTab.prototype, \"disabled\", {\n get: function () {\n return this._disabled;\n },\n set: function (value) {\n this._disabled = (value != null && \"\" + value !== 'false');\n },\n enumerable: true,\n configurable: true\n });\n __decorate([\n ContentChild(MdTabLabel), \n __metadata('design:type', MdTabLabel)\n ], MdTab.prototype, \"label\", void 0);\n __decorate([\n ContentChild(MdTabContent), \n __metadata('design:type', MdTabContent)\n ], MdTab.prototype, \"content\", void 0);\n __decorate([\n Input('disabled'), \n __metadata('design:type', Boolean), \n __metadata('design:paramtypes', [Boolean])\n ], MdTab.prototype, \"disabled\", null);\n MdTab = __decorate([\n Directive({\n selector: 'md-tab'\n }), \n __metadata('design:paramtypes', [])\n ], MdTab);\n return MdTab;\n}());\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://www.google.com/design/spec/components/tabs.html\n */\nexport var MdTabGroup = (function () {\n function MdTabGroup(_zone) {\n this._zone = _zone;\n this._isInitialized = false;\n this._selectedIndex = 0;\n this._onFocusChange = new EventEmitter();\n this._onSelectChange = new EventEmitter();\n this._focusIndex = 0;\n this._groupId = nextId++;\n }\n Object.defineProperty(MdTabGroup.prototype, \"selectedIndex\", {\n get: function () {\n return this._selectedIndex;\n },\n set: function (value) {\n if (value != this._selectedIndex && this.isValidIndex(value)) {\n this._selectedIndex = value;\n if (this._isInitialized) {\n this._onSelectChange.emit(this._createChangeEvent(value));\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n MdTabGroup.prototype.isValidIndex = function (index) {\n if (this._tabs) {\n var tab = this._tabs.toArray()[index];\n return tab && !tab.disabled;\n }\n else {\n return true;\n }\n };\n Object.defineProperty(MdTabGroup.prototype, \"_selectedIndexChange\", {\n /** Output to enable support for two-way binding on `selectedIndex`. */\n get: function () {\n return this.selectChange.map(function (event) { return event.index; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdTabGroup.prototype, \"focusChange\", {\n get: function () {\n return this._onFocusChange.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdTabGroup.prototype, \"selectChange\", {\n get: function () {\n return this._onSelectChange.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Waits one frame for the view to update, then upates the ink bar\n * Note: This must be run outside of the zone or it will create an infinite change detection loop\n * TODO: internal\n */\n MdTabGroup.prototype.ngAfterViewChecked = function () {\n var _this = this;\n this._zone.runOutsideAngular(function () {\n window.requestAnimationFrame(function () {\n _this._updateInkBar();\n });\n });\n this._isInitialized = true;\n };\n /** Tells the ink-bar to align itself to the current label wrapper */\n MdTabGroup.prototype._updateInkBar = function () {\n this._inkBar.toArray()[0].alignToElement(this._currentLabelWrapper);\n };\n Object.defineProperty(MdTabGroup.prototype, \"_currentLabelWrapper\", {\n /**\n * Reference to the current label wrapper; defaults to null for initial render before the\n * ViewChildren references are ready.\n */\n get: function () {\n return this._labelWrappers && this._labelWrappers.length\n ? this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement\n : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdTabGroup.prototype, \"focusIndex\", {\n /** Tracks which element has focus; used for keyboard navigation */\n get: function () {\n return this._focusIndex;\n },\n /** When the focus index is set, we must manually send focus to the correct label */\n set: function (value) {\n if (this.isValidIndex(value)) {\n this._focusIndex = value;\n if (this._isInitialized) {\n this._onFocusChange.emit(this._createChangeEvent(value));\n }\n if (this._labelWrappers && this._labelWrappers.length) {\n this._labelWrappers.toArray()[value].focus();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n MdTabGroup.prototype._createChangeEvent = function (index) {\n var event = new MdTabChangeEvent;\n event.index = index;\n if (this._tabs && this._tabs.length) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n };\n /** Returns a unique id for each tab label element */\n MdTabGroup.prototype._getTabLabelId = function (i) {\n return \"md-tab-label-\" + this._groupId + \"-\" + i;\n };\n /** Returns a unique id for each tab content element */\n MdTabGroup.prototype._getTabContentId = function (i) {\n return \"md-tab-content-\" + this._groupId + \"-\" + i;\n };\n MdTabGroup.prototype.handleKeydown = function (event) {\n switch (event.keyCode) {\n case RIGHT_ARROW:\n this.focusNextTab();\n break;\n case LEFT_ARROW:\n this.focusPreviousTab();\n break;\n case ENTER:\n this.selectedIndex = this.focusIndex;\n break;\n }\n };\n /**\n * Moves the focus left or right depending on the offset provided. Valid offsets are 1 and -1.\n */\n MdTabGroup.prototype.moveFocus = function (offset) {\n if (this._labelWrappers) {\n var tabs = this._tabs.toArray();\n for (var i = this.focusIndex + offset; i < tabs.length && i >= 0; i += offset) {\n if (this.isValidIndex(i)) {\n this.focusIndex = i;\n return;\n }\n }\n }\n };\n /** Increment the focus index by 1 until a valid tab is found. */\n MdTabGroup.prototype.focusNextTab = function () {\n this.moveFocus(1);\n };\n /** Decrement the focus index by 1 until a valid tab is found. */\n MdTabGroup.prototype.focusPreviousTab = function () {\n this.moveFocus(-1);\n };\n __decorate([\n ContentChildren(MdTab), \n __metadata('design:type', QueryList)\n ], MdTabGroup.prototype, \"_tabs\", void 0);\n __decorate([\n ViewChildren(MdTabLabelWrapper), \n __metadata('design:type', QueryList)\n ], MdTabGroup.prototype, \"_labelWrappers\", void 0);\n __decorate([\n ViewChildren(MdInkBar), \n __metadata('design:type', QueryList)\n ], MdTabGroup.prototype, \"_inkBar\", void 0);\n __decorate([\n Input(), \n __metadata('design:type', Number), \n __metadata('design:paramtypes', [Number])\n ], MdTabGroup.prototype, \"selectedIndex\", null);\n __decorate([\n Output('selectedIndexChange'), \n __metadata('design:type', Observable)\n ], MdTabGroup.prototype, \"_selectedIndexChange\", null);\n __decorate([\n Output('focusChange'), \n __metadata('design:type', Observable)\n ], MdTabGroup.prototype, \"focusChange\", null);\n __decorate([\n Output('selectChange'), \n __metadata('design:type', Observable)\n ], MdTabGroup.prototype, \"selectChange\", null);\n MdTabGroup = __decorate([\n Component({selector: 'md-tab-group',\n template: \"<div class=\\\"md-tab-header\\\" role=\\\"tablist\\\" (keydown)=\\\"handleKeydown($event)\\\"> <div class=\\\"md-tab-label\\\" role=\\\"tab\\\" md-tab-label-wrapper *ngFor=\\\"let tab of _tabs; let i = index\\\" [id]=\\\"_getTabLabelId(i)\\\" [tabIndex]=\\\"selectedIndex == i ? 0 : -1\\\" [attr.aria-controls]=\\\"_getTabContentId(i)\\\" [attr.aria-selected]=\\\"selectedIndex == i\\\" [class.md-tab-active]=\\\"selectedIndex == i\\\" [class.md-tab-disabled]=\\\"tab.disabled\\\" (click)=\\\"focusIndex = selectedIndex = i\\\"> <template [portalHost]=\\\"tab.label\\\"></template> </div> <md-ink-bar></md-ink-bar> </div> <div class=\\\"md-tab-body-wrapper\\\"> <div class=\\\"md-tab-body\\\" role=\\\"tabpanel\\\" *ngFor=\\\"let tab of _tabs; let i = index\\\" [id]=\\\"_getTabContentId(i)\\\" [class.md-tab-active]=\\\"selectedIndex == i\\\" [attr.aria-labelledby]=\\\"_getTabLabelId(i)\\\"> <template [ngIf]=\\\"selectedIndex == i\\\"> <template [portalHost]=\\\"tab.content\\\"></template> </template> </div> </div> \",\n styles: [\":host { display: flex; flex-direction: column; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; } .md-tab-header { overflow: hidden; position: relative; display: flex; flex-direction: row; flex-shrink: 0; } .md-tab-label { line-height: 48px; height: 48px; padding: 0 12px; font-size: 14px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; font-weight: 500; cursor: pointer; box-sizing: border-box; color: currentColor; opacity: 0.6; min-width: 160px; text-align: center; } .md-tab-label:focus { outline: none; opacity: 1; } .md-tab-disabled { cursor: default; pointer-events: none; } .md-tab-body-wrapper { position: relative; overflow: hidden; flex-grow: 1; display: flex; } .md-tab-body { display: none; overflow: auto; box-sizing: border-box; flex-grow: 1; flex-shrink: 1; } .md-tab-body.md-tab-active { display: block; } md-ink-bar { position: absolute; bottom: 0; height: 2px; transition: 350ms ease-out; } /*# sourceMappingURL=tab-group.css.map */ \"],\n }), \n __metadata('design:paramtypes', [NgZone])\n ], MdTabGroup);\n return MdTabGroup;\n}());\nexport var MdTabsModule = (function () {\n function MdTabsModule() {\n }\n MdTabsModule.forRoot = function () {\n return {\n ngModule: MdTabsModule,\n providers: []\n };\n };\n MdTabsModule = __decorate([\n NgModule({\n imports: [CommonModule, PortalModule],\n // Don't export MdInkBar or MdTabLabelWrapper, as they are internal implementatino details.\n exports: [MdTabGroup, MdTabLabel, MdTabContent, MdTab],\n declarations: [MdTabGroup, MdTabLabel, MdTabContent, MdTab, MdInkBar, MdTabLabelWrapper],\n }), \n __metadata('design:paramtypes', [])\n ], MdTabsModule);\n return MdTabsModule;\n}());\n\n//# sourceMappingURL=tabs.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Component, ChangeDetectionStrategy, Input, ViewEncapsulation, Directive } from '@angular/core';\nimport { Renderer } from '@angular/core';\nimport { ElementRef } from '@angular/core';\nexport var MdToolbarRow = (function () {\n function MdToolbarRow() {\n }\n MdToolbarRow = __decorate([\n Directive({\n selector: 'md-toolbar-row'\n }), \n __metadata('design:paramtypes', [])\n ], MdToolbarRow);\n return MdToolbarRow;\n}());\nexport var MdToolbar = (function () {\n function MdToolbar(elementRef, renderer) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n }\n Object.defineProperty(MdToolbar.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value) {\n this._updateColor(value);\n },\n enumerable: true,\n configurable: true\n });\n MdToolbar.prototype._updateColor = function (newColor) {\n this._setElementColor(this._color, false);\n this._setElementColor(newColor, true);\n this._color = newColor;\n };\n MdToolbar.prototype._setElementColor = function (color, isAdd) {\n if (color != null && color != '') {\n this.renderer.setElementClass(this.elementRef.nativeElement, \"md-\" + color, isAdd);\n }\n };\n __decorate([\n Input(), \n __metadata('design:type', String)\n ], MdToolbar.prototype, \"color\", null);\n MdToolbar = __decorate([\n Component({selector: 'md-toolbar',\n template: \"<div class=\\\"md-toolbar-layout\\\"> <md-toolbar-row> <ng-content></ng-content> </md-toolbar-row> <ng-content select=\\\"md-toolbar-row\\\"></ng-content> </div>\",\n styles: [\"md-toolbar { display: flex; box-sizing: border-box; width: 100%; min-height: 64px; font-size: 20px; font-weight: 400; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; padding: 0 16px; flex-direction: column; } md-toolbar md-toolbar-row { display: flex; box-sizing: border-box; width: 100%; height: 64px; flex-direction: row; align-items: center; } /*# sourceMappingURL=toolbar.css.map */ \"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }), \n __metadata('design:paramtypes', [ElementRef, Renderer])\n ], MdToolbar);\n return MdToolbar;\n}());\nexport var MdToolbarModule = (function () {\n function MdToolbarModule() {\n }\n MdToolbarModule.forRoot = function () {\n return {\n ngModule: MdToolbarModule,\n providers: []\n };\n };\n MdToolbarModule = __decorate([\n NgModule({\n exports: [MdToolbar, MdToolbarRow],\n declarations: [MdToolbar, MdToolbarRow],\n }), \n __metadata('design:paramtypes', [])\n ], MdToolbarModule);\n return MdToolbarModule;\n}());\n\n//# sourceMappingURL=toolbar.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Component, Directive, Input, ElementRef, ViewContainerRef, ChangeDetectorRef } from '@angular/core';\nimport { Overlay, OverlayState, OverlayModule, ComponentPortal, OVERLAY_PROVIDERS } from '../core';\nexport var MdTooltip = (function () {\n function MdTooltip(_overlay, _elementRef, _viewContainerRef, _changeDetectionRef) {\n this._overlay = _overlay;\n this._elementRef = _elementRef;\n this._viewContainerRef = _viewContainerRef;\n this._changeDetectionRef = _changeDetectionRef;\n this.visible = false;\n /** Allows the user to define the position of the tooltip relative to the parent element */\n this._position = 'below';\n }\n Object.defineProperty(MdTooltip.prototype, \"position\", {\n get: function () {\n return this._position;\n },\n set: function (value) {\n if (value !== this._position) {\n this._position = value;\n this._createOverlay();\n this._updatePosition();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdTooltip.prototype, \"message\", {\n get: function () {\n return this._message;\n },\n set: function (value) {\n this._message = value;\n this._updatePosition();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Create overlay on init\n * TODO: internal\n */\n MdTooltip.prototype.ngOnInit = function () {\n this._createOverlay();\n };\n /**\n * Create the overlay config and position strategy\n */\n MdTooltip.prototype._createOverlay = function () {\n if (this._overlayRef) {\n if (this.visible) {\n // if visible, hide before destroying\n this.hide();\n this._createOverlay();\n }\n else {\n // if not visible, dispose and recreate\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._createOverlay();\n }\n }\n else {\n var origin = this._getOrigin();\n var position = this._getOverlayPosition();\n var strategy = this._overlay.position().connectedTo(this._elementRef, origin, position);\n var config = new OverlayState();\n config.positionStrategy = strategy;\n this._overlayRef = this._overlay.create(config);\n }\n };\n /**\n * Returns the origin position based on the user's position preference\n */\n MdTooltip.prototype._getOrigin = function () {\n switch (this.position) {\n case 'before': return { originX: 'start', originY: 'center' };\n case 'after': return { originX: 'end', originY: 'center' };\n case 'above': return { originX: 'center', originY: 'top' };\n case 'below': return { originX: 'center', originY: 'bottom' };\n }\n };\n /**\n * Returns the overlay position based on the user's preference\n */\n MdTooltip.prototype._getOverlayPosition = function () {\n switch (this.position) {\n case 'before': return { overlayX: 'end', overlayY: 'center' };\n case 'after': return { overlayX: 'start', overlayY: 'center' };\n case 'above': return { overlayX: 'center', overlayY: 'bottom' };\n case 'below': return { overlayX: 'center', overlayY: 'top' };\n }\n };\n /**\n * Shows the tooltip on mouse enter\n * @param event\n */\n MdTooltip.prototype._handleMouseEnter = function (event) {\n this.show();\n };\n /**\n * Hides the tooltip on mouse leave\n * @param event\n */\n MdTooltip.prototype._handleMouseLeave = function (event) {\n this.hide();\n };\n /**\n * Shows the tooltip and returns a promise that will resolve when the tooltip is visible\n */\n MdTooltip.prototype.show = function () {\n if (!this.visible && this._overlayRef && !this._overlayRef.hasAttached()) {\n this.visible = true;\n var portal = new ComponentPortal(TooltipComponent, this._viewContainerRef);\n var tooltipRef = this._overlayRef.attach(portal);\n tooltipRef.instance.message = this.message;\n this._updatePosition();\n }\n };\n /**\n * Hides the tooltip and returns a promise that will resolve when the tooltip is hidden\n */\n MdTooltip.prototype.hide = function () {\n if (this.visible && this._overlayRef && this._overlayRef.hasAttached()) {\n this.visible = false;\n this._overlayRef.detach();\n }\n };\n /**\n * Shows/hides the tooltip and returns a promise that will resolve when it is done\n */\n MdTooltip.prototype.toggle = function () {\n if (this.visible) {\n this.hide();\n }\n else {\n this.show();\n }\n };\n /**\n * Updates the tooltip's position\n */\n MdTooltip.prototype._updatePosition = function () {\n if (this._overlayRef) {\n this._changeDetectionRef.detectChanges();\n this._overlayRef.updatePosition();\n }\n };\n __decorate([\n Input('tooltip-position'), \n __metadata('design:type', String)\n ], MdTooltip.prototype, \"position\", null);\n __decorate([\n Input('md-tooltip'), \n __metadata('design:type', Object)\n ], MdTooltip.prototype, \"message\", null);\n MdTooltip = __decorate([\n Directive({\n selector: '[md-tooltip]',\n host: {\n '(mouseenter)': '_handleMouseEnter($event)',\n '(mouseleave)': '_handleMouseLeave($event)',\n }\n }), \n __metadata('design:paramtypes', [Overlay, ElementRef, ViewContainerRef, ChangeDetectorRef])\n ], MdTooltip);\n return MdTooltip;\n}());\nexport var TooltipComponent = (function () {\n function TooltipComponent() {\n }\n TooltipComponent = __decorate([\n Component({selector: 'md-tooltip-component',\n template: \"<div class=\\\"md-tooltip\\\">{{message}}</div>\",\n styles: [\":host { pointer-events: none; } .md-tooltip { color: white; padding: 0 8px; border-radius: 2px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; font-size: 10px; margin: 14px; height: 22px; line-height: 22px; } /*# sourceMappingURL=tooltip.css.map */ \"],\n }), \n __metadata('design:paramtypes', [])\n ], TooltipComponent);\n return TooltipComponent;\n}());\nexport var MdTooltipModule = (function () {\n function MdTooltipModule() {\n }\n MdTooltipModule.forRoot = function () {\n return {\n ngModule: MdTooltipModule,\n providers: OVERLAY_PROVIDERS,\n };\n };\n MdTooltipModule = __decorate([\n NgModule({\n imports: [OverlayModule],\n exports: [MdTooltip, TooltipComponent],\n declarations: [MdTooltip, TooltipComponent],\n entryComponents: [TooltipComponent],\n }), \n __metadata('design:paramtypes', [])\n ], MdTooltipModule);\n return MdTooltipModule;\n}());\n\n//# sourceMappingURL=tooltip.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdError } from '../core';\n/**\n * Exception thrown when menu trigger doesn't have a valid md-menu instance\n */\nexport var MdMenuMissingError = (function (_super) {\n __extends(MdMenuMissingError, _super);\n function MdMenuMissingError() {\n _super.call(this, \"md-menu-trigger: must pass in an md-menu instance.\\n\\n Example:\\n <md-menu #menu=\\\"mdMenu\\\"></md-menu>\\n <button [md-menu-trigger-for]=\\\"menu\\\"></button>\\n \");\n }\n return MdMenuMissingError;\n}(MdError));\n/**\n * Exception thrown when menu's x-position value isn't valid.\n * In other words, it doesn't match 'before' or 'after'.\n */\nexport var MdMenuInvalidPositionX = (function (_super) {\n __extends(MdMenuInvalidPositionX, _super);\n function MdMenuInvalidPositionX() {\n _super.call(this, \"x-position value must be either 'before' or after'.\\n Example: <md-menu x-position=\\\"before\\\" #menu=\\\"mdMenu\\\"></md-menu>\\n \");\n }\n return MdMenuInvalidPositionX;\n}(MdError));\n/**\n * Exception thrown when menu's y-position value isn't valid.\n * In other words, it doesn't match 'above' or 'below'.\n */\nexport var MdMenuInvalidPositionY = (function (_super) {\n __extends(MdMenuInvalidPositionY, _super);\n function MdMenuInvalidPositionY() {\n _super.call(this, \"y-position value must be either 'above' or below'.\\n Example: <md-menu y-position=\\\"above\\\" #menu=\\\"mdMenu\\\"></md-menu>\\n \");\n }\n return MdMenuInvalidPositionY;\n}(MdError));\n\n//# sourceMappingURL=menu-errors.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Directive, ElementRef, Input, HostBinding, Renderer } from '@angular/core';\n/**\n * This directive is intended to be used inside an md-menu tag.\n * It exists mostly to set the role attribute.\n */\nexport var MdMenuItem = (function () {\n function MdMenuItem(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n MdMenuItem.prototype.focus = function () {\n this._renderer.invokeElementMethod(this._elementRef.nativeElement, 'focus');\n };\n Object.defineProperty(MdMenuItem.prototype, \"disabled\", {\n // this is necessary to support anchors\n get: function () {\n return this._disabled;\n },\n set: function (value) {\n this._disabled = (value === false || value === undefined) ? null : true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MdMenuItem.prototype, \"isAriaDisabled\", {\n get: function () {\n return String(this.disabled);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * TODO: internal\n */\n MdMenuItem.prototype._checkDisabled = function (event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n __decorate([\n HostBinding('attr.disabled'),\n Input(), \n __metadata('design:type', Boolean)\n ], MdMenuItem.prototype, \"disabled\", null);\n __decorate([\n HostBinding('attr.aria-disabled'), \n __metadata('design:type', String)\n ], MdMenuItem.prototype, \"isAriaDisabled\", null);\n MdMenuItem = __decorate([\n Directive({\n selector: '[md-menu-item]',\n host: {\n 'role': 'menuitem',\n '(click)': '_checkDisabled($event)',\n 'tabindex': '-1'\n },\n exportAs: 'mdMenuItem'\n }), \n __metadata('design:paramtypes', [Renderer, ElementRef])\n ], MdMenuItem);\n return MdMenuItem;\n}());\n\n//# sourceMappingURL=menu-item.js.map\n","// TODO(kara): prevent-close functionality\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Attribute, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MdMenuInvalidPositionX, MdMenuInvalidPositionY } from './menu-errors';\nimport { MdMenuItem } from './menu-item';\nimport { UP_ARROW, DOWN_ARROW, TAB } from '../core';\nexport var MdMenu = (function () {\n function MdMenu(posX, posY) {\n this._showClickCatcher = false;\n this._focusedItemIndex = 0;\n this.positionX = 'after';\n this.positionY = 'below';\n this.close = new EventEmitter;\n if (posX) {\n this._setPositionX(posX);\n }\n if (posY) {\n this._setPositionY(posY);\n }\n }\n Object.defineProperty(MdMenu.prototype, \"classList\", {\n /**\n * This method takes classes set on the host md-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @param classes list of class names\n */\n set: function (classes) {\n this._classList = classes.split(' ').reduce(function (obj, className) {\n obj[className] = true;\n return obj;\n }, {});\n },\n enumerable: true,\n configurable: true\n });\n /**\n * This function toggles the display of the menu's click catcher element.\n * This element covers the viewport when the menu is open to detect clicks outside the menu.\n * TODO: internal\n */\n MdMenu.prototype._setClickCatcher = function (bool) {\n this._showClickCatcher = bool;\n };\n /**\n * Focus the first item in the menu. This method is used by the menu trigger\n * to focus the first item when the menu is opened by the ENTER key.\n * TODO: internal\n */\n MdMenu.prototype._focusFirstItem = function () {\n this.items.first.focus();\n };\n // TODO(kara): update this when (keydown.downArrow) testability is fixed\n // TODO: internal\n MdMenu.prototype._handleKeydown = function (event) {\n if (event.keyCode === DOWN_ARROW) {\n this._focusNextItem();\n }\n else if (event.keyCode === UP_ARROW) {\n this._focusPreviousItem();\n }\n else if (event.keyCode === TAB) {\n this._emitCloseEvent();\n }\n };\n /**\n * This emits a close event to which the trigger is subscribed. When emitted, the\n * trigger will close the menu.\n */\n MdMenu.prototype._emitCloseEvent = function () {\n this._focusedItemIndex = 0;\n this.close.emit(null);\n };\n MdMenu.prototype._focusNextItem = function () {\n this._updateFocusedItemIndex(1);\n this.items.toArray()[this._focusedItemIndex].focus();\n };\n MdMenu.prototype._focusPreviousItem = function () {\n this._updateFocusedItemIndex(-1);\n this.items.toArray()[this._focusedItemIndex].focus();\n };\n /**\n * This method sets focus to the correct menu item, given a list of menu items and the delta\n * between the currently focused menu item and the new menu item to be focused. It will\n * continue to move down the list until it finds an item that is not disabled, and it will wrap\n * if it encounters either end of the menu.\n *\n * @param delta the desired change in focus index\n * @param menuItems the menu items that should be focused\n * @private\n */\n MdMenu.prototype._updateFocusedItemIndex = function (delta, menuItems) {\n if (menuItems === void 0) { menuItems = this.items.toArray(); }\n // when focus would leave menu, wrap to beginning or end\n this._focusedItemIndex = (this._focusedItemIndex + delta + this.items.length)\n % this.items.length;\n // skip all disabled menu items recursively until an active one\n // is reached or the menu closes for overreaching bounds\n while (menuItems[this._focusedItemIndex].disabled) {\n this._updateFocusedItemIndex(delta, menuItems);\n }\n };\n MdMenu.prototype._setPositionX = function (pos) {\n if (pos !== 'before' && pos !== 'after') {\n throw new MdMenuInvalidPositionX();\n }\n this.positionX = pos;\n };\n MdMenu.prototype._setPositionY = function (pos) {\n if (pos !== 'above' && pos !== 'below') {\n throw new MdMenuInvalidPositionY();\n }\n this.positionY = pos;\n };\n __decorate([\n ViewChild(TemplateRef), \n __metadata('design:type', TemplateRef)\n ], MdMenu.prototype, \"templateRef\", void 0);\n __decorate([\n ContentChildren(MdMenuItem), \n __metadata('design:type', QueryList)\n ], MdMenu.prototype, \"items\", void 0);\n __decorate([\n Input('class'), \n __metadata('design:type', String), \n __metadata('design:paramtypes', [String])\n ], MdMenu.prototype, \"classList\", null);\n __decorate([\n Output(), \n __metadata('design:type', Object)\n ], MdMenu.prototype, \"close\", void 0);\n MdMenu = __decorate([\n Component({selector: 'md-menu',\n host: { 'role': 'menu' },\n template: \"<template> <div class=\\\"md-menu\\\" [ngClass]=\\\"_classList\\\" (click)=\\\"_emitCloseEvent()\\\" (keydown)=\\\"_handleKeydown($event)\\\"> <ng-content></ng-content> </div> </template> <div class=\\\"md-menu-click-catcher\\\" *ngIf=\\\"_showClickCatcher\\\" (click)=\\\"_emitCloseEvent()\\\"></div>\",\n styles: [\".md-menu { box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); min-width: 112px; max-width: 280px; max-height: calc(100vh + 48px); overflow: auto; -webkit-overflow-scrolling: touch; padding-top: 8px; padding-bottom: 8px; } [md-menu-item] { cursor: pointer; user-select: none; outline: none; border: none; white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; display: flex; flex-direction: row; align-items: center; height: 48px; padding: 0 16px; font-size: 16px; font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif; text-align: start; text-decoration: none; } [md-menu-item][disabled] { cursor: default; } button[md-menu-item] { width: 100%; } .md-menu-click-catcher { position: fixed; top: 0; left: 0; right: 0; bottom: 0; } /*# sourceMappingURL=menu.css.map */ \"],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'mdMenu'\n }),\n __param(0, Attribute('x-position')),\n __param(1, Attribute('y-position')), \n __metadata('design:paramtypes', [String, String])\n ], MdMenu);\n return MdMenu;\n}());\n\n//# sourceMappingURL=menu-directive.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Directive, ElementRef, Input, Output, EventEmitter, HostListener, ViewContainerRef, Renderer } from '@angular/core';\nimport { MdMenu } from './menu-directive';\nimport { MdMenuMissingError } from './menu-errors';\nimport { ENTER, Overlay, OverlayState, TemplatePortal } from '../core';\n/**\n * This directive is intended to be used in conjunction with an md-menu tag. It is\n * responsible for toggling the display of the provided menu instance.\n */\nexport var MdMenuTrigger = (function () {\n function MdMenuTrigger(_overlay, _element, _viewContainerRef, _renderer) {\n this._overlay = _overlay;\n this._element = _element;\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._menuOpen = false;\n // tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n this._openedFromKeyboard = false;\n this.onMenuOpen = new EventEmitter();\n this.onMenuClose = new EventEmitter();\n }\n MdMenuTrigger.prototype.ngAfterViewInit = function () {\n var _this = this;\n this._checkMenu();\n this.menu.close.subscribe(function () { return _this.closeMenu(); });\n };\n MdMenuTrigger.prototype.ngOnDestroy = function () { this.destroyMenu(); };\n Object.defineProperty(MdMenuTrigger.prototype, \"menuOpen\", {\n get: function () { return this._menuOpen; },\n enumerable: true,\n configurable: true\n });\n MdMenuTrigger.prototype.toggleMenu = function () {\n return this._menuOpen ? this.closeMenu() : this.openMenu();\n };\n MdMenuTrigger.prototype.openMenu = function () {\n this._createOverlay();\n this._overlayRef.attach(this._portal);\n this._initMenu();\n };\n MdMenuTrigger.prototype.closeMenu = function () {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._resetMenu();\n }\n };\n MdMenuTrigger.prototype.destroyMenu = function () {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n };\n MdMenuTrigger.prototype.focus = function () {\n this._renderer.invokeElementMethod(this._element.nativeElement, 'focus');\n };\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n MdMenuTrigger.prototype._initMenu = function () {\n this._setIsMenuOpen(true);\n if (this._openedFromKeyboard) {\n this.menu._focusFirstItem();\n }\n };\n ;\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n MdMenuTrigger.prototype._resetMenu = function () {\n this._setIsMenuOpen(false);\n if (this._openedFromKeyboard) {\n this.focus();\n this._openedFromKeyboard = false;\n }\n };\n // set state rather than toggle to support triggers sharing a menu\n MdMenuTrigger.prototype._setIsMenuOpen = function (isOpen) {\n this._menuOpen = isOpen;\n this.menu._setClickCatcher(isOpen);\n this._menuOpen ? this.onMenuOpen.emit(null) : this.onMenuClose.emit(null);\n };\n /**\n * This method checks that a valid instance of MdMenu has been passed into\n * md-menu-trigger-for. If not, an exception is thrown.\n */\n MdMenuTrigger.prototype._checkMenu = function () {\n if (!this.menu || !(this.menu instanceof MdMenu)) {\n throw new MdMenuMissingError();\n }\n };\n /**\n * This method creates the overlay from the provided menu's template and saves its\n * OverlayRef so that it can be attached to the DOM when openMenu is called.\n */\n MdMenuTrigger.prototype._createOverlay = function () {\n if (!this._overlayRef) {\n this._portal = new TemplatePortal(this.menu.templateRef, this._viewContainerRef);\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n }\n };\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayState.\n * @returns OverlayState\n */\n MdMenuTrigger.prototype._getOverlayConfig = function () {\n var overlayState = new OverlayState();\n overlayState.positionStrategy = this._getPosition();\n return overlayState;\n };\n /**\n * This method builds the position strategy for the overlay, so the menu is properly connected\n * to the trigger.\n * @returns ConnectedPositionStrategy\n */\n MdMenuTrigger.prototype._getPosition = function () {\n var positionX = this.menu.positionX === 'before' ? 'end' : 'start';\n var positionY = this.menu.positionY === 'above' ? 'bottom' : 'top';\n return this._overlay.position().connectedTo(this._element, { originX: positionX, originY: positionY }, { overlayX: positionX, overlayY: positionY });\n };\n // TODO: internal\n MdMenuTrigger.prototype._handleKeydown = function (event) {\n if (event.keyCode === ENTER) {\n this._openedFromKeyboard = true;\n }\n };\n __decorate([\n Input('md-menu-trigger-for'), \n __metadata('design:type', MdMenu)\n ], MdMenuTrigger.prototype, \"menu\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', Object)\n ], MdMenuTrigger.prototype, \"onMenuOpen\", void 0);\n __decorate([\n Output(), \n __metadata('design:type', Object)\n ], MdMenuTrigger.prototype, \"onMenuClose\", void 0);\n __decorate([\n HostListener('click'), \n __metadata('design:type', Function), \n __metadata('design:paramtypes', []), \n __metadata('design:returntype', void 0)\n ], MdMenuTrigger.prototype, \"toggleMenu\", null);\n MdMenuTrigger = __decorate([\n Directive({\n selector: '[md-menu-trigger-for]',\n host: {\n 'aria-haspopup': 'true',\n '(keydown)': '_handleKeydown($event)'\n },\n exportAs: 'mdMenuTrigger'\n }), \n __metadata('design:paramtypes', [Overlay, ElementRef, ViewContainerRef, Renderer])\n ], MdMenuTrigger);\n return MdMenuTrigger;\n}());\n\n//# sourceMappingURL=menu-trigger.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule, OVERLAY_PROVIDERS } from '../core';\nimport { MdMenu } from './menu-directive';\nimport { MdMenuItem } from './menu-item';\nimport { MdMenuTrigger } from './menu-trigger';\nexport { MdMenu } from './menu-directive';\nexport { MdMenuItem } from './menu-item';\nexport { MdMenuTrigger } from './menu-trigger';\nexport var MdMenuModule = (function () {\n function MdMenuModule() {\n }\n MdMenuModule.forRoot = function () {\n return {\n ngModule: MdMenuModule,\n providers: OVERLAY_PROVIDERS,\n };\n };\n MdMenuModule = __decorate([\n NgModule({\n imports: [OverlayModule, CommonModule],\n exports: [MdMenu, MdMenuItem, MdMenuTrigger],\n declarations: [MdMenu, MdMenuItem, MdMenuTrigger],\n }), \n __metadata('design:paramtypes', [])\n ], MdMenuModule);\n return MdMenuModule;\n}());\n\n//# sourceMappingURL=menu.js.map\n","import { Subject } from 'rxjs/Subject';\n// TODO(jelbourn): resizing\n// TODO(jelbourn): afterOpen and beforeClose\n/**\n * Reference to a dialog opened via the MdDialog service.\n */\nexport var MdDialogRef = (function () {\n function MdDialogRef(_overlayRef) {\n this._overlayRef = _overlayRef;\n /** Subject for notifying the user that the dialog has finished closing. */\n this._afterClosed = new Subject();\n }\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n MdDialogRef.prototype.close = function (dialogResult) {\n this._overlayRef.dispose();\n this._afterClosed.next(dialogResult);\n this._afterClosed.complete();\n };\n /** Gets an observable that is notified when the dialog is finished closing. */\n MdDialogRef.prototype.afterClosed = function () {\n return this._afterClosed.asObservable();\n };\n return MdDialogRef;\n}());\n\n//# sourceMappingURL=dialog-ref.js.map\n","import { MdDialogRef } from './dialog-ref';\n/** Custom injector type specifically for instantiating components with a dialog. */\nexport var DialogInjector = (function () {\n function DialogInjector(_dialogRef, _parentInjector) {\n this._dialogRef = _dialogRef;\n this._parentInjector = _parentInjector;\n }\n DialogInjector.prototype.get = function (token, notFoundValue) {\n if (token === MdDialogRef) {\n return this._dialogRef;\n }\n return this._parentInjector.get(token, notFoundValue);\n };\n return DialogInjector;\n}());\n\n//# sourceMappingURL=dialog-injector.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { MdError } from '../core';\n/** Exception thrown when a ComponentPortal is attached to a DomPortalHost without an origin. */\nexport var MdDialogContentAlreadyAttachedError = (function (_super) {\n __extends(MdDialogContentAlreadyAttachedError, _super);\n function MdDialogContentAlreadyAttachedError() {\n _super.call(this, 'Attempting to attach dialog content after content is already attached');\n }\n return MdDialogContentAlreadyAttachedError;\n}(MdError));\n\n//# sourceMappingURL=dialog-errors.js.map\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Component, ViewChild, ViewEncapsulation, NgZone } from '@angular/core';\nimport { BasePortalHost, PortalHostDirective } from '../core';\nimport { MdDialogContentAlreadyAttachedError } from './dialog-errors';\nimport { FocusTrap } from '../core/a11y/focus-trap';\nimport 'rxjs/add/operator/first';\n/**\n * Internal component that wraps user-provided dialog content.\n */\nexport var MdDialogContainer = (function (_super) {\n __extends(MdDialogContainer, _super);\n function MdDialogContainer(_ngZone) {\n _super.call(this);\n this._ngZone = _ngZone;\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n this._elementFocusedBeforeDialogWasOpened = null;\n }\n /** Attach a portal as content to this dialog container. */\n MdDialogContainer.prototype.attachComponentPortal = function (portal) {\n var _this = this;\n if (this._portalHost.hasAttached()) {\n throw new MdDialogContentAlreadyAttachedError();\n }\n var attachResult = this._portalHost.attachComponentPortal(portal);\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n this._ngZone.onMicrotaskEmpty.first().subscribe(function () {\n _this._elementFocusedBeforeDialogWasOpened = document.activeElement;\n _this._focusTrap.focusFirstTabbableElement();\n });\n return attachResult;\n };\n MdDialogContainer.prototype.attachTemplatePortal = function (portal) {\n throw Error('Not yet implemented');\n };\n /** Handles the user pressing the Escape key. */\n MdDialogContainer.prototype.handleEscapeKey = function () {\n // TODO(jelbourn): add MdDialogConfig option to disable this behavior.\n this.dialogRef.close();\n };\n MdDialogContainer.prototype.ngOnDestroy = function () {\n var _this = this;\n // When the dialog is destroyed, return focus to the element that originally had it before\n // the dialog was opened. Wait for the DOM to finish settling before changing the focus so\n // that it doesn't end up back on the <body>.\n this._ngZone.onMicrotaskEmpty.first().subscribe(function () {\n _this._elementFocusedBeforeDialogWasOpened.focus();\n });\n };\n __decorate([\n ViewChild(PortalHostDirective), \n __metadata('design:type', PortalHostDirective)\n ], MdDialogContainer.prototype, \"_portalHost\", void 0);\n __decorate([\n ViewChild(FocusTrap), \n __metadata('design:type', FocusTrap)\n ], MdDialogContainer.prototype, \"_focusTrap\", void 0);\n MdDialogContainer = __decorate([\n Component({selector: 'md-dialog-container',\n template: \"<focus-trap> <template portalHost></template> </focus-trap> \",\n styles: [\"md-dialog-container { box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: block; overflow: hidden; padding: 24px; } /*# sourceMappingURL=dialog-container.css.map */ \"],\n host: {\n 'class': 'md-dialog-container',\n '[attr.role]': 'dialogConfig?.role',\n '(keydown.escape)': 'handleEscapeKey()',\n },\n encapsulation: ViewEncapsulation.None,\n }), \n __metadata('design:paramtypes', [NgZone])\n ], MdDialogContainer);\n return MdDialogContainer;\n}(BasePortalHost));\n\n//# sourceMappingURL=dialog-container.js.map\n","/**\n * Configuration for opening a modal dialog with the MdDialog service.\n */\nexport var MdDialogConfig = (function () {\n function MdDialogConfig() {\n /** The ARIA role of the dialog element. */\n this.role = 'dialog';\n }\n return MdDialogConfig;\n}());\n\n//# sourceMappingURL=dialog-config.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule, Injector, Injectable } from '@angular/core';\nimport { Overlay, OverlayModule, PortalModule, OverlayState, ComponentPortal, OVERLAY_PROVIDERS } from '../core';\nimport { MdDialogRef } from './dialog-ref';\nimport { DialogInjector } from './dialog-injector';\nimport { MdDialogContainer } from './dialog-container';\nimport { A11yModule, InteractivityChecker } from '../core';\nexport { MdDialogConfig } from './dialog-config';\nexport { MdDialogRef } from './dialog-ref';\n// TODO(jelbourn): add support for opening with a TemplateRef\n// TODO(jelbourn): add `closeAll` method\n// TODO(jelbourn): default dialog config\n// TODO(jelbourn): escape key closes dialog\n// TODO(jelbourn): dialog content directives (e.g., md-dialog-header)\n// TODO(jelbourn): animations\n/**\n * Service to open Material Design modal dialogs.\n */\nexport var MdDialog = (function () {\n function MdDialog(_overlay, _injector) {\n this._overlay = _overlay;\n this._injector = _injector;\n }\n /**\n * Opens a modal dialog containing the given component.\n * @param component Type of the component to load into the load.\n * @param config\n */\n MdDialog.prototype.open = function (component, config) {\n var overlayRef = this._createOverlay(config);\n var dialogContainer = this._attachDialogContainer(overlayRef, config);\n return this._attachDialogContent(component, dialogContainer, overlayRef);\n };\n /**\n * Creates the overlay into which the dialog will be loaded.\n * @param dialogConfig The dialog configuration.\n * @returns A promise resolving to the OverlayRef for the created overlay.\n */\n MdDialog.prototype._createOverlay = function (dialogConfig) {\n var overlayState = this._getOverlayState(dialogConfig);\n return this._overlay.create(overlayState);\n };\n /**\n * Attaches an MdDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n MdDialog.prototype._attachDialogContainer = function (overlay, config) {\n var containerPortal = new ComponentPortal(MdDialogContainer, config.viewContainerRef);\n var containerRef = overlay.attach(containerPortal);\n containerRef.instance.dialogConfig = config;\n return containerRef.instance;\n };\n /**\n * Attaches the user-provided component to the already-created MdDialogContainer.\n * @param component The type of component being loaded into the dialog.\n * @param dialogContainer Reference to the wrapping MdDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @returns A promise resolving to the MdDialogRef that should be returned to the user.\n */\n MdDialog.prototype._attachDialogContent = function (component, dialogContainer, overlayRef) {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n var dialogRef = new MdDialogRef(overlayRef);\n // When the dialog backdrop is clicked, we want to close it.\n overlayRef.backdropClick().subscribe(function () { return dialogRef.close(); });\n // Set the dialogRef to the container so that it can use the ref to close the dialog.\n dialogContainer.dialogRef = dialogRef;\n // We create an injector specifically for the component we're instantiating so that it can\n // inject the MdDialogRef. This allows a component loaded inside of a dialog to close itself\n // and, optionally, to return a value.\n var dialogInjector = new DialogInjector(dialogRef, this._injector);\n var contentPortal = new ComponentPortal(component, null, dialogInjector);\n var contentRef = dialogContainer.attachComponentPortal(contentPortal);\n dialogRef.componentInstance = contentRef.instance;\n return dialogRef;\n };\n /**\n * Creates an overlay state from a dialog config.\n * @param dialogConfig The dialog configuration.\n * @returns The overlay configuration.\n */\n MdDialog.prototype._getOverlayState = function (dialogConfig) {\n var state = new OverlayState();\n state.hasBackdrop = true;\n state.positionStrategy = this._overlay.position()\n .global()\n .centerHorizontally()\n .centerVertically();\n return state;\n };\n MdDialog = __decorate([\n Injectable(), \n __metadata('design:paramtypes', [Overlay, Injector])\n ], MdDialog);\n return MdDialog;\n}());\nexport var MdDialogModule = (function () {\n function MdDialogModule() {\n }\n MdDialogModule.forRoot = function () {\n return {\n ngModule: MdDialogModule,\n providers: [MdDialog, OVERLAY_PROVIDERS, InteractivityChecker],\n };\n };\n MdDialogModule = __decorate([\n NgModule({\n imports: [OverlayModule, PortalModule, A11yModule],\n exports: [MdDialogContainer],\n declarations: [MdDialogContainer],\n entryComponents: [MdDialogContainer],\n }), \n __metadata('design:paramtypes', [])\n ], MdDialogModule);\n return MdDialogModule;\n}());\n\n//# sourceMappingURL=dialog.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { NgModule } from '@angular/core';\nimport { MdRippleModule, RtlModule, PortalModule, OverlayModule, A11yModule } from './core/index';\nimport { MdButtonToggleModule } from './button-toggle/index';\nimport { MdButtonModule } from './button/index';\nimport { MdCheckboxModule } from './checkbox/index';\nimport { MdRadioModule } from './radio/index';\nimport { MdSelectModule } from './select/index';\nimport { MdSlideToggleModule } from './slide-toggle/index';\nimport { MdSliderModule } from './slider/index';\nimport { MdSidenavModule } from './sidenav/index';\nimport { MdListModule } from './list/index';\nimport { MdGridListModule } from './grid-list/index';\nimport { MdCardModule } from './card/index';\nimport { MdIconModule } from './icon/index';\nimport { MdProgressCircleModule } from './progress-circle/index';\nimport { MdProgressBarModule } from './progress-bar/index';\nimport { MdInputModule } from './input/index';\nimport { MdSnackBarModule } from './snack-bar/snack-bar';\nimport { MdTabsModule } from './tabs/index';\nimport { MdToolbarModule } from './toolbar/index';\nimport { MdTooltipModule } from './tooltip/index';\nimport { MdMenuModule } from './menu/index';\nimport { MdDialogModule } from './dialog/index';\nvar MATERIAL_MODULES = [\n MdButtonModule,\n MdButtonToggleModule,\n MdCardModule,\n MdCheckboxModule,\n MdDialogModule,\n MdGridListModule,\n MdIconModule,\n MdInputModule,\n MdListModule,\n MdMenuModule,\n MdProgressBarModule,\n MdProgressCircleModule,\n MdRadioModule,\n MdRippleModule,\n MdSelectModule,\n MdSidenavModule,\n MdSliderModule,\n MdSlideToggleModule,\n MdSnackBarModule,\n MdTabsModule,\n MdToolbarModule,\n MdTooltipModule,\n OverlayModule,\n PortalModule,\n RtlModule,\n A11yModule,\n];\nexport var MaterialRootModule = (function () {\n function MaterialRootModule() {\n }\n MaterialRootModule = __decorate([\n NgModule({\n imports: [\n MdButtonModule.forRoot(),\n MdCardModule.forRoot(),\n MdCheckboxModule.forRoot(),\n MdGridListModule.forRoot(),\n MdInputModule.forRoot(),\n MdListModule.forRoot(),\n MdProgressBarModule.forRoot(),\n MdProgressCircleModule.forRoot(),\n MdRippleModule.forRoot(),\n MdSelectModule.forRoot(),\n MdSidenavModule.forRoot(),\n MdTabsModule.forRoot(),\n MdToolbarModule.forRoot(),\n PortalModule.forRoot(),\n RtlModule.forRoot(),\n // These modules include providers.\n A11yModule.forRoot(),\n MdButtonToggleModule.forRoot(),\n MdDialogModule.forRoot(),\n MdIconModule.forRoot(),\n MdMenuModule.forRoot(),\n MdRadioModule.forRoot(),\n MdSliderModule.forRoot(),\n MdSlideToggleModule.forRoot(),\n MdSnackBarModule.forRoot(),\n MdTooltipModule.forRoot(),\n OverlayModule.forRoot(),\n ],\n exports: MATERIAL_MODULES,\n }), \n __metadata('design:paramtypes', [])\n ], MaterialRootModule);\n return MaterialRootModule;\n}());\nexport var MaterialModule = (function () {\n function MaterialModule() {\n }\n MaterialModule.forRoot = function () {\n return { ngModule: MaterialRootModule };\n };\n MaterialModule = __decorate([\n NgModule({\n imports: MATERIAL_MODULES,\n exports: MATERIAL_MODULES,\n }), \n __metadata('design:paramtypes', [])\n ], MaterialModule);\n return MaterialModule;\n}());\n\n//# sourceMappingURL=module.js.map\n"],"names":["__decorate","__metadata","Directive","NgModule","HostBinding","Output","Input","EventEmitter","ElementRef","__extends","ViewContainerRef","TemplateRef","ComponentFactoryResolver","Subject","Injectable","ViewEncapsulation","Component","ViewChild","OpaqueToken","Inject","Optional","HammerGestureConfig","booleanFieldValueFactory","__param","forwardRef","NG_VALUE_ACCESSOR","QueryList","ContentChildren","Observable","FormsModule","Renderer","ChangeDetectionStrategy","CommonModule","TransitionCheckState","_uniqueIdCounter","nextId","HAMMER_GESTURE_CONFIG","ContentChild","Http","HttpModule","ChangeDetectorRef","clamp","nextUniqueId","NgZone","ViewChildren","Attribute","HostListener","Injector"],"mappings":"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"}